Package org.apache.commons.pool2
Object pooling API.
The org.apache.commons.pool2
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 pool
package itself doesn't define a specific object
pooling implementation, but rather a contract that implementations may
support in order to be fully interchangeable.
The pool
package separates the way in which instances are
pooled from the way in which they are created, resulting in a pair of
interfaces:
ObjectPool
- defines a simple object pooling interface, with methods for borrowing instances from and returning them to the pool.
PooledObjectFactory
- 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.
The pool
package also provides a keyed pool interface,
which pools instances of multiple types, accessed according to an
arbitrary key. See
KeyedObjectPool
and
KeyedPooledObjectFactory
.
-
Interface Summary Interface Description KeyedObjectPool<K,V> A "keyed" pooling interface.KeyedPooledObjectFactory<K,V> An interface defining life-cycle methods for instances to be served by aKeyedObjectPool
.ObjectPool<T> A pooling simple interface.PooledObject<T> Defines the wrapper that is used to track the additional information, such as state, for the pooled objects.PooledObjectFactory<T> An interface defining life-cycle methods for instances to be served by anObjectPool
.SwallowedExceptionListener Pools that unavoidably swallow exceptions may be configured with an instance of this listener so the user may receive notification of when this happens.TrackedUse This interface allows pooled objects to make information available about when and how they were used available to the object pool.UsageTracking<T> This interface may be implemented by an object pool to enable clients (primarily those clients that wrap pools to provide pools with extended features) to provide additional information to the pool relating to object using allowing more informed decisions and reporting to be made regarding abandoned objects. -
Class Summary Class Description BaseKeyedPooledObjectFactory<K,V> A base implementation ofKeyedPooledObjectFactory
.BaseObjectPool<T> A simple base implementation ofObjectPool
.BasePooledObjectFactory<T> A base implementation ofPoolableObjectFactory
.PoolUtils This class consists exclusively of static methods that operate on or return ObjectPool or KeyedObjectPool related interfaces.PoolUtils.ErodingFactor Encapsulate the logic for when the next poolable object should be discarded.PoolUtils.ErodingKeyedObjectPool<K,V> Decorates a keyed object pool, adding "eroding" behavior.PoolUtils.ErodingObjectPool<T> Decorates an object pool, adding "eroding" behavior.PoolUtils.ErodingPerKeyKeyedObjectPool<K,V> Extends ErodingKeyedObjectPool to allow erosion to take place on a per-key basis.PoolUtils.KeyedObjectPoolMinIdleTimerTask<K,V> Timer task that adds objects to the pool until the number of idle instances for the given key reaches the configured minIdle.PoolUtils.ObjectPoolMinIdleTimerTask<T> Timer task that adds objects to the pool until the number of idle instances reaches the configured minIdle.PoolUtils.SynchronizedKeyedObjectPool<K,V> A synchronized (thread-safe) KeyedObjectPool backed by the specified KeyedObjectPool.PoolUtils.SynchronizedKeyedPooledObjectFactory<K,V> A fully synchronized KeyedPooledObjectFactory that wraps a KeyedPooledObjectFactory and synchronizes access to the wrapped factory methods.PoolUtils.SynchronizedObjectPool<T> A synchronized (thread-safe) ObjectPool backed by the specified ObjectPool.PoolUtils.SynchronizedPooledObjectFactory<T> A fully synchronized PooledObjectFactory that wraps a PooledObjectFactory and synchronizes access to the wrapped factory methods.PoolUtils.TimerHolder Timer used to periodically check pools idle object count. -
Enum Summary Enum Description PooledObjectState Provides the possible states that aPooledObject
may be in.