Repository: tomee Updated Branches: refs/heads/master e362fde9b -> 9beea6937
TOMEE-1620 dbcp2 (so pool 2) Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/9beea693 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/9beea693 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/9beea693 Branch: refs/heads/master Commit: 9beea693784efc7e230017dc39259df682cf9a34 Parents: e362fde Author: Romain Manni-Bucau <[email protected]> Authored: Mon Aug 3 16:57:28 2015 +0200 Committer: Romain Manni-Bucau <[email protected]> Committed: Mon Aug 3 16:57:28 2015 +0200 ---------------------------------------------------------------------- .../openejb/BindingInJavaGlobalTest.java | 2 +- arquillian/arquillian-tomee-common/pom.xml | 8 ++--- .../arquillian-tomee-webapp-remote/pom.xml | 8 ++--- container/openejb-core/pom.xml | 16 ++++----- .../assembler/classic/PersistenceBuilder.java | 7 ++-- .../openejb/monitoring/DynamicMBeanWrapper.java | 23 ++++++------- .../resource/jdbc/dbcp/BasicDataSource.java | 35 ++++++++++---------- .../jdbc/dbcp/BasicManagedDataSource.java | 18 +++++----- .../jdbc/dbcp/DataSourceSerialization.java | 2 +- .../resource/jdbc/dbcp/DbcpDataSource.java | 8 ++--- .../jdbc/dbcp/DbcpDataSourceCreator.java | 22 ++++++------ .../jdbc/dbcp/DbcpManagedDataSource.java | 22 ++++++------ .../resource/jdbc/dbcp/JMXBasicDataSource.java | 26 +++++++-------- .../jdbc/pool/DefaultDataSourceCreator.java | 4 +-- .../DataSourceDefinitionGlobalJPATest.java | 4 +-- .../classic/DataSourceDefinitionJndiTest.java | 4 +-- .../DataSourceDefinitionPlaceHolderTest.java | 2 +- .../classic/OpenEJBXmlByModuleTest.java | 2 +- .../assembler/classic/ResourcesJsonTest.java | 2 +- .../openejb/config/JMXDataSourceTest.java | 1 - .../apache/openejb/config/JSonConfigTest.java | 4 +-- .../apache/openejb/core/cmp/jpa/JpaTest.java | 4 +-- .../openejb/core/cmp/jpa/UnenhancedTest.java | 4 +-- .../resource/jdbc/IgnoreDefaultTest.java | 6 ++-- .../resource/jdbc/JtaFailOverRouterTest.java | 32 ++++++++---------- .../openejb/resource/jdbc/XADataSourceTest.java | 19 ++++++----- .../src/test/resources/openejb.json | 2 +- pom.xml | 17 ++++------ server/openejb-hsql/pom.xml | 8 ++--- server/openejb-server/pom.xml | 4 +-- 30 files changed, 153 insertions(+), 163 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/arquillian/arquillian-openejb-embedded/src/test/java/org/apache/openejb/arquillian/openejb/BindingInJavaGlobalTest.java ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-openejb-embedded/src/test/java/org/apache/openejb/arquillian/openejb/BindingInJavaGlobalTest.java b/arquillian/arquillian-openejb-embedded/src/test/java/org/apache/openejb/arquillian/openejb/BindingInJavaGlobalTest.java index 0d4bd42..86e2fef 100644 --- a/arquillian/arquillian-openejb-embedded/src/test/java/org/apache/openejb/arquillian/openejb/BindingInJavaGlobalTest.java +++ b/arquillian/arquillian-openejb-embedded/src/test/java/org/apache/openejb/arquillian/openejb/BindingInJavaGlobalTest.java @@ -16,7 +16,7 @@ */ package org.apache.openejb.arquillian.openejb; -import org.apache.commons.dbcp.BasicDataSource; +import org.apache.commons.dbcp2.BasicDataSource; import org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/arquillian/arquillian-tomee-common/pom.xml ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-tomee-common/pom.xml b/arquillian/arquillian-tomee-common/pom.xml index 4142687..84f04a1 100644 --- a/arquillian/arquillian-tomee-common/pom.xml +++ b/arquillian/arquillian-tomee-common/pom.xml @@ -191,12 +191,12 @@ <groupId>org.apache.openwebbeans</groupId> </exclusion> <exclusion> - <artifactId>commons-dbcp</artifactId> - <groupId>commons-dbcp</groupId> + <artifactId>org.apache.commons</artifactId> + <groupId>commons-dbcp2</groupId> </exclusion> <exclusion> - <artifactId>commons-pool</artifactId> - <groupId>commons-pool</groupId> + <artifactId>org.apache.commons</artifactId> + <groupId>commons-pool2</groupId> </exclusion> <exclusion> <artifactId>swizzle-stream</artifactId> http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/arquillian/arquillian-tomee-webapp-remote/pom.xml ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-tomee-webapp-remote/pom.xml b/arquillian/arquillian-tomee-webapp-remote/pom.xml index 09083c8..736c21f 100644 --- a/arquillian/arquillian-tomee-webapp-remote/pom.xml +++ b/arquillian/arquillian-tomee-webapp-remote/pom.xml @@ -210,12 +210,12 @@ <groupId>org.apache.openwebbeans</groupId> </exclusion> <exclusion> - <artifactId>commons-dbcp</artifactId> - <groupId>commons-dbcp</groupId> + <artifactId>org.apache.commons</artifactId> + <groupId>commons-dbcp2</groupId> </exclusion> <exclusion> - <artifactId>commons-pool</artifactId> - <groupId>commons-pool</groupId> + <artifactId>org.apache.commons</artifactId> + <groupId>commons-pool2</groupId> </exclusion> <exclusion> <artifactId>swizzle-stream</artifactId> http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/pom.xml ---------------------------------------------------------------------- diff --git a/container/openejb-core/pom.xml b/container/openejb-core/pom.xml index f61b099..d29a0bc 100644 --- a/container/openejb-core/pom.xml +++ b/container/openejb-core/pom.xml @@ -123,8 +123,8 @@ org.apache.bval.jsr.resolver;resolution:=optional, org.apache.commons.beanutils, org.apache.commons.cli;version="[1.2,2)", - org.apache.commons.dbcp;resolution:=optional;version="[1.4,2)", - org.apache.commons.dbcp.managed;resolution:=optional;version="[1.4,2)", + org.apache.commons.dbcp2;resolution:=optional;version="[2,3)", + org.apache.commons.dbcp2.managed;resolution:=optional;version="[2,3)", org.apache.commons.lang;version="[2.6,2.9)", org.apache.commons.lang3;version="[3.1,4)", org.apache.geronimo.connector;version="[3.0,4)", @@ -580,18 +580,18 @@ <artifactId>hsqldb</artifactId> </dependency> <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-dbcp2</artifactId> <exclusions> <exclusion> - <groupId>commons-pool</groupId> - <artifactId>commons-pool</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-pool2</artifactId> </exclusion> </exclusions> </dependency> <dependency> - <groupId>commons-pool</groupId> - <artifactId>commons-pool</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-pool2</artifactId> </dependency> <dependency> <groupId>org.codehaus.swizzle</groupId> http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java index f0bfb15..992404e 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/PersistenceBuilder.java @@ -25,15 +25,16 @@ import org.apache.openejb.spi.ContainerSystem; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; +import java.util.Map; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.persistence.SharedCacheMode; import javax.persistence.ValidationMode; import javax.persistence.spi.PersistenceUnitTransactionType; +import javax.sql.CommonDataSource; import javax.sql.DataSource; import javax.validation.ValidatorFactory; -import java.util.Map; public class PersistenceBuilder { @@ -84,7 +85,7 @@ public class PersistenceBuilder { jtaDataSourceId = "openejb/Resource/" + jtaDataSourceId; } - final DataSource jtaDataSource = (DataSource) context.lookup(jtaDataSourceId); + final CommonDataSource jtaDataSource = (CommonDataSource) context.lookup(jtaDataSourceId); unitInfo.setJtaDataSource(jtaDataSource); } catch (final NamingException e) { try { @@ -131,7 +132,7 @@ public class PersistenceBuilder { nonJtaDataSourceId = "java:openejb/Resource/" + nonJtaDataSourceId; } - final DataSource nonJtaDataSource = (DataSource) context.lookup(nonJtaDataSourceId); + final CommonDataSource nonJtaDataSource = (CommonDataSource) context.lookup(nonJtaDataSourceId); unitInfo.setNonJtaDataSource(nonJtaDataSource); } catch (final NamingException e) { try { http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java b/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java index 2544a39..eaa2a3b 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/monitoring/DynamicMBeanWrapper.java @@ -17,6 +17,17 @@ package org.apache.openejb.monitoring; +import org.apache.openejb.api.internal.Internal; +import org.apache.openejb.api.jmx.Description; +import org.apache.openejb.api.jmx.MBean; +import org.apache.openejb.api.jmx.ManagedAttribute; +import org.apache.openejb.api.jmx.ManagedOperation; +import org.apache.openejb.api.jmx.NotificationInfo; +import org.apache.openejb.api.jmx.NotificationInfos; +import org.apache.openejb.util.LogCategory; +import org.apache.openejb.util.Logger; +import org.apache.webbeans.config.WebBeansContext; + import java.lang.annotation.Annotation; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; @@ -28,7 +39,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.ResourceBundle; - import javax.management.Attribute; import javax.management.AttributeList; import javax.management.AttributeNotFoundException; @@ -48,17 +58,6 @@ import javax.management.MBeanServer; import javax.management.ObjectName; import javax.management.ReflectionException; -import org.apache.openejb.api.internal.Internal; -import org.apache.openejb.api.jmx.Description; -import org.apache.openejb.api.jmx.MBean; -import org.apache.openejb.api.jmx.ManagedAttribute; -import org.apache.openejb.api.jmx.ManagedOperation; -import org.apache.openejb.api.jmx.NotificationInfo; -import org.apache.openejb.api.jmx.NotificationInfos; -import org.apache.openejb.util.LogCategory; -import org.apache.openejb.util.Logger; -import org.apache.webbeans.config.WebBeansContext; - public class DynamicMBeanWrapper implements DynamicMBean, MBeanRegistration { public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_DEPLOY, DynamicMBeanWrapper.class); http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java index b784961..ffb5bba 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java @@ -17,9 +17,9 @@ package org.apache.openejb.resource.jdbc.dbcp; -import org.apache.commons.dbcp.ConnectionFactory; -import org.apache.commons.dbcp.DataSourceConnectionFactory; -import org.apache.commons.dbcp.managed.DataSourceXAConnectionFactory; +import org.apache.commons.dbcp2.ConnectionFactory; +import org.apache.commons.dbcp2.DataSourceConnectionFactory; +import org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory; import org.apache.openejb.OpenEJB; import org.apache.openejb.cipher.PasswordCipher; import org.apache.openejb.cipher.PasswordCipherFactory; @@ -29,9 +29,6 @@ import org.apache.openejb.resource.jdbc.IsolationLevels; import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin; import org.apache.openejb.util.reflection.Reflections; -import javax.sql.CommonDataSource; -import javax.sql.DataSource; -import javax.sql.XADataSource; import java.io.File; import java.io.ObjectStreamException; import java.io.Serializable; @@ -40,11 +37,13 @@ import java.sql.SQLFeatureNotSupportedException; import java.util.Properties; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Logger; +import javax.sql.CommonDataSource; +import javax.sql.DataSource; +import javax.sql.XADataSource; @SuppressWarnings({"UnusedDeclaration"}) -public class BasicDataSource extends org.apache.commons.dbcp.BasicDataSource implements Serializable { - - private static final ReentrantLock lock = new ReentrantLock(); +public class BasicDataSource extends org.apache.commons.dbcp2.BasicDataSource implements Serializable { + private final ReentrantLock lock = new ReentrantLock(); private Logger logger; @@ -81,9 +80,9 @@ public class BasicDataSource extends org.apache.commons.dbcp.BasicDataSource imp protected ConnectionFactory createConnectionFactory() throws SQLException { if (delegate != null) { if (XADataSource.class.isInstance(delegate)) { - return new DataSourceXAConnectionFactory(OpenEJB.getTransactionManager(), XADataSource.class.cast(delegate), username, password); + return new DataSourceXAConnectionFactory(OpenEJB.getTransactionManager(), XADataSource.class.cast(delegate), getUsername(), getPassword()); } - return new DataSourceConnectionFactory(DataSource.class.cast(delegate), username, password); + return new DataSourceConnectionFactory(DataSource.class.cast(delegate), getUsername(), getPassword()); } return super.createConnectionFactory(); } @@ -208,24 +207,26 @@ public class BasicDataSource extends org.apache.commons.dbcp.BasicDataSource imp final ReentrantLock l = lock; l.lock(); try { - super.setMaxWait((long) maxWait); + super.setMaxWaitMillis((long) maxWait); } finally { l.unlock(); } } + @Override protected DataSource createDataSource() throws SQLException { final ReentrantLock l = lock; l.lock(); try { - if (super.dataSource != null) { - return super.dataSource; + final Object dataSource = Reflections.get(this, "dataSource"); + if (dataSource != null) { + return DataSource.class.cast(dataSource); } // check password codec if available - if (null != passwordCipher) { + if (null != passwordCipher && !"PlainText".equals(passwordCipher)) { final PasswordCipher cipher = PasswordCipherFactory.getPasswordCipher(passwordCipher); - final String plainPwd = cipher.decrypt(password.toCharArray()); + final String plainPwd = cipher.decrypt(getPassword().toCharArray()); // override previous password value super.setPassword(plainPwd); @@ -309,7 +310,7 @@ public class BasicDataSource extends org.apache.commons.dbcp.BasicDataSource imp try { if (null == this.logger) { - this.logger = (Logger) Reflections.invokeByReflection(super.dataSource, "getParentLogger", new Class<?>[0], null); + this.logger = (Logger) Reflections.invokeByReflection(createDataSource(), "getParentLogger", new Class<?>[0], null); } return this.logger; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java index 61f9baa..ec604b0 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java @@ -17,7 +17,7 @@ package org.apache.openejb.resource.jdbc.dbcp; -import org.apache.commons.dbcp.ConnectionFactory; +import org.apache.commons.dbcp2.ConnectionFactory; import org.apache.openejb.OpenEJB; import org.apache.openejb.cipher.PasswordCipher; import org.apache.openejb.cipher.PasswordCipherFactory; @@ -26,8 +26,8 @@ import org.apache.openejb.resource.jdbc.BasicDataSourceUtil; import org.apache.openejb.resource.jdbc.IsolationLevels; import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin; import org.apache.openejb.resource.jdbc.pool.XADataSourceResource; +import org.apache.openejb.util.reflection.Reflections; -import javax.sql.DataSource; import java.io.File; import java.io.ObjectStreamException; import java.io.Serializable; @@ -36,9 +36,10 @@ import java.sql.SQLFeatureNotSupportedException; import java.util.Properties; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Logger; +import javax.sql.DataSource; @SuppressWarnings({"UnusedDeclaration"}) -public class BasicManagedDataSource extends org.apache.commons.dbcp.managed.BasicManagedDataSource implements Serializable { +public class BasicManagedDataSource extends org.apache.commons.dbcp2.managed.BasicManagedDataSource implements Serializable { private static final ReentrantLock lock = new ReentrantLock(); private final String name; @@ -210,7 +211,7 @@ public class BasicManagedDataSource extends org.apache.commons.dbcp.managed.Basi final ReentrantLock l = lock; l.lock(); try { - super.setMaxWait((long) maxWait); + super.setMaxWaitMillis((long) maxWait); } finally { l.unlock(); } @@ -220,14 +221,15 @@ public class BasicManagedDataSource extends org.apache.commons.dbcp.managed.Basi final ReentrantLock l = lock; l.lock(); try { - if (super.dataSource != null) { - return super.dataSource; + final Object dataSource = Reflections.get(this, "dataSource"); + if (dataSource != null) { + return DataSource.class.cast(dataSource); } // check password codec if available if (null != passwordCipher) { final PasswordCipher cipher = PasswordCipherFactory.getPasswordCipher(passwordCipher); - final String plainPwd = cipher.decrypt(password.toCharArray()); + final String plainPwd = cipher.decrypt(getPassword().toCharArray()); // override previous password value super.setPassword(plainPwd); @@ -309,7 +311,7 @@ public class BasicManagedDataSource extends org.apache.commons.dbcp.managed.Basi try { if (null == this.logger) { - this.logger = (Logger) DataSource.class.getDeclaredMethod("getParentLogger").invoke(super.dataSource); + this.logger = (Logger) DataSource.class.getDeclaredMethod("getParentLogger").invoke(createDataSource()); } return this.logger; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DataSourceSerialization.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DataSourceSerialization.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DataSourceSerialization.java index 1ed3595..a136478 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DataSourceSerialization.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DataSourceSerialization.java @@ -19,9 +19,9 @@ package org.apache.openejb.resource.jdbc.dbcp; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.spi.ContainerSystem; -import javax.naming.NamingException; import java.io.ObjectStreamException; import java.io.Serializable; +import javax.naming.NamingException; public class DataSourceSerialization implements Serializable { private final String name; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSource.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSource.java index 3e5defa..1c98bb3 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSource.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSource.java @@ -17,12 +17,12 @@ package org.apache.openejb.resource.jdbc.dbcp; -import org.apache.commons.dbcp.ConnectionFactory; -import org.apache.commons.dbcp.DataSourceConnectionFactory; +import org.apache.commons.dbcp2.ConnectionFactory; +import org.apache.commons.dbcp2.DataSourceConnectionFactory; import org.apache.openejb.resource.jdbc.DataSourceHelper; -import javax.sql.DataSource; import java.sql.SQLException; +import javax.sql.DataSource; public class DbcpDataSource extends BasicDataSource { @@ -35,7 +35,7 @@ public class DbcpDataSource extends BasicDataSource { @Override protected ConnectionFactory createConnectionFactory() throws SQLException { - return new DataSourceConnectionFactory(this.ds, username, password); + return new DataSourceConnectionFactory(this.ds, getUsername(), getPassword()); } @Override http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSourceCreator.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSourceCreator.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSourceCreator.java index bc0ca31..10be9a8 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSourceCreator.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpDataSourceCreator.java @@ -24,12 +24,12 @@ import org.apache.openejb.resource.jdbc.managed.xa.ManagedXADataSource; import org.apache.openejb.resource.jdbc.pool.PoolDataSourceCreator; import org.apache.openejb.resource.jdbc.pool.XADataSourceResource; +import java.util.Properties; import javax.sql.CommonDataSource; import javax.sql.DataSource; import javax.sql.XADataSource; import javax.transaction.TransactionManager; import javax.transaction.TransactionSynchronizationRegistry; -import java.util.Properties; // just a sample showing how to implement a datasourcecreator // this one will probably not be used since dbcp has already the integration we need @@ -50,26 +50,24 @@ public class DbcpDataSourceCreator extends PoolDataSourceCreator { @Override public CommonDataSource pool(final String name, final String driver, final Properties properties) { - final String xa = String.class.cast(properties.remove("XaDataSource")); - if (xa != null) { - return XADataSourceResource.proxy(Thread.currentThread().getContextClassLoader(), xa); - } + properties.setProperty("name", name); - if (!properties.containsKey("JdbcDriver")) { + final String xa = String.class.cast(properties.remove("XaDataSource")); + if (xa == null && !properties.containsKey("JdbcDriver")) { properties.setProperty("driverClassName", driver); } - properties.setProperty("name", name); final BasicDataSource ds = build(BasicDataSource.class, properties); ds.setDriverClassName(driver); - // if (xa != null) ds.setDelegate(XADataSourceResource.proxy(Thread.currentThread().getContextClassLoader(), xa)); - + if (xa != null) { + ds.setDelegate(XADataSourceResource.proxy(Thread.currentThread().getContextClassLoader(), xa)); + } return ds; } @Override protected void doDestroy(final CommonDataSource dataSource) throws Throwable { - ((org.apache.commons.dbcp.BasicDataSource) dataSource).close(); + ((org.apache.commons.dbcp2.BasicDataSource) dataSource).close(); } @Override @@ -87,8 +85,8 @@ public class DbcpDataSourceCreator extends PoolDataSourceCreator { } private <T> void setDriverLoader(final T object) { - if (org.apache.commons.dbcp.BasicDataSource.class.isInstance(object)) { - final org.apache.commons.dbcp.BasicDataSource basicDataSource = (org.apache.commons.dbcp.BasicDataSource) object; + if (org.apache.commons.dbcp2.BasicDataSource.class.isInstance(object)) { + final org.apache.commons.dbcp2.BasicDataSource basicDataSource = (org.apache.commons.dbcp2.BasicDataSource) object; final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); basicDataSource.setDriverClassLoader(contextClassLoader); } http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpManagedDataSource.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpManagedDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpManagedDataSource.java index 077f5fb..5d6025c 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpManagedDataSource.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/DbcpManagedDataSource.java @@ -17,19 +17,19 @@ package org.apache.openejb.resource.jdbc.dbcp; -import org.apache.commons.dbcp.ConnectionFactory; -import org.apache.commons.dbcp.DataSourceConnectionFactory; -import org.apache.commons.dbcp.managed.DataSourceXAConnectionFactory; -import org.apache.commons.dbcp.managed.LocalXAConnectionFactory; -import org.apache.commons.dbcp.managed.TransactionRegistry; -import org.apache.commons.dbcp.managed.XAConnectionFactory; +import org.apache.commons.dbcp2.ConnectionFactory; +import org.apache.commons.dbcp2.DataSourceConnectionFactory; +import org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory; +import org.apache.commons.dbcp2.managed.LocalXAConnectionFactory; +import org.apache.commons.dbcp2.managed.TransactionRegistry; +import org.apache.commons.dbcp2.managed.XAConnectionFactory; import org.apache.openejb.resource.jdbc.DataSourceHelper; +import java.lang.reflect.Field; +import java.sql.SQLException; import javax.sql.CommonDataSource; import javax.sql.DataSource; import javax.sql.XADataSource; -import java.lang.reflect.Field; -import java.sql.SQLException; public class DbcpManagedDataSource extends BasicManagedDataSource { @@ -58,14 +58,14 @@ public class DbcpManagedDataSource extends BasicManagedDataSource { // Create the XAConectionFactory using the XA data source final XADataSource xaDataSourceInstance = (XADataSource) ds; - final XAConnectionFactory xaConnectionFactory = new DataSourceXAConnectionFactory(getTransactionManager(), xaDataSourceInstance, username, password); + final XAConnectionFactory xaConnectionFactory = new DataSourceXAConnectionFactory(getTransactionManager(), xaDataSourceInstance, getUsername(), getPassword()); setTransactionRegistry(xaConnectionFactory.getTransactionRegistry()); return xaConnectionFactory; } // If xa data source is not specified a DriverConnectionFactory is created and wrapped with a LocalXAConnectionFactory - final ConnectionFactory connectionFactory = new DataSourceConnectionFactory(DataSource.class.cast(ds), username, password); + final ConnectionFactory connectionFactory = new DataSourceConnectionFactory(DataSource.class.cast(ds), getUsername(), getPassword()); final XAConnectionFactory xaConnectionFactory = new LocalXAConnectionFactory(getTransactionManager(), connectionFactory); setTransactionRegistry(xaConnectionFactory.getTransactionRegistry()); return xaConnectionFactory; @@ -73,7 +73,7 @@ public class DbcpManagedDataSource extends BasicManagedDataSource { public void setTransactionRegistry(final TransactionRegistry registry) { try { - final Field field = org.apache.commons.dbcp.managed.BasicManagedDataSource.class.getDeclaredField("transactionRegistry"); + final Field field = org.apache.commons.dbcp2.managed.BasicManagedDataSource.class.getDeclaredField("transactionRegistry"); field.setAccessible(true); field.set(this, registry); } catch (final Throwable e) { http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/JMXBasicDataSource.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/JMXBasicDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/JMXBasicDataSource.java index c8da49b..d0e6e30 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/JMXBasicDataSource.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/JMXBasicDataSource.java @@ -17,7 +17,7 @@ package org.apache.openejb.resource.jdbc.dbcp; -import org.apache.commons.dbcp.BasicDataSource; +import org.apache.commons.dbcp2.BasicDataSource; import org.apache.openejb.api.internal.Internal; import org.apache.openejb.api.jmx.Description; import org.apache.openejb.api.jmx.ManagedAttribute; @@ -26,11 +26,11 @@ import org.apache.openejb.monitoring.DynamicMBeanWrapper; import org.apache.openejb.monitoring.LocalMBeanServer; import org.apache.openejb.monitoring.ObjectNameBuilder; -import javax.management.MBeanServer; -import javax.management.ObjectName; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; +import javax.management.MBeanServer; +import javax.management.ObjectName; // @MBean: don't put it since it is not a pojo @Internal @@ -110,7 +110,7 @@ public class JMXBasicDataSource { @Description("The maximum number of active connections that can be allocated from this pool at the same time," + " or negative for no limit.") public int getMaxActive() { - return ds.getMaxActive(); + return ds.getMaxTotal(); } @ManagedAttribute @@ -158,37 +158,37 @@ public class JMXBasicDataSource { @Description("The maximum number of milliseconds that the pool will wait (when there are no available connections) " + "for a connection to be returned before throwing an exception, or <= 0 to wait indefinitely.") public long getMaxWait() { - return ds.getMaxWait(); + return ds.getMaxWaitMillis(); } @ManagedAttribute @Description("The default auto-commit state of connections created by this pool.") public boolean getDefaultAutoCommit() { - return ds.getDefaultAutoCommit(); + return Boolean.TRUE.equals(ds.getDefaultAutoCommit()); } @ManagedAttribute @Description("Prepared statement pooling for this pool.") public boolean getPoolPreparedStatements() { - return ds.isPoolPreparedStatements(); + return Boolean.TRUE.equals(ds.isPoolPreparedStatements()); } @ManagedAttribute @Description("The indication of whether objects will be validated before being borrowed from the pool.") public boolean getTestOnBorrow() { - return ds.getTestOnBorrow(); + return Boolean.TRUE.equals(ds.getTestOnBorrow()); } @ManagedAttribute @Description("The indication of whether objects will be validated before being returned to the pool.") public boolean getTestOnReturn() { - return ds.getTestOnReturn(); + return Boolean.TRUE.equals(ds.getTestOnReturn()); } @ManagedAttribute @Description("The indication of whether objects will be validated by the idle object evictor (if any).") public boolean getTestWhileIdle() { - return ds.getTestWhileIdle(); + return Boolean.TRUE.equals(ds.getTestWhileIdle()); } @ManagedAttribute @@ -200,7 +200,7 @@ public class JMXBasicDataSource { @ManagedAttribute @Description("The default read-only state of connections created by this pool.") public boolean getDefaultReadOnly() { - return ds.getDefaultReadOnly(); + return Boolean.TRUE.equals(ds.getDefaultReadOnly()); } @ManagedAttribute @@ -303,7 +303,7 @@ public class JMXBasicDataSource { @Description("Set the maximum number of active connections that can be allocated from this pool at the same time," + " or negative for no limit.") public void setMaxActive(final int max) { - ds.setMaxActive(max); + ds.setMaxTotal(max); } @ManagedAttribute @@ -351,7 +351,7 @@ public class JMXBasicDataSource { @Description("Set the maximum number of milliseconds that the pool will wait (when there are no available connections) " + "for a connection to be returned before throwing an exception, or <= 0 to wait indefinitely.") public void setMaxWait(final long max) { - ds.setMaxWait(max); + ds.setMaxWaitMillis(max); } @ManagedAttribute http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java index d531b5b..9f5be66 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/pool/DefaultDataSourceCreator.java @@ -72,11 +72,11 @@ public class DefaultDataSourceCreator extends DbcpDataSourceCreator { @Override public void destroy(final Object object) throws Throwable { - ((org.apache.commons.dbcp.BasicDataSource) object).close(); + ((org.apache.commons.dbcp2.BasicDataSource) object).close(); } @Override protected void doDestroy(final CommonDataSource dataSource) throws Throwable { - ((org.apache.commons.dbcp.BasicDataSource) dataSource).close(); + ((org.apache.commons.dbcp2.BasicDataSource) dataSource).close(); } } http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionGlobalJPATest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionGlobalJPATest.java b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionGlobalJPATest.java index 8159c07..4baec5c 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionGlobalJPATest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionGlobalJPATest.java @@ -16,8 +16,8 @@ */ package org.apache.openejb.assembler.classic; -import org.apache.commons.dbcp.DelegatingConnection; -import org.apache.commons.dbcp.managed.ManagedConnection; +import org.apache.commons.dbcp2.DelegatingConnection; +import org.apache.commons.dbcp2.managed.ManagedConnection; import org.apache.openejb.jee.jpa.unit.Persistence; import org.apache.openejb.junit.ApplicationComposer; import org.apache.openejb.resource.jdbc.dbcp.BasicManagedDataSource; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionJndiTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionJndiTest.java b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionJndiTest.java index c632210..80abc0c 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionJndiTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionJndiTest.java @@ -16,8 +16,8 @@ */ package org.apache.openejb.assembler.classic; -import org.apache.commons.dbcp.DelegatingConnection; -import org.apache.commons.dbcp.managed.ManagedConnection; +import org.apache.commons.dbcp2.DelegatingConnection; +import org.apache.commons.dbcp2.managed.ManagedConnection; import org.apache.openejb.junit.ApplicationComposer; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.resource.jdbc.dbcp.DbcpManagedDataSource; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java index d98b9ba..b010f87 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/DataSourceDefinitionPlaceHolderTest.java @@ -16,7 +16,7 @@ */ package org.apache.openejb.assembler.classic; -import org.apache.commons.dbcp.BasicDataSource; +import org.apache.commons.dbcp2.BasicDataSource; import org.apache.openejb.junit.ApplicationComposer; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.spi.ContainerSystem; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java index cf4f873..967164c 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/OpenEJBXmlByModuleTest.java @@ -16,7 +16,7 @@ */ package org.apache.openejb.assembler.classic; -import org.apache.commons.dbcp.BasicDataSource; +import org.apache.commons.dbcp2.BasicDataSource; import org.apache.openejb.OpenEJB; import org.apache.openejb.OpenEJBException; import org.apache.openejb.config.AppModule; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourcesJsonTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourcesJsonTest.java b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourcesJsonTest.java index eda6287..b8f1865 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourcesJsonTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/ResourcesJsonTest.java @@ -16,7 +16,7 @@ */ package org.apache.openejb.assembler.classic; -import org.apache.commons.dbcp.BasicDataSource; +import org.apache.commons.dbcp2.BasicDataSource; import org.apache.openejb.OpenEJB; import org.apache.openejb.OpenEJBException; import org.apache.openejb.config.AppModule; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/config/JMXDataSourceTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/config/JMXDataSourceTest.java b/container/openejb-core/src/test/java/org/apache/openejb/config/JMXDataSourceTest.java index 67af178..279d3b6 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/config/JMXDataSourceTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/config/JMXDataSourceTest.java @@ -107,7 +107,6 @@ public class JMXDataSourceTest { final MBeanInfo mBeanInfo = ManagementFactory.getPlatformMBeanServer().getMBeanInfo(on); assertNotNull(mBeanInfo); final Map<String, Object> map = new HashMap<String, Object>(); - final int found = 0; for (final MBeanAttributeInfo mBeanAttributeInfo : mBeanInfo.getAttributes()) { final String name = mBeanAttributeInfo.getName(); final Object value = ManagementFactory.getPlatformMBeanServer().getAttribute(on, name); http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/config/JSonConfigTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/config/JSonConfigTest.java b/container/openejb-core/src/test/java/org/apache/openejb/config/JSonConfigTest.java index 104073b..8d84925 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/config/JSonConfigTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/config/JSonConfigTest.java @@ -58,7 +58,7 @@ public class JSonConfigTest { public void checkDsIsHere() throws NamingException { final BasicDataSource ds = BasicDataSource.class.cast(ctx.lookup("openejb:Resource/json-datasource")); assertNotNull(ds); - assertEquals(123, ds.getMaxActive()); + assertEquals(123, ds.getMaxTotal()); assertEquals("jdbc:hsqldb:mem:json", ds.getJdbcUrl()); } @@ -85,7 +85,7 @@ public class JSonConfigTest { assertEquals(1, openejb.getResource().size()); final Resource resource = openejb.getResource().iterator().next(); assertEquals("json-datasource", resource.getId()); - assertTrue("123".equals(resource.getProperties().getProperty("MaxActive"))); + assertTrue("123".equals(resource.getProperties().getProperty("MaxTotal"))); assertTrue("jdbc:hsqldb:mem:json".equals(resource.getProperties().getProperty("JdbcUrl"))); assertEquals(1, openejb.getDeployments().size()); http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java b/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java index ac14373..a9c38a9 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/JpaTest.java @@ -295,7 +295,7 @@ public class JpaTest extends TestCase { ds.setUrl("jdbc:hsqldb:mem:JpaTest"); ds.setUsername("sa"); ds.setPassword(""); - ds.setMaxActive(100); + ds.setMaxTotal(100); ds.setMaxWait(10000); ds.setTestOnBorrow(true); return ds; @@ -307,7 +307,7 @@ public class JpaTest extends TestCase { ds.setUrl("jdbc:hsqldb:mem:JpaTest"); ds.setUsername("sa"); ds.setPassword(""); - ds.setMaxActive(100); + ds.setMaxTotal(100); ds.setMaxWait(10000); ds.setTestOnBorrow(true); return ds; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/UnenhancedTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/UnenhancedTest.java b/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/UnenhancedTest.java index 8e22b7c..a3c3421 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/UnenhancedTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/core/cmp/jpa/UnenhancedTest.java @@ -260,7 +260,7 @@ public class UnenhancedTest extends TestCase { ds.setUrl("jdbc:hsqldb:mem:JpaTest"); ds.setUsername("sa"); ds.setPassword(""); - ds.setMaxActive(100); + ds.setMaxTotal(100); ds.setMaxWait(10000); ds.setTestOnBorrow(true); return ds; @@ -272,7 +272,7 @@ public class UnenhancedTest extends TestCase { ds.setUrl("jdbc:hsqldb:mem:JpaTest"); ds.setUsername("sa"); ds.setPassword(""); - ds.setMaxActive(100); + ds.setMaxTotal(100); ds.setMaxWait(10000); ds.setTestOnBorrow(true); return ds; http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java index 806ef11..b65e789 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java @@ -59,8 +59,8 @@ public class IgnoreDefaultTest { private void check(final String id, final String user, final String password) throws NamingException { final DataSource ds = (DataSource) assembler.getContainerSystem().getJNDIContext().lookup("openejb/Resource/" + id); - assertThat(ds, instanceOf(org.apache.commons.dbcp.BasicDataSource.class)); - assertEquals(user, ((org.apache.commons.dbcp.BasicDataSource) ds).getUsername()); - assertEquals(password, ((org.apache.commons.dbcp.BasicDataSource) ds).getPassword()); + assertThat(ds, instanceOf(org.apache.commons.dbcp2.BasicDataSource.class)); + assertEquals(user, ((org.apache.commons.dbcp2.BasicDataSource) ds).getUsername()); + assertEquals(password, ((org.apache.commons.dbcp2.BasicDataSource) ds).getPassword()); } } http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/JtaFailOverRouterTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/JtaFailOverRouterTest.java b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/JtaFailOverRouterTest.java index eb2ff74..05a1b40 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/JtaFailOverRouterTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/JtaFailOverRouterTest.java @@ -24,17 +24,17 @@ import org.apache.openejb.testng.PropertiesBuilder; import org.junit.Test; import org.junit.runner.RunWith; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.Properties; import javax.annotation.Resource; import javax.ejb.EJB; import javax.ejb.Singleton; import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.SQLException; -import java.util.Properties; import static org.apache.openejb.resource.jdbc.FailOverRouters.datasource; -import static org.apache.openejb.resource.jdbc.FailOverRouters.url; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; import static org.junit.Assert.fail; @RunWith(ApplicationComposer.class) @@ -55,7 +55,9 @@ public class JtaFailOverRouterTest { public Properties configuration() { return datasource(datasource(new PropertiesBuilder(), "fo1"), "fo2") .property("fo1.JtaManaged", "true") + .property("fo1.accessToUnderlyingConnectionAllowed", "true") .property("fo2.JtaManaged", "true") + .property("fo2.accessToUnderlyingConnectionAllowed", "true") .property("router", "new://Resource?class-name=" + FailOverRouter.class.getName()) .property("router.datasourceNames", "fo1,fo2") .property("router.strategy", "reverse") @@ -75,25 +77,17 @@ public class JtaFailOverRouterTest { private DataSource ds; public void inTx(final String url) { - Connection firstConnection = null; + Connection firstConnection; try { - firstConnection = ds.getConnection(); - assertEquals(url, url(firstConnection)); - for (int i = 0; i < 1; i++) { // 4 is kind of random, > 2 is enough - final Connection anotherConnection = ds.getConnection(); - assertEquals(firstConnection, anotherConnection); // in tx so should be the same ds and if the ds is JtaManaged same anotherConnection - assertEquals(url, url(anotherConnection)); + firstConnection = org.apache.commons.dbcp2.managed.ManagedConnection.class.cast(ds.getConnection()).getInnermostDelegate(); + assertEquals(url, firstConnection.getMetaData().getURL()); + for (int i = 0; i < 4; i++) { // 4 is kind of random, > 2 is enough + final Connection anotherConnection = org.apache.commons.dbcp2.managed.ManagedConnection.class.cast(ds.getConnection()).getInnermostDelegate(); + assertSame(firstConnection, anotherConnection); // in tx so should be the same ds and if the ds is JtaManaged same anotherConnection + assertEquals(url, anotherConnection.getMetaData().getURL()); } } catch (final SQLException e) { fail(e.getMessage()); - } finally { - try { - if (firstConnection != null) { - firstConnection.close(); - } - } catch (final Exception e) { - // no-op - } } } } http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java index d01407a..f2e8d24 100644 --- a/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java +++ b/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/XADataSourceTest.java @@ -27,6 +27,7 @@ import org.apache.openejb.resource.jdbc.pool.DataSourceCreator; import org.apache.openejb.testing.Configuration; import org.apache.openejb.testing.Module; import org.hsqldb.jdbc.pool.JDBCXADataSource; +import org.hsqldb.jdbcDriver; import org.junit.Test; import org.junit.runner.RunWith; @@ -59,6 +60,7 @@ public class XADataSourceTest { } catch (final EJBException ejbEx) { assertThat(ejbEx.getCause(), instanceOf(IllegalArgumentException.class)); } + ejb.assertPersisted(); } @Configuration @@ -90,23 +92,22 @@ public class XADataSourceTest { // pooled "XA" datasources p.put("xadb", "new://Resource?type=DataSource"); - p.put("xadb.xaDataSource", "xa");// to be xa + p.put("xadb.XaDataSource", "xa"); // to be xa p.put("xadb.JtaManaged", "true"); p.put("xadb2", "new://Resource?type=DataSource"); - p.put("xadb2.xaDataSource", "xa2");// to be xa + p.put("xadb2.XaDataSource", "xa2"); // to be xa p.put("xadb2.JtaManaged", "true"); // non jta datasources - p.put("xadbn", "new://Resource?type=DataSource"); - p.put("xadbn.JdbcDriver", JDBCXADataSource.class.getName()); - p.put("xadbn.JdbcUrl", "jdbc:hsqldb:mem:xa"); - p.put("xadbn.UserName", "sa"); - p.put("xadbn.Password", ""); - p.put("xadbn.JtaManaged", "false"); + p.put("xadbn", "new://Resource?class-name=" + JDBCXADataSource.class.getName()); + p.put("xadbn.JdbcDriver", jdbcDriver.class.getName()); + p.put("xadbn.url", "jdbc:hsqldb:mem:xa"); + p.put("xadbn.user", "sa"); + p.put("xadbn.password", ""); p.put("xadbn2", "new://Resource?type=DataSource"); - p.put("xadbn2.JdbcDriver", JDBCXADataSource.class.getName()); + p.put("xadbn2.JdbcDriver", jdbcDriver.class.getName()); p.put("xadbn2.JdbcUrl", "jdbc:hsqldb:mem:xa2"); p.put("xadbn2.UserName", "sa"); p.put("xadbn2.Password", ""); http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/container/openejb-core/src/test/resources/openejb.json ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/test/resources/openejb.json b/container/openejb-core/src/test/resources/openejb.json index b44a419..2d30a7c 100644 --- a/container/openejb-core/src/test/resources/openejb.json +++ b/container/openejb-core/src/test/resources/openejb.json @@ -15,7 +15,7 @@ ], "properties": { "JdbcUrl": "jdbc:hsqldb:mem:json", - "MaxActive": 123, + "MaxTotal": 123, "JtaManaged": false } } http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 1b27a8c..b8a1e8c 100644 --- a/pom.xml +++ b/pom.xml @@ -150,8 +150,8 @@ <commons-cli.version>1.2</commons-cli.version> <commons-logging.version>1.1.1</commons-logging.version> <commons-logging-api.version>1.1</commons-logging-api.version> - <commons-dbcp.version>1.4</commons-dbcp.version> - <commons-pool.version>1.5.7</commons-pool.version> + <commons-dbcp.version>2.1</commons-dbcp.version> + <commons-pool.version>2.3</commons-pool.version> <commons-collections.version>3.2.1</commons-collections.version> <commons-codec.version>1.9</commons-codec.version> <commons-fileupload.version>1.3.1</commons-fileupload.version> @@ -1535,24 +1535,19 @@ <artifactId>swizzle-stream</artifactId> <version>1.6.2</version> </dependency> - <!-- <dependency> - <groupId>org.apache.tomee</groupId> - <artifactId>commons-dbcp-all</artifactId> - <version>1.3-r699049</version> - </dependency> --> <dependency> <groupId>axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> </dependency> <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-dbcp2</artifactId> <version>${commons-dbcp.version}</version> </dependency> <dependency> - <groupId>commons-pool</groupId> - <artifactId>commons-pool</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-pool2</artifactId> <version>${commons-pool.version}</version> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/server/openejb-hsql/pom.xml ---------------------------------------------------------------------- diff --git a/server/openejb-hsql/pom.xml b/server/openejb-hsql/pom.xml index 21a4420..23b40d4 100644 --- a/server/openejb-hsql/pom.xml +++ b/server/openejb-hsql/pom.xml @@ -52,13 +52,13 @@ <artifactId>hsqldb</artifactId> </dependency> <dependency> - <groupId>commons-dbcp</groupId> - <artifactId>commons-dbcp</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-dbcp2</artifactId> <scope>provided</scope> </dependency> <dependency> - <groupId>commons-pool</groupId> - <artifactId>commons-pool</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-pool2</artifactId> <scope>provided</scope> </dependency> </dependencies> http://git-wip-us.apache.org/repos/asf/tomee/blob/9beea693/server/openejb-server/pom.xml ---------------------------------------------------------------------- diff --git a/server/openejb-server/pom.xml b/server/openejb-server/pom.xml index 272a221..0608707 100644 --- a/server/openejb-server/pom.xml +++ b/server/openejb-server/pom.xml @@ -212,8 +212,8 @@ org.apache.activemq.store.memory;version="[5.8,6.0)";resolution:=optional, org.apache.commons.beanutils, org.apache.commons.cli;version="[1.2,2)", - org.apache.commons.dbcp;version="[1.4,2)", - org.apache.commons.dbcp.managed;version="[1.4,2)", + org.apache.commons.dbcp2;version="[2,3)", + org.apache.commons.dbcp2.managed;version="[2,3)", org.apache.commons.lang;version="[2.6,2.9)", org.apache.commons.lang3;version="[3.1,4)", org.apache.geronimo.connector;version="[3.0,4)",
