org.apache.commons.pool.impl

Class StackObjectPool

Implemented Interfaces:
ObjectPool

public class StackObjectPool
extends BaseObjectPool
implements ObjectPool

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.

Version:
$Revision: 383290 $ $Date: 2006-03-05 02:00:15 -0500 (Sun, 05 Mar 2006) $
Authors:
Rodney Waldhoff
Dirk Verbeeck

Constructor Summary

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.

Method Summary

void
addObject()
Create an object, and place it into the pool.
Object
borrowObject()
void
clear()
void
close()
int
getNumActive()
int
getNumIdle()
void
invalidateObject(Object obj)
void
returnObject(Object obj)
void
setFactory(PoolableObjectFactory factory)

Methods inherited from class org.apache.commons.pool.BaseObjectPool

addObject, borrowObject, clear, close, getNumActive, getNumIdle, invalidateObject, returnObject, setFactory

Constructor Details

StackObjectPool

public StackObjectPool()

StackObjectPool

public StackObjectPool(int maxIdle)
Parameters:
maxIdle - cap on the number of "sleeping" instances in the pool

StackObjectPool

public StackObjectPool(int maxIdle,
                       int initIdleCapacity)
Parameters:
maxIdle - cap on the number of "sleeping" instances in the pool
initIdleCapacity - 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.
Parameters:
factory - the PoolableObjectFactory used to populate the pool

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.
Parameters:
factory - the PoolableObjectFactory used to populate the pool
maxIdle - 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.
Parameters:
factory - the PoolableObjectFactory used to populate the pool
maxIdle - cap on the number of "sleeping" instances in the pool
initIdleCapacity - initial size of the pool (this specifies the size of the container, it does not cause the pool to be pre-populated.)

Method Details

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.
Specified by:
addObject in interface ObjectPool
Overrides:
addObject in interface BaseObjectPool

borrowObject

public Object borrowObject()
            throws Exception
Specified by:
borrowObject in interface ObjectPool
Overrides:
borrowObject in interface BaseObjectPool

clear

public void clear()
Specified by:
clear in interface ObjectPool
Overrides:
clear in interface BaseObjectPool

close

public void close()
            throws Exception
Specified by:
close in interface ObjectPool
Overrides:
close in interface BaseObjectPool

getNumActive

public int getNumActive()
Specified by:
getNumActive in interface ObjectPool
Overrides:
getNumActive in interface BaseObjectPool

getNumIdle

public int getNumIdle()
Specified by:
getNumIdle in interface ObjectPool
Overrides:
getNumIdle in interface BaseObjectPool

invalidateObject

public void invalidateObject(Object obj)
            throws Exception
Specified by:
invalidateObject in interface ObjectPool
Overrides:
invalidateObject in interface BaseObjectPool

returnObject

public void returnObject(Object obj)
            throws Exception
Specified by:
returnObject in interface ObjectPool
Overrides:
returnObject in interface BaseObjectPool

setFactory

public void setFactory(PoolableObjectFactory factory)
            throws IllegalStateException
Specified by:
setFactory in interface ObjectPool
Overrides:
setFactory in interface BaseObjectPool

Copyright © 2001-2003 Apache Software Foundation. Documenation generated April 6 2007.