You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/07/17 03:16:22 UTC

[commons-pool] branch master updated: Major version bump from 2 to 3

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-pool.git


The following commit(s) were added to refs/heads/master by this push:
     new 9b426c53 Major version bump from 2 to 3
9b426c53 is described below

commit 9b426c5355e33f9b740aa12777d936abae53aa84
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Jul 16 23:16:10 2023 -0400

    Major version bump from 2 to 3
---
 README.md                                          |  4 +-
 RELEASE-NOTES.txt                                  | 12 ++--
 doc/ReaderUtil.java                                |  2 +-
 doc/ReaderUtilClient.java                          |  2 +-
 doc/StringBufferFactory.java                       |  6 +-
 pom.xml                                            | 10 ++--
 src/changes/changes.xml                            | 14 +++--
 src/conf/findbugs-exclude-filter.xml               | 64 +++++++++++-----------
 .../BaseKeyedPooledObjectFactory.java              |  2 +-
 .../commons/{pool2 => pool3}/BaseObject.java       |  2 +-
 .../commons/{pool2 => pool3}/BaseObjectPool.java   |  2 +-
 .../{pool2 => pool3}/BasePooledObjectFactory.java  |  2 +-
 .../commons/{pool2 => pool3}/DestroyMode.java      |  2 +-
 .../commons/{pool2 => pool3}/KeyedObjectPool.java  |  6 +-
 .../{pool2 => pool3}/KeyedPooledObjectFactory.java |  2 +-
 .../commons/{pool2 => pool3}/ObjectPool.java       |  2 +-
 .../apache/commons/{pool2 => pool3}/PoolUtils.java |  2 +-
 .../commons/{pool2 => pool3}/PooledObject.java     |  2 +-
 .../{pool2 => pool3}/PooledObjectFactory.java      |  2 +-
 .../{pool2 => pool3}/PooledObjectState.java        |  2 +-
 .../SwallowedExceptionListener.java                |  2 +-
 .../commons/{pool2 => pool3}/TrackedUse.java       |  2 +-
 .../commons/{pool2 => pool3}/UsageTracking.java    |  2 +-
 .../{pool2 => pool3}/impl/AbandonedConfig.java     |  6 +-
 .../impl/BaseGenericObjectPool.java                | 10 ++--
 .../impl/BaseObjectPoolConfig.java                 |  4 +-
 .../commons/{pool2 => pool3}/impl/CallStack.java   |  6 +-
 .../{pool2 => pool3}/impl/CallStackUtils.java      |  2 +-
 .../impl/DefaultEvictionPolicy.java                |  4 +-
 .../{pool2 => pool3}/impl/DefaultPooledObject.java |  8 +--
 .../impl/DefaultPooledObjectInfo.java              |  4 +-
 .../impl/DefaultPooledObjectInfoMBean.java         |  2 +-
 .../{pool2 => pool3}/impl/EvictionConfig.java      |  2 +-
 .../{pool2 => pool3}/impl/EvictionPolicy.java      |  4 +-
 .../{pool2 => pool3}/impl/EvictionTimer.java       |  2 +-
 .../impl/GenericKeyedObjectPool.java               | 20 +++----
 .../impl/GenericKeyedObjectPoolConfig.java         |  2 +-
 .../impl/GenericKeyedObjectPoolMXBean.java         |  2 +-
 .../{pool2 => pool3}/impl/GenericObjectPool.java   | 22 ++++----
 .../impl/GenericObjectPoolConfig.java              |  2 +-
 .../impl/GenericObjectPoolMXBean.java              |  2 +-
 .../impl/InterruptibleReentrantLock.java           |  2 +-
 .../{pool2 => pool3}/impl/LinkedBlockingDeque.java |  2 +-
 .../{pool2 => pool3}/impl/NoOpCallStack.java       |  2 +-
 .../{pool2 => pool3}/impl/PoolImplUtils.java       |  6 +-
 .../{pool2 => pool3}/impl/PooledSoftReference.java |  2 +-
 .../impl/SecurityManagerCallStack.java             |  2 +-
 .../impl/SoftReferenceObjectPool.java              | 26 ++++-----
 .../{pool2 => pool3}/impl/ThrowableCallStack.java  |  2 +-
 .../{pool2 => pool3}/impl/package-info.java        | 14 ++---
 .../apache/commons/{pool2 => pool3}/overview.html  | 14 ++---
 .../commons/{pool2 => pool3}/package-info.java     | 10 ++--
 .../{pool2 => pool3}/proxy/BaseProxyHandler.java   |  4 +-
 .../{pool2 => pool3}/proxy/CglibProxyHandler.java  |  4 +-
 .../{pool2 => pool3}/proxy/CglibProxySource.java   |  4 +-
 .../{pool2 => pool3}/proxy/JdkProxyHandler.java    |  4 +-
 .../{pool2 => pool3}/proxy/JdkProxySource.java     |  4 +-
 .../proxy/ProxiedKeyedObjectPool.java              |  6 +-
 .../{pool2 => pool3}/proxy/ProxiedObjectPool.java  |  6 +-
 .../{pool2 => pool3}/proxy/ProxySource.java        |  4 +-
 .../{pool2 => pool3}/proxy/package-info.java       |  4 +-
 src/site/site.xml                                  |  1 +
 src/site/xdoc/examples.xml                         |  8 +--
 src/site/xdoc/index.xml                            |  7 ++-
 .../AbstractTestKeyedObjectPool.java               |  6 +-
 .../{pool2 => pool3}/AbstractTestObjectPool.java   |  6 +-
 .../commons/{pool2 => pool3}/MethodCall.java       |  2 +-
 .../MethodCallPoolableObjectFactory.java           |  4 +-
 .../{pool2 => pool3}/ObjectPoolIssue326.java       | 12 ++--
 .../apache/commons/{pool2 => pool3}/PoolTest.java  |  8 +--
 .../commons/{pool2 => pool3}/PrivateException.java |  2 +-
 .../TestBaseKeyedPooledObjectFactory.java          |  4 +-
 .../{pool2 => pool3}/TestBaseObjectPool.java       |  2 +-
 .../TestBasePoolableObjectFactory.java             |  4 +-
 .../commons/{pool2 => pool3}/TestException.java    |  2 +-
 .../commons/{pool2 => pool3}/TestPoolUtils.java    | 10 ++--
 .../commons/{pool2 => pool3}/TestTrackedUse.java   |  2 +-
 .../commons/{pool2 => pool3}/VisitTracker.java     |  2 +-
 .../{pool2 => pool3}/VisitTrackerFactory.java      |  4 +-
 .../apache/commons/{pool2 => pool3}/Waiter.java    |  2 +-
 .../commons/{pool2 => pool3}/WaiterFactory.java    |  4 +-
 .../impl/AtomicIntegerFactory.java                 |  8 +--
 .../{pool2 => pool3}/impl/CallStackTest.java       |  2 +-
 .../impl/DisconnectingWaiterFactory.java           |  8 +--
 .../{pool2 => pool3}/impl/NoOpCallStackTest.java   |  2 +-
 .../impl/TestAbandonedKeyedObjectPool.java         | 12 ++--
 .../impl/TestAbandonedObjectPool.java              | 14 ++---
 .../impl/TestBaseGenericObjectPool.java            | 10 ++--
 .../{pool2 => pool3}/impl/TestConstants.java       |  2 +-
 .../impl/TestDefaultPooledObject.java              |  4 +-
 .../impl/TestDefaultPooledObjectInfo.java          |  6 +-
 .../{pool2 => pool3}/impl/TestEvictionConfig.java  |  2 +-
 .../{pool2 => pool3}/impl/TestEvictionTimer.java   |  6 +-
 .../impl/TestGenericKeyedObjectPool.java           | 26 ++++-----
 .../impl/TestGenericObjectPool.java                | 28 +++++-----
 .../impl/TestGenericObjectPoolClassLoaders.java    |  8 +--
 .../TestGenericObjectPoolFactoryCreateFailure.java |  8 +--
 .../impl/TestLinkedBlockingDeque.java              |  2 +-
 .../{pool2 => pool3}/impl/TestPoolImplUtils.java   |  6 +-
 .../impl/TestPooledSoftReference.java              |  2 +-
 .../impl/TestSoftRefOutOfMemory.java               |  7 +--
 .../impl/TestSoftReferenceObjectPool.java          | 12 ++--
 .../impl/TestSynchronizedPooledObjectFactory.java  |  6 +-
 .../performance/PerformanceTest.java               |  4 +-
 .../performance/SleepingObjectFactory.java         | 10 ++--
 .../pool407/AbstractKeyedPool407Factory.java       |  6 +-
 .../pool407/AbstractPool407Factory.java            |  6 +-
 .../pool407/AbstractPool407Test.java               |  4 +-
 .../{pool2 => pool3}/pool407/KeyedPool407.java     |  8 +--
 .../pool407/KeyedPool407Config.java                |  4 +-
 .../pool407/KeyedPool407Fixture.java               |  2 +-
 .../pool407/KeyedPool407NormalFactory.java         |  6 +-
 .../pool407/KeyedPool407NullObjectFactory.java     |  6 +-
 .../KeyedPool407NullPoolableObjectFactory.java     |  4 +-
 .../{pool2 => pool3}/pool407/KeyedPool407Test.java |  4 +-
 .../commons/{pool2 => pool3}/pool407/Pool407.java  |  6 +-
 .../{pool2 => pool3}/pool407/Pool407Config.java    |  4 +-
 .../{pool2 => pool3}/pool407/Pool407Constants.java |  4 +-
 .../{pool2 => pool3}/pool407/Pool407Fixture.java   |  2 +-
 .../pool407/Pool407NormalFactory.java              |  6 +-
 .../pool407/Pool407NullObjectFactory.java          |  6 +-
 .../pool407/Pool407NullPoolableObjectFactory.java  |  4 +-
 .../{pool2 => pool3}/pool407/Pool407Test.java      |  4 +-
 .../proxy/AbstractTestProxiedKeyedObjectPool.java  | 18 +++---
 .../proxy/AbstractTestProxiedObjectPool.java       | 18 +++---
 .../TestProxiedKeyedObjectPoolWithCglibProxy.java  |  2 +-
 .../TestProxiedKeyedObjectPoolWithJdkProxy.java    |  2 +-
 .../proxy/TestProxiedObjectPoolWithCglibProxy.java |  2 +-
 .../proxy/TestProxiedObjectPoolWithJdkProxy.java   |  2 +-
 129 files changed, 397 insertions(+), 394 deletions(-)

diff --git a/README.md b/README.md
index f07fdc8a..9ba93cab 100644
--- a/README.md
+++ b/README.md
@@ -68,8 +68,8 @@ Alternatively, you can pull it from  the central Maven repositories:
 ```xml
 <dependency>
   <groupId>org.apache.commons</groupId>
-  <artifactId>commons-pool2</artifactId>
-  <version>2.12.0</version>
+  <artifactId>commons-pool3</artifactId>
+  <version>3.0.0</version>
 </dependency>
 ```
 
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 29f9dc6a..76d2e7e9 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -429,7 +429,7 @@ o POOL-379:  Deprecate PoolUtils.prefill(KeyedObjectPool, K, int) in favor of Ke
 o POOL-380:  Deprecate PoolUtils.prefill(KeyedObjectPool, Collection, int) in favor of KeyedObjectPool.addObjects(Collection, int). Thanks to Gary Gregory.
 
 Fixed Bugs:
-o POOL-374:  org.apache.commons.pool2.impl.GenericKeyedObjectPool.returnObject(K, T) should throw IllegalStateException instead of NullPointerException when a key is not found in the pool map. Thanks to Gary Gregory, Phil Steitz.
+o POOL-374:  org.apache.commons.pool3.impl.GenericKeyedObjectPool.returnObject(K, T) should throw IllegalStateException instead of NullPointerException when a key is not found in the pool map. Thanks to Gary Gregory, Phil Steitz.
 o POOL-376:  Fixed regression from original fix for POOL-356 which could result in NPE when destroying objects. Thanks to Sazzadul Hoque, Phil Steitz.
 o POOL-326:  Eliminated NPE / ISE exceptions due to keyed pools being prematurely removed. Thanks to Phil Steitz.
 o            Close BufferedOutputStream in test before calling toString on underlying BufferedOutputStream #26. Thanks to emopers.
@@ -476,8 +476,8 @@ This is a feature release (Java 8).
 Changes in version 2.7.0 include:
 
 New features:
-o POOL-370:  Add org.apache.commons.pool2.PooledObject#getBorrowedCount(). Thanks to Mark Thomas, Gary Gregory.
-o POOL-371:  Add org.apache.commons.pool2.PooledObject#setRequireFullStackTrace(boolean). Thanks to Matt Sicker, Gary Gregory.
+o POOL-370:  Add org.apache.commons.pool3.PooledObject#getBorrowedCount(). Thanks to Mark Thomas, Gary Gregory.
+o POOL-371:  Add org.apache.commons.pool3.PooledObject#setRequireFullStackTrace(boolean). Thanks to Matt Sicker, Gary Gregory.
 
 Fixed Bugs:
 o POOL-361:  Move validation for newly created objects into create(). Fixes #23. Thanks to Pablo, Phil Steitz, Bruno P. Kinoshita.
@@ -523,7 +523,7 @@ This is a maintenance release.
 Changes in version 2.6.2 include:
 
 Fixed Bugs:
-o POOL-362:  Always null out org.apache.commons.pool2.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool2.impl.BaseGenericObjectPool.evictor.
+o POOL-362:  Always null out org.apache.commons.pool3.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool3.impl.BaseGenericObjectPool.evictor.
 o POOL-363:  Evictor Thread prevents Spring Context shutdown in standalone app. Thanks to Josh Landin.
 o POOL-348:  The commons-pool-evictor-thread should run as a Deamon. Thanks to Josh Landin.
 
@@ -616,7 +616,7 @@ Changes in version 2.6.0 include:
 Fixed Bugs:
 o POOL-337:  Ensure cancelled eviction tasks are removed from scheduler. Thanks to Reinald Verheij.
 o POOL-338:  GenericObjectPool constructor may throw an exception under OSGi. Thanks to Michael C, Gary Gregory.
-o POOL-324:  org.apache.commons.pool2.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException. Thanks to Jay Xu, Gary Gregory.
+o POOL-324:  org.apache.commons.pool3.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException. Thanks to Jay Xu, Gary Gregory.
 o POOL-344:  Delete repeated call startEvictor. Thanks to Yulin Wang.
 
 Changes:
@@ -672,7 +672,7 @@ o POOL-335:  Make abandoned logging stack trace requirements configurable. This
 Changes:
 o POOL-331:  Update from Java 6 to 7.
 o POOL-333:  Update optional dependency asm-util from 5.2 to 6.0.
-o POOL-334:  org.apache.commons.pool2.impl.ThrowableCallStack.Snapshot is missing serialVersionUID.
+o POOL-334:  org.apache.commons.pool3.impl.ThrowableCallStack.Snapshot is missing serialVersionUID.
 
 
 For complete information on Apache Commons Pool, including instructions on how to submit bug reports,
diff --git a/doc/ReaderUtil.java b/doc/ReaderUtil.java
index 0720b900..e993b12b 100644
--- a/doc/ReaderUtil.java
+++ b/doc/ReaderUtil.java
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.io.Reader;
 
-import org.apache.commons.pool2.ObjectPool;
+import org.apache.commons.pool3.ObjectPool;
 
 /**
  * Maintains a pool of StringBuffers used to dump contents of Readers.
diff --git a/doc/ReaderUtilClient.java b/doc/ReaderUtilClient.java
index c6039e70..5334b59c 100644
--- a/doc/ReaderUtilClient.java
+++ b/doc/ReaderUtilClient.java
@@ -25,7 +25,7 @@ import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
 
-import org.apache.commons.pool2.impl.GenericObjectPool;
+import org.apache.commons.pool3.impl.GenericObjectPool;
 
 /**
  * Instantiates and uses a ReaderUtil. The GenericObjectPool supplied to the constructor will have
diff --git a/doc/StringBufferFactory.java b/doc/StringBufferFactory.java
index 5bcb62f4..e70f991c 100644
--- a/doc/StringBufferFactory.java
+++ b/doc/StringBufferFactory.java
@@ -21,9 +21,9 @@
  * It is not intended to be included in a source release.
  */
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Example PooledObjectFactory for pooled StringBuffers.
diff --git a/pom.xml b/pom.xml
index c77bc54d..a0216d34 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,8 +27,8 @@
     <version>58</version>
   </parent>
 
-  <artifactId>commons-pool2</artifactId>
-  <version>2.12.0-SNAPSHOT</version>
+  <artifactId>commons-pool3</artifactId>
+  <version>3.0.0-SNAPSHOT</version>
   <name>Apache Commons Pool</name>
 
   <inceptionYear>2001</inceptionYear>
@@ -185,10 +185,10 @@
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
     <commons.componentid>pool</commons.componentid>
-    <commons.module.name>org.apache.commons.pool2</commons.module.name>
+    <commons.module.name>org.apache.commons.pool3</commons.module.name>
     <commons.rc.version>RC1</commons.rc.version>
     <!-- Java 8 -->
-    <commons.release.version>2.12.0</commons.release.version>
+    <commons.release.version>3.0.0</commons.release.version>
     <commons.release.desc>(Java 8)</commons.release.desc>
     <!-- Java 7 -->
     <commons.release.2.version>2.6.2</commons.release.2.version>
@@ -205,7 +205,7 @@
     <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName>    
     <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey>
     
-    <japicmp.skip>false</japicmp.skip>
+    <japicmp.skip>true</japicmp.skip>
     <spotbugs.skip>false</spotbugs.skip>
   </properties> 
 
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 14ed56aa..c97d4741 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -45,7 +45,9 @@ The <action> type attribute can be add,update,fix,remove.
     <title>Apache Commons Pool Release Notes</title>
   </properties>
   <body>
-  <release version="2.12.0" date="2023-06-24" description="This is a feature and maintenance release (Java 8).">
+  <release version="3.0.0" date="2023-MM-DD" description="This is a feature and maintenance release (Java 8).">
+  </release> 
+  <release version="2.12.0" date="2023-MM-DD" description="This is a feature and maintenance release (Java 8).">
     <!-- FIX -->
     <action dev="psteitz" type="fix" issue="POOL-401">
       Ensure that capacity freed by invalidateObject is available to all keyed pools.
@@ -472,10 +474,10 @@ The <action> type attribute can be add,update,fix,remove.
       Move validation for newly created objects into create(). Fixes #23.
     </action>
     <action dev="ggregory" type="add" issue="POOL-370" due-to="Mark Thomas, Gary Gregory">
-      Add org.apache.commons.pool2.PooledObject#getBorrowedCount().
+      Add org.apache.commons.pool3.PooledObject#getBorrowedCount().
     </action>
     <action dev="ggregory" type="add" issue="POOL-371" due-to="Matt Sicker, Gary Gregory">
-      Add org.apache.commons.pool2.PooledObject#setRequireFullStackTrace(boolean).
+      Add org.apache.commons.pool3.PooledObject#setRequireFullStackTrace(boolean).
     </action>
     <action dev="ggregory" type="fix" issue="POOL-352" due-to=" Volker Kleinschmidt">
       CallStackUtils mishandles security manager check part 1.
@@ -483,7 +485,7 @@ The <action> type attribute can be add,update,fix,remove.
   </release>
   <release version="2.6.2" date="2019-03-05" description="This is a maintenance release (Java 7).">
     <action dev="ggregory" issue="POOL-362" type="fix">
-       Always null out org.apache.commons.pool2.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool2.impl.BaseGenericObjectPool.evictor.
+       Always null out org.apache.commons.pool3.impl.BaseGenericObjectPool.evictionIterator to match org.apache.commons.pool3.impl.BaseGenericObjectPool.evictor.
     </action>
     <action dev="ggregory" issue="POOL-363" type="fix" due-to="Josh Landin">
        Evictor Thread prevents Spring Context shutdown in standalone app.
@@ -544,7 +546,7 @@ The <action> type attribute can be add,update,fix,remove.
       GenericObjectPool constructor may throw an exception under OSGi.
     </action>
     <action dev="ggregory" issue="POOL-324" type="fix" due-to="Jay Xu, Gary Gregory">
-      org.apache.commons.pool2.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException.
+      org.apache.commons.pool3.impl.GenericObjectPool.getFactoryType() throws java.lang.ClassCastException.
     </action>
     <action dev="ggregory" issue="POOL-344" type="fix" due-to="Yulin Wang">
       Delete repeated call startEvictor.
@@ -564,7 +566,7 @@ The <action> type attribute can be add,update,fix,remove.
       Update optional dependency asm-util from 5.2 to 6.0.
     </action>
     <action dev="ggregory" issue="POOL-334" type="update">
-      org.apache.commons.pool2.impl.ThrowableCallStack.Snapshot is missing serialVersionUID.
+      org.apache.commons.pool3.impl.ThrowableCallStack.Snapshot is missing serialVersionUID.
     </action>
     <action dev="mattsicker" issue="POOL-335" type="add">
       Make abandoned logging stack trace requirements configurable. This also reverts
diff --git a/src/conf/findbugs-exclude-filter.xml b/src/conf/findbugs-exclude-filter.xml
index 40e75c3f..b11af19e 100644
--- a/src/conf/findbugs-exclude-filter.xml
+++ b/src/conf/findbugs-exclude-filter.xml
@@ -28,14 +28,14 @@
 
   <Match>
     <!-- Class implements the generics based interface and does so correctly -->
-    <Class name="org.apache.commons.pool2.PooledObject" />
+    <Class name="org.apache.commons.pool3.PooledObject" />
     <Bug pattern="CO_ABSTRACT_SELF" />
   </Match>
   <Match>
     <!-- Swallowing exception is deliberate design choice -->
     <Or>
-      <Class name="org.apache.commons.pool2.PoolUtils$ErodingObjectPool" />
-      <Class name="org.apache.commons.pool2.PoolUtils$ErodingKeyedObjectPool" />
+      <Class name="org.apache.commons.pool3.PoolUtils$ErodingObjectPool" />
+      <Class name="org.apache.commons.pool3.PoolUtils$ErodingKeyedObjectPool" />
     </Or>
     <Or>
       <Method name="invalidateObject" />
@@ -45,39 +45,39 @@
   </Match>
   <Match>
     <!-- Exception is thrown and need to be caught -->
-    <Class name="org.apache.commons.pool2.PoolUtils$KeyedObjectPoolMinIdleTimerTask" />
+    <Class name="org.apache.commons.pool3.PoolUtils$KeyedObjectPoolMinIdleTimerTask" />
     <Method name="run" />
     <Bug code="REC" />
   </Match>
   <Match>
     <!-- compareTo() method carries the appropriate warning -->
-    <Class name="org.apache.commons.pool2.impl.DefaultPooledObject" />
+    <Class name="org.apache.commons.pool3.impl.DefaultPooledObject" />
     <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS " />
   </Match>
   <Match>
     <!-- Update is inside sync block. Volatile is to ensure other threads    -->
     <!-- can read new value.                                                 -->
-    <Class name="org.apache.commons.pool2.impl.DefaultPooledObject" />
+    <Class name="org.apache.commons.pool3.impl.DefaultPooledObject" />
     <Method name="allocate" />
     <Bug pattern="VO_VOLATILE_INCREMENT" />
   </Match>
   <Match>
     <!-- Ignoring the exception is deliberate since an earlier exception is  -->
     <!-- more important.                                                     -->
-    <Class name="org.apache.commons.pool2.impl.GenericKeyedObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.GenericKeyedObjectPool" />
     <Method name="borrowObject" />
     <Bug code="DE" />
   </Match>
   <Match>
     <!-- Ignoring the exception is deliberate since an earlier exception is  -->
     <!-- more important.                                                     -->
-    <Class name="org.apache.commons.pool2.impl.GenericObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.GenericObjectPool" />
     <Method name="borrowObject" />
     <Bug code="DE" />
   </Match>
   <Match>
     <!-- TODO, Is this a real issue? -->
-    <Class name="org.apache.commons.pool2.impl.SoftReferenceObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.SoftReferenceObjectPool" />
     <Or>
       <Field name="createCount" />
       <Field name="numActive" />
@@ -89,9 +89,9 @@
   <Match>
     <!-- Generating a new object is a deliberate choice -->
     <Or>
-      <Class name="org.apache.commons.pool2.MethodCallPoolableObjectFactory" />
-      <Class name="org.apache.commons.pool2.TestKeyedObjectPool$FailingKeyedPooledObjectFactory" />
-      <Class name="org.apache.commons.pool2.performance.SleepingObjectFactory" />
+      <Class name="org.apache.commons.pool3.MethodCallPoolableObjectFactory" />
+      <Class name="org.apache.commons.pool3.TestKeyedObjectPool$FailingKeyedPooledObjectFactory" />
+      <Class name="org.apache.commons.pool3.performance.SleepingObjectFactory" />
     </Or>
     <Method name="makeObject" />
     <Bug pattern="DM_NUMBER_CTOR" />
@@ -99,24 +99,24 @@
   <Match>
     <!-- Generating a new object is a deliberate choice -->
     <Or>
-      <Class name="org.apache.commons.pool2.AbstractTestKeyedObjectPool" />
-      <Class name="org.apache.commons.pool2.AbstractTestObjectPool" />
+      <Class name="org.apache.commons.pool3.AbstractTestKeyedObjectPool" />
+      <Class name="org.apache.commons.pool3.AbstractTestObjectPool" />
     </Or>
     <Bug pattern="DM_NUMBER_CTOR" />
   </Match>
   <Match>
     <!-- Use of no-arg constructor is intentional -->
-    <Class name="org.apache.commons.pool2.TestPoolUtils" />
+    <Class name="org.apache.commons.pool3.TestPoolUtils" />
     <Method name="testJavaBeanInstantiation" />
     <Bug pattern="ISC_INSTANTIATE_STATIC_CLASS" />
   </Match>
   <Match>
     <!-- Exceptions are deliberately ignored -->
     <Or>
-      <Class name="org.apache.commons.pool2.impl.TestAbandonedObjectPool$ConcurrentBorrower" />
-      <Class name="org.apache.commons.pool2.impl.TestAbandonedObjectPool$ConcurrentReturner" />
-      <Class name="org.apache.commons.pool2.impl.TestGenericKeyedObjectPool$SimpleTestThread" />
-      <Class name="org.apache.commons.pool2.impl.TestGenericObjectPool$EvictionThread" />
+      <Class name="org.apache.commons.pool3.impl.TestAbandonedObjectPool$ConcurrentBorrower" />
+      <Class name="org.apache.commons.pool3.impl.TestAbandonedObjectPool$ConcurrentReturner" />
+      <Class name="org.apache.commons.pool3.impl.TestGenericKeyedObjectPool$SimpleTestThread" />
+      <Class name="org.apache.commons.pool3.impl.TestGenericObjectPool$EvictionThread" />
     </Or>
     <Method name="run" />
     <Bug pattern="DE_MIGHT_IGNORE" />
@@ -124,79 +124,79 @@
   <Match>
     <!-- Using equals is deliberate. The objects are being tested to see if  -->
     <!-- they are the same object                                            -->
-    <Class name="org.apache.commons.pool2.impl.TestGenericKeyedObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.TestGenericKeyedObjectPool" />
     <Method name="testMaxTotalLRU" />
     <Bug pattern="ES_COMPARING_STRINGS_WITH_EQ" />
   </Match>
   <Match>
     <!-- Exception is ignored as earlier exception is more important -->
-    <Class name="org.apache.commons.pool2.impl.TestGenericObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.TestGenericObjectPool" />
     <Method name="testMaxTotalUnderLoad" />
     <Bug pattern="DE_MIGHT_IGNORE" />
   </Match>
   <Match>
     <!-- Direct use of GC is deliberate and necessary -->
