Update of /cvsroot/commonjava/commonjava-projects/commonjava-enterprise-services/projects/jdbc-manager/src/main/java/org/commonjava/j2ee/services
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10019/projects/jdbc-manager/src/main/java/org/commonjava/j2ee/services
Added Files:
JDBCManager.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: JDBCManager.java ---
/* Created on Mar 22, 2004 */
package org.commonjava.j2ee.services;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import javax.sql.DataSource;
import org.commonjava.config.snapin.SnapInLoaderException;
import org.commonjava.j2ee.services.ServiceLocator;
/**
* @author jdcasey
*/
public final class JDBCManager extends AbstractManager{
public static final String STANDARD_JDBC_JNDI_CONFIG_NAME = "jdbc";
/**
*
*/
public JDBCManager() {
setJndiConfigName(STANDARD_JDBC_JNDI_CONFIG_NAME);
}
public JDBCManager(ServiceLocator locator){
super(locator);
setJndiConfigName(STANDARD_JDBC_JNDI_CONFIG_NAME);
}
/** Retrieve the JNDI configuration for JDBC lookups, then lookup the specified
* jndi binding and return a JDBC DataSource.
* @param jndiName The JNDI binding
*/
public DataSource getDataSource(String jndiName)
throws NamingException, SnapInLoaderException
{
Object result = getLocator().lookup(getJndiConfigName(), jndiName);
// not sure this is ever necessary...
if(result != null && !DataSource.class.isInstance(result)){
result = PortableRemoteObject.narrow(result, DataSource.class);
}
return (DataSource)result;
}
}
|