org.apache.commons.pool.impl
Class StackObjectPool
- ObjectPool
public class StackObjectPool
A simple,
Stack
-based
ObjectPool
implementation.
Given a
PoolableObjectFactory
, this class will maintain
a simple pool of instances. A finite number of "sleeping"
or idle instances is enforced, but when the pool is
empty, new instances are created to support the new load.
Hence this class places no limit on the number of "active"
instances created by the pool, but is quite useful for
re-using
Objects without introducing
artificial limits.
$Revision: 1.15 $ $Date: 2004/02/28 11:46:33 $StackObjectPool() - Create a new pool using
no factory.
|
StackObjectPool(int maxIdle) - Create a new pool using
no factory.
|
StackObjectPool(int maxIdle, int initIdleCapacity) - Create a new pool using
no factory.
|
StackObjectPool(PoolableObjectFactory factory) - Create a new StackObjectPool using
the specified factory to create new instances.
|
StackObjectPool(PoolableObjectFactory factory, int maxIdle) - Create a new SimpleObjectPool using
the specified factory to create new instances,
capping the number of "sleeping" instances to max
|
StackObjectPool(PoolableObjectFactory factory, int maxIdle, int initIdleCapacity) - Create a new SimpleObjectPool using
the specified factory to create new instances,
capping the number of "sleeping" instances to max,
and initially allocating a container capable of containing
at least init instances.
|
void | addObject() - Create an object, and place it into the pool.
|
Object | borrowObject() - Obtain an instance from my pool.
|
void | clear() - Clears any objects sitting idle in the pool, releasing any
associated resources (optional operation).
|
void | close() - Close this pool, and free any resources associated with it.
|
int | getNumActive() - Return the number of instances
currently borrowed from my pool
(optional operation).
|
int | getNumIdle() - Return the number of instances
currently idle in my pool (optional operation).
|
void | invalidateObject(Object obj) - Invalidates an object from the pool
By contract, obj MUST have been obtained
using
borrowObject
or a related method as defined in an implementation
or sub-interface.
|
void | returnObject(Object obj) - Return an instance to my pool.
|
void | setFactory(PoolableObjectFactory factory) - Sets the
factory I use
to create new instances (optional operation).
|
StackObjectPool
public StackObjectPool()
Create a new pool using
no factory. Clients must first populate the pool
using
returnObject(java.lang.Object)
before they can be
borrowed
.
StackObjectPool
public StackObjectPool(int maxIdle)
Create a new pool using
no factory. Clients must first populate the pool
using
returnObject(java.lang.Object)
before they can be
borrowed
.
maxIdle
- cap on the number of "sleeping" instances in the pool
StackObjectPool
public StackObjectPool(int maxIdle,
int initIdleCapacity)
Create a new pool using
no factory. Clients must first populate the pool
using
returnObject(java.lang.Object)
before they can be
borrowed
.
maxIdle
- cap on the number of "sleeping" instances in the poolinitIdleCapacity
- initial size of the pool (this specifies the size of the container,
it does not cause the pool to be pre-populated.)
StackObjectPool
public StackObjectPool(PoolableObjectFactory factory)
Create a new StackObjectPool using
the specified factory to create new instances.
StackObjectPool
public StackObjectPool(PoolableObjectFactory factory,
int maxIdle)
Create a new SimpleObjectPool using
the specified factory to create new instances,
capping the number of "sleeping" instances to max
factory
- the PoolableObjectFactory
used to populate the poolmaxIdle
- cap on the number of "sleeping" instances in the pool
StackObjectPool
public StackObjectPool(PoolableObjectFactory factory,
int maxIdle,
int initIdleCapacity)
Create a new SimpleObjectPool using
the specified factory to create new instances,
capping the number of "sleeping" instances to max,
and initially allocating a container capable of containing
at least init instances.
factory
- the PoolableObjectFactory
used to populate the poolmaxIdle
- cap on the number of "sleeping" instances in the poolinitIdleCapacity
- initial size of the pool (this specifies the size of the container,
it does not cause the pool to be pre-populated.)
addObject
public void addObject()
throws Exception
Create an object, and place it into the pool.
addObject() is useful for "pre-loading" a pool with idle objects.
- addObject in interface ObjectPool
- addObject in interface BaseObjectPool
borrowObject
public Object borrowObject()
throws Exception
Obtain an instance from my pool.
By contract, clients MUST return
the borrowed instance using
returnObject
or a related method as defined in an implementation
or sub-interface.
The behaviour of this method when the pool has been exhausted
is not specified (although it may be specified by implementations).
- borrowObject in interface ObjectPool
- borrowObject in interface BaseObjectPool
- an instance from my pool.
clear
public void clear()
Clears any objects sitting idle in the pool, releasing any
associated resources (optional operation).
- clear in interface ObjectPool
- clear in interface BaseObjectPool
getNumActive
public int getNumActive()
Return the number of instances
currently borrowed from my pool
(optional operation).
- getNumActive in interface ObjectPool
- getNumActive in interface BaseObjectPool
- the number of instances currently borrowed in my pool
getNumIdle
public int getNumIdle()
Return the number of instances
currently idle in my pool (optional operation).
This may be considered an approximation of the number
of objects that can be
borrowed
without creating any new instances.
- getNumIdle in interface ObjectPool
- getNumIdle in interface BaseObjectPool
- the number of instances currently idle in my pool
invalidateObject
public void invalidateObject(Object obj)
throws Exception
Invalidates an object from the pool
By contract,
obj MUST have been obtained
using
borrowObject
or a related method as defined in an implementation
or sub-interface.
This method should be used when an object that has been borrowed
is determined (due to an exception or other problem) to be invalid.
If the connection should be validated before or after borrowing,
then the
PoolableObjectFactory.validateObject(Object)
method should be
used instead.
- invalidateObject in interface ObjectPool
- invalidateObject in interface BaseObjectPool
obj
- a borrowed
instance to be returned.
returnObject
public void returnObject(Object obj)
throws Exception
Return an instance to my pool.
By contract,
obj MUST have been obtained
using
borrowObject
or a related method as defined in an implementation
or sub-interface.
- returnObject in interface ObjectPool
- returnObject in interface BaseObjectPool
obj
- a borrowed
instance to be returned.
Copyright © 2001-2003 Apache Software Foundation. Documenation generated March 31 2006.