You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/12/06 21:57:32 UTC
svn commit: r601854 -
/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
Author: dblevins
Date: Thu Dec 6 12:57:31 2007
New Revision: 601854
URL: http://svn.apache.org/viewvc?rev=601854&view=rev
Log:
Removed hard reference to commons dbcp.
Modified:
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
Modified: openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java?rev=601854&r1=601853&r2=601854&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java (original)
+++ openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java Thu Dec 6 12:57:31 2007
@@ -33,6 +33,7 @@
import javax.naming.NamingEnumeration;
import javax.jms.ConnectionFactory;
import javax.xml.namespace.QName;
+import javax.sql.DataSource;
import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.ProxyInfo;
@@ -64,7 +65,6 @@
import org.apache.openejb.client.ThrowableArtifact;
import org.apache.openejb.client.RequestMethodConstants;
import org.apache.openejb.client.NameClassPairEnumeration;
-import org.apache.commons.dbcp.BasicDataSource;
import org.omg.CORBA.ORB;
class JndiRequestHandler {
@@ -179,11 +179,16 @@
return;
} else if (object == null) {
throw new NullPointerException("lookup of '"+name+"' returned null");
- } else if (object instanceof BasicDataSource){
- BasicDataSource cf = (BasicDataSource) object;
- DataSourceMetaData dataSourceMetaData = new DataSourceMetaData(cf.getDriverClassName(), cf.getUrl(), cf.getUsername(), cf.getPassword());
- res.setResponseCode(ResponseCodes.JNDI_DATA_SOURCE);
- res.setResult(dataSourceMetaData);
+ } else if (object instanceof DataSource && object.getClass().getName().equals("org.apache.commons.dbcp.BasicDataSource")){
+ try {
+ DbcpDataSource cf = new DbcpDataSource(object);
+ DataSourceMetaData dataSourceMetaData = new DataSourceMetaData(cf.getDriverClassName(), cf.getUrl(), cf.getUsername(), cf.getPassword());
+ res.setResponseCode(ResponseCodes.JNDI_DATA_SOURCE);
+ res.setResult(dataSourceMetaData);
+ } catch (Exception e) {
+ res.setResponseCode(ResponseCodes.JNDI_ERROR);
+ res.setResult(new ThrowableArtifact(e));
+ }
return;
} else if (object instanceof ConnectionFactory){
res.setResponseCode(ResponseCodes.JNDI_RESOURCE);
@@ -418,4 +423,29 @@
}
}
+
+ public static class DbcpDataSource {
+ private final Object object;
+ private final Class clazz;
+
+ public DbcpDataSource(Object object) {
+ clazz = object.getClass();
+ this.object = object;
+ }
+
+ public java.lang.String getDriverClassName() throws Exception {
+ return (String) clazz.getMethod("getDriverClassName").invoke(object);
+ }
+
+ public java.lang.String getPassword() throws Exception{
+ return (String) clazz.getMethod("getPassword").invoke(object);
+ }
+ public java.lang.String getUrl() throws Exception{
+ return (String) clazz.getMethod("getUrl").invoke(object);
+ }
+ public java.lang.String getUsername() throws Exception{
+ return (String) clazz.getMethod("getUsername").invoke(object);
+ }
+ }
}
+