Provides the default implementation of {@link EvictionPolicy} used by the
pools. Objects will be evicted if the following conditions are met:
<ul>
<li>the object has been idle longer than
{@link GenericObjectPool#getMinEvictableIdleTimeMillis()} /
{@link GenericKeyedObjectPool#getMinEvictableIdleTimeMillis()}</li>
<li>there are more than {@link GenericObjectPool#getMinIdle()} /
{@link GenericKeyedObjectPoolConfig#getMinIdlePerKey()} idle objects in
the pool and the object has been idle for longer than
{@link GenericObjectPool#getSoftMinEvictableIdleTimeMillis()} /
{@link GenericKeyedObjectPool#getSoftMinEvictableIdleTimeMillis()}
</ul>
This class is immutable and thread-safe.
Provides the default implementation of {@link EvictionPolicy} used by the pools. Objects will be evicted if the following conditions are met: <ul> <li>the object has been idle longer than {@link GenericObjectPool#getMinEvictableIdleTimeMillis()} / {@link GenericKeyedObjectPool#getMinEvictableIdleTimeMillis()}</li> <li>there are more than {@link GenericObjectPool#getMinIdle()} / {@link GenericKeyedObjectPoolConfig#getMinIdlePerKey()} idle objects in the pool and the object has been idle for longer than {@link GenericObjectPool#getSoftMinEvictableIdleTimeMillis()} / {@link GenericKeyedObjectPool#getSoftMinEvictableIdleTimeMillis()} </ul> This class is immutable and thread-safe.
@param <T> the type of objects in the pool