-    <Class name="org.apache.commons.pool2.impl.TestSoftRefOutOfMemory" />
+    <Class name="org.apache.commons.pool3.impl.TestSoftRefOutOfMemory" />
     <Method name="tearDown" />
     <Bug pattern="DM_GC" />
   </Match>
   <Match>
     <!-- Use of new String() is deliberate -->
-    <Class name="org.apache.commons.pool2.impl.TestSoftRefOutOfMemory$OomeFactory" />
+    <Class name="org.apache.commons.pool3.impl.TestSoftRefOutOfMemory$OomeFactory" />
     <Method name="create" />
     <Bug pattern="DM_STRING_VOID_CTOR" />
   </Match>
   <Match>
     <!-- Use of new String() is deliberate -->
-    <Class name="org.apache.commons.pool2.impl.TestSoftRefOutOfMemory$SmallPoolableObjectFactory" />
+    <Class name="org.apache.commons.pool3.impl.TestSoftRefOutOfMemory$SmallPoolableObjectFactory" />
     <Method name="create" />
     <Bug pattern="DM_STRING_CTOR" />
   </Match>
   <Match>
     <!-- Increment (only write) is in synchronized method, unprotected read in getter is OK -->
-    <Class name="org.apache.commons.pool2.impl.DefaultPooledObject" />
+    <Class name="org.apache.commons.pool3.impl.DefaultPooledObject" />
     <Method name="allocate" />
     <Bug pattern="VO_VOLATILE_INCREMENT" />
   </Match>
   <Match>
     <!-- Only used internally in hashmap to compare keys known to be of the same type -->
-    <Class name="org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper" />
+    <Class name="org.apache.commons.pool3.impl.BaseGenericObjectPool$IdentityWrapper" />
     <Method name="equals" />
     <Bug pattern="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS" />
   </Match>
   <Match>
     <!-- Only used internally in hashmap to compare keys that can't be null -->
-    <Class name="org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper" />
+    <Class name="org.apache.commons.pool3.impl.BaseGenericObjectPool$IdentityWrapper" />
     <Method name="equals" />
     <Bug pattern="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT" />
   </Match>
   <Match>
     <!-- Code needs to use get to ensure latest queue is retrieved -->
-    <Class name="org.apache.commons.pool2.impl.GenericKeyedObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.GenericKeyedObjectPool" />
     <Method name="clearOldest" />
     <Bug pattern="WMI_WRONG_MAP_ITERATOR" />
   </Match>
   <Match>
     <!-- Code needs to use get to ensure latest queue is retrieved -->
-    <Class name="org.apache.commons.pool2.impl.GenericKeyedObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.GenericKeyedObjectPool" />
     <Method name="getNumWaitersByKey" />
     <Bug pattern="WMI_WRONG_MAP_ITERATOR" />
   </Match>
   <Match>
     <!-- Code needs to use get to ensure latest queue is retrieved -->
-    <Class name="org.apache.commons.pool2.impl.GenericKeyedObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.GenericKeyedObjectPool" />
     <Method name="hasBorrowWaiters" />
     <Bug pattern="WMI_WRONG_MAP_ITERATOR" />
   </Match>
   <Match>
     <!-- Code needs to use get to ensure latest queue is retrieved -->
-    <Class name="org.apache.commons.pool2.impl.GenericKeyedObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.GenericKeyedObjectPool" />
     <Method name="listAllObjects" />
     <Bug pattern="WMI_WRONG_MAP_ITERATOR" />
   </Match>
   <Match>
     <!-- Code needs to use get to ensure latest queue is retrieved -->
-    <Class name="org.apache.commons.pool2.impl.GenericKeyedObjectPool" />
+    <Class name="org.apache.commons.pool3.impl.GenericKeyedObjectPool" />
     <Method name="reuseCapacity" />
     <Bug pattern="WMI_WRONG_MAP_ITERATOR" />
   </Match>
diff --git a/src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/BaseKeyedPooledObjectFactory.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java
rename to src/main/java/org/apache/commons/pool3/BaseKeyedPooledObjectFactory.java
index 7c65822a..e64e9375 100644
--- a/src/main/java/org/apache/commons/pool2/BaseKeyedPooledObjectFactory.java
+++ b/src/main/java/org/apache/commons/pool3/BaseKeyedPooledObjectFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.util.Objects;
 
diff --git a/src/main/java/org/apache/commons/pool2/BaseObject.java b/src/main/java/org/apache/commons/pool3/BaseObject.java
similarity index 97%
rename from src/main/java/org/apache/commons/pool2/BaseObject.java
rename to src/main/java/org/apache/commons/pool3/BaseObject.java
index cc7f3761..f040f460 100644
--- a/src/main/java/org/apache/commons/pool2/BaseObject.java
+++ b/src/main/java/org/apache/commons/pool3/BaseObject.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * A base class for common functionality.
diff --git a/src/main/java/org/apache/commons/pool2/BaseObjectPool.java b/src/main/java/org/apache/commons/pool3/BaseObjectPool.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/BaseObjectPool.java
rename to src/main/java/org/apache/commons/pool3/BaseObjectPool.java
index 62b94d4b..70a684ff 100644
--- a/src/main/java/org/apache/commons/pool2/BaseObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/BaseObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * A simple base implementation of {@link ObjectPool}.
diff --git a/src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/BasePooledObjectFactory.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java
rename to src/main/java/org/apache/commons/pool3/BasePooledObjectFactory.java
index 56f21337..52b699c7 100644
--- a/src/main/java/org/apache/commons/pool2/BasePooledObjectFactory.java
+++ b/src/main/java/org/apache/commons/pool3/BasePooledObjectFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.util.Objects;
 
diff --git a/src/main/java/org/apache/commons/pool2/DestroyMode.java b/src/main/java/org/apache/commons/pool3/DestroyMode.java
similarity index 97%
rename from src/main/java/org/apache/commons/pool2/DestroyMode.java
rename to src/main/java/org/apache/commons/pool3/DestroyMode.java
index ec5b1b07..4c7a4fc4 100644
--- a/src/main/java/org/apache/commons/pool2/DestroyMode.java
+++ b/src/main/java/org/apache/commons/pool3/DestroyMode.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * Destroy context provided to object factories via {@code destroyObject} and {@code invalidateObject} methods. Values
diff --git a/src/main/java/org/apache/commons/pool2/KeyedObjectPool.java b/src/main/java/org/apache/commons/pool3/KeyedObjectPool.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/KeyedObjectPool.java
rename to src/main/java/org/apache/commons/pool3/KeyedObjectPool.java
index 88a4fbc9..ab2be2bc 100644
--- a/src/main/java/org/apache/commons/pool2/KeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/KeyedObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.io.Closeable;
 import java.util.Collection;
@@ -55,7 +55,7 @@ import java.util.NoSuchElementException;
  * {@link ObjectPool pools}).
  * </p>
  * <p>
