You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2002/05/03 05:40:44 UTC
cvs commit: jakarta-avalon-excalibur/all/src/scratchpad/org/apache/avalon/excalibur/service AbstractManager.java
mcconnell 02/05/02 20:40:43
Modified: all/src/scratchpad/org/apache/avalon/excalibur/service
AbstractManager.java
Log:
no message
Revision Changes Path
1.5 +55 -53 jakarta-avalon-excalibur/all/src/scratchpad/org/apache/avalon/excalibur/service/AbstractManager.java
Index: AbstractManager.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/all/src/scratchpad/org/apache/avalon/excalibur/service/AbstractManager.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractManager.java 24 Mar 2002 09:56:41 -0000 1.4
+++ AbstractManager.java 3 May 2002 03:40:43 -0000 1.5
@@ -7,53 +7,56 @@
package org.apache.avalon.excalibur.service;
-import java.util.Hashtable;
+import java.util.Enumeration;
import java.util.Map;
+import java.util.Hashtable;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.ServiceException;
+
/**
- * Internal helper class the handles the functional requirements of
+ * Internal helper class the handles the functional requirements of
* both ComponetManager and ServiceManager.
*/
-class AbstractManager
+class AbstractManager
{
- /**
- * Hashtable containing service providers keyed by role name.
- * The manager use the providers in this table to aquire services
- * in response to <code>lookup</code> invocations. Provider
- * types fall into one of the following three catagories:
- *
- * <table>
- * <tr><td><b>Policy</b></td><td><b>Description</b></td><tr>
- * <tr><td>SINGLETON_LIFETIME_POLICY</td><td>
- * Service of the type singleton are distinguished by the fact
- * that they do not inherit from Pool or Transient. The singleton
- * provider object is a reference to the singleton service and is
- * return directly by the implemetation on invocation of lookup.
- * </td>
- * <tr><td>POOLED_LIFETIME_POLICY</td><td>
- * Pooled services implement the Pool interface. The service
- * resolves lookup aquires the pooled service by invoking
- * <code>checkout</code> on the pool implementation. Clients
- * using pooled services are required to release services using
- * the manager <code>release</code> method. The implementation will
- * attempt to locate the issuing pool and release the object on
- * behalf of the client.
- * </td>
- * <tr><td>TRANSIENT_LIFETIME_POLICY</td><td>
- * A transient provider is factory from which new instances are
- * created and pipelined following a invocation of <code>lookup</code>.
- * The invocing client is totally responsible for service disposal.
- * </td>
- */
+ /**
+ * Hashtable containing service providers keyed by role name.
+ * The manager use the providers in this table to aquire services
+ * in response to <code>lookup</code> invocations. Provider
+ * types fall into one of the following three catagories:
+ *
+ * <table>
+ * <tr><td><b>Policy</b></td><td><b>Description</b></td><tr>
+ * <tr><td>SINGLETON_LIFETIME_POLICY</td><td>
+ * Service of the type singleton are distinguished by the fact
+ * that they do not inherit from Pool or Transient. The singleton
+ * provider object is a reference to the singleton service and is
+ * return directly by the implemetation on invocation of lookup.
+ * </td>
+ * <tr><td>POOLED_LIFETIME_POLICY</td><td>
+ * Pooled services implement the Pool interface. The service
+ * resolves lookup aquires the pooled service by invoking
+ * <code>checkout</code> on the pool implementation. Clients
+ * using pooled services are required to release services using
+ * the manager <code>release</code> method. The implementation will
+ * attempt to locate the issuing pool and release the object on
+ * behalf of the client.
+ * </td>
+ * <tr><td>TRANSIENT_LIFETIME_POLICY</td><td>
+ * A transient provider is factory from which new instances are
+ * created and pipelined following a invocation of <code>lookup</code>.
+ * The invocing client is totally responsible for service disposal.
+ * </td>
+ */
private Map m_providers;
- /**
- * Internal table that maintains a mapping betyween pooled objects and
- * the issuing pool. The object is used as the key to lookup the pool
- * when handling object release.
- */
+ /**
+ * Internal table that maintains a mapping betyween pooled objects and
+ * the issuing pool. The object is used as the key to lookup the pool
+ * when handling object release.
+ */
private Hashtable m_pooled_table = new Hashtable();
public AbstractManager( Map providers )
@@ -63,15 +66,14 @@
public boolean has( String role )
{
- return ( m_providers.get( role ) != null );
+ return (m_providers.get( role ) != null );
}
public Object resolve( String role ) throws ServiceException
{
Object provider = m_providers.get( role );
- if( provider == null )
- throw new ServiceException(
- "Could not locate a provider for the role: " + role );
+ if( provider == null ) throw new ServiceException(
+ "Could not locate a provider for the role: " + role );
if( provider instanceof TransientProvider )
{
@@ -79,7 +81,7 @@
// return a transient instance
//
- return ( (TransientProvider)provider ).create();
+ return ((TransientProvider)provider).create( );
}
else if( provider instanceof PooledProvider )
{
@@ -90,7 +92,7 @@
Object object = null;
try
{
- object = ( (PooledProvider)provider ).acquire();
+ object = ((PooledProvider)provider).acquire( );
}
catch( Throwable e )
{
@@ -102,11 +104,11 @@
// it is invalid for a pool to provide the same object without
// it being released beforehand
- if( m_pooled_table.get( object ) != null )
+ if( m_pooled_table.get( object ) != null )
{
- final String error =
- "Manager has an existing reference to an aquired object from '"
- + role + "'.";
+ final String error =
+ "Manager has an existing reference to an aquired object from '"
+ + role + "'.";
throw new ServiceException( error );
}
m_pooled_table.put( object, provider );
@@ -119,21 +121,21 @@
// return a singleton service
//
- return ( (SingletonProvider)provider ).provide();
+ return ((SingletonProvider)provider).provide( );
}
}
- /**
- * Release a pooled object.
- * @param object a pooled object
- */
+ /**
+ * Release a pooled object.
+ * @param object a pooled object
+ */
public void disgard( Object object )
{
//
// release a pooled service
//
- PooledProvider provider = (PooledProvider)m_pooled_table.get( object );
+ PooledProvider provider = (PooledProvider) m_pooled_table.get( object );
if( provider != null ) provider.release( object );
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>