|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.pool.PoolUtils
public final class PoolUtils
This class consists exclusively of static methods that operate on or return ObjectPool or KeyedObjectPool related interfaces.
Constructor Summary | |
---|---|
PoolUtils()
PoolUtils instances should NOT be constructed in standard programming. |
Method Summary | |
---|---|
static ObjectPool |
adapt(KeyedObjectPool keyedPool)
Adapt a KeyedObjectPool instance to work where an ObjectPool is needed. |
static ObjectPool |
adapt(KeyedObjectPool keyedPool,
Object key)
Adapt a KeyedObjectPool instance to work where an ObjectPool is needed using the
specified key when delegating. |
static PoolableObjectFactory |
adapt(KeyedPoolableObjectFactory keyedFactory)
Adapt a KeyedPoolableObjectFactory instance to work where a PoolableObjectFactory is
needed. |
static PoolableObjectFactory |
adapt(KeyedPoolableObjectFactory keyedFactory,
Object key)
Adapt a KeyedPoolableObjectFactory instance to work where a PoolableObjectFactory is
needed using the specified key when delegating. |
static KeyedObjectPool |
adapt(ObjectPool pool)
Adapt an ObjectPool to work where an KeyedObjectPool is needed. |
static KeyedPoolableObjectFactory |
adapt(PoolableObjectFactory factory)
Adapt a PoolableObjectFactory instance to work where a KeyedPoolableObjectFactory is
needed. |
static KeyedObjectPool |
checkedPool(KeyedObjectPool keyedPool,
Class type)
Wraps a KeyedObjectPool and dynamically checks the type of objects borrowed and returned to the keyedPool. |
static ObjectPool |
checkedPool(ObjectPool pool,
Class type)
Wraps an ObjectPool and dynamically checks the type of objects borrowed and returned to the pool. |
static Map |
checkMinIdle(KeyedObjectPool keyedPool,
Collection keys,
int minIdle,
long period)
Periodically check the idle object count for each key in the Collection keys in the keyedPool. |
static TimerTask |
checkMinIdle(KeyedObjectPool keyedPool,
Object key,
int minIdle,
long period)
Periodically check the idle object count for the key in the keyedPool. |
static TimerTask |
checkMinIdle(ObjectPool pool,
int minIdle,
long period)
Periodically check the idle object count for the pool. |
static KeyedObjectPool |
erodingPool(KeyedObjectPool keyedPool)
Returns a pool that adaptively decreases it's size when idle objects are no longer needed. |
static KeyedObjectPool |
erodingPool(KeyedObjectPool keyedPool,
float factor)
Returns a pool that adaptively decreases it's size when idle objects are no longer needed. |
static KeyedObjectPool |
erodingPool(KeyedObjectPool keyedPool,
float factor,
boolean perKey)
Returns a pool that adaptively decreases it's size when idle objects are no longer needed. |
static ObjectPool |
erodingPool(ObjectPool pool)
Returns a pool that adaptively decreases it's size when idle objects are no longer needed. |
static ObjectPool |
erodingPool(ObjectPool pool,
float factor)
Returns a pool that adaptively decreases it's size when idle objects are no longer needed. |
static void |
prefill(KeyedObjectPool keyedPool,
Collection keys,
int count)
Call addObject(Object) on keyedPool with each key in keys for
count number of times. |
static void |
prefill(KeyedObjectPool keyedPool,
Object key,
int count)
Call addObject(Object) on keyedPool with key count
number of times. |
static void |
prefill(ObjectPool pool,
int count)
Call addObject() on pool count number of times. |
static KeyedObjectPool |
synchronizedPool(KeyedObjectPool keyedPool)
Returns a synchronized (thread-safe) KeyedObjectPool backed by the specified KeyedObjectPool. |
static ObjectPool |
synchronizedPool(ObjectPool pool)
Returns a synchronized (thread-safe) ObjectPool backed by the specified ObjectPool. |
static KeyedPoolableObjectFactory |
synchronizedPoolableFactory(KeyedPoolableObjectFactory keyedFactory)
Returns a synchronized (thread-safe) KeyedPoolableObjectFactory backed by the specified KeyedPoolableObjectFactory. |
static PoolableObjectFactory |
synchronizedPoolableFactory(PoolableObjectFactory factory)
Returns a synchronized (thread-safe) PoolableObjectFactory backed by the specified PoolableObjectFactory. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PoolUtils()
Method Detail |
---|
public static PoolableObjectFactory adapt(KeyedPoolableObjectFactory keyedFactory) throws IllegalArgumentException
KeyedPoolableObjectFactory
instance to work where a PoolableObjectFactory
is
needed. This method is the equivalent of calling
PoolUtils.adapt(aKeyedPoolableObjectFactory, new Object())
.
keyedFactory
- the KeyedPoolableObjectFactory
to delegate to.
PoolableObjectFactory
that delegates to keyedFactory
with an internal key.
IllegalArgumentException
- when keyedFactory
is null
.adapt(KeyedPoolableObjectFactory, Object)
public static PoolableObjectFactory adapt(KeyedPoolableObjectFactory keyedFactory, Object key) throws IllegalArgumentException
KeyedPoolableObjectFactory
instance to work where a PoolableObjectFactory
is
needed using the specified key
when delegating.
keyedFactory
- the KeyedPoolableObjectFactory
to delegate to.key
- the key to use when delegating.
PoolableObjectFactory
that delegates to keyedFactory
with the specified key.
IllegalArgumentException
- when keyedFactory
or key
is null
.adapt(KeyedPoolableObjectFactory)
public static KeyedPoolableObjectFactory adapt(PoolableObjectFactory factory) throws IllegalArgumentException
PoolableObjectFactory
instance to work where a KeyedPoolableObjectFactory
is
needed. The key is ignored.
factory
- the PoolableObjectFactory
to delegate to.
KeyedPoolableObjectFactory
that delegates to factory
ignoring the key.
IllegalArgumentException
- when factory
is null
.public static ObjectPool adapt(KeyedObjectPool keyedPool) throws IllegalArgumentException
KeyedObjectPool
instance to work where an ObjectPool
is needed. This is the
equivalent of calling PoolUtils.adapt(aKeyedObjectPool, new Object())
.
keyedPool
- the KeyedObjectPool
to delegate to.
ObjectPool
that delegates to keyedPool
with an internal key.
IllegalArgumentException
- when keyedPool
is null
.adapt(KeyedObjectPool, Object)
public static ObjectPool adapt(KeyedObjectPool keyedPool, Object key) throws IllegalArgumentException
KeyedObjectPool
instance to work where an ObjectPool
is needed using the
specified key
when delegating.
keyedPool
- the KeyedObjectPool
to delegate to.key
- the key to use when delegating.
ObjectPool
that delegates to keyedPool
with the specified key.
IllegalArgumentException
- when keyedPool
or key
is null
.adapt(KeyedObjectPool)
public static KeyedObjectPool adapt(ObjectPool pool) throws IllegalArgumentException
ObjectPool
to work where an KeyedObjectPool
is needed.
The key is ignored.
pool
- the ObjectPool
to delegate to.
KeyedObjectPool
that delegates to pool
ignoring the key.
IllegalArgumentException
- when pool
is null
.public static ObjectPool checkedPool(ObjectPool pool, Class type)
ObjectPool
and dynamically checks the type of objects borrowed and returned to the pool.
If an object is passed to the pool that isn't of type type
a ClassCastException
will be thrown.
pool
- the pool to enforce type safety ontype
- the class type to enforce.
ObjectPool
that will only allow objects of type
public static KeyedObjectPool checkedPool(KeyedObjectPool keyedPool, Class type)
KeyedObjectPool
and dynamically checks the type of objects borrowed and returned to the keyedPool.
If an object is passed to the keyedPool that isn't of type type
a ClassCastException
will be thrown.
keyedPool
- the keyedPool to enforce type safety ontype
- the class type to enforce.
KeyedObjectPool
that will only allow objects of type
public static TimerTask checkMinIdle(ObjectPool pool, int minIdle, long period) throws IllegalArgumentException
ObjectPool.addObject()
then no more checks will be performed.
pool
- the pool to check periodically.minIdle
- if the ObjectPool.getNumIdle()
is less than this then add an idle object.period
- the frequency to check the number of idle objects in a pool, see
Timer.schedule(TimerTask, long, long)
.
TimerTask
that will periodically check the pools idle object count.
IllegalArgumentException
- when pool
is null
or
when minIdle
is negative or when period
isn't
valid for Timer.schedule(TimerTask, long, long)
.public static TimerTask checkMinIdle(KeyedObjectPool keyedPool, Object key, int minIdle, long period) throws IllegalArgumentException
KeyedObjectPool.addObject(Object)
then no more checks for that key
will be performed.
keyedPool
- the keyedPool to check periodically.key
- the key to check the idle count of.minIdle
- if the KeyedObjectPool.getNumIdle(Object)
is less than this then add an idle object.period
- the frequency to check the number of idle objects in a keyedPool, see
Timer.schedule(TimerTask, long, long)
.
TimerTask
that will periodically check the pools idle object count.
IllegalArgumentException
- when keyedPool
, key
is null
or
when minIdle
is negative or when period
isn't
valid for Timer.schedule(TimerTask, long, long)
.public static Map checkMinIdle(KeyedObjectPool keyedPool, Collection keys, int minIdle, long period) throws IllegalArgumentException
Collection
keys
in the keyedPool.
At most one idle object will be added per period.
keyedPool
- the keyedPool to check periodically.keys
- a collection of keys to check the idle object count.minIdle
- if the KeyedObjectPool.getNumIdle(Object)
is less than this then add an idle object.period
- the frequency to check the number of idle objects in a keyedPool, see
Timer.schedule(TimerTask, long, long)
.
Map
of key and TimerTask
pairs that will periodically check the pools idle object count.
IllegalArgumentException
- when keyedPool
, keys
, or any of the values in the
collection is null
or when minIdle
is negative or when period
isn't
valid for Timer.schedule(TimerTask, long, long)
.checkMinIdle(KeyedObjectPool, Object, int, long)
public static void prefill(ObjectPool pool, int count) throws Exception, IllegalArgumentException
addObject()
on pool
count
number of times.
pool
- the pool to prefill.count
- the number of idle objects to add.
Exception
- when ObjectPool.addObject()
fails.
IllegalArgumentException
- when pool
is null
.public static void prefill(KeyedObjectPool keyedPool, Object key, int count) throws Exception, IllegalArgumentException
addObject(Object)
on keyedPool
with key
count
number of times.
keyedPool
- the keyedPool to prefill.key
- the key to add objects for.count
- the number of idle objects to add for key
.
Exception
- when KeyedObjectPool.addObject(Object)
fails.
IllegalArgumentException
- when keyedPool
or key
is null
.public static void prefill(KeyedObjectPool keyedPool, Collection keys, int count) throws Exception, IllegalArgumentException
addObject(Object)
on keyedPool
with each key in keys
for
count
number of times. This has the same effect as calling
prefill(KeyedObjectPool, Object, int)
for each key in the keys
collection.
keyedPool
- the keyedPool to prefill.keys
- Collection
of keys to add objects for.count
- the number of idle objects to add for each key
.
Exception
- when KeyedObjectPool.addObject(Object)
fails.
IllegalArgumentException
- when keyedPool
, keys
, or
any value in keys
is null
.prefill(KeyedObjectPool, Object, int)
public static ObjectPool synchronizedPool(ObjectPool pool)
Note:
This should not be used on pool implementations that already provide proper synchronization
such as the pools provided in the Commons Pool library. Wrapping a pool that
waits
for poolable objects to be returned before allowing another one to be
borrowed with another layer of synchronization will cause liveliness issues or a deadlock.
pool
- the ObjectPool to be "wrapped" in a synchronized ObjectPool.
public static KeyedObjectPool synchronizedPool(KeyedObjectPool keyedPool)
Note:
This should not be used on pool implementations that already provide proper synchronization
such as the pools provided in the Commons Pool library. Wrapping a pool that
waits
for poolable objects to be returned before allowing another one to be
borrowed with another layer of synchronization will cause liveliness issues or a deadlock.
keyedPool
- the KeyedObjectPool to be "wrapped" in a synchronized KeyedObjectPool.
public static PoolableObjectFactory synchronizedPoolableFactory(PoolableObjectFactory factory)
factory
- the PoolableObjectFactory to be "wrapped" in a synchronized PoolableObjectFactory.
public static KeyedPoolableObjectFactory synchronizedPoolableFactory(KeyedPoolableObjectFactory keyedFactory)
keyedFactory
- the KeyedPoolableObjectFactory to be "wrapped" in a synchronized KeyedPoolableObjectFactory.
public static ObjectPool erodingPool(ObjectPool pool)
pool
- the ObjectPool to be decorated so it shrinks it's idle count when possible.
erodingPool(ObjectPool, float)
public static ObjectPool erodingPool(ObjectPool pool, float factor)
The factor parameter provides a mechanism to tweak the rate at which the pool tries to shrink it's size. Values between 0 and 1 cause the pool to try to shrink it's size more often. Values greater than 1 cause the pool to less frequently try to shrink it's size.
pool
- the ObjectPool to be decorated so it shrinks it's idle count when possible.factor
- a positive value to scale the rate at which the pool tries to reduce it's size.
If 0 < factor < 1 then the pool shrinks more aggressively.
If 1 < factor then the pool shrinks less aggressively.
erodingPool(ObjectPool)
public static KeyedObjectPool erodingPool(KeyedObjectPool keyedPool)
keyedPool
- the KeyedObjectPool to be decorated so it shrinks it's idle count when
possible.
erodingPool(KeyedObjectPool, float)
,
erodingPool(KeyedObjectPool, float, boolean)
public static KeyedObjectPool erodingPool(KeyedObjectPool keyedPool, float factor)
The factor parameter provides a mechanism to tweak the rate at which the pool tries to shrink it's size. Values between 0 and 1 cause the pool to try to shrink it's size more often. Values greater than 1 cause the pool to less frequently try to shrink it's size.
keyedPool
- the KeyedObjectPool to be decorated so it shrinks it's idle count when
possible.factor
- a positive value to scale the rate at which the pool tries to reduce it's size.
If 0 < factor < 1 then the pool shrinks more aggressively.
If 1 < factor then the pool shrinks less aggressively.
erodingPool(KeyedObjectPool, float, boolean)
public static KeyedObjectPool erodingPool(KeyedObjectPool keyedPool, float factor, boolean perKey)
The factor parameter provides a mechanism to tweak the rate at which the pool tries to shrink it's size. Values between 0 and 1 cause the pool to try to shrink it's size more often. Values greater than 1 cause the pool to less frequently try to shrink it's size.
The perKey parameter determines if the pool shrinks on a whole pool basis or a per key basis. When perKey is false, the keys do not have an effect on the rate at which the pool tries to shrink it's size. When perKey is true, each key is shrunk independently.
keyedPool
- the KeyedObjectPool to be decorated so it shrinks it's idle count when
possible.factor
- a positive value to scale the rate at which the pool tries to reduce it's size.
If 0 < factor < 1 then the pool shrinks more aggressively.
If 1 < factor then the pool shrinks less aggressively.perKey
- when true, each key is treated independently.
erodingPool(KeyedObjectPool)
,
erodingPool(KeyedObjectPool, float)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |