Author: rmannibucau
Date: Tue Jul 24 12:08:25 2012
New Revision: 1364997

URL: http://svn.apache.org/viewvc?rev=1364997&view=rev
Log:
more independence from commond dbcp in openejb-ejbd

Modified:
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
    
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1364997&r1=1364996&r2=1364997&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
 Tue Jul 24 12:08:25 2012
@@ -1113,7 +1113,7 @@ public class Assembler extends Assembler
             } catch (Throwable t) {
                 logger.fatal("ResourceAdapter Shutdown Failed: " + name, t);
             }
-        } else if (DataSourceFactory.canBeDestroyed(object)) {
+        } else if (DataSourceFactory.knows(object)) {
             logger.info("Closing DataSource: " + name);
 
             try {

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java?rev=1364997&r1=1364996&r2=1364997&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
 Tue Jul 24 12:08:25 2012
@@ -118,7 +118,7 @@ public class DataSourceFactory {
         properties.remove("LoginTimeout");
     }
 
-    public static boolean canBeDestroyed(final Object object) {
+    public static boolean knows(final Object object) {
         if (!(object instanceof DataSource)) {
             return false;
         }

Modified: 
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java?rev=1364997&r1=1364996&r2=1364997&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
 (original)
+++ 
openejb/branches/openejb-pool/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
 Tue Jul 24 12:08:25 2012
@@ -20,6 +20,9 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -38,6 +41,7 @@ import javax.validation.Validator;
 import javax.validation.ValidatorFactory;
 import javax.xml.namespace.QName;
 
+import org.apache.openejb.resource.jdbc.DataSourceFactory;
 import org.omg.CORBA.ORB;
 import static org.apache.openejb.server.ejbd.ClientObjectFactory.convert;
 
@@ -213,7 +217,7 @@ class JndiRequestHandler {
             } else if (object == null) {
                 throw new NullPointerException("lookup of '" + name + "' 
returned null");
             } else if (object instanceof DataSource) {
-                if (isDbcpDataSource(object)) {
+                if (DataSourceFactory.knows(object)) {
                     try {
                         DbcpDataSource cf = new DbcpDataSource(object);
                         DataSourceMetaData dataSourceMetaData = new 
DataSourceMetaData(cf.getDriverClassName(), cf.getUrl(), cf.getUsername(), 
cf.getPassword());
@@ -455,15 +459,6 @@ class JndiRequestHandler {
 
     }
 
-    private boolean isDbcpDataSource(Object object) {
-
-        for (Class<?> clazz = object.getClass(); clazz != null; clazz = 
clazz.getSuperclass()) {
-            if 
(clazz.getName().equals("org.apache.commons.dbcp.BasicDataSource")) return true;
-        }
-
-        return false;
-    }
-
     private void log(EJBMetaDataImpl metaData) {
         if (logger.isDebugEnabled()) {
             final StringBuilder sb = new StringBuilder();
@@ -525,7 +520,11 @@ class JndiRequestHandler {
         }
 
         public java.lang.String getDriverClassName() throws Exception {
-            return (String) 
clazz.getMethod("getDriverClassName").invoke(object);
+            try {
+                return (String) 
clazz.getMethod("getDriverClassName").invoke(object);
+            } catch (NoSuchMethodException nsme) {
+                return (String) 
clazz.getMethod("getDriverClass").invoke(object);
+            }
         }
 
         public java.lang.String getPassword() throws Exception {
@@ -533,7 +532,11 @@ class JndiRequestHandler {
         }
 
         public java.lang.String getUrl() throws Exception {
-            return (String) clazz.getMethod("getUrl").invoke(object);
+            try {
+                return (String) clazz.getMethod("getUrl").invoke(object);
+            } catch (NoSuchMethodException nsme) {
+                return (String) clazz.getMethod("getJdbcUrl").invoke(object);
+            }
         }
 
         public java.lang.String getUsername() throws Exception {


Reply via email to