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