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 2015/08/03 16:57:49 UTC

tomee git commit: TOMEE-1620 dbcp2 (so pool 2)

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 <rm...@apache.org>
Authored: Mon Aug 3 16:57:28 2015 +0200
Committer: Romain Manni-Bucau <rm...@apache.org>
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)",