|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
The Pool Service extends the Factory Service by adding support for pooling instantiated objects. When a new instance is requested, the service first checks its pool if one is available. If the the pool is empty, a new object will be instantiated from the specified class. If only class name is given, the request to create an intance will be forwarded to the Factory Service.
For objects implementing the Recyclable interface, a recycle method will be called, when they are taken from the pool, and a dispose method, when they are returned to the pool.
Field Summary | |
static int |
DEFAULT_POOL_CAPACITY
The default pool capacity. |
static java.lang.String |
POOL_CAPACITY_KEY
The name of the pool capacity property |
static boolean |
POOL_DEBUG_DEFAULT
Default Value for debug mode |
static java.lang.String |
POOL_DEBUG_KEY
Are we running in debug mode? |
static java.lang.String |
SERVICE_NAME
The key under which this service is stored in TurbineServices. |
Method Summary | |
void |
clearPool()
Clears all instances from the pool. |
void |
clearPool(java.lang.String className)
Clears instances of a named class from the pool. |
int |
getCapacity(java.lang.String className)
Gets the capacity of the pool for a named class. |
java.lang.Object |
getInstance(java.lang.Class clazz)
Gets an instance of a specified class either from the pool or by instatiating from the class if the pool is empty. |
java.lang.Object |
getInstance(java.lang.Class clazz,
java.lang.Object[] params,
java.lang.String[] signature)
Gets an instance of a specified class either from the pool or by instatiating from the class if the pool is empty. |
java.lang.Object |
getInstance(java.lang.String className)
Gets an instance of a named class. |
java.lang.Object |
getInstance(java.lang.String className,
java.lang.ClassLoader loader)
Gets an instance of a named class using a specified class loader. |
java.lang.Object |
getInstance(java.lang.String className,
java.lang.ClassLoader loader,
java.lang.Object[] params,
java.lang.String[] signature)
Gets an instance of a named class using a specified class loader. |
java.lang.Object |
getInstance(java.lang.String className,
java.lang.Object[] params,
java.lang.String[] signature)
Gets an instance of a named class. |
int |
getSize(java.lang.String className)
Gets the current size of the pool for a named class. |
boolean |
isLoaderSupported(java.lang.String className)
Deprecated. Use TurbineFactory.isLoaderSupported(className) |
boolean |
putInstance(java.lang.Object instance)
Puts a used object back to the pool. |
void |
setCapacity(java.lang.String className,
int capacity)
Sets the capacity of the pool for a named class. |
Methods inherited from interface org.apache.turbine.services.Service |
getConfiguration, getName, getProperties, setName, setServiceBroker |
Methods inherited from interface org.apache.turbine.services.Initable |
getInit, init, init, setInitableBroker, shutdown |
Field Detail |
public static final java.lang.String SERVICE_NAME
public static final int DEFAULT_POOL_CAPACITY
public static final java.lang.String POOL_CAPACITY_KEY
public static final java.lang.String POOL_DEBUG_KEY
public static final boolean POOL_DEBUG_DEFAULT
Method Detail |
public java.lang.Object getInstance(java.lang.String className) throws TurbineException
className
- the name of the class.
TurbineException
- if instantiation fails.public java.lang.Object getInstance(java.lang.String className, java.lang.ClassLoader loader) throws TurbineException
Class loaders are supported only if the isLoaderSupported method returns true. Otherwise the loader parameter is ignored.
className
- the name of the class.loader
- the class loader.
TurbineException
- if instantiation fails.public java.lang.Object getInstance(java.lang.String className, java.lang.Object[] params, java.lang.String[] signature) throws TurbineException
className
- the name of the class.params
- an array containing the parameters of the constructor.signature
- an array containing the signature of the constructor.
TurbineException
- if instantiation fails.public java.lang.Object getInstance(java.lang.String className, java.lang.ClassLoader loader, java.lang.Object[] params, java.lang.String[] signature) throws TurbineException
Class loaders are supported only if the isLoaderSupported method returns true. Otherwise the loader parameter is ignored.
className
- the name of the class.loader
- the class loader.params
- an array containing the parameters of the constructor.signature
- an array containing the signature of the constructor.
TurbineException
- if instantiation fails.public boolean isLoaderSupported(java.lang.String className) throws TurbineException
className
- the name of the class.
TurbineException
- if test fails.public java.lang.Object getInstance(java.lang.Class clazz) throws TurbineException
clazz
- the class.
TurbineException
- if recycling fails.public java.lang.Object getInstance(java.lang.Class clazz, java.lang.Object[] params, java.lang.String[] signature) throws TurbineException
clazz
- the class.params
- an array containing the parameters of the constructor.signature
- an array containing the signature of the constructor.
TurbineException
- if recycling fails.public boolean putInstance(java.lang.Object instance)
instance
- the object instance to recycle.
public int getCapacity(java.lang.String className)
className
- the name of the class.public void setCapacity(java.lang.String className, int capacity)
className
- the name of the class.capacity
- the new capacity.public int getSize(java.lang.String className)
className
- the name of the class.public void clearPool(java.lang.String className)
className
- the name of the class.public void clearPool()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |