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,