cziegeler 2004/04/05 04:07:09 Modified: fortress/container-impl/src/java/org/apache/avalon/fortress/util ContextManager.java fortress/container-impl/src/java/org/apache/avalon/fortress/impl DefaultECMContainer.java Log: ECM Support for roles containing hints Revision Changes Path 1.54 +18 -7 avalon-excalibur/fortress/container-impl/src/java/org/apache/avalon/fortress/util/ContextManager.java Index: ContextManager.java =================================================================== RCS file: /home/cvs/avalon-excalibur/fortress/container-impl/src/java/org/apache/avalon/fortress/util/ContextManager.java,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- ContextManager.java 3 Apr 2004 18:10:34 -0000 1.53 +++ ContextManager.java 5 Apr 2004 11:07:08 -0000 1.54 @@ -22,6 +22,7 @@ import org.apache.avalon.fortress.MetaInfoManager; import org.apache.avalon.fortress.RoleManager; import org.apache.avalon.fortress.impl.role.ConfigurableRoleManager; +import org.apache.avalon.fortress.impl.role.ECMRoleManager; import org.apache.avalon.fortress.impl.role.FortressRoleManager; import org.apache.avalon.fortress.impl.role.Role2MetaInfoManager; import org.apache.avalon.fortress.impl.role.ServiceMetaManager; @@ -665,13 +666,23 @@ roleManager = newRoleManager; } - final ServiceMetaManager metaManager = - new ServiceMetaManager( new Role2MetaInfoManager( roleManager ), classLoader ); + final MetaInfoManager mim; + // if we use the ecm role manager then we don't wrap it inside a service meta manager! + if ( roleManager instanceof ECMRoleManager ) + { + mim = new Role2MetaInfoManager( roleManager ); + } + else + { + final ServiceMetaManager metaManager = + new ServiceMetaManager( new Role2MetaInfoManager( roleManager ), classLoader ); + metaManager.enableLogging( m_loggerManager.getLoggerForCategory( "system.meta" ) ); + metaManager.initialize(); + mim = metaManager; + } - metaManager.enableLogging( m_loggerManager.getLoggerForCategory( "system.meta" ) ); - metaManager.initialize(); - assumeOwnership( metaManager ); - m_metaInfoManager = metaManager; + assumeOwnership( mim ); + m_metaInfoManager = mim; } } 1.4 +6 -2 avalon-excalibur/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultECMContainer.java Index: DefaultECMContainer.java =================================================================== RCS file: /home/cvs/avalon-excalibur/fortress/container-impl/src/java/org/apache/avalon/fortress/impl/DefaultECMContainer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DefaultECMContainer.java 5 Apr 2004 10:16:56 -0000 1.3 +++ DefaultECMContainer.java 5 Apr 2004 11:07:09 -0000 1.4 @@ -145,8 +145,12 @@ new ComponentHandlerMetaData( hint, className, element, activation ); // figure out Role - final String role = getRole( element ); - + String role = getRole( element ); + final int pos = role.indexOf('/'); + if ( pos != -1 ) { + hint = role.substring(pos+1); + role = role.substring(0, pos); + } try { final MetaInfoEntry metaEntry = m_metaManager.getMetaInfoForClassname( className );
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]