[CJ-dev] commonjava-projects/commonjava-enterprise-services/projects/core/src/main/java/org/commonja
Brought to you by:
johnqueso
From: John C. <joh...@co...> - 2004-03-23 15:09:24
|
Update of /cvsroot/commonjava/commonjava-projects/commonjava-enterprise-services/projects/core/src/main/java/org/commonjava/j2ee/services In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10019/projects/core/src/main/java/org/commonjava/j2ee/services Added Files: ServiceLocator.java AbstractManager.java Log Message: modified to make core, ejb, jms, jdbc, raw-service sub-projects, and to add JNDI name rewriting to the core ServiceLocator. --- NEW FILE: ServiceLocator.java --- /* * Created on Oct 7, 2003 * */ package org.commonjava.j2ee.services; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.rmi.PortableRemoteObject; import javax.sql.DataSource; import org.commonjava.config.jndi.JndiConfig; import org.commonjava.config.jndi.JndiConfigSnapIn; import org.commonjava.config.snapin.SnapInContainerLoader; import org.commonjava.config.snapin.SnapInLoaderException; import org.commonjava.j2ee.services.rewrite.LocationRewriter; /** Utility class which provides convenience methods for looking up various J2EE * related JNDI objects. * * @author John Casey * */ final class ServiceLocator { private JndiConfigSnapIn jcsi; private LocationRewriter rewriter; /** Utility class; deny construction. */ ServiceLocator() { } Object lookup(String configName, String jndiName) throws NamingException, SnapInLoaderException { Object result = null; Context ctx = null; try{ synchronized(this){ if(jcsi == null){ jcsi = (JndiConfigSnapIn)SnapInContainerLoader.getSnapInContainer().getSnapIn( JndiConfigSnapIn.SNAP_IN_ID ); } if(rewriter == null){ rewriter = (LocationRewriter)SnapInContainerLoader.getSnapInContainer().getSnapIn( LocationRewriter.SNAP_IN_ID ); } } JndiConfig jndiConfig = jcsi.getConfig(configName); if(jndiConfig.useContextEnvironment()){ ctx = new InitialContext(jndiConfig.getEnvironment()); } else{ ctx = new InitialContext(); } String baseCtx = jndiConfig.getBaseContext(); if(baseCtx != null && baseCtx.length() > 0){ ctx = (Context)ctx.lookup(baseCtx); } String binding = jndiName; if(rewriter != null){ binding = rewriter.rewrite(binding); } result = ctx.lookup(binding); } catch (SnapInLoaderException e) { throw e; } finally{ if(ctx != null){ ctx.close(); } } return result; } } --- NEW FILE: AbstractManager.java --- /* Created on Mar 22, 2004 */ package org.commonjava.j2ee.services; /** * @author jdcasey */ abstract class AbstractManager { public static final String DEFAULT_JNDI_CONFIG_NAME = "singlesrc"; private ServiceLocator locator; private String jndiConfigName = DEFAULT_JNDI_CONFIG_NAME; /** * */ protected AbstractManager() { } protected AbstractManager(ServiceLocator locator){ this.locator = locator; } /** * @return */ public String getJndiConfigName() { return jndiConfigName; } /** * @return */ public ServiceLocator getLocator() { return locator; } /** * @param string */ public void setJndiConfigName(String string) { jndiConfigName = string; } } |