You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by cz...@apache.org on 2002/07/05 11:59:10 UTC
cvs commit: jakarta-avalon-excalibur/component/src/java/org/apache/avalon/excalibur/component ExcaliburComponentManager.java
cziegeler 2002/07/05 02:59:10
Modified: component/src/java/org/apache/avalon/excalibur/component
ExcaliburComponentManager.java
Log:
Applied patch for initialization order of components
Revision Changes Path
1.9 +34 -7 jakarta-avalon-excalibur/component/src/java/org/apache/avalon/excalibur/component/ExcaliburComponentManager.java
Index: ExcaliburComponentManager.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/component/src/java/org/apache/avalon/excalibur/component/ExcaliburComponentManager.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ExcaliburComponentManager.java 18 Jun 2002 14:25:47 -0000 1.8
+++ ExcaliburComponentManager.java 5 Jul 2002 09:59:10 -0000 1.9
@@ -60,6 +60,11 @@
/** Used to map roles to ComponentHandlers. */
private final BucketMap m_componentHandlers = new BucketMap();
+ /** added component handlers before initialization to maintain
+ * the order of initialization
+ */
+ private final List m_newComponentHandlers = new ArrayList();
+
/** RoleInfos. */
private RoleManager m_roles;
@@ -144,14 +149,10 @@
{
m_initialized = true;
- List keys = new ArrayList( m_componentHandlers.keySet() );
-
- for( int i = 0; i < keys.size(); i++ )
+ for (int i = 0; i < m_newComponentHandlers.size(); i++ )
{
- final Object key = keys.get( i );
final ComponentHandler handler =
- (ComponentHandler)m_componentHandlers.get( key );
-
+ (ComponentHandler)m_newComponentHandlers.get( i );
try
{
handler.initialize();
@@ -164,8 +165,33 @@
"the component handler.", e );
}
}
+ }
+
+ List keys = new ArrayList( m_componentHandlers.keySet() );
+
+ for( int i = 0; i < keys.size(); i++ )
+ {
+ final Object key = keys.get( i );
+ final ComponentHandler handler =
+ (ComponentHandler)m_componentHandlers.get( key );
+ if ( !m_newComponentHandlers.contains( handler ) )
+ {
+ try
+ {
+ handler.initialize();
+ }
+ catch( Exception e )
+ {
+ if( getLogger().isErrorEnabled() )
+ {
+ getLogger().error( "Caught an exception trying to initialize " +
+ "the component handler.", e );
+ }
+ }
+ }
}
+ m_newComponentHandlers.clear();
}
}
@@ -645,6 +671,7 @@
handler.setLogger( getLogkitLogger() );
handler.enableLogging( getLogger() );
m_componentHandlers.put( role, handler );
+ m_newComponentHandlers.add( handler );
}
catch( final Exception e )
{
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>