You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by br...@apache.org on 2003/07/17 00:46:23 UTC

cvs commit: cocoon-2.1/src/java/org/apache/cocoon/components LifecycleHelper.java

bruno       2003/07/16 15:46:21

  Modified:    src/java/org/apache/cocoon/components LifecycleHelper.java
  Log:
  support Serviceable
  
  Revision  Changes    Path
  1.2       +50 -2     cocoon-2.1/src/java/org/apache/cocoon/components/LifecycleHelper.java
  
  Index: LifecycleHelper.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/LifecycleHelper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LifecycleHelper.java	9 Mar 2003 00:08:46 -0000	1.1
  +++ LifecycleHelper.java	16 Jul 2003 22:46:20 -0000	1.2
  @@ -64,6 +64,8 @@
   import org.apache.avalon.framework.logger.LogKitLogger;
   import org.apache.avalon.framework.parameters.Parameterizable;
   import org.apache.avalon.framework.parameters.Parameters;
  +import org.apache.avalon.framework.service.ServiceManager;
  +import org.apache.avalon.framework.service.Serviceable;
   
   import org.apache.avalon.excalibur.component.RoleManageable;
   import org.apache.avalon.excalibur.component.RoleManager;
  @@ -96,6 +98,10 @@
        */
       private ComponentManager        m_componentManager;
   
  +    /** The service manager for this component.
  +     */
  +    private ServiceManager        m_serviceManager;
  +
       /** The configuration for this component.
        */
       private Configuration           m_configuration;
  @@ -136,6 +142,21 @@
           m_configuration = configuration;
       }
   
  +    public LifecycleHelper( final Logger logger,
  +            final Context context,
  +            final ServiceManager serviceManager,
  +            final RoleManager roles,
  +            final LogKitManager logkit,
  +            final Configuration configuration )
  +    {
  +        m_logger = logger;
  +        m_context = context;
  +        m_serviceManager = serviceManager;
  +        m_roles = roles;
  +        m_logkit = logkit;
  +        m_configuration = configuration;
  +    }
  +
       /**
        * Setup a component, including initialization and start.
        *
  @@ -165,6 +186,7 @@
           return setupComponent( component,
                   m_logger,
                   m_context,
  +                m_serviceManager,
                   m_componentManager,
                   m_roles,
                   m_logkit,
  @@ -209,6 +231,28 @@
               final boolean initializeAndStart )
           throws Exception
       {
  +        return setupComponent( component,
  +                logger,
  +                context,
  +                null,
  +                componentManager,
  +                roles,
  +                logkit,
  +                configuration,
  +                initializeAndStart);
  +    }
  +
  +    static Object setupComponent( final Object component,
  +            final Logger logger,
  +            final Context context,
  +            final ServiceManager serviceManager,
  +            final ComponentManager componentManager,
  +            final RoleManager roles,
  +            final LogKitManager logkit,
  +            final Configuration configuration,
  +            final boolean initializeAndStart )
  +        throws Exception
  +    {
           if( component instanceof LogEnabled )
           {
               Logger usedLogger;
  @@ -242,7 +286,11 @@
               ((Contextualizable)component).contextualize( context );
           }
   
  -        if( null != componentManager && component instanceof Composable )
  +        if( null != serviceManager && component instanceof Serviceable )
  +        {
  +            ((Serviceable)component).service( serviceManager );
  +        }
  +        else if( null != componentManager && component instanceof Composable )
           {
               ((Composable)component).compose( componentManager );
           }