Package org.apache.axis.transport.jms
Class JMSConnectorManager.ShareableObjectPool
- java.lang.Object
-
- org.apache.axis.transport.jms.JMSConnectorManager.ShareableObjectPool
-
- Enclosing class:
- JMSConnectorManager
public class JMSConnectorManager.ShareableObjectPool extends java.lang.Object
A simple non-blocking pool impl for objects that can be shared. Only a ref count is necessary to prevent collisions at shutdown. Todo: max size, cleanup stale connections
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
JMSConnectorManager.ShareableObjectPool.ReferenceCountedObject
Wrapper to track the use count of an object
-
Constructor Summary
Constructors Constructor Description ShareableObjectPool()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addObject(java.lang.Object obj)
Adds the object to the pool, if not already addedjava.util.Set
getElements()
void
release(java.lang.Object obj)
Decrements the connector's reference countvoid
removeObject(java.lang.Object obj)
void
removeObject(java.lang.Object obj, long waitTime)
Removes the object from the pool.void
reserve(java.lang.Object obj)
Marks the connector as in use by incrementing the connector's reference countint
size()
-
-
-
Method Detail
-
addObject
public void addObject(java.lang.Object obj)
Adds the object to the pool, if not already added
-
removeObject
public void removeObject(java.lang.Object obj, long waitTime)
Removes the object from the pool. If the object is reserved, waits the specified time before forcibly removing Todo: check expirations with the next request instead of holding up the current request
-
removeObject
public void removeObject(java.lang.Object obj)
-
reserve
public void reserve(java.lang.Object obj) throws java.lang.Exception
Marks the connector as in use by incrementing the connector's reference count- Throws:
java.lang.Exception
-
release
public void release(java.lang.Object obj)
Decrements the connector's reference count
-
getElements
public java.util.Set getElements()
-
size
public int size()
-
-