001: /**
002: * EasyBeans
003: * Copyright (C) 2006 Bull S.A.S.
004: * Contact: easybeans@ow2.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: EJBHelper.java 1970 2007-10-16 11:49:25Z benoitf $
023: * --------------------------------------------------------------------------
024: */package org.ow2.easybeans.tests.common.helper;
025:
026: import javax.naming.Context;
027: import javax.naming.InitialContext;
028:
029: /**
030: * This helper is used to do ejb operations.
031: * @author Eduardo Studzinski Estima de Castro
032: * @author Gisele Pinheiro Souza
033: */
034: public final class EJBHelper {
035:
036: /**
037: * Helper should have a private constructor.
038: */
039: private EJBHelper() {
040: }
041:
042: /**
043: * Constant used to identify a remote interface.
044: */
045: public static final String ITF_REMOTE = "@Remote";
046:
047: /**
048: * Constant used to identify a local interface.
049: */
050: public static final String ITF_LOCAL = "@Local";
051:
052: /**
053: * Gets a remote instance of a bean.
054: * @param <E> bean element type
055: * @param beanClass class of the bean
056: * @param beanInterface interface of the bean
057: * @return bean instance
058: * @throws Exception if occurs a problem in the instance invocation
059: */
060: @SuppressWarnings("unchecked")
061: public static synchronized <E> E getBeanRemoteInstance(
062: final Class beanClass, final Class<E> beanInterface)
063: throws Exception {
064: System
065: .setProperty(Context.INITIAL_CONTEXT_FACTORY,
066: "org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory");
067:
068: Context initialContext = new InitialContext();
069: E clBean = (E) initialContext.lookup(beanClass.getName() + "_"
070: + beanInterface.getName() + ITF_REMOTE);
071: return clBean;
072: }
073:
074: /**
075: * Gets a local instance of a bean.
076: * @param <E> bean element type
077: * @param beanClass class of the bean
078: * @param beanInterface interface of the bean
079: * @return bean instance
080: * @throws Exception if occurs a problem in the instance invocation.
081: */
082: @SuppressWarnings("unchecked")
083: public static synchronized <E> E getBeanLocalInstance(
084: final Class beanClass, final Class<E> beanInterface)
085: throws Exception {
086: System
087: .setProperty(Context.INITIAL_CONTEXT_FACTORY,
088: "org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory");
089:
090: Context initialContext = new InitialContext();
091: E clBean = (E) initialContext.lookup(beanClass.getName() + "_"
092: + beanInterface.getName() + ITF_LOCAL);
093: return clBean;
094: }
095:
096: /**
097: * Gets an instance of a bean by the mappedName.
098: * @param <E> the bean element type.
099: * @param mappedName the mappedName.
100: * @return the bean.
101: * @throws Exception f occurs a problem in the instance invocation.
102: */
103: @SuppressWarnings("unchecked")
104: public static synchronized <E> E getBeanByMappedName(
105: final String mappedName) throws Exception {
106: System
107: .setProperty(Context.INITIAL_CONTEXT_FACTORY,
108: "org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory");
109:
110: Context initialContext = new InitialContext();
111: E clBean = (E) initialContext.lookup(mappedName);
112: return clBean;
113: }
114:
115: }
|