donaldp     2002/11/10 03:56:28

  Modified:    fortress/src/java/org/apache/excalibur/fortress
                        DefaultContainerManager.java
  Log:
  copy across services from context into the serviceManager
  
  Revision  Changes    Path
  1.36      +42 -5     
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/DefaultContainerManager.java
  
  Index: DefaultContainerManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/DefaultContainerManager.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- DefaultContainerManager.java      9 Nov 2002 23:33:12 -0000       1.35
  +++ DefaultContainerManager.java      10 Nov 2002 11:56:27 -0000      1.36
  @@ -63,6 +63,11 @@
   import org.apache.avalon.framework.service.DefaultServiceManager;
   import org.apache.avalon.framework.service.ServiceManager;
   import org.apache.excalibur.fortress.util.ContextManager;
  +import org.apache.excalibur.fortress.role.RoleManager;
  +import org.apache.excalibur.event.Queue;
  +import org.apache.excalibur.mpool.PoolManager;
  +import org.apache.excalibur.instrument.InstrumentManager;
  +import org.apache.excalibur.container.lifecycle.LifecycleExtensionManager;
   
   /**
    * The ContainerManager is a single point of contact to manage your Container
  @@ -146,7 +151,7 @@
       {
           try
           {
  -            return ( (LoggerManager)initParameters.get( LOGGER_MANAGER ) 
).getDefaultLogger();
  +            return ( (LoggerManager)initParameters.get( LoggerManager.ROLE ) 
).getDefaultLogger();
           }
           catch( ContextException ce )
           {
  @@ -201,9 +206,10 @@
                   throw new InitializationException( "Composable containers are not 
supported" );
               }
   
  -            final ServiceManager smanager =
  -                (ServiceManager)getContextEntry( managerContext, SERVICE_MANAGER );
  -            ContainerUtil.service( instance, new DefaultServiceManager( smanager ) 
);
  +            final ServiceManager serviceManager =
  +                createServiceManager( managerContext );
  +
  +            ContainerUtil.service( instance, serviceManager );
   
               final Configuration config =
                   (Configuration)getContextEntry( managerContext, CONFIGURATION );
  @@ -223,6 +229,37 @@
               final String message =
                   "Cannot set up container. Startup lifecycle failure";
               throw new InitializationException( message, e );
  +        }
  +    }
  +
  +    private ServiceManager createServiceManager( final Context managerContext )
  +    {
  +        final ServiceManager smanager =
  +            (ServiceManager)getContextEntry( managerContext, SERVICE_MANAGER );
  +        final DefaultServiceManager serviceManager = new DefaultServiceManager( 
smanager );
  +
  +        addService( Queue.ROLE, managerContext, serviceManager );
  +        addService( LoggerManager.ROLE, managerContext, serviceManager );
  +        addService( PoolManager.ROLE, managerContext, serviceManager );
  +        addService( InstrumentManager.ROLE, managerContext, serviceManager );
  +        addService( RoleManager.ROLE, managerContext, serviceManager );
  +        addService( LifecycleExtensionManager.ROLE, managerContext, serviceManager 
);
  +        serviceManager.makeReadOnly();
  +
  +        return serviceManager;
  +    }
  +
  +    private void addService( final String role,
  +                             final Context context,
  +                             final DefaultServiceManager serviceManager )
  +    {
  +        try
  +        {
  +            final Object object = context.get( role );
  +            serviceManager.put( role, object );
  +        }
  +        catch( ContextException e )
  +        {
           }
       }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>

Reply via email to