This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git


The following commit(s) were added to refs/heads/master by this push:
     new 1c1b28f  Migrate away from deprecated Apache Commons Pool APIs.
1c1b28f is described below

commit 1c1b28fc9f03377bccbe3a812c0b3b242f741ec3
Author: Gary Gregory <gardgreg...@gmail.com>
AuthorDate: Wed Aug 18 16:57:44 2021 -0400

    Migrate away from deprecated Apache Commons Pool APIs.
---
 src/main/java/org/apache/commons/dbcp2/BasicDataSource.java      | 2 +-
 .../java/org/apache/commons/dbcp2/PoolableConnectionFactory.java | 3 ++-
 .../org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java  | 4 ++--
 .../apache/commons/dbcp2/datasources/SharedPoolDataSource.java   | 2 +-
 .../commons/dbcp2/managed/PoolableManagedConnectionFactory.java  | 3 ++-
 src/test/java/org/apache/commons/dbcp2/TestConnectionPool.java   | 9 +++++++--
 .../java/org/apache/commons/dbcp2/TestPoolingDataSource.java     | 6 +++---
 .../org/apache/commons/dbcp2/managed/TestManagedConnection.java  | 3 ++-
 .../org/apache/commons/dbcp2/managed/TestManagedDataSource.java  | 2 +-
 .../commons/dbcp2/managed/TestPoolableManagedConnection.java     | 3 ++-
 .../apache/commons/dbcp2/managed/TestSynchronizationOrder.java   | 5 +++--
 11 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java 
