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/03/04 00:35:58 UTC
cvs commit: jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/service ServiceFactory.java package.html
mcconnell 02/03/03 15:35:58
Modified: src/scratchpad/org/apache/avalon/excalibur/service
ServiceFactory.java package.html
Log:
minor corrections for CM support
Revision Changes Path
1.3 +20 -10 jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/service/ServiceFactory.java
Index: ServiceFactory.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/service/ServiceFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ServiceFactory.java 3 Mar 2002 23:07:49 -0000 1.2
+++ ServiceFactory.java 3 Mar 2002 23:35:58 -0000 1.3
@@ -36,7 +36,6 @@
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.DefaultComponentManager;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.service.ServiceManager;
@@ -121,6 +120,25 @@
}
}
+ private ComponentManager createComponentManager( DependencyInfo[] dependencies ) throws ServiceException
+ {
+ Hashtable providers = new Hashtable();
+ try
+ {
+ for( int i=0; i<dependencies.length; i++ )
+ {
+ DependencyInfo info = dependencies[i];
+ providers.put( info.getRole(), getProvider( info ));
+ }
+ return new DefaultComponentManager( providers );
+ }
+ catch( Throwable e )
+ {
+ final String error = "Unexpected exception while attempting to create a ComponentManager.";
+ throw new ServiceException( error, e );
+ }
+ }
+
private Object getProvider( DependencyInfo info ) throws Exception
{
@@ -307,16 +325,8 @@
else if( m_object instanceof Composable ) try
{
if( m_verbose ) getLogger().debug( role + " composition" );
- DefaultComponentManager manager = new DefaultComponentManager();
DependencyInfo[] dependencies = info.getDependencies();
- for( int i=0; i<dependencies.length; i++ )
- {
- DependencyInfo dependency = dependencies[i];
- String dependency_role = dependency.getRole();
- UnitInfo block_info = m_registry.lookup( dependency );
- Object object = pipeline( block_info, dependency_role );
- manager.put( dependency_role, (Component) object );
- }
+ ComponentManager manager = createComponentManager( dependencies );
((Composable)m_object).compose( manager );
}
catch( Throwable e )
1.4 +1 -1 jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/service/package.html
Index: package.html
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/service/package.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- package.html 3 Mar 2002 23:07:49 -0000 1.3
+++ package.html 3 Mar 2002 23:35:58 -0000 1.4
@@ -138,7 +138,7 @@
(b) TRANSIENT, manager is a factory of transient service instances
(c) OTHER, (default) The container will check if the class implements
the org.apache.excalibur.mpool.Pool interface. If true, <code>lookup</code>
- and <code>release</code> invocations will be redirected to the pools <code>aquire</code> and
+ and <code>release</code> invocations will be redirected to the pools <code>acquire</code> and
<code>release</code> methods - otherwise, the class will be registered under the
TRANSIENT policy.
--></i></font>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>