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]>