b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
index 2f9d687..d6c829b 100644
--- a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
@@ -1253,7 +1253,7 @@ public class BasicDataSource implements DataSource, 
BasicDataSourceMXBean, MBean
      */
     @Override
     public int getRemoveAbandonedTimeout() {
-        return abandonedConfig == null ? 300 : 
abandonedConfig.getRemoveAbandonedTimeout();
+        return abandonedConfig == null ? 300 : (int) 
abandonedConfig.getRemoveAbandonedTimeoutDuration().getSeconds();
     }
 
     /**
diff --git 
a/src/main/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java 
b/src/main/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
index ac8f8ff..67fe961 100644
--- a/src/main/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
+++ b/src/main/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
@@ -20,6 +20,7 @@ package org.apache.commons.dbcp2;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.time.Duration;
 import java.util.Collection;
 import java.util.Objects;
 import java.util.concurrent.atomic.AtomicLong;
@@ -391,7 +392,7 @@ public class PoolableConnectionFactory implements 
PooledObjectFactory<PoolableCo
             final GenericKeyedObjectPoolConfig<DelegatingPreparedStatement> 
config = new GenericKeyedObjectPoolConfig<>();
             config.setMaxTotalPerKey(-1);
             config.setBlockWhenExhausted(false);
-            config.setMaxWaitMillis(0);
+            config.setMaxWait(Duration.ZERO);
             config.setMaxIdlePerKey(1);
             config.setMaxTotal(maxOpenPreparedStatements);
             if (dataSourceJmxObjectName != null) {
diff --git 
a/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java 
b/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
index f54d6f7..433e0fe 100644
--- a/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
+++ b/src/main/java/org/apache/commons/dbcp2/cpdsadapter/DriverAdapterCPDS.java
@@ -116,7 +116,7 @@ public class DriverAdapterCPDS implements 
ConnectionPoolDataSource, Referenceabl
     private int maxIdle = 10;
     private Duration durationBetweenEvictionRuns = 
BaseObjectPoolConfig.DEFAULT_TIME_BETWEEN_EVICTION_RUNS;
     private int numTestsPerEvictionRun = -1;
-    private Duration minEvictableIdleDuration = 
BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME;
+    private Duration minEvictableIdleDuration = 
BaseObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_DURATION;
 
     private int maxPreparedStatements = -1;
 
@@ -413,7 +413,7 @@ public class DriverAdapterCPDS implements 
ConnectionPoolDataSource, Referenceabl
             final GenericKeyedObjectPoolConfig<DelegatingPreparedStatement> 
config = new GenericKeyedObjectPoolConfig<>();
             config.setMaxTotalPerKey(Integer.MAX_VALUE);
             config.setBlockWhenExhausted(false);
-            config.setMaxWaitMillis(0);
+            config.setMaxWait(Duration.ZERO);
             config.setMaxIdlePerKey(getMaxIdle());
             if (getMaxPreparedStatements() <= 0) {
                 // Since there is no limit, create a prepared statement pool 
with an eviction thread;
diff --git 
a/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java 
b/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
index 771e955..a59f829 100644
--- 
a/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
+++ 
b/src/main/java/org/apache/commons/dbcp2/datasources/SharedPoolDataSource.java
@@ -179,7 +179,7 @@ public class SharedPoolDataSource extends 
InstanceKeyDataSource {
         config.setMaxIdlePerKey(getDefaultMaxIdle());
         config.setMaxTotal(getMaxTotal());
         config.setMaxTotalPerKey(getDefaultMaxTotal());
-        config.setMaxWaitMillis(getDefaultMaxWait().toMillis());
+        config.setMaxWait(getDefaultMaxWait());
         
config.setMinEvictableIdleTimeMillis(getDefaultMinEvictableIdleTimeMillis());
         config.setMinIdlePerKey(getDefaultMinIdle());
         config.setNumTestsPerEvictionRun(getDefaultNumTestsPerEvictionRun());
diff --git 
a/src/main/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
 
b/src/main/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
index f353e1c..49d2648 100644
--- 
a/src/main/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
+++ 
b/src/main/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
@@ -18,6 +18,7 @@
 package org.apache.commons.dbcp2.managed;
 
 import java.sql.Connection;
+import java.time.Duration;
 
 import javax.management.ObjectName;
 
@@ -82,7 +83,7 @@ public class PoolableManagedConnectionFactory extends 
PoolableConnectionFactory
             final GenericKeyedObjectPoolConfig<DelegatingPreparedStatement> 
config = new GenericKeyedObjectPoolConfig<>();
             config.setMaxTotalPerKey(-1);
             config.setBlockWhenExhausted(false);
-            config.setMaxWaitMillis(0);
+            config.setMaxWait(Duration.ZERO);
             config.setMaxIdlePerKey(1);
             config.setMaxTotal(getMaxOpenPreparedStatements());
             final ObjectName dataSourceJmxName = getDataSourceJmxName();
diff --git a/src/test/java/org/apache/commons/dbcp2/TestConnectionPool.java 
b/src/test/java/org/apache/commons/dbcp2/TestConnectionPool.java
index e8e454a..b0e20a2 100644
--- a/src/test/java/org/apache/commons/dbcp2/TestConnectionPool.java
+++ b/src/test/java/org/apache/commons/dbcp2/TestConnectionPool.java
@@ -33,6 +33,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
+import java.time.Duration;
 import java.util.Hashtable;
 import java.util.Random;
 import java.util.Stack;
@@ -51,6 +52,8 @@ import org.junit.jupiter.api.Test;
  */
 public abstract class TestConnectionPool {
 
+    private static final Duration MAX_WAIT_DURATION = Duration.ofMillis(100);
+
     protected class PoolTest implements Runnable {
         /**
          * The number of milliseconds to hold onto a database connection
@@ -275,8 +278,6 @@ public abstract class TestConnectionPool {
         }
     }
 
-    // ----------- tests ---------------------------------
-
     protected abstract Connection getConnection() throws Exception;
 
     protected int getMaxTotal() {
@@ -287,6 +288,10 @@ public abstract class TestConnectionPool {
         return 100L;
     }
 
+    protected Duration getMaxWaitDuration() {
+        return MAX_WAIT_DURATION;
+    }
+
     protected String getUsername(final Connection conn) throws SQLException {
         final Statement stmt = conn.createStatement();
         final ResultSet rs = stmt.executeQuery("select username");
diff --git a/src/test/java/org/apache/commons/dbcp2/TestPoolingDataSource.java 
b/src/test/java/org/apache/commons/dbcp2/TestPoolingDataSource.java
index 1f50074..208f190 100644
--- a/src/test/java/org/apache/commons/dbcp2/TestPoolingDataSource.java
+++ b/src/test/java/org/apache/commons/dbcp2/TestPoolingDataSource.java
@@ -64,7 +64,7 @@ public class TestPoolingDataSource extends TestConnectionPool 
{
         pool = new GenericObjectPool<>(factory);
         factory.setPool(pool);
         pool.setMaxTotal(getMaxTotal());
-        pool.setMaxWaitMillis(getMaxWaitMillis());
+        pool.setMaxWait(getMaxWaitDuration());
         ds = new PoolingDataSource<>(pool);
         ds.setAccessToUnderlyingConnectionAllowed(true);
     }
@@ -92,7 +92,7 @@ public class TestPoolingDataSource extends TestConnectionPool 
{
         f.setDefaultAutoCommit(Boolean.TRUE);
         final GenericObjectPool<PoolableConnection> p = new 
GenericObjectPool<>(f);
         p.setMaxTotal(getMaxTotal());
-        p.setMaxWaitMillis(getMaxWaitMillis());
+        p.setMaxWait(getMaxWaitDuration());
 
         try ( PoolingDataSource<PoolableConnection> dataSource = new 
PoolingDataSource<>(p) ) {
             final Connection connection = dataSource.getConnection();
@@ -125,7 +125,7 @@ public class TestPoolingDataSource extends 
TestConnectionPool {
         f.setDefaultAutoCommit(Boolean.TRUE);
         final GenericObjectPool<PoolableConnection> p = new 
GenericObjectPool<>(f);
         p.setMaxTotal(getMaxTotal());
-        p.setMaxWaitMillis(getMaxWaitMillis());
+        p.setMaxWait(getMaxWaitDuration());
         ds = new PoolingDataSource<>(p);
         assertEquals(f.getPool(), p);
         ds.getConnection();
diff --git 
a/src/test/java/org/apache/commons/dbcp2/managed/TestManagedConnection.java 
b/src/test/java/org/apache/commons/dbcp2/managed/TestManagedConnection.java
index 8805a49..c74beea 100644
--- a/src/test/java/org/apache/commons/dbcp2/managed/TestManagedConnection.java
+++ b/src/test/java/org/apache/commons/dbcp2/managed/TestManagedConnection.java
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import java.lang.reflect.Field;
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.time.Duration;
 import java.util.Properties;
 
 import javax.transaction.HeuristicMixedException;
@@ -179,7 +180,7 @@ public class TestManagedConnection {
         pool = new GenericObjectPool<>(factory);
         factory.setPool(pool);
         pool.setMaxTotal(10);
-        pool.setMaxWaitMillis(100);
+        pool.setMaxWait(Duration.ofMillis(100));
 
         // finally create the datasource
         ds = new ManagedDataSource<>(pool, 
xaConnectionFactory.getTransactionRegistry());
diff --git 
a/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java 
b/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java
index e709fa0..aaf11d7 100644
--- a/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java
+++ b/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java
@@ -85,7 +85,7 @@ public class TestManagedDataSource extends TestConnectionPool 
{
         pool = new GenericObjectPool<>(factory);
         factory.setPool(pool);
         pool.setMaxTotal(getMaxTotal());
-        pool.setMaxWaitMillis(getMaxWaitMillis());
+        pool.setMaxWait(getMaxWaitDuration());
 
         // finally create the datasource
         ds = new ManagedDataSource<>(pool, 
xaConnectionFactory.getTransactionRegistry());
diff --git 
a/src/test/java/org/apache/commons/dbcp2/managed/TestPoolableManagedConnection.java
 
b/src/test/java/org/apache/commons/dbcp2/managed/TestPoolableManagedConnection.java
index 7c1d94b..5779279 100644
--- 
a/src/test/java/org/apache/commons/dbcp2/managed/TestPoolableManagedConnection.java
+++ 
b/src/test/java/org/apache/commons/dbcp2/managed/TestPoolableManagedConnection.java
@@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.time.Duration;
 import java.util.Properties;
 
 import javax.transaction.TransactionManager;
@@ -79,7 +80,7 @@ public class TestPoolableManagedConnection {
         pool = new GenericObjectPool<>(factory);
         factory.setPool(pool);
         pool.setMaxTotal(10);
-        pool.setMaxWaitMillis(100);
+        pool.setMaxWait(Duration.ofMillis(100));
     }
 
     @AfterEach
diff --git 
a/src/test/java/org/apache/commons/dbcp2/managed/TestSynchronizationOrder.java 
b/src/test/java/org/apache/commons/dbcp2/managed/TestSynchronizationOrder.java
index 876fcce..c45f69a 100644
--- 
a/src/test/java/org/apache/commons/dbcp2/managed/TestSynchronizationOrder.java
+++ 
b/src/test/java/org/apache/commons/dbcp2/managed/TestSynchronizationOrder.java
@@ -26,6 +26,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.time.Duration;
 import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -175,7 +176,7 @@ public class TestSynchronizationOrder {
         try (final GenericObjectPool<PoolableConnection> pool = new 
GenericObjectPool<>(factory)) {
             factory.setPool(pool);
             pool.setMaxTotal(10);
-            pool.setMaxWaitMillis(1000);
+            pool.setMaxWait(Duration.ofSeconds(1));
 
             // finally create the datasource
             try (final ManagedDataSource<PoolableConnection> ds = new 
ManagedDataSource<>(pool,
@@ -207,7 +208,7 @@ public class TestSynchronizationOrder {
         try (final GenericObjectPool<PoolableConnection> pool = new 
GenericObjectPool<>(factory)) {
             factory.setPool(pool);
             pool.setMaxTotal(10);
-            pool.setMaxWaitMillis(1000);
+            pool.setMaxWait(Duration.ofSeconds(1));
 
             // finally create the datasource
             try (final ManagedDataSource<PoolableConnection> ds = new 
ManagedDataSource<>(pool,

Reply via email to