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;
}
}
|