You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/06/23 08:57:19 UTC
cvs commit: jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/dependency DependencyMap.java
donaldp 2002/06/22 23:57:19
Modified: containerkit/src/java/org/apache/excalibur/containerkit/dependency
DependencyMap.java
Log:
If looking for consumers of service then walk child dependencyMaps aswell.
Revision Changes Path
1.3 +39 -30 jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/dependency/DependencyMap.java
Index: DependencyMap.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/dependency/DependencyMap.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DependencyMap.java 23 Jun 2002 06:49:15 -0000 1.2
+++ DependencyMap.java 23 Jun 2002 06:57:19 -0000 1.3
@@ -29,6 +29,12 @@
private final DependencyMap m_parent;
/**
+ * The child {@link DependencyMap} objects.
+ * Possible consumers of services in this assembly.
+ */
+ private final ArrayList m_children = new ArrayList();
+
+ /**
* The set of components in assembly.
* Used when searching for providers/consumers.
*/
@@ -44,19 +50,16 @@
m_parent = parent;
}
+ /**
+ * Add a component to current dependency graph.
+ *
+ * @param component the component
+ */
public void add( final ComponentMetaData component )
{
m_components.add( component );
}
- public void addAll( final ComponentMetaData[] components )
- {
- for( int i = 0; i < components.length; i++ )
- {
- m_components.add( components[ i ] );
- }
- }
-
/**
* Get the serilized graph of {@link ComponentMetaData} objects
* required when starting up all the components. This makes sure
@@ -111,14 +114,14 @@
* Get the graph of a single component.
*
* @param component the component
- * @param provider true if traversing providers, false if consumers
+ * @param providers true if traversing providers, false if consumers
* @return the list of components in graph
*/
- private ComponentMetaData[] getComponentGraph( final ComponentMetaData component, final boolean provider )
+ private ComponentMetaData[] getComponentGraph( final ComponentMetaData component, final boolean providers )
{
final ArrayList result = new ArrayList();
visitcomponent( component,
- provider,
+ providers,
new ArrayList(),
result );
@@ -131,10 +134,10 @@
* It is expected that the specified components have passed
* verification tests and are well formed.
*
- * @param forward true if forward dependencys traced, false if dependencies reversed
+ * @param providers true if forward dependencys traced, false if dependencies reversed
* @return the ordered node names
*/
- private ComponentMetaData[] walkGraph( final boolean forward )
+ private ComponentMetaData[] walkGraph( final boolean providers )
{
final ArrayList result = new ArrayList();
@@ -144,7 +147,7 @@
final ComponentMetaData component =
(ComponentMetaData)m_components.get( i );
visitcomponent( component,
- forward,
+ providers,
new ArrayList(),
result );
}
@@ -157,13 +160,13 @@
* Visit a component when traversing dependencies.
*
* @param component the component
- * @param forward true if walking down tree, else false
+ * @param providers true if walking tree looking for providers, else false
* @param done those nodes already traversed
* @param order the order in which nodes have already been
* traversed
*/
private void visitcomponent( final ComponentMetaData component,
- final boolean forward,
+ final boolean providers,
final ArrayList done,
final ArrayList order )
{
@@ -174,26 +177,27 @@
}
done.add( component );
- if( forward )
+ if( providers )
{
- visitDependencies( component, done, order );
+ visitProviders( component, done, order );
}
else
{
- visitReverseDependencies( component, done, order );
+ visitConsumers( component, done, order );
}
order.add( component );
}
/**
- * Traverse dependencies of specified component.
+ * Traverse graph of components that provide services to
+ * the specified component.
*
* @param component the ComponentMetaData
*/
- private void visitDependencies( final ComponentMetaData component,
- final ArrayList done,
- final ArrayList order )
+ private void visitProviders( final ComponentMetaData component,
+ final ArrayList done,
+ final ArrayList order )
{
final DependencyDescriptor[] descriptors =
component.getComponentInfo().getDependencies();
@@ -209,14 +213,14 @@
}
/**
- * Traverse all reverse dependencies of specified component.
- * A reverse dependency are those that dependend on component.
+ * Traverse all Consumers of component. ie Anyone that uses
+ * service provided by component.
*
* @param component the ComponentMetaData
*/
- private void visitReverseDependencies( final ComponentMetaData component,
- final ArrayList done,
- final ArrayList order )
+ private void visitConsumers( final ComponentMetaData component,
+ final ArrayList done,
+ final ArrayList order )
{
final String name = component.getName();
@@ -237,7 +241,12 @@
}
}
- //TODO: Search children consumers here
+ final int childCount = m_children.size();
+ for( int i = 0; i < childCount; i++ )
+ {
+ final DependencyMap map = (DependencyMap)m_children.get( i );
+ map.visitConsumers( component, done, order );
+ }
}
/**
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>