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();
+    }
 }


Reply via email to