# All Classes

- All Classes Interface Summary Class Summary Enum Summary
  Class | Description
  --- | ---
  AbandonedConfig | Configuration settings for abandoned object removal.
  BaseGenericObjectPool<T> | Base class that provides common functionality for `GenericObjectPool` and `GenericKeyedObjectPool`.
  BaseKeyedPooledObjectFactory<K,​V> | A base implementation of `KeyedPooledObjectFactory`.
  BaseObject | A base class for common functionality.
  BaseObjectPool<T> | A simple base implementation of `ObjectPool`.
  BaseObjectPoolConfig<T> | Provides the implementation for the common attributes shared by the sub-classes.
  BasePooledObjectFactory<T> | A base implementation of `PoolableObjectFactory`.
  CallStack | Strategy for obtaining and printing the current call stack.
  CallStackUtils | Utility methods for `CallStack`.
  CglibProxySource<T> | Provides proxy objects using CGLib.
  DefaultEvictionPolicy<T> | Provides the default implementation of `EvictionPolicy` used by the pools.
  DefaultPooledObject<T> | This wrapper is used to track the additional information, such as state, for the pooled objects.
  DefaultPooledObjectInfo | Implementation of object that is used to provide information on pooled objects via JMX.
  DefaultPooledObjectInfoMBean | The interface that defines the information about pooled objects that will be exposed via JMX.
  DestroyMode | Destroy context provided to object factories via `destroyObject` and `invalidateObject` methods.
  EvictionConfig | This class is used by pool implementations to pass configuration information to `EvictionPolicy` instances.
  EvictionPolicy<T> | To provide a custom eviction policy (i.e.
  GenericKeyedObjectPool<K,​T> | A configurable `KeyedObjectPool` implementation.
  GenericKeyedObjectPoolConfig<T> | A simple structure encapsulating the configuration for a `GenericKeyedObjectPool`.
  GenericKeyedObjectPoolMXBean<K> | Defines the methods that will be made available via JMX.
  GenericObjectPool<T> | A configurable `ObjectPool` implementation.
  GenericObjectPoolConfig<T> | A simple structure encapsulating the configuration for a `GenericObjectPool`.
  GenericObjectPoolMXBean | Defines the methods that will be made available via JMX.
  JdkProxySource<T> | Provides proxy objects using Java reflection.
  KeyedObjectPool<K,​V> | A "keyed" pooling interface.
  KeyedPooledObjectFactory<K,​V> | An interface defining life-cycle methods for instances to be served by a `KeyedObjectPool`.
  NoOpCallStack | CallStack strategy using no-op implementations of all functionality.
  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 an `ObjectPool`.
  PooledObjectState | Provides all possible states of a `PooledObject`.
  PooledSoftReference<T> | Extension of `DefaultPooledObject` to wrap pooled soft references.
  PoolUtils | This class consists exclusively of static methods that operate on or return ObjectPool or KeyedObjectPool related interfaces.
  ProxiedKeyedObjectPool<K,​V> | Create a new keyed object pool where the pooled objects are wrapped in proxies allowing better control of pooled objects and in particular the prevention of the continued use of an object by a client after that client returns the object to the pool.
  ProxiedObjectPool<T> | Create a new object pool where the pooled objects are wrapped in proxies allowing better control of pooled objects and in particular the prevention of the continued use of an object by a client after that client returns the object to the pool.
  SecurityManagerCallStack | A `CallStack` strategy using a `SecurityManager`.
  SoftReferenceObjectPool<T> | A `SoftReference` based `ObjectPool`.
  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.
  ThrowableCallStack | CallStack strategy that uses the stack trace from a `Throwable`.
  TrackedUse | 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.