- * See {@link org.apache.commons.pool2.impl.GenericKeyedObjectPool
+ * See {@link org.apache.commons.pool3.impl.GenericKeyedObjectPool
  * GenericKeyedObjectPool} for an implementation.
  * </p>
  *
@@ -65,7 +65,7 @@ import java.util.NoSuchElementException;
  *
  * @see KeyedPooledObjectFactory
  * @see ObjectPool
- * @see org.apache.commons.pool2.impl.GenericKeyedObjectPool GenericKeyedObjectPool
+ * @see org.apache.commons.pool3.impl.GenericKeyedObjectPool GenericKeyedObjectPool
  *
  * @since 2.0
  */
diff --git a/src/main/java/org/apache/commons/pool2/KeyedPooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/KeyedPooledObjectFactory.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/KeyedPooledObjectFactory.java
rename to src/main/java/org/apache/commons/pool3/KeyedPooledObjectFactory.java
index 60afa0aa..a06cdd60 100644
--- a/src/main/java/org/apache/commons/pool2/KeyedPooledObjectFactory.java
+++ b/src/main/java/org/apache/commons/pool3/KeyedPooledObjectFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * An interface defining life-cycle methods for
diff --git a/src/main/java/org/apache/commons/pool2/ObjectPool.java b/src/main/java/org/apache/commons/pool3/ObjectPool.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/ObjectPool.java
rename to src/main/java/org/apache/commons/pool3/ObjectPool.java
index 04f8e11d..50dfb1ea 100644
--- a/src/main/java/org/apache/commons/pool2/ObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/ObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.io.Closeable;
 import java.util.NoSuchElementException;
diff --git a/src/main/java/org/apache/commons/pool2/PoolUtils.java b/src/main/java/org/apache/commons/pool3/PoolUtils.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/PoolUtils.java
rename to src/main/java/org/apache/commons/pool3/PoolUtils.java
index 9c350c31..14d2f5b0 100644
--- a/src/main/java/org/apache/commons/pool2/PoolUtils.java
+++ b/src/main/java/org/apache/commons/pool3/PoolUtils.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/src/main/java/org/apache/commons/pool2/PooledObject.java b/src/main/java/org/apache/commons/pool3/PooledObject.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/PooledObject.java
rename to src/main/java/org/apache/commons/pool3/PooledObject.java
index dc76b46e..396c8d3b 100644
--- a/src/main/java/org/apache/commons/pool2/PooledObject.java
+++ b/src/main/java/org/apache/commons/pool3/PooledObject.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.io.PrintWriter;
 import java.time.Duration;
diff --git a/src/main/java/org/apache/commons/pool2/PooledObjectFactory.java b/src/main/java/org/apache/commons/pool3/PooledObjectFactory.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/PooledObjectFactory.java
rename to src/main/java/org/apache/commons/pool3/PooledObjectFactory.java
index c9c97837..3742b07c 100644
--- a/src/main/java/org/apache/commons/pool2/PooledObjectFactory.java
+++ b/src/main/java/org/apache/commons/pool3/PooledObjectFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * An interface defining life-cycle methods for instances to be served by an
diff --git a/src/main/java/org/apache/commons/pool2/PooledObjectState.java b/src/main/java/org/apache/commons/pool3/PooledObjectState.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/PooledObjectState.java
rename to src/main/java/org/apache/commons/pool3/PooledObjectState.java
index f09dbb8a..cd65ed73 100644
--- a/src/main/java/org/apache/commons/pool2/PooledObjectState.java
+++ b/src/main/java/org/apache/commons/pool3/PooledObjectState.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * Provides all possible states of a {@link PooledObject}.
diff --git a/src/main/java/org/apache/commons/pool2/SwallowedExceptionListener.java b/src/main/java/org/apache/commons/pool3/SwallowedExceptionListener.java
similarity index 97%
rename from src/main/java/org/apache/commons/pool2/SwallowedExceptionListener.java
rename to src/main/java/org/apache/commons/pool3/SwallowedExceptionListener.java
index 69df3967..eed1543d 100644
--- a/src/main/java/org/apache/commons/pool2/SwallowedExceptionListener.java
+++ b/src/main/java/org/apache/commons/pool3/SwallowedExceptionListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * Pools that unavoidably swallow exceptions may be configured with an instance
diff --git a/src/main/java/org/apache/commons/pool2/TrackedUse.java b/src/main/java/org/apache/commons/pool3/TrackedUse.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/TrackedUse.java
rename to src/main/java/org/apache/commons/pool3/TrackedUse.java
index 0e7806a5..4406ac80 100644
--- a/src/main/java/org/apache/commons/pool2/TrackedUse.java
+++ b/src/main/java/org/apache/commons/pool3/TrackedUse.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.time.Instant;
 
diff --git a/src/main/java/org/apache/commons/pool2/UsageTracking.java b/src/main/java/org/apache/commons/pool3/UsageTracking.java
similarity index 97%
rename from src/main/java/org/apache/commons/pool2/UsageTracking.java
rename to src/main/java/org/apache/commons/pool3/UsageTracking.java
index 48bdb2f5..9543da49 100644
--- a/src/main/java/org/apache/commons/pool2/UsageTracking.java
+++ b/src/main/java/org/apache/commons/pool3/UsageTracking.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * This interface may be implemented by an object pool to enable clients (primarily those clients that wrap pools to
diff --git a/src/main/java/org/apache/commons/pool2/impl/AbandonedConfig.java b/src/main/java/org/apache/commons/pool3/impl/AbandonedConfig.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/AbandonedConfig.java
rename to src/main/java/org/apache/commons/pool3/impl/AbandonedConfig.java
index 5b86a151..fe66e2ea 100644
--- a/src/main/java/org/apache/commons/pool2/impl/AbandonedConfig.java
+++ b/src/main/java/org/apache/commons/pool3/impl/AbandonedConfig.java
@@ -14,15 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.nio.charset.Charset;
 import java.time.Duration;
 
-import org.apache.commons.pool2.TrackedUse;
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.TrackedUse;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * Configuration settings for abandoned object removal.
diff --git a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java b/src/main/java/org/apache/commons/pool3/impl/BaseGenericObjectPool.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
rename to src/main/java/org/apache/commons/pool3/impl/BaseGenericObjectPool.java
index 604245e6..8c23256f 100644
--- a/src/main/java/org/apache/commons/pool2/impl/BaseGenericObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/impl/BaseGenericObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -44,10 +44,10 @@ import javax.management.MalformedObjectNameException;
 import javax.management.NotCompliantMBeanException;
 import javax.management.ObjectName;
 
-import org.apache.commons.pool2.BaseObject;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectState;
-import org.apache.commons.pool2.SwallowedExceptionListener;
+import org.apache.commons.pool3.BaseObject;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectState;
+import org.apache.commons.pool3.SwallowedExceptionListener;
 
 /**
  * Base class that provides common functionality for {@link GenericObjectPool}
diff --git a/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java b/src/main/java/org/apache/commons/pool3/impl/BaseObjectPoolConfig.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
rename to src/main/java/org/apache/commons/pool3/impl/BaseObjectPoolConfig.java
index 08110548..fa20d503 100644
--- a/src/main/java/org/apache/commons/pool2/impl/BaseObjectPoolConfig.java
+++ b/src/main/java/org/apache/commons/pool3/impl/BaseObjectPoolConfig.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.BaseObject;
+import org.apache.commons.pool3.BaseObject;
 
 /**
  * Provides the implementation for the common attributes shared by the
diff --git a/src/main/java/org/apache/commons/pool2/impl/CallStack.java b/src/main/java/org/apache/commons/pool3/impl/CallStack.java
similarity index 94%
rename from src/main/java/org/apache/commons/pool2/impl/CallStack.java
rename to src/main/java/org/apache/commons/pool3/impl/CallStack.java
index 9db0452a..5c036443 100644
--- a/src/main/java/org/apache/commons/pool2/impl/CallStack.java
+++ b/src/main/java/org/apache/commons/pool3/impl/CallStack.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.PrintWriter;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * Strategy for obtaining and printing the current call stack. This is primarily useful for
diff --git a/src/main/java/org/apache/commons/pool2/impl/CallStackUtils.java b/src/main/java/org/apache/commons/pool3/impl/CallStackUtils.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/CallStackUtils.java
rename to src/main/java/org/apache/commons/pool3/impl/CallStackUtils.java
index 1fdcad23..9ef39cf9 100644
--- a/src/main/java/org/apache/commons/pool2/impl/CallStackUtils.java
+++ b/src/main/java/org/apache/commons/pool3/impl/CallStackUtils.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.security.AccessControlException;
 
diff --git a/src/main/java/org/apache/commons/pool2/impl/DefaultEvictionPolicy.java b/src/main/java/org/apache/commons/pool3/impl/DefaultEvictionPolicy.java
similarity index 96%
rename from src/main/java/org/apache/commons/pool2/impl/DefaultEvictionPolicy.java
rename to src/main/java/org/apache/commons/pool3/impl/DefaultEvictionPolicy.java
index 06a2eb8d..fa016a25 100644
--- a/src/main/java/org/apache/commons/pool2/impl/DefaultEvictionPolicy.java
+++ b/src/main/java/org/apache/commons/pool3/impl/DefaultEvictionPolicy.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * Provides the default implementation of {@link EvictionPolicy} used by the pools.
diff --git a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObject.java b/src/main/java/org/apache/commons/pool3/impl/DefaultPooledObject.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/DefaultPooledObject.java
rename to src/main/java/org/apache/commons/pool3/impl/DefaultPooledObject.java
index 93ae2be4..4323d8f0 100644
--- a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObject.java
+++ b/src/main/java/org/apache/commons/pool3/impl/DefaultPooledObject.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.PrintWriter;
 import java.time.Clock;
@@ -22,9 +22,9 @@ import java.time.Duration;
 import java.time.Instant;
 import java.util.Deque;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectState;
-import org.apache.commons.pool2.TrackedUse;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectState;
+import org.apache.commons.pool3.TrackedUse;
 
 /**
  * This wrapper is used to track the additional information, such as state, for
diff --git a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java b/src/main/java/org/apache/commons/pool3/impl/DefaultPooledObjectInfo.java
similarity index 97%
rename from src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
rename to src/main/java/org/apache/commons/pool3/impl/DefaultPooledObjectInfo.java
index 9caf1399..bc478e63 100644
--- a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfo.java
+++ b/src/main/java/org/apache/commons/pool3/impl/DefaultPooledObjectInfo.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.text.SimpleDateFormat;
 import java.util.Objects;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * Implementation of object that is used to provide information on pooled
diff --git a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfoMBean.java b/src/main/java/org/apache/commons/pool3/impl/DefaultPooledObjectInfoMBean.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfoMBean.java
rename to src/main/java/org/apache/commons/pool3/impl/DefaultPooledObjectInfoMBean.java
index 33ce08a7..1a1813f6 100644
--- a/src/main/java/org/apache/commons/pool2/impl/DefaultPooledObjectInfoMBean.java
+++ b/src/main/java/org/apache/commons/pool3/impl/DefaultPooledObjectInfoMBean.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 /**
  * The interface that defines the information about pooled objects that will be
diff --git a/src/main/java/org/apache/commons/pool2/impl/EvictionConfig.java b/src/main/java/org/apache/commons/pool3/impl/EvictionConfig.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/EvictionConfig.java
rename to src/main/java/org/apache/commons/pool3/impl/EvictionConfig.java
index a54868e5..1bfe7b01 100644
--- a/src/main/java/org/apache/commons/pool2/impl/EvictionConfig.java
+++ b/src/main/java/org/apache/commons/pool3/impl/EvictionConfig.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.time.Duration;
 
diff --git a/src/main/java/org/apache/commons/pool2/impl/EvictionPolicy.java b/src/main/java/org/apache/commons/pool3/impl/EvictionPolicy.java
similarity index 95%
rename from src/main/java/org/apache/commons/pool2/impl/EvictionPolicy.java
rename to src/main/java/org/apache/commons/pool3/impl/EvictionPolicy.java
index ee14f58f..4fc284ff 100644
--- a/src/main/java/org/apache/commons/pool2/impl/EvictionPolicy.java
+++ b/src/main/java/org/apache/commons/pool3/impl/EvictionPolicy.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * To provide a custom eviction policy (i.e. something other than {@link
diff --git a/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java b/src/main/java/org/apache/commons/pool3/impl/EvictionTimer.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java
rename to src/main/java/org/apache/commons/pool3/impl/EvictionTimer.java
index 6f5c57a9..d45c366b 100644
--- a/src/main/java/org/apache/commons/pool2/impl/EvictionTimer.java
+++ b/src/main/java/org/apache/commons/pool3/impl/EvictionTimer.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.lang.ref.WeakReference;
 import java.security.AccessController;
diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java b/src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPool.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
rename to src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPool.java
index ce2177ae..3b0688fb 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.time.Duration;
 import java.time.Instant;
@@ -38,14 +38,14 @@ import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.stream.Collectors;
 
-import org.apache.commons.pool2.DestroyMode;
-import org.apache.commons.pool2.KeyedObjectPool;
-import org.apache.commons.pool2.KeyedPooledObjectFactory;
-import org.apache.commons.pool2.PoolUtils;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectState;
-import org.apache.commons.pool2.SwallowedExceptionListener;
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.DestroyMode;
+import org.apache.commons.pool3.KeyedObjectPool;
+import org.apache.commons.pool3.KeyedPooledObjectFactory;
+import org.apache.commons.pool3.PoolUtils;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectState;
+import org.apache.commons.pool3.SwallowedExceptionListener;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * A configurable {@code KeyedObjectPool} implementation.
@@ -193,7 +193,7 @@ public class GenericKeyedObjectPool<K, T, E extends Exception> extends BaseGener
 
     // JMX specific attributes
     private static final String ONAME_BASE =
-            "org.apache.commons.pool2:type=GenericKeyedObjectPool,name=";
+            "org.apache.commons.pool3:type=GenericKeyedObjectPool,name=";
 
     private volatile int maxIdlePerKey =
             GenericKeyedObjectPoolConfig.DEFAULT_MAX_IDLE_PER_KEY;
diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java b/src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPoolConfig.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java
rename to src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPoolConfig.java
index e9a7a29e..e5953f48 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolConfig.java
+++ b/src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPoolConfig.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 /**
  * A simple structure encapsulating the configuration for a
diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.java b/src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPoolMXBean.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.java
rename to src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPoolMXBean.java
index 884a42ba..7b25ab3f 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericKeyedObjectPoolMXBean.java
+++ b/src/main/java/org/apache/commons/pool3/impl/GenericKeyedObjectPoolMXBean.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.util.List;
 import java.util.Map;
diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPool.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
rename to src/main/java/org/apache/commons/pool3/impl/GenericObjectPool.java
index d0057f40..46426684 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.time.Duration;
 import java.time.Instant;
@@ -25,15 +25,15 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 
-import org.apache.commons.pool2.DestroyMode;
-import org.apache.commons.pool2.ObjectPool;
-import org.apache.commons.pool2.PoolUtils;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectFactory;
-import org.apache.commons.pool2.PooledObjectState;
-import org.apache.commons.pool2.SwallowedExceptionListener;
-import org.apache.commons.pool2.TrackedUse;
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.DestroyMode;
+import org.apache.commons.pool3.ObjectPool;
+import org.apache.commons.pool3.PoolUtils;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectFactory;
+import org.apache.commons.pool3.PooledObjectState;
+import org.apache.commons.pool3.SwallowedExceptionListener;
+import org.apache.commons.pool3.TrackedUse;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * A configurable {@link ObjectPool} implementation.
@@ -85,7 +85,7 @@ public class GenericObjectPool<T, E extends Exception> extends BaseGenericObject
 
     // JMX specific attributes
     private static final String ONAME_BASE =
-        "org.apache.commons.pool2:type=GenericObjectPool,name=";
+        "org.apache.commons.pool3:type=GenericObjectPool,name=";
 
     private static void wait(final Object obj, final Duration duration) throws InterruptedException {
         obj.wait(duration.toMillis(), duration.getNano() % 1_000_000);
diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolConfig.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java
rename to src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolConfig.java
index 8bdd7f32..30c85a31 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPoolConfig.java
+++ b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolConfig.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 /**
  * A simple structure encapsulating the configuration for a
diff --git a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPoolMXBean.java b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolMXBean.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/GenericObjectPoolMXBean.java
rename to src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolMXBean.java
index 5f6d73a0..0ecd293d 100644
--- a/src/main/java/org/apache/commons/pool2/impl/GenericObjectPoolMXBean.java
+++ b/src/main/java/org/apache/commons/pool3/impl/GenericObjectPoolMXBean.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.util.Set;
 
diff --git a/src/main/java/org/apache/commons/pool2/impl/InterruptibleReentrantLock.java b/src/main/java/org/apache/commons/pool3/impl/InterruptibleReentrantLock.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/InterruptibleReentrantLock.java
rename to src/main/java/org/apache/commons/pool3/impl/InterruptibleReentrantLock.java
index fae6230e..4231805e 100644
--- a/src/main/java/org/apache/commons/pool2/impl/InterruptibleReentrantLock.java
+++ b/src/main/java/org/apache/commons/pool3/impl/InterruptibleReentrantLock.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
diff --git a/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java b/src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java
rename to src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java
index 15a3912a..3b1de2ed 100644
--- a/src/main/java/org/apache/commons/pool2/impl/LinkedBlockingDeque.java
+++ b/src/main/java/org/apache/commons/pool3/impl/LinkedBlockingDeque.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
diff --git a/src/main/java/org/apache/commons/pool2/impl/NoOpCallStack.java b/src/main/java/org/apache/commons/pool3/impl/NoOpCallStack.java
similarity index 97%
rename from src/main/java/org/apache/commons/pool2/impl/NoOpCallStack.java
rename to src/main/java/org/apache/commons/pool3/impl/NoOpCallStack.java
index 6cf4bd75..f72e91c2 100644
--- a/src/main/java/org/apache/commons/pool2/impl/NoOpCallStack.java
+++ b/src/main/java/org/apache/commons/pool3/impl/NoOpCallStack.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.PrintWriter;
 
diff --git a/src/main/java/org/apache/commons/pool2/impl/PoolImplUtils.java b/src/main/java/org/apache/commons/pool3/impl/PoolImplUtils.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/PoolImplUtils.java
rename to src/main/java/org/apache/commons/pool3/impl/PoolImplUtils.java
index 412c8f22..0ee19dd4 100644
--- a/src/main/java/org/apache/commons/pool2/impl/PoolImplUtils.java
+++ b/src/main/java/org/apache/commons/pool3/impl/PoolImplUtils.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
@@ -25,7 +25,7 @@ import java.time.temporal.ChronoUnit;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.pool2.PooledObjectFactory;
+import org.apache.commons.pool3.PooledObjectFactory;
 
 /**
  * Implementation specific utilities.
@@ -46,7 +46,7 @@ class PoolImplUtils {
         final Class<PooledObjectFactory> type = PooledObjectFactory.class;
         final Object genericType = getGenericType(type, factoryClass);
         if (genericType instanceof Integer) {
-            // POOL-324 org.apache.commons.pool2.impl.GenericObjectPool.getFactoryType() throws
+            // POOL-324 org.apache.commons.pool3.impl.GenericObjectPool.getFactoryType() throws
             // java.lang.ClassCastException
             //
             // A bit hackish, but we must handle cases when getGenericType() does not return a concrete types.
diff --git a/src/main/java/org/apache/commons/pool2/impl/PooledSoftReference.java b/src/main/java/org/apache/commons/pool3/impl/PooledSoftReference.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/PooledSoftReference.java
rename to src/main/java/org/apache/commons/pool3/impl/PooledSoftReference.java
index be10346c..b71005b4 100644
--- a/src/main/java/org/apache/commons/pool2/impl/PooledSoftReference.java
+++ b/src/main/java/org/apache/commons/pool3/impl/PooledSoftReference.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.lang.ref.SoftReference;
 
diff --git a/src/main/java/org/apache/commons/pool2/impl/SecurityManagerCallStack.java b/src/main/java/org/apache/commons/pool3/impl/SecurityManagerCallStack.java
similarity index 99%
rename from src/main/java/org/apache/commons/pool2/impl/SecurityManagerCallStack.java
rename to src/main/java/org/apache/commons/pool3/impl/SecurityManagerCallStack.java
index 1276e1d7..7c4af9a9 100644
--- a/src/main/java/org/apache/commons/pool2/impl/SecurityManagerCallStack.java
+++ b/src/main/java/org/apache/commons/pool3/impl/SecurityManagerCallStack.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.PrintWriter;
 import java.lang.ref.WeakReference;
diff --git a/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java b/src/main/java/org/apache/commons/pool3/impl/SoftReferenceObjectPool.java
similarity index 95%
rename from src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
rename to src/main/java/org/apache/commons/pool3/impl/SoftReferenceObjectPool.java
index d3b1a55f..5cf8e65b 100644
--- a/src/main/java/org/apache/commons/pool2/impl/SoftReferenceObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/impl/SoftReferenceObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.lang.ref.Reference;
 import java.lang.ref.ReferenceQueue;
@@ -25,10 +25,10 @@ import java.util.NoSuchElementException;
 import java.util.Objects;
 import java.util.Optional;
 
-import org.apache.commons.pool2.BaseObjectPool;
-import org.apache.commons.pool2.ObjectPool;
-import org.apache.commons.pool2.PoolUtils;
-import org.apache.commons.pool2.PooledObjectFactory;
+import org.apache.commons.pool3.BaseObjectPool;
+import org.apache.commons.pool3.ObjectPool;
+import org.apache.commons.pool3.PoolUtils;
+import org.apache.commons.pool3.PooledObjectFactory;
 
 /**
  * A {@link java.lang.ref.SoftReference SoftReference} based {@link ObjectPool}.
@@ -86,12 +86,12 @@ public class SoftReferenceObjectPool<T, E extends Exception> extends BaseObjectP
      * <p>
      * Before being added to the pool, the newly created instance is
      * {@link PooledObjectFactory#validateObject(
-     * org.apache.commons.pool2.PooledObject) validated} and
+     * org.apache.commons.pool3.PooledObject) validated} and
      * {@link PooledObjectFactory#passivateObject(
-     * org.apache.commons.pool2.PooledObject) passivated}. If
+     * org.apache.commons.pool3.PooledObject) passivated}. If
      * validation fails, the new instance is
      * {@link PooledObjectFactory#destroyObject(
-     * org.apache.commons.pool2.PooledObject) destroyed}. Exceptions
+     * org.apache.commons.pool3.PooledObject) destroyed}. Exceptions
      * generated by the factory {@code makeObject} or
      * {@code passivate} are propagated to the caller. Exceptions
      * destroying instances are silently swallowed.
@@ -141,13 +141,13 @@ public class SoftReferenceObjectPool<T, E extends Exception> extends BaseObjectP
      * new instance.
      * <p>
      * All instances are {@link PooledObjectFactory#activateObject(
-     * org.apache.commons.pool2.PooledObject) activated}
+     * org.apache.commons.pool3.PooledObject) activated}
      * and {@link PooledObjectFactory#validateObject(
-     * org.apache.commons.pool2.PooledObject)
+     * org.apache.commons.pool3.PooledObject)
      * validated} before being returned by this method. If validation fails or
      * an exception occurs activating or validating an idle instance, the
      * failing instance is {@link PooledObjectFactory#destroyObject(
-     * org.apache.commons.pool2.PooledObject)
+     * org.apache.commons.pool3.PooledObject)
      * destroyed} and another instance is retrieved from the pool, validated and
      * activated. This process continues until either the pool is empty or an
      * instance passes validation. If the pool is empty on activation or it does
@@ -359,10 +359,10 @@ public class SoftReferenceObjectPool<T, E extends Exception> extends BaseObjectP
      * <ul>
      * <li>the pool is closed</li>
      * <li>{@link PooledObjectFactory#validateObject(
-     * org.apache.commons.pool2.PooledObject) validation} fails
+     * org.apache.commons.pool3.PooledObject) validation} fails
      * </li>
      * <li>{@link PooledObjectFactory#passivateObject(
-     * org.apache.commons.pool2.PooledObject) passivation}
+     * org.apache.commons.pool3.PooledObject) passivation}
      * throws an exception</li>
      * </ul>
      * Exceptions passivating or destroying instances are silently swallowed.
diff --git a/src/main/java/org/apache/commons/pool2/impl/ThrowableCallStack.java b/src/main/java/org/apache/commons/pool3/impl/ThrowableCallStack.java
similarity index 98%
rename from src/main/java/org/apache/commons/pool2/impl/ThrowableCallStack.java
rename to src/main/java/org/apache/commons/pool3/impl/ThrowableCallStack.java
index b220ab37..304ea293 100644
--- a/src/main/java/org/apache/commons/pool2/impl/ThrowableCallStack.java
+++ b/src/main/java/org/apache/commons/pool3/impl/ThrowableCallStack.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.io.PrintWriter;
 import java.text.DateFormat;
diff --git a/src/main/java/org/apache/commons/pool2/impl/package-info.java b/src/main/java/org/apache/commons/pool3/impl/package-info.java
similarity index 69%
rename from src/main/java/org/apache/commons/pool2/impl/package-info.java
rename to src/main/java/org/apache/commons/pool3/impl/package-info.java
index 7bbd4566..1d8ffddb 100644
--- a/src/main/java/org/apache/commons/pool2/impl/package-info.java
+++ b/src/main/java/org/apache/commons/pool3/impl/package-info.java
@@ -18,16 +18,16 @@
 /**
  * Object pooling API implementations.
  * <p>
- * {@link org.apache.commons.pool2.impl.GenericObjectPool GenericObjectPool} ({@link org.apache.commons.pool2.impl.GenericKeyedObjectPool
- * GenericKeyedObjectPool}) provides a more robust (but also more complicated) implementation of {@link org.apache.commons.pool2.ObjectPool ObjectPool}
- * ({@link org.apache.commons.pool2.KeyedObjectPool KeyedObjectPool}).
+ * {@link org.apache.commons.pool3.impl.GenericObjectPool GenericObjectPool} ({@link org.apache.commons.pool3.impl.GenericKeyedObjectPool
+ * GenericKeyedObjectPool}) provides a more robust (but also more complicated) implementation of {@link org.apache.commons.pool3.ObjectPool ObjectPool}
+ * ({@link org.apache.commons.pool3.KeyedObjectPool KeyedObjectPool}).
  * </p>
  * <p>
- * {@link org.apache.commons.pool2.impl.SoftReferenceObjectPool SoftReferenceObjectPool} provides a {@link java.lang.ref.SoftReference SoftReference} based
- * {@link org.apache.commons.pool2.ObjectPool ObjectPool}.
+ * {@link org.apache.commons.pool3.impl.SoftReferenceObjectPool SoftReferenceObjectPool} provides a {@link java.lang.ref.SoftReference SoftReference} based
+ * {@link org.apache.commons.pool3.ObjectPool ObjectPool}.
  * </p>
  * <p>
- * See also the {@link org.apache.commons.pool2} package.
+ * See also the {@link org.apache.commons.pool3} package.
  * </p>
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
diff --git a/src/main/java/org/apache/commons/pool2/overview.html b/src/main/java/org/apache/commons/pool3/overview.html
similarity index 79%
rename from src/main/java/org/apache/commons/pool2/overview.html
rename to src/main/java/org/apache/commons/pool3/overview.html
index b301d1d6..1d204886 100644
--- a/src/main/java/org/apache/commons/pool2/overview.html
+++ b/src/main/java/org/apache/commons/pool3/overview.html
@@ -16,33 +16,33 @@
 -->
 <html>
    <head>
-      <title>Overview of the org.apache.commons.pool2 component</title>
+      <title>Overview of the org.apache.commons.pool3 component</title>
    </head>
    <body>
       <p>
          Generic Object pooling API with several implementations.
       </p>
       <p>
-         The <code>org.apache.commons.pool2</code> package defines a simple
+         The <code>org.apache.commons.pool3</code> package defines a simple
          interface for a pool of object instances, and a handful of base
          classes that may be useful when creating pool implementations.
          The API supports pooling of unique objects which can be requested
          via a key as well as pools where all objects are equivalent.
       </p>
       <p>
-         The <code>org.apache.commons.pool2.impl</code> package contains
+         The <code>org.apache.commons.pool3.impl</code> package contains
          several pool implementations.
-         {@link org.apache.commons.pool2.impl.GenericObjectPool
+         {@link org.apache.commons.pool3.impl.GenericObjectPool
          GenericObjectPool} has many configuration options and can support
          a limited set of objects such as would be useful in a database
          connection pool.
-         {@link org.apache.commons.pool2.impl.SoftReferenceObjectPool
+         {@link org.apache.commons.pool3.impl.SoftReferenceObjectPool
          SoftReferenceObjectPool} has no limit on the number of objects in the
          pool, but the garbage collector can remove idle objects from the pool
          as needed.  There is also a keyed version of
-         {@link org.apache.commons.pool2.impl.GenericObjectPool
+         {@link org.apache.commons.pool3.impl.GenericObjectPool
          GenericObjectPool},
-         {@link org.apache.commons.pool2.impl.GenericKeyedObjectPool
+         {@link org.apache.commons.pool3.impl.GenericKeyedObjectPool
          GenericKeyedObjectPool}
       </p>
    </body>
diff --git a/src/main/java/org/apache/commons/pool2/package-info.java b/src/main/java/org/apache/commons/pool3/package-info.java
similarity index 84%
rename from src/main/java/org/apache/commons/pool2/package-info.java
rename to src/main/java/org/apache/commons/pool3/package-info.java
index 3a48b23f..f7903c45 100644
--- a/src/main/java/org/apache/commons/pool2/package-info.java
+++ b/src/main/java/org/apache/commons/pool3/package-info.java
@@ -18,7 +18,7 @@
 /**
  * Object pooling API.
  * <p>
- * The <code>org.apache.commons.pool2</code> package defines a simple interface for a pool of object instances, and a handful of base classes that may be useful
+ * The <code>org.apache.commons.pool3</code> package defines a simple interface for a pool of object instances, and a handful of base classes that may be useful
  * when creating pool implementations.
  * </p>
  * <p>
@@ -29,15 +29,15 @@
  * The <code>pool</code> package separates the way in which instances are pooled from the way in which they are created, resulting in a pair of interfaces:
  * </p>
  * <dl>
- * <dt>{@link org.apache.commons.pool2.ObjectPool ObjectPool}</dt>
+ * <dt>{@link org.apache.commons.pool3.ObjectPool ObjectPool}</dt>
  * <dd>defines a simple object pooling interface, with methods for borrowing instances from and returning them to the pool.</dd>
- * <dt>{@link org.apache.commons.pool2.PooledObjectFactory PooledObjectFactory}</dt>
+ * <dt>{@link org.apache.commons.pool3.PooledObjectFactory PooledObjectFactory}</dt>
  * <dd>defines lifecycle methods for object instances contained within a pool. By associating a factory with a pool, the pool can create new object instances as
  * needed.</dd>
  * </dl>
  * <p>
  * The <code>pool</code> package also provides a keyed pool interface, which pools instances of multiple types, accessed according to an arbitrary key. See
- * {@link org.apache.commons.pool2.KeyedObjectPool KeyedObjectPool} and {@link org.apache.commons.pool2.KeyedPooledObjectFactory KeyedPooledObjectFactory}.
+ * {@link org.apache.commons.pool3.KeyedObjectPool KeyedObjectPool} and {@link org.apache.commons.pool3.KeyedPooledObjectFactory KeyedPooledObjectFactory}.
  * </p>
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
diff --git a/src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java b/src/main/java/org/apache/commons/pool3/proxy/BaseProxyHandler.java
similarity index 97%
rename from src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java
rename to src/main/java/org/apache/commons/pool3/proxy/BaseProxyHandler.java
index c22798df..612393d8 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/BaseProxyHandler.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import java.lang.reflect.Method;
 
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * Base implementation for object wrappers when using a
diff --git a/src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java b/src/main/java/org/apache/commons/pool3/proxy/CglibProxyHandler.java
similarity index 95%
rename from src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java
rename to src/main/java/org/apache/commons/pool3/proxy/CglibProxyHandler.java
index 63ce61bc..a458bc80 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/CglibProxyHandler.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import java.lang.reflect.Method;
 
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.UsageTracking;
 
 import net.sf.cglib.proxy.MethodInterceptor;
 import net.sf.cglib.proxy.MethodProxy;
diff --git a/src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java b/src/main/java/org/apache/commons/pool3/proxy/CglibProxySource.java
similarity index 96%
rename from src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java
rename to src/main/java/org/apache/commons/pool3/proxy/CglibProxySource.java
index 56613d99..46d80b35 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/CglibProxySource.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.UsageTracking;
 
 import net.sf.cglib.proxy.Enhancer;
 import net.sf.cglib.proxy.Factory;
diff --git a/src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java b/src/main/java/org/apache/commons/pool3/proxy/JdkProxyHandler.java
similarity index 95%
rename from src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java
rename to src/main/java/org/apache/commons/pool3/proxy/JdkProxyHandler.java
index 451a6b7f..ae79b0ba 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/JdkProxyHandler.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * Java reflection implementation of the proxy handler.
diff --git a/src/main/java/org/apache/commons/pool2/proxy/JdkProxySource.java b/src/main/java/org/apache/commons/pool3/proxy/JdkProxySource.java
similarity index 96%
rename from src/main/java/org/apache/commons/pool2/proxy/JdkProxySource.java
rename to src/main/java/org/apache/commons/pool3/proxy/JdkProxySource.java
index 32c57ae6..8ff793bf 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/JdkProxySource.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/JdkProxySource.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import java.lang.reflect.Proxy;
 import java.util.Arrays;
 
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * Provides proxy objects using Java reflection.
diff --git a/src/main/java/org/apache/commons/pool2/proxy/ProxiedKeyedObjectPool.java b/src/main/java/org/apache/commons/pool3/proxy/ProxiedKeyedObjectPool.java
similarity index 96%
rename from src/main/java/org/apache/commons/pool2/proxy/ProxiedKeyedObjectPool.java
rename to src/main/java/org/apache/commons/pool3/proxy/ProxiedKeyedObjectPool.java
index 38a6c4a5..b7c53acd 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/ProxiedKeyedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/ProxiedKeyedObjectPool.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import java.util.List;
 import java.util.NoSuchElementException;
 
-import org.apache.commons.pool2.KeyedObjectPool;
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.KeyedObjectPool;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * Create a new keyed object pool where the pooled objects are wrapped in
diff --git a/src/main/java/org/apache/commons/pool2/proxy/ProxiedObjectPool.java b/src/main/java/org/apache/commons/pool3/proxy/ProxiedObjectPool.java
similarity index 96%
rename from src/main/java/org/apache/commons/pool2/proxy/ProxiedObjectPool.java
rename to src/main/java/org/apache/commons/pool3/proxy/ProxiedObjectPool.java
index e0b7cd7a..fbe1a707 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/ProxiedObjectPool.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/ProxiedObjectPool.java
@@ -14,12 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import java.util.NoSuchElementException;
 
-import org.apache.commons.pool2.ObjectPool;
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.ObjectPool;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * Create a new object pool where the pooled objects are wrapped in proxies
diff --git a/src/main/java/org/apache/commons/pool2/proxy/ProxySource.java b/src/main/java/org/apache/commons/pool3/proxy/ProxySource.java
similarity index 95%
rename from src/main/java/org/apache/commons/pool2/proxy/ProxySource.java
rename to src/main/java/org/apache/commons/pool3/proxy/ProxySource.java
index e756857a..34d157fc 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/ProxySource.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/ProxySource.java
@@ -14,9 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
-import org.apache.commons.pool2.UsageTracking;
+import org.apache.commons.pool3.UsageTracking;
 
 /**
  * The interface that any provider of proxy instances must implement to allow the
diff --git a/src/main/java/org/apache/commons/pool2/proxy/package-info.java b/src/main/java/org/apache/commons/pool3/proxy/package-info.java
similarity index 92%
rename from src/main/java/org/apache/commons/pool2/proxy/package-info.java
rename to src/main/java/org/apache/commons/pool3/proxy/package-info.java
index 75cfdc1b..777c3b79 100644
--- a/src/main/java/org/apache/commons/pool2/proxy/package-info.java
+++ b/src/main/java/org/apache/commons/pool3/proxy/package-info.java
@@ -18,7 +18,7 @@
 /**
  * Object pooling proxy implementation.
  * <p>
- * The <code>org.apache.commons.pool2.proxy</code> package defines a
+ * The <code>org.apache.commons.pool3.proxy</code> package defines a
  * object pool that wraps all objects returned to clients. This allows it
  * to disable those proxies when the objects are returned thereby enabling
  * the continued use of those objects by clients to be detected..
@@ -29,4 +29,4 @@
  * additional of the optional Code Generation Library (GCLib).
  * </p>
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
diff --git a/src/site/site.xml b/src/site/site.xml
index feb80154..16bf5437 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -26,6 +26,7 @@
         <menu name="Pool">
             <item name="Overview"            href="/index.html"/>
             <item name="Javadoc"             href="/apidocs/index.html"/>
+            <item name="Javadoc 3.x Archive" href="https://javadoc.io/doc/org.apache.commons/commons-pool3/latest/index.html"/>
             <item name="Javadoc 2.x Archive" href="https://javadoc.io/doc/org.apache.commons/commons-pool2/latest/index.html"/>
             <item name="Javadoc 1.x Archive" href="https://javadoc.io/doc/commons-pool/commons-pool/latest/index.html"/>
             <item name="Examples"            href="/examples.html"/>
diff --git a/src/site/xdoc/examples.xml b/src/site/xdoc/examples.xml
index 78f8f5b8..0df1ea57 100644
--- a/src/site/xdoc/examples.xml
+++ b/src/site/xdoc/examples.xml
@@ -76,7 +76,7 @@ public class ReaderUtil {
 <source>
 import java.io.IOException;
 import java.io.Reader;
-import org.apache.commons.pool2.ObjectPool;
+import org.apache.commons.pool3.ObjectPool;
 
 public class ReaderUtil {
     
@@ -140,9 +140,9 @@ public class ReaderUtil {
         <code>StringBuffer</code>s as used above.
        </p>
 <source>
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 public class StringBufferFactory
     extends BasePooledObjectFactory&lt;StringBuffer&gt; {
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index 997d7cff..7433a5db 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -33,6 +33,7 @@
           instance tracking and pool monitoring.
          </p>
          <ul>
+          <li>Version 3.0.0 and up requires Java 8 or above.</li>
           <li>Version 2.7.x and up requires Java 8 or above.</li>
           <li>Version 2.6.x requires Java 7 or above.</li>
           <li>Version 2.5.x requires Java 7 or above.</li>
@@ -50,7 +51,7 @@
       <section name="Features">
         <p>
             The 
-            <a href="./apidocs/org/apache/commons/pool2/package-summary.html">org.apache.commons.pool2</a> 
+            <a href="./apidocs/org/apache/commons/pool2/package-summary.html">org.apache.commons.pool3</a> 
             package defines a handful of pooling interfaces and some base classes 
             that may be useful when creating new pool implementations.
         </p>
@@ -112,7 +113,7 @@ public interface KeyedPooledObjectFactory&lt;K,V&gt; {
         </subsection>
         <p>
             The 
-            <a href="./apidocs/org/apache/commons/pool2/impl/package-summary.html">org.apache.commons.pool2.impl</a> 
+            <a href="./apidocs/org/apache/commons/pool2/impl/package-summary.html">org.apache.commons.pool3.impl</a> 
             package provides some <i>Pool</i> implementations.
         </p>
         <subsection name="GenericObjectPool">
@@ -156,7 +157,7 @@ public interface KeyedPooledObjectFactory&lt;K,V&gt; {
           The migration from Apache Commons Pool 1.x to 2.x will require some
           code changes. The most significant changes are the changes in package
           name from <code>org.apache.commons.pool</code> to
-          <code>org.apache.commons.pool2</code> and the change in the implementation
+          <code>org.apache.commons.pool3</code> and the change in the implementation
           classes to use <code>PooledObjectFactory</code>s, as described above.
         </p>
         <p>
diff --git a/src/test/java/org/apache/commons/pool2/AbstractTestKeyedObjectPool.java b/src/test/java/org/apache/commons/pool3/AbstractTestKeyedObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/AbstractTestKeyedObjectPool.java
rename to src/test/java/org/apache/commons/pool3/AbstractTestKeyedObjectPool.java
index cbd18860..797d1b1c 100644
--- a/src/test/java/org/apache/commons/pool2/AbstractTestKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/AbstractTestKeyedObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -24,8 +24,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.NoSuchElementException;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-import org.apache.commons.pool2.impl.GenericKeyedObjectPool;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPool;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/apache/commons/pool2/AbstractTestObjectPool.java b/src/test/java/org/apache/commons/pool3/AbstractTestObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/AbstractTestObjectPool.java
rename to src/test/java/org/apache/commons/pool3/AbstractTestObjectPool.java
index 22622457..a59fb140 100644
--- a/src/test/java/org/apache/commons/pool2/AbstractTestObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/AbstractTestObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -25,8 +25,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.NoSuchElementException;
 
-import org.apache.commons.pool2.impl.GenericObjectPool;
-import org.apache.commons.pool2.impl.SoftReferenceObjectPool;
+import org.apache.commons.pool3.impl.GenericObjectPool;
+import org.apache.commons.pool3.impl.SoftReferenceObjectPool;
 import org.junit.jupiter.api.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/pool2/MethodCall.java b/src/test/java/org/apache/commons/pool3/MethodCall.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/MethodCall.java
rename to src/test/java/org/apache/commons/pool3/MethodCall.java
index 95e913c9..ca109764 100644
--- a/src/test/java/org/apache/commons/pool2/MethodCall.java
+++ b/src/test/java/org/apache/commons/pool3/MethodCall.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.util.Arrays;
 import java.util.Collections;
diff --git a/src/test/java/org/apache/commons/pool2/MethodCallPoolableObjectFactory.java b/src/test/java/org/apache/commons/pool3/MethodCallPoolableObjectFactory.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/MethodCallPoolableObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/MethodCallPoolableObjectFactory.java
index 7ab67097..7e5060b8 100644
--- a/src/test/java/org/apache/commons/pool2/MethodCallPoolableObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/MethodCallPoolableObjectFactory.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * A poolable object factory that tracks how {@link MethodCall methods are called}.
diff --git a/src/test/java/org/apache/commons/pool2/ObjectPoolIssue326.java b/src/test/java/org/apache/commons/pool3/ObjectPoolIssue326.java
similarity index 95%
rename from src/test/java/org/apache/commons/pool2/ObjectPoolIssue326.java
rename to src/test/java/org/apache/commons/pool3/ObjectPoolIssue326.java
index e200946a..56a6c18f 100644
--- a/src/test/java/org/apache/commons/pool2/ObjectPoolIssue326.java
+++ b/src/test/java/org/apache/commons/pool3/ObjectPoolIssue326.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.time.Duration;
 import java.time.Instant;
@@ -28,10 +28,10 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 
-import org.apache.commons.pool2.impl.BaseObjectPoolConfig;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-import org.apache.commons.pool2.impl.GenericKeyedObjectPool;
-import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
+import org.apache.commons.pool3.impl.BaseObjectPoolConfig;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPool;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPoolConfig;
 
 /**
  * On my box with 4 cores this test fails at between 5s and 900s with an average
@@ -173,7 +173,7 @@ public final class ObjectPoolIssue326 {
  * java:43) at java.lang.reflect.Method.invoke(Method.java:498) at
  * com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Caused
  * by: java.lang.NullPointerException at
- * org.apache.commons.pool2.impl.GenericKeyedObjectPool.returnObject(
+ * org.apache.commons.pool3.impl.GenericKeyedObjectPool.returnObject(
  * GenericKeyedObjectPool.java:474) at
  * threading_pool.ObjectPoolIssue$Task.call(ObjectPoolIssue.java:112) at
  * java.util.concurrent.FutureTask.run(FutureTask.java:266) at
diff --git a/src/test/java/org/apache/commons/pool2/PoolTest.java b/src/test/java/org/apache/commons/pool3/PoolTest.java
similarity index 94%
rename from src/test/java/org/apache/commons/pool2/PoolTest.java
rename to src/test/java/org/apache/commons/pool3/PoolTest.java
index 9aa8a6bf..774d1d11 100644
--- a/src/test/java/org/apache/commons/pool2/PoolTest.java
+++ b/src/test/java/org/apache/commons/pool3/PoolTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -23,9 +23,9 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-import org.apache.commons.pool2.impl.GenericObjectPool;
-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.GenericObjectPool;
+import org.apache.commons.pool3.impl.GenericObjectPoolConfig;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/apache/commons/pool2/PrivateException.java b/src/test/java/org/apache/commons/pool3/PrivateException.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/PrivateException.java
rename to src/test/java/org/apache/commons/pool3/PrivateException.java
index 3f0498aa..81661d15 100644
--- a/src/test/java/org/apache/commons/pool2/PrivateException.java
+++ b/src/test/java/org/apache/commons/pool3/PrivateException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * An exception that only is thrown by these tests.
diff --git a/src/test/java/org/apache/commons/pool2/TestBaseKeyedPooledObjectFactory.java b/src/test/java/org/apache/commons/pool3/TestBaseKeyedPooledObjectFactory.java
similarity index 94%
rename from src/test/java/org/apache/commons/pool2/TestBaseKeyedPooledObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/TestBaseKeyedPooledObjectFactory.java
index 628cd999..c2f1cdf6 100644
--- a/src/test/java/org/apache/commons/pool2/TestBaseKeyedPooledObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/TestBaseKeyedPooledObjectFactory.java
@@ -14,11 +14,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 import org.junit.jupiter.api.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java b/src/test/java/org/apache/commons/pool3/TestBaseObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java
rename to src/test/java/org/apache/commons/pool3/TestBaseObjectPool.java
index 37621703..a11e517e 100644
--- a/src/test/java/org/apache/commons/pool2/TestBaseObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/TestBaseObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
diff --git a/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java b/src/test/java/org/apache/commons/pool3/TestBasePoolableObjectFactory.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/TestBasePoolableObjectFactory.java
index ceff13cb..7472994f 100644
--- a/src/test/java/org/apache/commons/pool2/TestBasePoolableObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/TestBasePoolableObjectFactory.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 import org.junit.jupiter.api.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/pool2/TestException.java b/src/test/java/org/apache/commons/pool3/TestException.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/TestException.java
rename to src/test/java/org/apache/commons/pool3/TestException.java
index a18e58e6..f7e5916f 100644
--- a/src/test/java/org/apache/commons/pool2/TestException.java
+++ b/src/test/java/org/apache/commons/pool3/TestException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * A custom exception for unit tests.
diff --git a/src/test/java/org/apache/commons/pool2/TestPoolUtils.java b/src/test/java/org/apache/commons/pool3/TestPoolUtils.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/TestPoolUtils.java
rename to src/test/java/org/apache/commons/pool3/TestPoolUtils.java
index 502aab81..6c181141 100644
--- a/src/test/java/org/apache/commons/pool2/TestPoolUtils.java
+++ b/src/test/java/org/apache/commons/pool3/TestPoolUtils.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -36,10 +36,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TimerTask;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-import org.apache.commons.pool2.impl.GenericKeyedObjectPool;
-import org.apache.commons.pool2.impl.GenericObjectPool;
-import org.apache.commons.pool2.impl.TestGenericKeyedObjectPool;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPool;
+import org.apache.commons.pool3.impl.GenericObjectPool;
+import org.apache.commons.pool3.impl.TestGenericKeyedObjectPool;
 import org.junit.jupiter.api.Test;
 import org.opentest4j.AssertionFailedError;
 
diff --git a/src/test/java/org/apache/commons/pool2/TestTrackedUse.java b/src/test/java/org/apache/commons/pool3/TestTrackedUse.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/TestTrackedUse.java
rename to src/test/java/org/apache/commons/pool3/TestTrackedUse.java
index 421ee702..6f6255d1 100644
--- a/src/test/java/org/apache/commons/pool2/TestTrackedUse.java
+++ b/src/test/java/org/apache/commons/pool3/TestTrackedUse.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
diff --git a/src/test/java/org/apache/commons/pool2/VisitTracker.java b/src/test/java/org/apache/commons/pool3/VisitTracker.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/VisitTracker.java
rename to src/test/java/org/apache/commons/pool3/VisitTracker.java
index 2dbd4b79..f04525b5 100644
--- a/src/test/java/org/apache/commons/pool2/VisitTracker.java
+++ b/src/test/java/org/apache/commons/pool3/VisitTracker.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 /**
  * Test pooled object class. Keeps track of how many times it has been validated, activated, passivated.
diff --git a/src/test/java/org/apache/commons/pool2/VisitTrackerFactory.java b/src/test/java/org/apache/commons/pool3/VisitTrackerFactory.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/VisitTrackerFactory.java
rename to src/test/java/org/apache/commons/pool3/VisitTrackerFactory.java
index 78121ef1..85b41f27 100644
--- a/src/test/java/org/apache/commons/pool2/VisitTrackerFactory.java
+++ b/src/test/java/org/apache/commons/pool3/VisitTrackerFactory.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Factory that creates VisitTracker instances. Used to test Evictor runs.
diff --git a/src/test/java/org/apache/commons/pool2/Waiter.java b/src/test/java/org/apache/commons/pool3/Waiter.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/Waiter.java
rename to src/test/java/org/apache/commons/pool3/Waiter.java
index 0a3166a4..7939546a 100644
--- a/src/test/java/org/apache/commons/pool2/Waiter.java
+++ b/src/test/java/org/apache/commons/pool3/Waiter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
diff --git a/src/test/java/org/apache/commons/pool2/WaiterFactory.java b/src/test/java/org/apache/commons/pool3/WaiterFactory.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/WaiterFactory.java
rename to src/test/java/org/apache/commons/pool3/WaiterFactory.java
index 8d441f1a..0ffd0371 100644
--- a/src/test/java/org/apache/commons/pool2/WaiterFactory.java
+++ b/src/test/java/org/apache/commons/pool3/WaiterFactory.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2;
+package org.apache.commons.pool3;
 
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Object factory with configurable latencies for object lifecycle methods.
diff --git a/src/test/java/org/apache/commons/pool2/impl/AtomicIntegerFactory.java b/src/test/java/org/apache/commons/pool3/impl/AtomicIntegerFactory.java
similarity index 94%
rename from src/test/java/org/apache/commons/pool2/impl/AtomicIntegerFactory.java
rename to src/test/java/org/apache/commons/pool3/impl/AtomicIntegerFactory.java
index bf7b38c1..db9dc84a 100644
--- a/src/test/java/org/apache/commons/pool2/impl/AtomicIntegerFactory.java
+++ b/src/test/java/org/apache/commons/pool3/impl/AtomicIntegerFactory.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.Waiter;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.Waiter;
 
 /**
  * Factory that sources PooledObjects that wrap AtomicIntegers.
diff --git a/src/test/java/org/apache/commons/pool2/impl/CallStackTest.java b/src/test/java/org/apache/commons/pool3/impl/CallStackTest.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/impl/CallStackTest.java
rename to src/test/java/org/apache/commons/pool3/impl/CallStackTest.java
index 6c8c56af..a625c908 100644
--- a/src/test/java/org/apache/commons/pool2/impl/CallStackTest.java
+++ b/src/test/java/org/apache/commons/pool3/impl/CallStackTest.java
@@ -14,7 +14,7 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/src/test/java/org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java b/src/test/java/org/apache/commons/pool3/impl/DisconnectingWaiterFactory.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java
rename to src/test/java/org/apache/commons/pool3/impl/DisconnectingWaiterFactory.java
index 36c6cfad..80d878ab 100644
--- a/src/test/java/org/apache/commons/pool2/impl/DisconnectingWaiterFactory.java
+++ b/src/test/java/org/apache/commons/pool3/impl/DisconnectingWaiterFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.time.Duration;
 import java.time.Instant;
@@ -24,9 +24,9 @@ import java.util.function.Consumer;
 import java.util.function.Predicate;
 import java.util.function.Supplier;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.Waiter;
-import org.apache.commons.pool2.WaiterFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.Waiter;
+import org.apache.commons.pool3.WaiterFactory;
 
 public class DisconnectingWaiterFactory<K> extends WaiterFactory<K> {
     /**
diff --git a/src/test/java/org/apache/commons/pool2/impl/NoOpCallStackTest.java b/src/test/java/org/apache/commons/pool3/impl/NoOpCallStackTest.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/impl/NoOpCallStackTest.java
rename to src/test/java/org/apache/commons/pool3/impl/NoOpCallStackTest.java
index 8f3d909f..7189ec34 100644
--- a/src/test/java/org/apache/commons/pool2/impl/NoOpCallStackTest.java
+++ b/src/test/java/org/apache/commons/pool3/impl/NoOpCallStackTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedKeyedObjectPool.java b/src/test/java/org/apache/commons/pool3/impl/TestAbandonedKeyedObjectPool.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/impl/TestAbandonedKeyedObjectPool.java
rename to src/test/java/org/apache/commons/pool3/impl/TestAbandonedKeyedObjectPool.java
index 90ee0487..547abea8 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestAbandonedKeyedObjectPool.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -33,10 +33,10 @@ import java.util.Set;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.commons.pool2.DestroyMode;
-import org.apache.commons.pool2.KeyedPooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.Waiter;
+import org.apache.commons.pool3.DestroyMode;
+import org.apache.commons.pool3.KeyedPooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.Waiter;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -169,7 +169,7 @@ public class TestAbandonedKeyedObjectPool {
 
         final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
         final Set<ObjectName> result = mbs.queryNames(new ObjectName(
-                "org.apache.commoms.pool2:type=GenericKeyedObjectPool,*"), null);
+                "org.apache.commoms.pool3:type=GenericKeyedObjectPool,*"), null);
         // There should be no registered pools at this point
         final int registeredPoolCount = result.size();
         final StringBuilder msg = new StringBuilder("Current pool is: ");
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java b/src/test/java/org/apache/commons/pool3/impl/TestAbandonedObjectPool.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
rename to src/test/java/org/apache/commons/pool3/impl/TestAbandonedObjectPool.java
index b403f904..c7d73ebd 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestAbandonedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestAbandonedObjectPool.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -35,11 +35,11 @@ import java.util.concurrent.atomic.AtomicInteger;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.commons.pool2.DestroyMode;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectFactory;
-import org.apache.commons.pool2.TrackedUse;
-import org.apache.commons.pool2.Waiter;
+import org.apache.commons.pool3.DestroyMode;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectFactory;
+import org.apache.commons.pool3.TrackedUse;
+import org.apache.commons.pool3.Waiter;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -250,7 +250,7 @@ public class TestAbandonedObjectPool {
 
         final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
         final Set<ObjectName> result = mbs.queryNames(new ObjectName(
-                "org.apache.commoms.pool2:type=GenericObjectPool,*"), null);
+                "org.apache.commoms.pool3:type=GenericObjectPool,*"), null);
         // There should be no registered pools at this point
         final int registeredPoolCount = result.size();
         final StringBuilder msg = new StringBuilder("Current pool is: ");
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java b/src/test/java/org/apache/commons/pool3/impl/TestBaseGenericObjectPool.java
similarity index 95%
rename from src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java
rename to src/test/java/org/apache/commons/pool3/impl/TestBaseGenericObjectPool.java
index 489ae9c4..713a9f92 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestBaseGenericObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestBaseGenericObjectPool.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -28,10 +28,10 @@ import java.util.concurrent.atomic.AtomicInteger;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.commons.pool2.TestException;
-import org.apache.commons.pool2.Waiter;
-import org.apache.commons.pool2.WaiterFactory;
-import org.apache.commons.pool2.impl.TestGenericObjectPool.SimpleFactory;
+import org.apache.commons.pool3.TestException;
+import org.apache.commons.pool3.Waiter;
+import org.apache.commons.pool3.WaiterFactory;
+import org.apache.commons.pool3.impl.TestGenericObjectPool.SimpleFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestConstants.java b/src/test/java/org/apache/commons/pool3/impl/TestConstants.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/impl/TestConstants.java
rename to src/test/java/org/apache/commons/pool3/impl/TestConstants.java
index 9d1a6254..7f79ffd1 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestConstants.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestConstants.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.time.Duration;
 
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObject.java b/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObject.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObject.java
rename to src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObject.java
index 10575165..fd5e6e40 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObject.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObject.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.lessThan;
@@ -31,7 +31,7 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 import org.junit.jupiter.api.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java b/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObjectInfo.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
rename to src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObjectInfo.java
index cba399c7..cf229f1f 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestDefaultPooledObjectInfo.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestDefaultPooledObjectInfo.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -22,8 +22,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import java.text.SimpleDateFormat;
 import java.util.Set;
 
-import org.apache.commons.pool2.TestException;
-import org.apache.commons.pool2.impl.TestGenericObjectPool.SimpleFactory;
+import org.apache.commons.pool3.TestException;
+import org.apache.commons.pool3.impl.TestGenericObjectPool.SimpleFactory;
 import org.junit.jupiter.api.Test;
 
 public class TestDefaultPooledObjectInfo {
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestEvictionConfig.java b/src/test/java/org/apache/commons/pool3/impl/TestEvictionConfig.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/impl/TestEvictionConfig.java
rename to src/test/java/org/apache/commons/pool3/impl/TestEvictionConfig.java
index 95db65b9..d7998c77 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestEvictionConfig.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestEvictionConfig.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestEvictionTimer.java b/src/test/java/org/apache/commons/pool3/impl/TestEvictionTimer.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/impl/TestEvictionTimer.java
rename to src/test/java/org/apache/commons/pool3/impl/TestEvictionTimer.java
index f904ff59..e8fbaf93 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestEvictionTimer.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestEvictionTimer.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -26,8 +26,8 @@ import java.lang.reflect.Field;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.ThreadPoolExecutor;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
 import org.junit.jupiter.api.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java b/src/test/java/org/apache/commons/pool3/impl/TestGenericKeyedObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
rename to src/test/java/org/apache/commons/pool3/impl/TestGenericKeyedObjectPool.java
index e5b37f7f..4abe89ba 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestGenericKeyedObjectPool.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -54,17 +54,17 @@ import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.commons.pool2.BaseKeyedPooledObjectFactory;
-import org.apache.commons.pool2.DestroyMode;
-import org.apache.commons.pool2.KeyedObjectPool;
-import org.apache.commons.pool2.KeyedPooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.TestException;
-import org.apache.commons.pool2.AbstractTestKeyedObjectPool;
-import org.apache.commons.pool2.VisitTracker;
-import org.apache.commons.pool2.VisitTrackerFactory;
-import org.apache.commons.pool2.Waiter;
-import org.apache.commons.pool2.WaiterFactory;
+import org.apache.commons.pool3.AbstractTestKeyedObjectPool;
+import org.apache.commons.pool3.BaseKeyedPooledObjectFactory;
+import org.apache.commons.pool3.DestroyMode;
+import org.apache.commons.pool3.KeyedObjectPool;
+import org.apache.commons.pool3.KeyedPooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.TestException;
+import org.apache.commons.pool3.VisitTracker;
+import org.apache.commons.pool3.VisitTrackerFactory;
+import org.apache.commons.pool3.Waiter;
+import org.apache.commons.pool3.WaiterFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -879,7 +879,7 @@ public class TestGenericKeyedObjectPool extends AbstractTestKeyedObjectPool {
 
         final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
         final Set<ObjectName> result = mbs.queryNames(new ObjectName(
-                "org.apache.commoms.pool2:type=GenericKeyedObjectPool,*"),
+                "org.apache.commoms.pool3:type=GenericKeyedObjectPool,*"),
                 null);
         // There should be no registered pools at this point
         final int registeredPoolCount = result.size();
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPool.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
rename to src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPool.java
index 08db55d8..185cf728 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPool.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -51,18 +51,18 @@ import java.util.concurrent.atomic.AtomicInteger;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.ObjectPool;
-import org.apache.commons.pool2.PoolUtils;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectFactory;
-import org.apache.commons.pool2.SwallowedExceptionListener;
-import org.apache.commons.pool2.TestBaseObjectPool;
-import org.apache.commons.pool2.TestException;
-import org.apache.commons.pool2.VisitTracker;
-import org.apache.commons.pool2.VisitTrackerFactory;
-import org.apache.commons.pool2.Waiter;
-import org.apache.commons.pool2.WaiterFactory;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.ObjectPool;
+import org.apache.commons.pool3.PoolUtils;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectFactory;
+import org.apache.commons.pool3.SwallowedExceptionListener;
+import org.apache.commons.pool3.TestBaseObjectPool;
+import org.apache.commons.pool3.TestException;
+import org.apache.commons.pool3.VisitTracker;
+import org.apache.commons.pool3.VisitTrackerFactory;
+import org.apache.commons.pool3.Waiter;
+import org.apache.commons.pool3.WaiterFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
@@ -940,7 +940,7 @@ public class TestGenericObjectPool extends TestBaseObjectPool {
         simpleFactory = null;
 
         final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
-        final Set<ObjectName> result = mbs.queryNames(new ObjectName("org.apache.commoms.pool2:type=GenericObjectPool,*"), null);
+        final Set<ObjectName> result = mbs.queryNames(new ObjectName("org.apache.commoms.pool3:type=GenericObjectPool,*"), null);
         // There should be no registered pools at this point
         final int registeredPoolCount = result.size();
         final StringBuilder msg = new StringBuilder("Current pool is: ");
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPoolClassLoaders.java
similarity index 95%
rename from src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
rename to src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPoolClassLoaders.java
index 8298255a..16b75d8e 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolClassLoaders.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPoolClassLoaders.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -22,8 +22,8 @@ import java.net.URL;
 import java.net.URLClassLoader;
 import java.time.Duration;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
 import org.junit.jupiter.api.Test;
 
 public class TestGenericObjectPoolClassLoaders {
@@ -71,7 +71,7 @@ public class TestGenericObjectPoolClassLoaders {
     }
 
     private static final URL BASE_URL = TestGenericObjectPoolClassLoaders.class
-            .getResource("/org/apache/commons/pool2/impl/");
+            .getResource("/org/apache/commons/pool3/impl/");
 
     @Test
     public void testContextClassLoader() throws Exception {
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolFactoryCreateFailure.java b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPoolFactoryCreateFailure.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolFactoryCreateFailure.java
rename to src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPoolFactoryCreateFailure.java
index e0e4c94c..94f4531e 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestGenericObjectPoolFactoryCreateFailure.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestGenericObjectPoolFactoryCreateFailure.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 
@@ -24,9 +24,9 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.Waiter;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.Waiter;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
 
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestLinkedBlockingDeque.java b/src/test/java/org/apache/commons/pool3/impl/TestLinkedBlockingDeque.java
similarity index 99%
rename from src/test/java/org/apache/commons/pool2/impl/TestLinkedBlockingDeque.java
rename to src/test/java/org/apache/commons/pool3/impl/TestLinkedBlockingDeque.java
index c8ea68fc..af56034e 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestLinkedBlockingDeque.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestLinkedBlockingDeque.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestPoolImplUtils.java b/src/test/java/org/apache/commons/pool3/impl/TestPoolImplUtils.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/impl/TestPoolImplUtils.java
rename to src/test/java/org/apache/commons/pool3/impl/TestPoolImplUtils.java
index 03ea8240..e5a19fcb 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestPoolImplUtils.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestPoolImplUtils.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -23,8 +23,8 @@ import java.time.Instant;
 import java.time.temporal.ChronoUnit;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
 import org.junit.jupiter.api.Test;
 
 public class TestPoolImplUtils {
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestPooledSoftReference.java b/src/test/java/org/apache/commons/pool3/impl/TestPooledSoftReference.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/impl/TestPooledSoftReference.java
rename to src/test/java/org/apache/commons/pool3/impl/TestPooledSoftReference.java
index 2e3fff8d..a971aa01 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestPooledSoftReference.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestPooledSoftReference.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java b/src/test/java/org/apache/commons/pool3/impl/TestSoftRefOutOfMemory.java
similarity index 97%
rename from src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java
rename to src/test/java/org/apache/commons/pool3/impl/TestSoftRefOutOfMemory.java
index 784cb5ec..ce625e60 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestSoftRefOutOfMemory.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestSoftRefOutOfMemory.java
@@ -15,20 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
 
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java b/src/test/java/org/apache/commons/pool3/impl/TestSoftReferenceObjectPool.java
similarity index 86%
rename from src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java
rename to src/test/java/org/apache/commons/pool3/impl/TestSoftReferenceObjectPool.java
index 43d9fbd8..aa436ce2 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestSoftReferenceObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestSoftReferenceObjectPool.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.ObjectPool;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectFactory;
-import org.apache.commons.pool2.TestBaseObjectPool;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.ObjectPool;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectFactory;
+import org.apache.commons.pool3.TestBaseObjectPool;
 
 /**
  */
diff --git a/src/test/java/org/apache/commons/pool2/impl/TestSynchronizedPooledObjectFactory.java b/src/test/java/org/apache/commons/pool3/impl/TestSynchronizedPooledObjectFactory.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/impl/TestSynchronizedPooledObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/impl/TestSynchronizedPooledObjectFactory.java
index ba5f7f92..8e56b0ce 100644
--- a/src/test/java/org/apache/commons/pool2/impl/TestSynchronizedPooledObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/impl/TestSynchronizedPooledObjectFactory.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.impl;
+package org.apache.commons.pool3.impl;
 
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectFactory;
 
 /**
  * Copies PoolUtil's private static class SynchronizedPooledObjectFactory.
diff --git a/src/test/java/org/apache/commons/pool2/performance/PerformanceTest.java b/src/test/java/org/apache/commons/pool3/performance/PerformanceTest.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/performance/PerformanceTest.java
rename to src/test/java/org/apache/commons/pool3/performance/PerformanceTest.java
index ea29789e..94589ec9 100644
--- a/src/test/java/org/apache/commons/pool2/performance/PerformanceTest.java
+++ b/src/test/java/org/apache/commons/pool3/performance/PerformanceTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.performance;
+package org.apache.commons.pool3.performance;
 
 import java.time.Duration;
 import java.util.ArrayList;
@@ -26,7 +26,7 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 
-import org.apache.commons.pool2.impl.GenericObjectPool;
+import org.apache.commons.pool3.impl.GenericObjectPool;
 
 /**
  * Multi-thread performance test
diff --git a/src/test/java/org/apache/commons/pool2/performance/SleepingObjectFactory.java b/src/test/java/org/apache/commons/pool3/performance/SleepingObjectFactory.java
similarity index 90%
rename from src/test/java/org/apache/commons/pool2/performance/SleepingObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/performance/SleepingObjectFactory.java
index a12b664e..004ae9c2 100644
--- a/src/test/java/org/apache/commons/pool2/performance/SleepingObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/performance/SleepingObjectFactory.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.performance;
+package org.apache.commons.pool3.performance;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectFactory;
-import org.apache.commons.pool2.Waiter;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectFactory;
+import org.apache.commons.pool3.Waiter;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Sleepy ObjectFactory (everything takes a while longer)
diff --git a/src/test/java/org/apache/commons/pool2/pool407/AbstractKeyedPool407Factory.java b/src/test/java/org/apache/commons/pool3/pool407/AbstractKeyedPool407Factory.java
similarity index 89%
rename from src/test/java/org/apache/commons/pool2/pool407/AbstractKeyedPool407Factory.java
rename to src/test/java/org/apache/commons/pool3/pool407/AbstractKeyedPool407Factory.java
index 064862d1..603e3521 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/AbstractKeyedPool407Factory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/AbstractKeyedPool407Factory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.BaseKeyedPooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.BaseKeyedPooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/AbstractPool407Factory.java b/src/test/java/org/apache/commons/pool3/pool407/AbstractPool407Factory.java
similarity index 92%
rename from src/test/java/org/apache/commons/pool2/pool407/AbstractPool407Factory.java
rename to src/test/java/org/apache/commons/pool3/pool407/AbstractPool407Factory.java
index 5638f2bd..6406383b 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/AbstractPool407Factory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/AbstractPool407Factory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/AbstractPool407Test.java b/src/test/java/org/apache/commons/pool3/pool407/AbstractPool407Test.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/pool407/AbstractPool407Test.java
rename to src/test/java/org/apache/commons/pool3/pool407/AbstractPool407Test.java
index 60a252ef..106d8a25 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/AbstractPool407Test.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/AbstractPool407Test.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407.java b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407.java
similarity index 84%
rename from src/test/java/org/apache/commons/pool2/pool407/KeyedPool407.java
rename to src/test/java/org/apache/commons/pool3/pool407/KeyedPool407.java
index c7e22111..af0e9dec 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.BaseKeyedPooledObjectFactory;
-import org.apache.commons.pool2.impl.BaseObjectPoolConfig;
-import org.apache.commons.pool2.impl.GenericKeyedObjectPool;
+import org.apache.commons.pool3.BaseKeyedPooledObjectFactory;
+import org.apache.commons.pool3.impl.BaseObjectPoolConfig;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPool;
 
 public final class KeyedPool407 extends GenericKeyedObjectPool<String, KeyedPool407Fixture, RuntimeException> {
 
diff --git a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Config.java b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Config.java
similarity index 91%
rename from src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Config.java
rename to src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Config.java
index 6feff5ff..afe01b70 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Config.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Config.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPoolConfig;
 
 public final class KeyedPool407Config extends GenericKeyedObjectPoolConfig<KeyedPool407Fixture> {
 
diff --git a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Fixture.java b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Fixture.java
similarity index 95%
rename from src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Fixture.java
rename to src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Fixture.java
index 48f3e613..ab88a794 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Fixture.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Fixture.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 public final class KeyedPool407Fixture {
     // empty
diff --git a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NormalFactory.java b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NormalFactory.java
similarity index 92%
rename from src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NormalFactory.java
rename to src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NormalFactory.java
index 8ff88bd8..00a8653c 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NormalFactory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NormalFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NullObjectFactory.java b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NullObjectFactory.java
similarity index 90%
rename from src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NullObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NullObjectFactory.java
index e3b9c206..81799d94 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NullObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NullObjectFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NullPoolableObjectFactory.java b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NullPoolableObjectFactory.java
similarity index 93%
rename from src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NullPoolableObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NullPoolableObjectFactory.java
index c319fdcd..a28b6ada 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407NullPoolableObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407NullPoolableObjectFactory.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Test.java b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Test.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Test.java
rename to src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Test.java
index deb2f001..2e5b3546 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/KeyedPool407Test.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/KeyedPool407Test.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import java.time.Duration;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407.java
similarity index 88%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407.java
index 6880ec8b..ef68c186 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.impl.GenericObjectPool;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.impl.GenericObjectPool;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407Config.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407Config.java
similarity index 91%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407Config.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407Config.java
index ee75d183..01db8309 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407Config.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407Config.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.apache.commons.pool3.impl.GenericObjectPoolConfig;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407Constants.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407Constants.java
similarity index 92%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407Constants.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407Constants.java
index 9e35124c..fab67127 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407Constants.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407Constants.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import java.time.Duration;
 
-import org.apache.commons.pool2.impl.BaseObjectPoolConfig;
+import org.apache.commons.pool3.impl.BaseObjectPoolConfig;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407Fixture.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407Fixture.java
similarity index 95%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407Fixture.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407Fixture.java
index 0488bb22..3b756acd 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407Fixture.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407Fixture.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 public final class Pool407Fixture {
     // empty
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407NormalFactory.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407NormalFactory.java
similarity index 93%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407NormalFactory.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407NormalFactory.java
index 03ade541..d62079cc 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407NormalFactory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407NormalFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407NullObjectFactory.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407NullObjectFactory.java
similarity index 91%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407NullObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407NullObjectFactory.java
index eecf8d26..33fa7097 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407NullObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407NullObjectFactory.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407NullPoolableObjectFactory.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407NullPoolableObjectFactory.java
similarity index 94%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407NullPoolableObjectFactory.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407NullPoolableObjectFactory.java
index 3e54b965..8c303dc1 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407NullPoolableObjectFactory.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407NullPoolableObjectFactory.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 
 /**
  * Tests POOL-407.
diff --git a/src/test/java/org/apache/commons/pool2/pool407/Pool407Test.java b/src/test/java/org/apache/commons/pool3/pool407/Pool407Test.java
similarity index 98%
rename from src/test/java/org/apache/commons/pool2/pool407/Pool407Test.java
rename to src/test/java/org/apache/commons/pool3/pool407/Pool407Test.java
index 9e79b92d..99bdb1d0 100644
--- a/src/test/java/org/apache/commons/pool2/pool407/Pool407Test.java
+++ b/src/test/java/org/apache/commons/pool3/pool407/Pool407Test.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.commons.pool2.pool407;
+package org.apache.commons.pool3.pool407;
 
 import java.time.Duration;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool3.PooledObject;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedKeyedObjectPool.java b/src/test/java/org/apache/commons/pool3/proxy/AbstractTestProxiedKeyedObjectPool.java
similarity index 92%
rename from src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedKeyedObjectPool.java
rename to src/test/java/org/apache/commons/pool3/proxy/AbstractTestProxiedKeyedObjectPool.java
index 52bd1f39..462a1181 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedKeyedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/proxy/AbstractTestProxiedKeyedObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -25,14 +25,14 @@ import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.time.Duration;
 
-import org.apache.commons.pool2.BaseKeyedPooledObjectFactory;
-import org.apache.commons.pool2.KeyedObjectPool;
-import org.apache.commons.pool2.KeyedPooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.AbandonedConfig;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-import org.apache.commons.pool2.impl.GenericKeyedObjectPool;
-import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
+import org.apache.commons.pool3.BaseKeyedPooledObjectFactory;
+import org.apache.commons.pool3.KeyedObjectPool;
+import org.apache.commons.pool3.KeyedPooledObjectFactory;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.impl.AbandonedConfig;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPool;
+import org.apache.commons.pool3.impl.GenericKeyedObjectPoolConfig;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedObjectPool.java b/src/test/java/org/apache/commons/pool3/proxy/AbstractTestProxiedObjectPool.java
similarity index 92%
rename from src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedObjectPool.java
rename to src/test/java/org/apache/commons/pool3/proxy/AbstractTestProxiedObjectPool.java
index 55682d1d..de818cff 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/AbstractTestProxiedObjectPool.java
+++ b/src/test/java/org/apache/commons/pool3/proxy/AbstractTestProxiedObjectPool.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -25,14 +25,14 @@ import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.time.Duration;
 
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.ObjectPool;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.PooledObjectFactory;
-import org.apache.commons.pool2.impl.AbandonedConfig;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-import org.apache.commons.pool2.impl.GenericObjectPool;
-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.apache.commons.pool3.BasePooledObjectFactory;
+import org.apache.commons.pool3.ObjectPool;
+import org.apache.commons.pool3.PooledObject;
+import org.apache.commons.pool3.PooledObjectFactory;
+import org.apache.commons.pool3.impl.AbandonedConfig;
+import org.apache.commons.pool3.impl.DefaultPooledObject;
+import org.apache.commons.pool3.impl.GenericObjectPool;
+import org.apache.commons.pool3.impl.GenericObjectPoolConfig;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
rename to src/test/java/org/apache/commons/pool3/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
index 2f6e599f..f916ce8e 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
+++ b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedKeyedObjectPoolWithCglibProxy.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 public class TestProxiedKeyedObjectPoolWithCglibProxy extends
         AbstractTestProxiedKeyedObjectPool {
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
rename to src/test/java/org/apache/commons/pool3/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
index d5c4d82f..21faf831 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
+++ b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedKeyedObjectPoolWithJdkProxy.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 public class TestProxiedKeyedObjectPoolWithJdkProxy
         extends AbstractTestProxiedKeyedObjectPool {
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedObjectPoolWithCglibProxy.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java
rename to src/test/java/org/apache/commons/pool3/proxy/TestProxiedObjectPoolWithCglibProxy.java
index 2df83d0a..5eb09c12 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithCglibProxy.java
+++ b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedObjectPoolWithCglibProxy.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 public class TestProxiedObjectPoolWithCglibProxy extends
         AbstractTestProxiedObjectPool {
diff --git a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedObjectPoolWithJdkProxy.java
similarity index 96%
rename from src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java
rename to src/test/java/org/apache/commons/pool3/proxy/TestProxiedObjectPoolWithJdkProxy.java
index ec6bf618..c7470bcc 100644
--- a/src/test/java/org/apache/commons/pool2/proxy/TestProxiedObjectPoolWithJdkProxy.java
+++ b/src/test/java/org/apache/commons/pool3/proxy/TestProxiedObjectPoolWithJdkProxy.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.pool2.proxy;
+package org.apache.commons.pool3.proxy;
 
 public class TestProxiedObjectPoolWithJdkProxy
         extends AbstractTestProxiedObjectPool {