Object pooling API.
         The org.apache.commons.pool 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:
      
        {@link org.apache.commons.pool.ObjectPoolFactory ObjectPoolFactory}
        defines a simple factory for ObjectPools, which may be
        useful for some applications.
      
         The pool package also provides a keyed pool interface,
         which pools instances of multiple types, accessed according to an
         arbitrary key. See
         {@link org.apache.commons.pool.KeyedObjectPool KeyedObjectPool},
         {@link org.apache.commons.pool.KeyedPoolableObjectFactory KeyedPoolableObjectFactory},
         and
         {@link org.apache.commons.pool.KeyedObjectPoolFactory KeyedObjectPoolFactory}.