You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/07/22 11:38:03 UTC

svn commit: r1364246 - in /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/Assembler.java resource/jdbc/pool/DataSourceCreator.java resource/jdbc/pool/DefaultDataSourceCreator.java

Author: rmannibucau
Date: Sun Jul 22 09:38:02 2012
New Revision: 1364246

URL: http://svn.apache.org/viewvc?rev=1364246&view=rev
Log:
OPENEJB-1877 more refactoring to be more dbcp independent

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DataSourceCreator.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1364246&r1=1364245&r2=1364246&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Sun Jul 22 09:38:02 2012
@@ -132,6 +132,7 @@ import org.apache.openejb.observer.Obser
 import org.apache.openejb.persistence.JtaEntityManagerRegistry;
 import org.apache.openejb.persistence.PersistenceClassLoaderHandler;
 import org.apache.openejb.resource.GeronimoConnectionManagerFactory;
+import org.apache.openejb.resource.jdbc.pool.DataSourceCreator;
 import org.apache.openejb.spi.ApplicationServer;
 import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.spi.SecurityService;
@@ -1112,11 +1113,11 @@ public class Assembler extends Assembler
             } catch (Throwable t) {
                 logger.fatal("ResourceAdapter Shutdown Failed: " + name, t);
             }
-        } else if (object instanceof org.apache.commons.dbcp.BasicDataSource) {
+        } else if (SystemInstance.get().getComponent(DataSourceCreator.class).hasCreated(object)) {
             logger.info("Closing DataSource: " + name);
 
             try {
-                ((org.apache.commons.dbcp.BasicDataSource) object).close();
+                SystemInstance.get().getComponent(DataSourceCreator.class).destroy(object);
             } catch (Throwable t) {
                 //Ignore
             }

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DataSourceCreator.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DataSourceCreator.java?rev=1364246&r1=1364245&r2=1364246&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DataSourceCreator.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DataSourceCreator.java Sun Jul 22 09:38:02 2012
@@ -12,4 +12,7 @@ public interface DataSourceCreator {
     DataSource poolManagedWithRecovery(String name, XAResourceWrapper xaResourceWrapper, String driver, Properties properties);
     DataSource poolManaged(String name, String driver, Properties properties);
     DataSource pool(String name, String driver);
+
+    boolean hasCreated(Object object);
+    void destroy(Object object) throws Throwable;
 }

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java?rev=1364246&r1=1364245&r2=1364246&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java Sun Jul 22 09:38:02 2012
@@ -46,4 +46,14 @@ public class DefaultDataSourceCreator im
         ds.setDriverClassName(driver);
         return ds;
     }
+
+    @Override
+    public boolean hasCreated(Object object) {
+        return object instanceof org.apache.commons.dbcp.BasicDataSource;
+    }
+
+    @Override
+    public void destroy(Object object) throws Throwable {
+        ((org.apache.commons.dbcp.BasicDataSource) object).close();
+    }
 }