# Package org.apache.commons.pool2.impl

package org.apache.commons.pool2.impl
Object pooling API implementations.

`GenericObjectPool` (`GenericKeyedObjectPool`) provides a more robust (but also more complicated) implementation of `ObjectPool` (`KeyedObjectPool`).

`SoftReferenceObjectPool` provides a `SoftReference` based `ObjectPool`.

See also the `org.apache.commons.pool2` package.

- Related Packages
  Package
  Description
  org.apache.commons.pool2
  Object pooling API.
  org.apache.commons.pool2.proxy
  Object pooling proxy implementation.
- Class
  Description
  AbandonedConfig
  Configuration settings for abandoned object removal.
  BaseGenericObjectPool<T>
  Base class that provides common functionality for `GenericObjectPool` and `GenericKeyedObjectPool`.
  BaseObjectPoolConfig<T>
  Provides the implementation for the common attributes shared by the sub-classes.
  CallStack
  Strategy for obtaining and printing the current call stack.
  CallStackUtils
  Utility methods for `CallStack`.
  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
  Implements providing information on pooled objects via JMX.
  DefaultPooledObjectInfoMBean
  The interface that defines the information about pooled objects that will be exposed via JMX.
  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. something other than `DefaultEvictionPolicy` for a pool, users must provide an implementation of this interface that provides the required eviction policy.
  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.
  NoOpCallStack
  CallStack strategy using no-op implementations of all functionality.
  PooledSoftReference<T>
  Extension of `DefaultPooledObject` to wrap pooled soft references.
  SecurityManagerCallStack
  A `CallStack` strategy using a `SecurityManager`.
  SoftReferenceObjectPool<T>
  A `SoftReference` based `ObjectPool`.
  ThrowableCallStack
  CallStack strategy that uses the stack trace from a `Throwable`.