donaldp     2002/06/22 19:55:23

  Modified:    containerkit/src/java/org/apache/excalibur/containerkit/kernel
                        AbstractServiceKernel.java ComponentEntry.java
  Log:
  STart to touch up container.
  
  Revision  Changes    Path
  1.3       +45 -9     
jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel/AbstractServiceKernel.java
  
  Index: AbstractServiceKernel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel/AbstractServiceKernel.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractServiceKernel.java        18 Jun 2002 08:13:18 -0000      1.2
  +++ AbstractServiceKernel.java        23 Jun 2002 02:55:23 -0000      1.3
  @@ -8,8 +8,10 @@
   package org.apache.excalibur.containerkit.kernel;
   
   import java.util.Arrays;
  +import java.util.Collection;
   import java.util.HashMap;
   import java.util.List;
  +import java.util.Iterator;
   import org.apache.avalon.excalibur.i18n.ResourceManager;
   import org.apache.avalon.excalibur.i18n.Resources;
   import org.apache.avalon.framework.activity.Initializable;
  @@ -19,6 +21,7 @@
   import org.apache.excalibur.containerkit.dependency.DependencyGraph;
   import org.apache.excalibur.containerkit.lifecycle.LifecycleHelper;
   import org.apache.excalibur.containerkit.lifecycle.ResourceProvider;
  +import org.apache.excalibur.containerkit.metadata.ComponentMetaData;
   
   /**
    *
  @@ -69,22 +72,24 @@
       protected final void startupAllComponents()
           throws Exception
       {
  -        //final String[] order = DependencyGraph.walkGraph( true, components 
);
  -        //processComponents( true, order );
  +        final String[] order =
  +            DependencyGraph.walkGraph( true, getCompnentMetaDatas() );
  +        processComponents( true, order );
       }
   
       protected final void shutdownAllComponents()
           throws Exception
       {
  -//        final String[] order = DependencyGraph.walkGraph( false, 
components );
  -//        processComponents( false, order );
  +        final String[] order =
  +            DependencyGraph.walkGraph( false, getCompnentMetaDatas() );
  +        processComponents( false, order );
       }
   
       protected final void startupComponent( final String name )
           throws Exception
       {
  -//        final String[] order = DependencyGraph.walkGraph( false, 
components );
  -//        processComponents( false, order );
  +        //        final String[] order = DependencyGraph.walkGraph( false, 
components );
  +        //        processComponents( false, order );
       }
   
       protected final void shutdownComponent( final String name )
  @@ -93,6 +98,28 @@
       }
   
       /**
  +     * Return the array of meta data for set fo components.
  +     *
  +     * @return the array of meta data for set fo components.
  +     */
  +    private ComponentMetaData[] getCompnentMetaDatas()
  +    {
  +        final Collection entrys = m_entrys.values();
  +        final int size = entrys.size();
  +        final ComponentMetaData[] components = new ComponentMetaData[ size ];
  +
  +        int i = 0;
  +        final Iterator iterator = entrys.iterator();
  +        while( iterator.hasNext() )
  +        {
  +            final ComponentEntry entry = (ComponentEntry)iterator.next();
  +            components[ i++ ] = entry.getMetaData();
  +        }
  +
  +        return components;
  +    }
  +
  +    /**
        * Process a whole assembly through a lifecycle phase
        * (ie startup or shutdown). The components should be processed
        * in order specified by the dependency graph.
  @@ -131,12 +158,21 @@
                                      final boolean startup )
           throws Exception
       {
  +        final ComponentEntry entry =
  +            (ComponentEntry)m_entrys.get( name );
  +
  +        if( startup == entry.isActive() )
  +        {
  +            //If component is already started and we said start
  +            //or the component is already stopped and we said stop
  +            //then skip it.
  +            return;
  +        }
  +
           processComponentNotice( startup, name, false );
   
           try
           {
  -            final ComponentEntry entry =
  -                (ComponentEntry)m_entrys.get( name );
               if( startup )
               {
                   final Object object =
  
  
  
  1.2       +7 -2      
jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel/ComponentEntry.java
  
  Index: ComponentEntry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel/ComponentEntry.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ComponentEntry.java       18 Jun 2002 08:13:18 -0000      1.1
  +++ ComponentEntry.java       23 Jun 2002 02:55:23 -0000      1.2
  @@ -7,8 +7,8 @@
    */
   package org.apache.excalibur.containerkit.kernel;
   
  -import org.apache.excalibur.containerkit.metadata.ComponentMetaData;
   import org.apache.avalon.framework.configuration.Configuration;
  +import org.apache.excalibur.containerkit.metadata.ComponentMetaData;
   
   /**
    * This is the structure that Components are contained within when
  @@ -69,5 +69,10 @@
       public void setObject( final Object object )
       {
           m_object = object;
  +    }
  +
  +    public boolean isActive()
  +    {
  +        return ( null != getObject() );
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to