Hi, hmm where is this ConsoleLogger, maybe on your local machine ;). Joke...I can't compile, because he doesn't find the "ConsoleLogger"...
~Gerhard "Sorry, but my karma just ran over your dogma." >-----Original Message----- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >Sent: Tuesday, February 19, 2002 9:48 PM >To: [EMAIL PROTECTED] >Subject: cvs commit: >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/syst >em/util/test ConfigurableRoleManagerTestCase.java >ExcaliburRoleManagerTestCase.java > > >bloritsch 02/02/19 12:48:04 > > Modified: src/java/org/apache/avalon/excalibur/datasource > AbstractJdbcConnection.java > src/scratchpad/org/apache/avalon/excalibur/system > AbstractContainer.java ContainerManager.java > src/scratchpad/org/apache/avalon/excalibur/system/handler > ComponentFactory.java FactoryComponentHandler.java > PerThreadComponentHandler.java > PoolableComponentHandler.java > ThreadSafeComponentHandler.java > Added: src/scratchpad/org/apache/avalon/excalibur/system/util > AbstractRoleManager.java > ConfigurableRoleManager.java ContextManager.java > ExcaliburRoleManager.java RoleManager.java > src/scratchpad/org/apache/avalon/excalibur/system/util/test > ConfigurableRoleManagerTestCase.java > ExcaliburRoleManagerTestCase.java > Removed: src/scratchpad/org/apache/avalon/excalibur/system > AbstractRoleManager.java > ConfigurableRoleManager.java > ExcaliburRoleManager.java RoleManager.java > src/scratchpad/org/apache/avalon/excalibur/system/test > ConfigurableRoleManagerTestCase.java > ExcaliburRoleManagerTestCase.java > Log: > fix compilation error, move RoleManager and beginnings of ContextManager to >system.util > > Revision Changes Path > 1.13 +2 -1 >jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/datasource/AbstractJdbcConnec >tion.java > > Index: AbstractJdbcConnection.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/datasource/Abstract >JdbcConnection.java,v > retrieving revision 1.12 > retrieving revision 1.13 > diff -u -r1.12 -r1.13 > --- AbstractJdbcConnection.java 19 Feb 2002 20:27:36 -0000 1.12 > +++ AbstractJdbcConnection.java 19 Feb 2002 20:48:03 -0000 1.13 > @@ -13,6 +13,7 @@ > import java.sql.PreparedStatement; > import java.sql.SQLException; > import java.sql.Statement; > +import java.sql.ResultSet; > import org.apache.avalon.framework.logger.AbstractLogEnabled; > import org.apache.avalon.framework.activity.Initializable; > import org.apache.avalon.framework.activity.Disposable; > @@ -29,7 +30,7 @@ > * total number of Connection objects that are created. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > - * @version CVS $Revision: 1.12 $ $Date: 2002/02/19 20:27:36 $ > + * @version CVS $Revision: 1.13 $ $Date: 2002/02/19 20:48:03 $ > * @since 4.1 > */ > public abstract class AbstractJdbcConnection > > > > 1.22 +2 -1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/AbstractContainer.java > > Index: AbstractContainer.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/Abstra >ctContainer.java,v > retrieving revision 1.21 > retrieving revision 1.22 > diff -u -r1.21 -r1.22 > --- AbstractContainer.java 18 Feb 2002 15:40:46 -0000 1.21 > +++ AbstractContainer.java 19 Feb 2002 20:48:03 -0000 1.22 > @@ -20,6 +20,7 @@ > import org.apache.avalon.excalibur.logger.LoggerManager; > import org.apache.avalon.excalibur.event.Queue; > import org.apache.avalon.excalibur.mpool.PoolManager; > +import org.apache.avalon.excalibur.system.util.*; > > import java.util.ArrayList; > import java.util.Collections; > @@ -34,7 +35,7 @@ > * Manager can expose that to the instantiating class. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > - * @version CVS $Revision: 1.21 $ $Date: 2002/02/18 15:40:46 $ > + * @version CVS $Revision: 1.22 $ $Date: 2002/02/19 20:48:03 $ > */ > public abstract class AbstractContainer > extends AbstractLogEnabled > > > > 1.28 +2 -1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/ContainerManager.java > > Index: ContainerManager.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/Contai >nerManager.java,v > retrieving revision 1.27 > retrieving revision 1.28 > diff -u -r1.27 -r1.28 > --- ContainerManager.java 19 Feb 2002 02:05:58 -0000 1.27 > +++ ContainerManager.java 19 Feb 2002 20:48:03 -0000 1.28 > @@ -21,6 +21,7 @@ > import org.apache.avalon.excalibur.source.*; > import org.apache.avalon.excalibur.command.*; > import org.apache.avalon.excalibur.mpool.*; > +import org.apache.avalon.excalibur.system.util.*; > > import java.io.File; > > @@ -109,7 +110,7 @@ > * </table> > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > - * @version CVS $Revision: 1.27 $ $Date: 2002/02/19 02:05:58 $ > + * @version CVS $Revision: 1.28 $ $Date: 2002/02/19 20:48:03 $ > */ > public class ContainerManager implements Disposable > { > > > > 1.3 +2 -2 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handler/Componen >tFactory.java > > Index: ComponentFactory.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handle >r/ComponentFactory.java,v > retrieving revision 1.2 > retrieving revision 1.3 > diff -u -r1.2 -r1.3 > --- ComponentFactory.java 12 Feb 2002 21:30:43 -0000 1.2 > +++ ComponentFactory.java 19 Feb 2002 20:48:03 -0000 1.3 > @@ -7,7 +7,7 @@ > */ > package org.apache.avalon.excalibur.system.handler; > > -import org.apache.avalon.excalibur.system.RoleManager; > +import org.apache.avalon.excalibur.system.util.RoleManager; > import org.apache.avalon.framework.activity.Startable; > import org.apache.avalon.framework.activity.Disposable; > import org.apache.avalon.framework.activity.Initializable; > @@ -30,7 +30,7 @@ > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @author <a href="mailto:[EMAIL PROTECTED]">Paul Russell</a> > - * @version CVS $Revision: 1.2 $ $Date: 2002/02/12 21:30:43 $ > + * @version CVS $Revision: 1.3 $ $Date: 2002/02/19 20:48:03 $ > * @since 4.0 > */ > public class ComponentFactory > > > > 1.6 +2 -2 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handler/FactoryC >omponentHandler.java > > Index: FactoryComponentHandler.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handle >r/FactoryComponentHandler.java,v > retrieving revision 1.5 > retrieving revision 1.6 > diff -u -r1.5 -r1.6 > --- FactoryComponentHandler.java 12 Feb 2002 21:30:43 -0000 1.5 > +++ FactoryComponentHandler.java 19 Feb 2002 20:48:03 -0000 1.6 > @@ -8,7 +8,7 @@ > package org.apache.avalon.excalibur.system.handler; > > import org.apache.avalon.excalibur.system.Container; > -import org.apache.avalon.excalibur.system.RoleManager; > +import org.apache.avalon.excalibur.system.util.RoleManager; > import org.apache.avalon.framework.activity.Disposable; > import org.apache.avalon.framework.component.Component; > import org.apache.avalon.framework.component.ComponentManager; > @@ -23,7 +23,7 @@ > * and destroyed correctly. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > - * @version CVS $Revision: 1.5 $ $Date: 2002/02/12 21:30:43 $ > + * @version CVS $Revision: 1.6 $ $Date: 2002/02/19 20:48:03 $ > * @since 4.0 > */ > public final class FactoryComponentHandler > > > > 1.6 +2 -2 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handler/PerThrea >dComponentHandler.java > > Index: PerThreadComponentHandler.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handle r/PerThreadComponentHandler.java,v > retrieving revision 1.5 > retrieving revision 1.6 > diff -u -r1.5 -r1.6 > --- PerThreadComponentHandler.java 12 Feb 2002 21:30:43 -0000 1.5 > +++ PerThreadComponentHandler.java 19 Feb 2002 20:48:03 -0000 1.6 > @@ -8,7 +8,7 @@ > package org.apache.avalon.excalibur.system.handler; > > import org.apache.avalon.excalibur.system.Container; > -import org.apache.avalon.excalibur.system.RoleManager; > +import org.apache.avalon.excalibur.system.util.RoleManager; > import org.apache.avalon.framework.activity.Startable; > import org.apache.avalon.framework.activity.Disposable; > import org.apache.avalon.framework.component.Component; > @@ -23,7 +23,7 @@ > * and destroyed correctly. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > - * @version CVS $Revision: 1.5 $ $Date: 2002/02/12 21:30:43 $ > + * @version CVS $Revision: 1.6 $ $Date: 2002/02/19 20:48:03 $ > * @since 4.0 > */ > public final class PerThreadComponentHandler implements ComponentHandler { > > > > 1.9 +2 -2 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handler/Poolable >ComponentHandler.java > > Index: PoolableComponentHandler.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handle >r/PoolableComponentHandler.java,v > retrieving revision 1.8 > retrieving revision 1.9 > diff -u -r1.8 -r1.9 > --- PoolableComponentHandler.java 18 Feb 2002 16:14:32 -0000 1.8 > +++ PoolableComponentHandler.java 19 Feb 2002 20:48:03 -0000 1.9 > @@ -8,7 +8,7 @@ > package org.apache.avalon.excalibur.system.handler; > > import org.apache.avalon.excalibur.system.Container; > -import org.apache.avalon.excalibur.system.RoleManager; > +import org.apache.avalon.excalibur.system.util.RoleManager; > import org.apache.avalon.framework.activity.Disposable; > import org.apache.avalon.framework.component.Component; > import org.apache.avalon.framework.component.ComponentManager; > @@ -25,7 +25,7 @@ > * and destroyed correctly. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > - * @version CVS $Revision: 1.8 $ $Date: 2002/02/18 16:14:32 $ > + * @version CVS $Revision: 1.9 $ $Date: 2002/02/19 20:48:03 $ > * @since 4.0 > */ > public final class PoolableComponentHandler implements ComponentHandler { > > > > 1.6 +2 -2 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handler/ThreadSa >feComponentHandler.java > > Index: ThreadSafeComponentHandler.java > =================================================================== > RCS file: >/home/cvs/jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/handle r/ThreadSafeComponentHandler.java,v > retrieving revision 1.5 > retrieving revision 1.6 > diff -u -r1.5 -r1.6 > --- ThreadSafeComponentHandler.java 12 Feb 2002 21:30:43 -0000 1.5 > +++ ThreadSafeComponentHandler.java 19 Feb 2002 20:48:03 -0000 1.6 > @@ -8,7 +8,7 @@ > package org.apache.avalon.excalibur.system.handler; > > import org.apache.avalon.excalibur.system.Container; > -import org.apache.avalon.excalibur.system.RoleManager; > +import org.apache.avalon.excalibur.system.util.RoleManager; > import org.apache.avalon.framework.activity.Startable; > import org.apache.avalon.framework.activity.Disposable; > import org.apache.avalon.framework.component.Component; > @@ -23,7 +23,7 @@ > * and destroyed correctly. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > - * @version CVS $Revision: 1.5 $ $Date: 2002/02/12 21:30:43 $ > + * @version CVS $Revision: 1.6 $ $Date: 2002/02/19 20:48:03 $ > * @since 4.0 > */ > public final class ThreadSafeComponentHandler implements ComponentHandler { > > > > 1.1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/util/AbstractRol >eManager.java > > Index: AbstractRoleManager.java > =================================================================== > /* > * Copyright (C) The Apache Software Foundation. All rights reserved. > * > * This software is published under the terms of the Apache Software License > * version 1.1, a copy of which has been included with this distribution in > * the LICENSE.txt file. > */ > package org.apache.avalon.excalibur.system.util; > > import org.apache.avalon.framework.component.Component; > > import java.util.ArrayList; > import java.util.Collections; > import java.util.List; > import java.util.Map; > > /** > * The Excalibur Role Manager is used for Excalibur Role Mappings. All of the > * information is hard-coded. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @version CVS $Revision: 1.1 $ $Date: 2002/02/19 20:48:04 $ > * @since 4.1 > */ > public abstract class AbstractRoleManager > implements RoleManager > { > protected static final String EMPTY_STRING = ""; > > protected final ClassLoader m_loader; > > /** Map for shorthand to class mapping */ > protected Map m_shorthands; > > /** Map for role to classname mapping */ > protected Map m_classNames; > > /** Map for role to handler classname mapping */ > protected Map m_handlerNames; > > /** Parent <code>RoleManager</code> for nested resolution */ > protected final RoleManager m_parent; > > /** > * Default constructor--this RoleManager has no parent. > */ > public AbstractRoleManager() > { > this( null ); > } > > /** > * Alternate constructor--this RoleManager has the specified > * parent. > * > * @param parent The parent <code>RoleManager</code>. > */ > public AbstractRoleManager(RoleManager parent) > { > this( parent, Thread.currentThread().getContextClassLoader() ); > } > > /** > * Alternate constructor--this RoleManager has the specified > * parent. > * > * @param parent The parent <code>RoleManager</code>. > */ > public AbstractRoleManager(RoleManager parent, ClassLoader loader) > { > ClassLoader thisLoader = loader; > > if ( null == thisLoader ) > { > thisLoader = Thread.currentThread().getContextClassLoader(); > } > > m_loader = thisLoader; > m_parent = parent; > } > > protected void setup( Map shorts, Map classes, Map handlers, > String shortName, String role, String className, > String handlerClassName ) > { > final Class klass; > Class handlerKlass; > > try > { > klass = m_loader.loadClass( className ); > > if ( ! Component.class.isAssignableFrom( klass ) ) > { > // Do not store reference if it is not a Component > return; > } > } > catch ( Exception e ) > { > // Do not store reference if class does not exist. > return; > } > > try > { > handlerKlass = m_loader.loadClass( handlerClassName ); > } > catch ( Exception e ) > { > handlerKlass = >org.apache.avalon.excalibur.system.handler.PerThreadComponentHandler.class; > } > > shorts.put( shortName, klass ); > shorts.put( klass, shortName ); > classes.put( klass, > role ); > > List classList = (List) classes.get( role ); > > if ( null == classList ) > { > classList = new ArrayList(5); > } > > classList.add( klass ); > classes.put( role, classList ); > > handlers.put( klass, handlerKlass ); > } > > /** > * Find the Class for the given shorthand name. If there is no > * correspondence between the class and the shorthand name, the method > * returns <code>null</code>. If this RoleManager does not have the match, > * and there is a parent RoleManager, the parent will be asked to resolve > * the request. > */ > public final Class getClassForName( final String shorthandName ) > { > if (shorthandName == null) return null; > > final Class component = (Class)m_shorthands.get( shorthandName ); > > if( null == component && null != m_parent ) > { > return m_parent.getClassForName( shorthandName ); > } > > return component; > } > > /** > * Retrieves the real role name from a shorthand name. Usually > * the shorthand name refers to a configuration element name. If > * this RoleManager does not have the match, and there is a parent > * RoleManager, the parent will be asked to resolve the role. > * > * @param shorthandName The shortname that is an alias for the role. > * @return the official role name. > */ > public final String getNameForClass( final Class klass ) > { > final String shorthandName = (String)m_shorthands.get( klass ); > > if( null == shorthandName && null != m_parent ) > { > return m_parent.getNameForClass( klass ); > } > > return shorthandName; > } > > /** > * Retrieves the handler class name for the specified class name. This > * is called for every ComponentImplementation. If this RoleManager does > * not have the match, and there is a parent RoleManager, the parent will be > * asked to resolve the handler's class name. > * > * @param role The role that has a default implementation. > * @return the Fully Qualified Class Name (FQCN) for the role. > */ > public final Class getHandlerClassForClass( final Class className ) > { > final Class handler = (Class)m_handlerNames.get( className ); > > if( null == handler && null != m_parent ) > { > return m_parent.getHandlerClassForClass( className ); > } > > return handler; > } > > /** > * Retrieves the default class name for the specified role. This > * is only called when the configuration does not specify the > * class explicitly. If this RoleManager does not have the match, > * and there is a parent RoleManager, the parent will be asked > * to resolve the class name. > * > * @param role The role that has a default implementation. > * @return the Fully Qualified Class Name (FQCN) for the role. > */ > public final Class[] getClassesForRole( final String role ) > { > final List classes = (List)m_classNames.get( role ); > > if( null == classes && null != m_parent ) > { > return m_parent.getClassesForRole( role ); > } > > return (Class []) classes.toArray( new Class[] {} ); > } > > /** > * Retrieves a default class name for a role/hint combination. > * This is only called when a role is mapped to a > * DefaultComponentSelector, and the configuration elements use > * shorthand names for the type of component. If this RoleManager > * does not have the match, and there is a parent RoleManager, the > * parent will be asked to resolve the class name. > * > * @param role The role that this shorthand refers to. > * @param shorthand The shorthand name for the type of Component > * @return the FQCN for the role/hint combination. > */ > public final String getRoleForClass( final Class klass ) > { > final String role = (String)m_classNames.get( klass ); > > if( null == role ) > { > if( null != m_parent ) > { > return m_parent.getRoleForClass( klass ); > } > else > { > return EMPTY_STRING; > } > } > > return role; > } > } > > > > 1.1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/util/Configurabl >eRoleManager.java > > Index: ConfigurableRoleManager.java > =================================================================== > /* > * Copyright (C) The Apache Software Foundation. All rights reserved. > * > * This software is published under the terms of the Apache Software License > * version 1.1, a copy of which has been included with this distribution in > * the LICENSE.txt file. > */ > package org.apache.avalon.excalibur.system.util; > > import java.util.Collections; > import java.util.HashMap; > import java.util.Map; > import org.apache.avalon.framework.configuration.Configurable; > import org.apache.avalon.framework.configuration.Configuration; > import org.apache.avalon.framework.configuration.ConfigurationException; > import org.apache.avalon.framework.logger.AbstractLoggable; > > /** > * Configurable RoleManager implementation. It populates the RoleManager > * from a configuration hierarchy. This is based on the DefaultRoleManager > * in the org.apache.avalon.component package. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @version CVS $Revision: 1.1 $ $Date: 2002/02/19 20:48:04 $ > * @since 4.1 > */ > public class ConfigurableRoleManager > extends AbstractRoleManager > implements Configurable > { > /** > * Default constructor--this RoleManager has no parent. > */ > public ConfigurableRoleManager() > { > super( null ); > } > > > /** > * Alternate constructor--this RoleManager has the specified > * parent. > * > * @param parent The parent <code>RoleManager</code>. > */ > public ConfigurableRoleManager(RoleManager parent) > { > super( parent, Thread.currentThread().getContextClassLoader() ); > } > > /** > * Alternate constructor--this RoleManager has the specified > * parent and a classloader. > * > * @param parent The parent <code>RoleManager</code>. > */ > public ConfigurableRoleManager(RoleManager parent, ClassLoader loader) > { > super( parent, loader ); > } > > > /** > * Reads a configuration object and creates the role, shorthand, > * and class name mapping. > * > * @param configuration The configuration object. > * @throws ConfigurationException if the configuration is malformed > */ > public final void configure( final Configuration configuration ) > throws ConfigurationException > { > final Map shorts = new HashMap(); > final Map classes = new HashMap(); > final Map handlers = new HashMap(); > final Map hintclasses = new HashMap(); > > final Configuration[] roles = configuration.getChildren( "role" ); > > for( int i = 0; i < roles.length; i++ ) > { > final String role = roles[ i ].getAttribute( "name" ); > Configuration[] components = roles[i].getChildren( "component" ); > > for ( int j = 0; j < components.length; j++) > { > final String shorthand = components[ j ].getAttribute( "shorthand" >); > final String className = > components[ j ].getAttribute( "class", null ); > final String handlerClassName = > components[ j ].getAttribute( "handler", > >"org.apache.avalon.excalibur.system.handler.PerThreadComponentHandler" ); > > setup( shorts, classes, handlers, shorthand, role, className, >handlerClassName ); > } > } > > m_shorthands = Collections.unmodifiableMap( shorts ); > m_classNames = Collections.unmodifiableMap( classes ); > m_handlerNames = Collections.unmodifiableMap( handlers ); > } > } > > > > 1.1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/util/ContextManager.java > > Index: ContextManager.java > =================================================================== > /* > * Copyright (C) The Apache Software Foundation. All rights reserved. > * > * This software is published under the terms of the Apache Software License > * version 1.1, a copy of which has been included with this distribution in > * the LICENSE.txt file. > */ > package org.apache.avalon.excalibur.system.util; > > /** > * RoleManager Interface, use this to specify the Components and how they > * correspond to easy shorthand names. The RoleManager assumes a flat > * relationship of shorthand names to classes, and classes to roles. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @version CVS $Revision: 1.1 $ $Date: 2002/02/19 20:48:04 $ > * @since 4.1 > */ > public interface ContextManager > { > /** > * Find the Class for the given shorthand name. If there is no > * correspondence between the class and the shorthand name, the method > * returns <code>null</code>. If this RoleManager does not have the match, > * and there is a parent RoleManager, the parent will be asked to resolve > * the request. > */ > Class getClassForName( final String shorthandName ); > > /** > * This method is merely a hint for serialization. If this RoleManager does > * not have the match, and there is a parent RoleManager, the parent will be > * asked to resolve the request. > */ > String getNameForClass( final Class component ); > > /** > * Get the Role name for a specific class. If the class does not belong to > * a Component, or the Role is not easily determinable, this method will return > * <code>null</code>. If this RoleManager does not have the match, and > * there is a parent RoleManager, the parent will be asked to resolve the > * request. > */ > String getRoleForClass( final Class component ); > > /** > * Get an array of classes registered with the role manager that implement a > * role. If this RoleManager does not have the match, and there is a parent > * RoleManager, the parent will be asked to resolve the request. > */ > Class[] getClassesForRole( final String role ); > > /** > * Retrieves the handler class name for the specified class. This > * is called for every Component Implementation. If this RoleManager does > * not have the match, and there is a parent RoleManager, the parent will be > * asked to resolve the handler's class name. > * > * @param class The class of the Component in question. > * @return the Class instance of the ComponentHandler. > */ > Class getHandlerClassForClass( final Class className ); > } > > > > 1.1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/util/ExcaliburRo >leManager.java > > Index: ExcaliburRoleManager.java > =================================================================== > /* > * Copyright (C) The Apache Software Foundation. All rights reserved. > * > * This software is published under the terms of the Apache Software License > * version 1.1, a copy of which has been included with this distribution in > * the LICENSE.txt file. > */ > package org.apache.avalon.excalibur.system.util; > > import org.apache.avalon.framework.component.Component; > > import java.util.ArrayList; > import java.util.Collections; > import java.util.HashMap; > import java.util.List; > import java.util.Map; > > /** > * The Excalibur Role Manager is used for Excalibur Role Mappings. All of the > * information is hard-coded. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @version CVS $Revision: 1.1 $ $Date: 2002/02/19 20:48:04 $ > * @since 4.1 > */ > public class ExcaliburRoleManager > extends AbstractRoleManager > { > /** > * Default constructor--this RoleManager has no parent. > */ > public ExcaliburRoleManager() > { > super( null ); > } > > /** > * Alternate constructor--this RoleManager has the specified > * parent. > * > * @param parent The parent <code>RoleManager</code>. > */ > public ExcaliburRoleManager(RoleManager parent) > { > super( parent, Thread.currentThread().getContextClassLoader() ); > } > > /** > * Alternate constructor--this RoleManager has the specified > * parent and a classloader. > * > * @param parent The parent <code>RoleManager</code>. > */ > public ExcaliburRoleManager(RoleManager parent, ClassLoader loader) > { > super( parent, loader ); > > HashMap shorts = new HashMap( 10 ); > HashMap classes = new HashMap( 10 ); > HashMap handlers = new HashMap( 10 ); > > /* Set up Cache relations */ > setup( shorts, classes, handlers, "cache", > "org.apache.avalon.excalibur.cache.Cache", > "org.apache.avalon.excalibur.cache.DefaultCache", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > setup( shorts, classes, handlers, "lru-cache", > "org.apache.avalon.excalibur.cache.Cache", > "org.apache.avalon.excalibur.cache.LRUCache", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > > /* Set up DataSource relations */ > setup( shorts, classes, handlers, "jdbc-datasource", > "org.apache.avalon.excalibur.datasource.DataSourceComponent", > "org.apache.avalon.excalibur.datasource.JdbcDataSource", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > setup( shorts, classes, handlers, "j2ee-datasource", > "org.apache.avalon.excalibur.datasource.DataSourceComponent", > "org.apache.avalon.excalibur.datasource.J2eeDataSource", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > setup( shorts, classes, handlers, "informix-datasource", > "org.apache.avalon.excalibur.datasource.DataSourceComponent", > "org.apache.avalon.excalibur.datasource.InformixDataSource", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > > /* Set up i18n relations */ > setup( shorts, classes, handlers, "i18n", > "org.apache.avalon.excalibur.i18n.BundleSelector", > "org.apache.avalon.excalibur.i18n.BundleSelector", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > > /* Set up Monitor relations */ > setup( shorts, classes, handlers, "monitor", > "org.apache.avalon.excalibur.monitor.Monitor", > "org.apache.avalon.excalibur.monitor.ActiveMonitor", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > setup( shorts, classes, handlers, "passive-monitor", > "org.apache.avalon.excalibur.monitor.Monitor", > "org.apache.avalon.excalibur.monitor.PassiveMonitor", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > > /* Set up XPath relations */ > setup( shorts, classes, handlers, "xalan-xpath", > "org.apache.avalon.excalibur.xml.xpath.XPathProcessor", > "org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > setup( shorts, classes, handlers, "jaxpath", > "org.apache.avalon.excalibur.xml.xpath.XPathProcessor", > "org.apache.avalon.excalibur.xml.xpath.JaxenProcessorImpl", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > > /* Set up SourceResolver relations */ > setup( shorts, classes, handlers, "resolver", > "org.apache.avalon.excalibur.source.SourceResolver", > "org.apache.avalon.excalibur.source.SourceResolverImpl", > >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ); > > /* Set up XML parser relations */ > setup( shorts, classes, handlers, "parser", > "org.apache.avalon.excalibur.xml.Parser", > "org.apache.avalon.excalibur.xml.JaxpParser", > >"org.apache.avalon.excalibur.system.handler.PerThreadComponentHandler" ); > setup( shorts, classes, handlers, "xerces-parser", > "org.apache.avalon.excalibur.xml.Parser", > "org.apache.avalon.excalibur.xml.XercesParser", > "org.apache.avalon.excalibur.system.handler.FactoryComponentHandler" >); > > m_shorthands = Collections.unmodifiableMap( shorts ); > m_classNames = Collections.unmodifiableMap( classes ); > m_handlerNames = Collections.unmodifiableMap( handlers ); > } > } > > > > 1.1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/util/RoleManager.java > > Index: RoleManager.java > =================================================================== > /* > * Copyright (C) The Apache Software Foundation. All rights reserved. > * > * This software is published under the terms of the Apache Software License > * version 1.1, a copy of which has been included with this distribution in > * the LICENSE.txt file. > */ > package org.apache.avalon.excalibur.system.util; > > /** > * RoleManager Interface, use this to specify the Components and how they > * correspond to easy shorthand names. The RoleManager assumes a flat > * relationship of shorthand names to classes, and classes to roles. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @version CVS $Revision: 1.1 $ $Date: 2002/02/19 20:48:04 $ > * @since 4.1 > */ > public interface RoleManager > { > /** > * Find the Class for the given shorthand name. If there is no > * correspondence between the class and the shorthand name, the method > * returns <code>null</code>. If this RoleManager does not have the match, > * and there is a parent RoleManager, the parent will be asked to resolve > * the request. > */ > Class getClassForName( final String shorthandName ); > > /** > * This method is merely a hint for serialization. If this RoleManager does > * not have the match, and there is a parent RoleManager, the parent will be > * asked to resolve the request. > */ > String getNameForClass( final Class component ); > > /** > * Get the Role name for a specific class. If the class does not belong to > * a Component, or the Role is not easily determinable, this method will return > * <code>null</code>. If this RoleManager does not have the match, and > * there is a parent RoleManager, the parent will be asked to resolve the > * request. > */ > String getRoleForClass( final Class component ); > > /** > * Get an array of classes registered with the role manager that implement a > * role. If this RoleManager does not have the match, and there is a parent > * RoleManager, the parent will be asked to resolve the request. > */ > Class[] getClassesForRole( final String role ); > > /** > * Retrieves the handler class name for the specified class. This > * is called for every Component Implementation. If this RoleManager does > * not have the match, and there is a parent RoleManager, the parent will be > * asked to resolve the handler's class name. > * > * @param class The class of the Component in question. > * @return the Class instance of the ComponentHandler. > */ > Class getHandlerClassForClass( final Class className ); > } > > > > 1.1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/util/test/Config >urableRoleManagerTestCase.java > > Index: ConfigurableRoleManagerTestCase.java > =================================================================== > /* > * Copyright (C) The Apache Software Foundation. All rights reserved. > * > * This software is published under the terms of the Apache Software License > * version 1.1, a copy of which has been included with this distribution in > * the LICENSE.txt file. > */ > package org.apache.avalon.excalibur.system.util.test; > > import org.apache.avalon.excalibur.system.util.ConfigurableRoleManager; > import org.apache.avalon.framework.configuration.*; > > import junit.framework.TestCase; > > /** > * Configurable RoleManager implementation. It populates the RoleManager > * from a configuration hierarchy. This is based on the DefaultRoleManager > * in the org.apache.avalon.component package. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @version CVS $Revision: 1.1 $ $Date: 2002/02/19 20:48:04 $ > * @since 4.1 > */ > public class ConfigurableRoleManagerTestCase > extends TestCase > { > /** > * Default constructor--this RoleManager has no parent. > */ > public ConfigurableRoleManagerTestCase( String name ) > { > super( name ); > } > > /** > * Test the shorthand return values. > */ > public void testShorthandReturnValues() > throws Exception > { > DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); > ConfigurableRoleManager roles = new ConfigurableRoleManager( null, >this.getClass().getClassLoader() ); > roles.configure( builder.build(this.getClass().getClassLoader() > .getResourceAsStream( >"org/apache/avalon/excalibur/system/test/ContainerProfile.roles" ) ) ); > > assertEquals( > roles.getClassForName( "datasource" ), > Class.forName( "org.apache.avalon.excalibur.datasource.JdbcDataSource" ) > ); > assertEquals( > roles.getClassForName( "monitor" ), > Class.forName( "org.apache.avalon.excalibur.monitor.ActiveMonitor" ) > ); > assertEquals( > roles.getClassForName( "parser" ), > Class.forName( "org.apache.avalon.excalibur.xml.JaxpParser" ) > ); > } > > /** > * Test the shorthand return values. > */ > public void testShorthandRemapReturnValues() > throws Exception > { > DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); > ConfigurableRoleManager roles = new ConfigurableRoleManager( null, >this.getClass().getClassLoader() ); > roles.configure( builder.build(this.getClass().getClassLoader() > .getResourceAsStream( >"org/apache/avalon/excalibur/system/test/ContainerProfile.roles" ) ) ); > > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.JdbcDataSource" ) ), > "datasource" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.ActiveMonitor" ) ), > "monitor" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.xml.JaxpParser" ) ), > "parser" > ); > } > > /** > * Test the shorthand return values. > */ > public void testRoleForClass() > throws Exception > { > DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); > ConfigurableRoleManager roles = new ConfigurableRoleManager( null, >this.getClass().getClassLoader() ); > roles.configure( builder.build(this.getClass().getClassLoader() > .getResourceAsStream( >"org/apache/avalon/excalibur/system/test/ContainerProfile.roles" ) ) ); > > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.JdbcDataSource" ) ), > "org.apache.avalon.excalibur.datasource.DataSourceComponent" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.ActiveMonitor" ) ), > "org.apache.avalon.excalibur.monitor.Monitor" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.xml.JaxpParser" ) ), > "org.apache.avalon.excalibur.xml.Parser" > ); > } > > /** > * Test the shorthand return values. > */ > public void testClassesForRole() > throws Exception > { > DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); > ConfigurableRoleManager roles = new ConfigurableRoleManager( null, >this.getClass().getClassLoader() ); > roles.configure( builder.build(this.getClass().getClassLoader() > .getResourceAsStream( >"org/apache/avalon/excalibur/system/test/ContainerProfile.roles" ) ) ); > > Class[] classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.datasource.DataSourceComponent" ); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.datasource.JdbcDataSource" ) > ); > > classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.monitor.Monitor" ); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.monitor.ActiveMonitor" ) > ); > > classes = roles.getClassesForRole( "org.apache.avalon.excalibur.xml.Parser" >); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.xml.JaxpParser" ) > ); > } > > /** > * Test the handler class return values. > */ > public void testHandlerClassReturnValues() > throws Exception > { > DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(); > ConfigurableRoleManager roles = new ConfigurableRoleManager( null, >this.getClass().getClassLoader() ); > roles.configure( builder.build(this.getClass().getClassLoader() > .getResourceAsStream( >"org/apache/avalon/excalibur/system/test/ContainerProfile.roles" ) ) ); > > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.JdbcDataSource" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.ActiveMonitor" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.xml.JaxpParser" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.PoolableComponentHandler" ) > ); > } > } > > > > 1.1 >jakarta-avalon-excalibur/src/scratchpad/org/apache/avalon/excalibur/system/util/test/Excali >burRoleManagerTestCase.java > > Index: ExcaliburRoleManagerTestCase.java > =================================================================== > /* > * Copyright (C) The Apache Software Foundation. All rights reserved. > * > * This software is published under the terms of the Apache Software License > * version 1.1, a copy of which has been included with this distribution in > * the LICENSE.txt file. > */ > package org.apache.avalon.excalibur.system.util.test; > > import org.apache.avalon.excalibur.system.util.ExcaliburRoleManager; > > import junit.framework.TestCase; > > /** > * Configurable RoleManager implementation. It populates the RoleManager > * from a configuration hierarchy. This is based on the DefaultRoleManager > * in the org.apache.avalon.component package. > * > * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> > * @version CVS $Revision: 1.1 $ $Date: 2002/02/19 20:48:04 $ > * @since 4.1 > */ > public class ExcaliburRoleManagerTestCase > extends TestCase > { > /** > * Default constructor--this RoleManager has no parent. > */ > public ExcaliburRoleManagerTestCase( String name ) > { > super( name ); > } > > /** > * Test the shorthand return values. > */ > public void testShorthandReturnValues() > throws Exception > { > ExcaliburRoleManager roles = new ExcaliburRoleManager( null, >this.getClass().getClassLoader() ); > > assertEquals( > roles.getClassForName( "cache" ), > Class.forName( "org.apache.avalon.excalibur.cache.DefaultCache" ) > ); > assertEquals( > roles.getClassForName( "lru-cache" ), > Class.forName( "org.apache.avalon.excalibur.cache.LRUCache" ) > ); > assertEquals( > roles.getClassForName( "jdbc-datasource" ), > Class.forName( "org.apache.avalon.excalibur.datasource.JdbcDataSource" ) > ); > assertEquals( > roles.getClassForName( "j2ee-datasource" ), > Class.forName( "org.apache.avalon.excalibur.datasource.J2eeDataSource" ) > ); > assertEquals( > roles.getClassForName( "informix-datasource" ), > Class.forName( >"org.apache.avalon.excalibur.datasource.InformixDataSource" ) > ); > assertEquals( > roles.getClassForName( "i18n" ), > Class.forName( "org.apache.avalon.excalibur.i18n.BundleSelector" ) > ); > assertEquals( > roles.getClassForName( "monitor" ), > Class.forName( "org.apache.avalon.excalibur.monitor.ActiveMonitor" ) > ); > assertEquals( > roles.getClassForName( "passive-monitor" ), > Class.forName( "org.apache.avalon.excalibur.monitor.PassiveMonitor" ) > ); > assertEquals( > roles.getClassForName( "xalan-xpath" ), > Class.forName( >"org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl" ) > ); > assertEquals( > roles.getClassForName( "jaxpath" ), > Class.forName( >"org.apache.avalon.excalibur.xml.xpath.JaxenProcessorImpl" ) > ); > assertEquals( > roles.getClassForName( "resolver" ), > Class.forName( "org.apache.avalon.excalibur.source.SourceResolverImpl" ) > ); > assertEquals( > roles.getClassForName( "parser" ), > Class.forName( "org.apache.avalon.excalibur.xml.JaxpParser" ) > ); > assertEquals( > roles.getClassForName( "xerces-parser" ), > Class.forName( "org.apache.avalon.excalibur.xml.XercesParser" ) > ); > } > > /** > * Test the shorthand return values. > */ > public void testShorthandRemapReturnValues() > throws Exception > { > ExcaliburRoleManager roles = new ExcaliburRoleManager( null, >this.getClass().getClassLoader() ); > > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.cache.DefaultCache" ) ), > "cache" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.cache.LRUCache" ) ), > "lru-cache" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.JdbcDataSource" ) ), > "jdbc-datasource" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.J2eeDataSource" ) ), > "j2ee-datasource" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.InformixDataSource" ) ), > "informix-datasource" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.i18n.BundleSelector" ) ), > "i18n" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.ActiveMonitor" ) ), > "monitor" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.PassiveMonitor" ) ), > "passive-monitor" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl" ) ), > "xalan-xpath" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.xml.xpath.JaxenProcessorImpl" ) ), > "jaxpath" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.source.SourceResolverImpl" ) ), > "resolver" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.xml.JaxpParser" ) ), > "parser" > ); > assertEquals( > roles.getNameForClass( Class.forName( >"org.apache.avalon.excalibur.xml.XercesParser" ) ), > "xerces-parser" > ); > } > > /** > * Test the shorthand return values. > */ > public void testRoleForClass() > throws Exception > { > ExcaliburRoleManager roles = new ExcaliburRoleManager( null, >this.getClass().getClassLoader() ); > > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.cache.DefaultCache" ) ), > "org.apache.avalon.excalibur.cache.Cache" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.cache.LRUCache" ) ), > "org.apache.avalon.excalibur.cache.Cache" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.JdbcDataSource" ) ), > "org.apache.avalon.excalibur.datasource.DataSourceComponent" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.J2eeDataSource" ) ), > "org.apache.avalon.excalibur.datasource.DataSourceComponent" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.InformixDataSource" ) ), > "org.apache.avalon.excalibur.datasource.DataSourceComponent" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.i18n.BundleSelector" ) ), > "org.apache.avalon.excalibur.i18n.BundleSelector" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.ActiveMonitor" ) ), > "org.apache.avalon.excalibur.monitor.Monitor" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.PassiveMonitor" ) ), > "org.apache.avalon.excalibur.monitor.Monitor" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl" ) ), > "org.apache.avalon.excalibur.xml.xpath.XPathProcessor" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.xml.xpath.JaxenProcessorImpl" ) ), > "org.apache.avalon.excalibur.xml.xpath.XPathProcessor" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.source.SourceResolverImpl" ) ), > "org.apache.avalon.excalibur.source.SourceResolver" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.xml.JaxpParser" ) ), > "org.apache.avalon.excalibur.xml.Parser" > ); > assertEquals( > roles.getRoleForClass( Class.forName( >"org.apache.avalon.excalibur.xml.XercesParser" ) ), > "org.apache.avalon.excalibur.xml.Parser" > ); > } > > /** > * Test the shorthand return values. > */ > public void testClassesForRole() > throws Exception > { > ExcaliburRoleManager roles = new ExcaliburRoleManager( null, >this.getClass().getClassLoader() ); > > Class[] classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.cache.Cache" ); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.cache.DefaultCache" ) > ); > assertEquals( > classes[1], > Class.forName( "org.apache.avalon.excalibur.cache.LRUCache" ) > ); > > classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.datasource.DataSourceComponent" ); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.datasource.JdbcDataSource" ) > ); > assertEquals( > classes[1], > Class.forName( "org.apache.avalon.excalibur.datasource.J2eeDataSource" ) > ); > assertEquals( > classes[2], > Class.forName( >"org.apache.avalon.excalibur.datasource.InformixDataSource" ) > ); > > classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.i18n.BundleSelector" ); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.i18n.BundleSelector" ) > ); > > classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.monitor.Monitor" ); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.monitor.ActiveMonitor" ) > ); > assertEquals( > classes[1], > Class.forName( "org.apache.avalon.excalibur.monitor.PassiveMonitor" ) > ); > > classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.xml.xpath.XPathProcessor" ); > > assertEquals( > classes[0], > Class.forName( >"org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl" ) > ); > assertEquals( > classes[1], > Class.forName( >"org.apache.avalon.excalibur.xml.xpath.JaxenProcessorImpl" ) > ); > > classes = roles.getClassesForRole( >"org.apache.avalon.excalibur.source.SourceResolver" ); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.source.SourceResolverImpl" ) > ); > > classes = roles.getClassesForRole( "org.apache.avalon.excalibur.xml.Parser" >); > > assertEquals( > classes[0], > Class.forName( "org.apache.avalon.excalibur.xml.JaxpParser" ) > ); > assertEquals( > classes[1], > Class.forName( "org.apache.avalon.excalibur.xml.XercesParser" ) > ); > } > > /** > * Test the handler class return values. > */ > public void testHandlerClassReturnValues() > throws Exception > { > ExcaliburRoleManager roles = new ExcaliburRoleManager( null, >this.getClass().getClassLoader() ); > > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.cache.DefaultCache" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.cache.LRUCache" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.JdbcDataSource" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.J2eeDataSource" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.datasource.InformixDataSource" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.i18n.BundleSelector" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.ActiveMonitor" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.monitor.PassiveMonitor" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.xml.xpath.JaxenProcessorImpl" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.source.SourceResolverImpl" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.ThreadSafeComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.xml.JaxpParser" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.PerThreadComponentHandler" ) > ); > assertEquals( > roles.getHandlerClassForClass( Class.forName( >"org.apache.avalon.excalibur.xml.XercesParser" ) ), > Class.forName( >"org.apache.avalon.excalibur.system.handler.FactoryComponentHandler" ) > ); > } > } > > > > >-- >To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>