# Package org.apache.tomcat.dbcp.pool2.impl

- Interface Summary
  Interface | Description
  --- | ---
  CallStack | Strategy for obtaining and printing the current call stack.
  DefaultPooledObjectInfoMBean | The interface that defines the information about pooled objects that will be exposed via JMX.
  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.
  GenericKeyedObjectPoolMXBean<K> | Defines the methods that will be made available via JMX.
  GenericObjectPoolMXBean | Defines the methods that will be made available via JMX.

- Class Summary
  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.
  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 | Implementation of object that is used to provide information on pooled objects via JMX.
  EvictionConfig | This class is used by pool implementations to pass configuration information to `EvictionPolicy` instances.
  GenericKeyedObjectPool<K,​T> | A configurable `KeyedObjectPool` implementation.
  GenericKeyedObjectPoolConfig<T> | A simple structure encapsulating the configuration for a `GenericKeyedObjectPool`.
  GenericObjectPool<T> | A configurable `ObjectPool` implementation.
  GenericObjectPoolConfig<T> | A simple structure encapsulating the configuration for a `GenericObjectPool`.
  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`.