crafterm    2002/07/12 05:53:45

  Modified:    
fortress/examples/src/java/org/apache/excalibur/fortress/examples/extended
                        ExtendedContainer.java
               
fortress/examples/src/java/org/apache/excalibur/fortress/examples/servlet
                        ServletContainer.java
               fortress/examples/src/java/org/apache/excalibur/fortress/examples/swing
                        SwingContainer.java
               fortress/src/java/org/apache/excalibur/fortress
                        AbstractContainer.java DefaultContainerManager.java
               fortress/src/java/org/apache/excalibur/fortress/handler
                        AbstractComponentHandler.java
                        AbstractThreadSafeComponentHandler.java
                        ComponentFactory.java ComponentHandler.java
                        FactoryComponentHandler.java
                        LazyThreadSafeComponentHandler.java
                        PerThreadComponentHandler.java
                        PoolableComponentHandler.java
                        ThreadSafeComponentHandler.java
               fortress/src/java/org/apache/excalibur/fortress/lookup
                        FortressComponentManager.java
               fortress/src/java/org/apache/excalibur/fortress/util
                        ContextBuilder.java
  Log:
  Several changes, hopefully consolidating the use of Service and Component
  manager within Fortress.
  
  I've modified AbstractContainer be completely Service-based, and have
  removed Composable to help clear up the creation of internal
  ServiceManager and ComponentManager references.
  
  Previously functionality is still supported though, since
  ServiceManager is a superset of ComponentManager (ie. differs only by casting
  and API names) and can be used as a ComponentManager via the
  ServiceComponentManager class.
  
  Modified DefaultContainerManager to wrap any ComponentManager parent into a
  ServiceManager, and to only allow either a ComponentManager or a
  ServiceManager as a parent, not both (this check was previously done in
  AbstractContainer).
  
  Updated the Component handlers/factory to use just service manager,
  Composable components are still supported via the ServiceComponentManager
  class.
  
  Reintroduced protected m_serviceManager reference, which is constructed during
  service(), and a modified getComponentManager() method which wraps this
  reference with a ServiceComponentManager class, when invoked.
  
  Updated examples to reflect these changes.
  
  Revision  Changes    Path
  1.2       +3 -8      
jakarta-avalon-excalibur/fortress/examples/src/java/org/apache/excalibur/fortress/examples/extended/ExtendedContainer.java
  
  Index: ExtendedContainer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/examples/src/java/org/apache/excalibur/fortress/examples/extended/ExtendedContainer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ExtendedContainer.java    10 Jul 2002 10:01:08 -0000      1.1
  +++ ExtendedContainer.java    12 Jul 2002 12:53:44 -0000      1.2
  @@ -7,7 +7,6 @@
    */
   package org.apache.excalibur.fortress.examples.extended;
   
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.excalibur.fortress.AbstractContainer;
   import org.apache.excalibur.fortress.examples.extended.components.ExtendedComponent;
   import org.apache.excalibur.fortress.examples.extended.extensions.Extensions;
  @@ -15,16 +14,12 @@
   public final class ExtendedContainer
       extends AbstractContainer
   {
  -    private ComponentManager m_manager;
  -
       public void initialize()
           throws Exception
       {
           super.initialize();
  +         
           m_extManager.getAccessLifecycleExtensions().add(new Extensions());
  -
  -        // REVISIT(MC): this doesn't belong here
  -        m_manager = getComponentManager();
       }
   
       public void doLookups()
  @@ -34,8 +29,8 @@
   
           for (int i = 0; i < 10; ++i)
           {
  -            ExtendedComponent comp = (ExtendedComponent) 
m_manager.lookup(ExtendedComponent.ROLE);
  -            m_manager.release(comp);
  +            ExtendedComponent comp = (ExtendedComponent) 
m_serviceManager.lookup(ExtendedComponent.ROLE);
  +            m_serviceManager.release(comp);
           }
   
           getLogger().info("Finished lookups of custom component");
  
  
  
  1.2       +9 -12     
jakarta-avalon-excalibur/fortress/examples/src/java/org/apache/excalibur/fortress/examples/servlet/ServletContainer.java
  
  Index: ServletContainer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/examples/src/java/org/apache/excalibur/fortress/examples/servlet/ServletContainer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServletContainer.java     4 Jul 2002 10:24:00 -0000       1.1
  +++ ServletContainer.java     12 Jul 2002 12:53:44 -0000      1.2
  @@ -14,10 +14,10 @@
   import javax.servlet.ServletRequest;
   import javax.servlet.ServletResponse;
   
  -import org.apache.avalon.framework.component.ComponentException;
  -import org.apache.avalon.framework.component.ComponentManager;
  -import org.apache.excalibur.fortress.AbstractContainer;
  +import org.apache.avalon.framework.component.ServiceException;
  +import org.apache.avalon.framework.component.ServiceManager;
   
  +import org.apache.excalibur.fortress.AbstractContainer;
   import org.apache.excalibur.fortress.examples.components.Translator;
   
   /**
  @@ -32,11 +32,10 @@
   {
       public static final String KEY = "hello-world";
   
  -    private ComponentManager m_manager;
       private Translator m_translator;
   
       /**
  -     * Initialize this component
  +     * Initializes this component.
        *
        * @exception Exception if an error occurs
        */
  @@ -45,9 +44,7 @@
       {
           super.initialize();
   
  -        // REVISIT: shouldn't this work in compose() ?
  -        m_manager = getComponentManager();
  -        m_translator = ( Translator ) m_manager.lookup( Translator.ROLE );
  +        m_translator = ( Translator ) m_serviceManager.lookup( Translator.ROLE );
       }
   
       /**
  @@ -122,10 +119,10 @@
        */
       public void dispose()
       {
  -        super.dispose();
  -
           if ( m_translator != null )
  -            m_manager.release( m_translator );
  +            m_serviceManager.release( m_translator );
  +
  +        super.dispose();
       }
   }
   
  
  
  
  1.2       +9 -28     
jakarta-avalon-excalibur/fortress/examples/src/java/org/apache/excalibur/fortress/examples/swing/SwingContainer.java
  
  Index: SwingContainer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/examples/src/java/org/apache/excalibur/fortress/examples/swing/SwingContainer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SwingContainer.java       4 Jul 2002 09:43:24 -0000       1.1
  +++ SwingContainer.java       12 Jul 2002 12:53:44 -0000      1.2
  @@ -16,8 +16,8 @@
   import javax.swing.JPanel;
   
   import org.apache.avalon.framework.activity.Startable;
  -import org.apache.avalon.framework.component.ComponentException;
  -import org.apache.avalon.framework.component.ComponentManager;
  +import org.apache.avalon.framework.service.ServiceException;
  +import org.apache.avalon.framework.service.ServiceManager;
   
   import org.apache.excalibur.fortress.AbstractContainer;
   import org.apache.excalibur.fortress.examples.components.Translator;
  @@ -34,7 +34,6 @@
       implements Startable, ActionListener
   {
       // Component references
  -    private ComponentManager m_manager;
       private Translator m_translator;
   
       // GUI references
  @@ -45,36 +44,18 @@
       private String m_key = "hello-world";
   
       /**
  -     * Compose this component. Stores reference to component manager
  -     * and translator component.
  -     *
  -     * @param manager a <code>ComponentManager</code> instance
  -     * @exception ComponentException if an error occurs
  -     */
  -    public void compose(ComponentManager manager)
  -         throws ComponentException
  -    {
  -        super.compose(manager);
  -
  -        // REVISIT: this shouldn't be in compose ? where's the right place ?
  -        m_manager = getComponentManager();
  -        m_translator = ( Translator ) m_manager.lookup( Translator.ROLE );
  -    }
  -
  -    /**
        * Initializes this component. Creates simple Swing GUI containing
        * available translations for the key 'hello-world'.
        *
        * @exception Exception if an error occurs
        */
       public void initialize()
  -         throws Exception
  +        throws Exception
       {
           super.initialize();
   
  -     // REVISIT: this should be done elsewhere
  -        m_manager = getComponentManager();
  -        m_translator = ( Translator ) m_manager.lookup( Translator.ROLE );
  +        // obtain translator component
  +        m_translator = ( Translator ) m_serviceManager.lookup( Translator.ROLE );
   
           // create combo box
           JComboBox cb = new JComboBox( m_translator.getSupportedLanguages( m_key ) );
  @@ -152,10 +133,10 @@
        */
       public void dispose()
       {
  -        super.dispose();
  -
           if ( m_translator != null )
  -            m_manager.release( m_translator );
  +            m_serviceManager.release( m_translator );
  +
  +        super.dispose();
       }
   }
   
  
  
  
  1.46      +11 -40    
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/AbstractContainer.java
  
  Index: AbstractContainer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/AbstractContainer.java,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- AbstractContainer.java    9 Jul 2002 13:32:35 -0000       1.45
  +++ AbstractContainer.java    12 Jul 2002 12:53:44 -0000      1.46
  @@ -20,7 +20,6 @@
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.ComponentSelector;
  -import org.apache.avalon.framework.component.Composable;
   import org.apache.avalon.framework.configuration.Configurable;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  @@ -40,13 +39,14 @@
   import org.apache.excalibur.fortress.lookup.FortressComponentManager;
   import org.apache.excalibur.fortress.lookup.FortressComponentSelector;
   import org.apache.excalibur.fortress.lookup.FortressServiceManager;
  +import org.apache.excalibur.fortress.lookup.ServiceComponentManager;
   import org.apache.excalibur.fortress.util.ExcaliburRoleManager;
   import org.apache.excalibur.fortress.util.RoleManager;
   import org.apache.excalibur.mpool.PoolManager;
   
   /**
    * The Container is an interface used to mark the Containers in your system.  It
  - * exposes a protected getComponentManager()/getServiceManager() method so that the
  + * exposes a protected getServiceManager() method so that the
    * Container's Manager can expose that to the instantiating class.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Berin Loritsch</a>
  @@ -55,11 +55,10 @@
    */
   public abstract class AbstractContainer
       extends AbstractLogEnabled
  -    implements Contextualizable, Serviceable, Composable, Configurable, 
Initializable, Disposable, Container
  +    implements Contextualizable, Serviceable, Configurable, Initializable, 
Disposable, Container
   {
       protected Context m_context;
  -    private ServiceManager m_serviceManager;
  -    private ComponentManager m_componentManager;
  +    protected ServiceManager m_serviceManager;
       protected LoggerManager m_logManager;
       protected PoolManager m_poolManager;
       protected Queue m_commandQueue;
  @@ -302,7 +301,6 @@
               handler = (ComponentHandler)constructor.newInstance( new Object[]{
                   klass,
                   configuration,
  -                getComponentManager(),
                   getServiceManager(),
                   m_context,
                   m_extManager
  @@ -412,30 +410,10 @@
        * Root ServiceManager.  The Container may choose to have it's ServiceManager
        * delegate to the root manager, or it may choose to be entirely self contained.
        */
  -    public void service( ServiceManager manager )
  +    public void service( final ServiceManager parent )
           throws ServiceException
       {
  -        if( m_componentManager != null && manager != null )
  -        {
  -            throw new IllegalStateException( "ComponentManager has already been 
set, cannot use both simultaneously" );
  -        }
  -
  -        m_serviceManager = manager;
  -    }
  -
  -    /**
  -     * Root ComponentManager.  The Container may choose to have it's 
ComponentManager
  -     * delegate to the root manager, or it may choose to be entirely self contained.
  -     */
  -    public void compose( ComponentManager componentManager )
  -      throws ComponentException
  -    {
  -        if( m_serviceManager != null  && componentManager != null )
  -        {
  -            throw new IllegalStateException( "ServiceManager has already been set, 
cannot use both simultaneously" );
  -        }
  -
  -        m_componentManager = componentManager;
  +        m_serviceManager = new FortressServiceManager( this, parent, m_extManager, 
m_context );
       }
   
       /**
  @@ -522,18 +500,15 @@
       }
   
       /**
  -     * Exposes to subclasses the component manager which this container
  +     * Exposes to subclasses the service manager which this container
        * uses to manage its child components.
        *
        * @return the child component manager
        */
       protected final ComponentManager getComponentManager()
       {
  -        if ( m_componentManager == null && m_serviceManager == null )
  -            return new FortressComponentManager( this, m_extManager, m_context );
  -        return m_componentManager == null ?
  -            new FortressComponentManager( this, m_serviceManager, m_extManager, 
m_context ) :
  -            new FortressComponentManager( this, m_componentManager, m_extManager, 
m_context );
  +        // if a component manager is really needed
  +        return new ServiceComponentManager( m_serviceManager );
       }
   
       /**
  @@ -544,11 +519,7 @@
        */
       protected final ServiceManager getServiceManager()
       {
  -        if ( m_componentManager == null && m_serviceManager == null )
  -            return new FortressServiceManager( this, m_extManager, m_context );
  -        return m_serviceManager == null ?
  -            new FortressServiceManager( this, m_componentManager, m_extManager, 
m_context ) :
  -            new FortressServiceManager( this, m_serviceManager, m_extManager, 
m_context );
  +        return m_serviceManager;
       }
   
       /**
  
  
  
  1.13      +49 -21    
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/DefaultContainerManager.java
  
  Index: DefaultContainerManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/DefaultContainerManager.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- DefaultContainerManager.java      28 Jun 2002 04:50:17 -0000      1.12
  +++ DefaultContainerManager.java      12 Jul 2002 12:53:44 -0000      1.13
  @@ -26,6 +26,8 @@
   import org.apache.avalon.framework.service.ServiceManager;
   import org.apache.avalon.framework.service.Serviceable;
   import org.apache.excalibur.fortress.util.ContextManager;
  +import org.apache.excalibur.fortress.lookup.ComponentServiceManager;
  +import org.apache.excalibur.fortress.lookup.ServiceComponentManager;
   import org.apache.excalibur.util.ComponentStateValidator;
   
   /**
  @@ -111,6 +113,7 @@
           if( null == containerInstance )
           {
               Object instance = null;
  +
               try
               {
                   instance = ( (Class)initParameters.get( CONTAINER_CLASS ) 
).newInstance();
  @@ -138,36 +141,25 @@
                       ( (Contextualizable)instance ).contextualize( containerContext 
);
                   }
   
  +                ComponentManager cmanager = getComponentManager( initParameters );
  +                ServiceManager smanager = getServiceManager( initParameters );
  +
                   if( instance instanceof Composable )
                   {
   //                    validator.checkComposed();
   
  -                    try
  -                    {
  -                        final ComponentManager manager = 
(ComponentManager)initParameters.get( COMPONENT_MANAGER );
  -
  -                        ( (Composable)instance ).compose( manager );
  -                    }
  -                    catch( ContextException e )
  -                    {
  -                        //Ignore, it may not have a parent component manager
  -                    }
  +                    ComponentManager manager =
  +                        ( smanager == null ) ? cmanager : new 
ServiceComponentManager( smanager );
  +                    ( (Composable) instance ).compose( manager );
                   }
   
                   if( instance instanceof Serviceable )
                   {
   //                    validator.checkServiced();
   
  -                    try
  -                    {
  -                        final ServiceManager manager = 
(ServiceManager)initParameters.get( SERVICE_MANAGER );
  -
  -                        ( (Serviceable)instance ).service( manager );
  -                    }
  -                    catch( ContextException e )
  -                    {
  -                        //Ignore, it may not have a parent service manager
  -                    }
  +                    ServiceManager manager =
  +                        ( cmanager == null ) ? smanager : new 
ComponentServiceManager( cmanager );
  +                    ( (Serviceable)instance ).service( manager );
                   }
   
                   if( instance instanceof Configurable )
  @@ -202,6 +194,42 @@
               }
   
               containerInstance = instance;
  +        }
  +    }
  +
  +    /**
  +     * Helper method to get the CM out of the given context, if existing
  +     *
  +     * @param context a <code>Context</code> instance
  +     * @return a <code>ComponentManager</code> instance or null if none
  +     */
  +    private ComponentManager getComponentManager( Context context )
  +    {
  +        try
  +        {
  +            return (ComponentManager) context.get( COMPONENT_MANAGER );
  +        }
  +        catch( ContextException e )
  +        {
  +            return null;
  +        }
  +    }
  +
  +    /**
  +     * Helper method to get an SM out of the given context, if existing
  +     *
  +     * @param context a <code>Context</code> instance
  +     * @return a <code>ServiceManager</code> instance or null if none
  +     */
  +    private ServiceManager getServiceManager( Context context )
  +    {
  +        try
  +        {
  +            return (ServiceManager) context.get( SERVICE_MANAGER );
  +        }
  +        catch ( ContextException e )
  +        {
  +            return null;
           }
       }
   
  
  
  
  1.6       +2 -4      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/AbstractComponentHandler.java
  
  Index: AbstractComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/AbstractComponentHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractComponentHandler.java     9 Jul 2002 13:32:36 -0000       1.5
  +++ AbstractComponentHandler.java     12 Jul 2002 12:53:44 -0000      1.6
  @@ -11,7 +11,6 @@
   import org.apache.avalon.excalibur.instrument.Instrumentable;
   import org.apache.avalon.excalibur.logger.LoggerManager;
   import org.apache.avalon.framework.activity.Disposable;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.logger.Logger;
  @@ -59,14 +58,13 @@
        */
       public AbstractComponentHandler( final Class componentClass,
                                        final Configuration config,
  -                                     final ComponentManager manager,
                                        final ServiceManager service,
                                        final Context context,
                                        final LifecycleExtensionManager extManager )
           throws Exception
       {
           m_logkit = (LoggerManager)context.get( Container.LOGGER_MANAGER );
  -        m_factory = new ComponentFactory( componentClass, config, manager, service, 
context, m_logkit, extManager );
  +        m_factory = new ComponentFactory( componentClass, config, service, context, 
m_logkit, extManager );
           m_context = context;
       }
   
  
  
  
  1.3       +2 -4      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/AbstractThreadSafeComponentHandler.java
  
  Index: AbstractThreadSafeComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/AbstractThreadSafeComponentHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractThreadSafeComponentHandler.java   9 Jul 2002 13:32:36 -0000       1.2
  +++ AbstractThreadSafeComponentHandler.java   12 Jul 2002 12:53:44 -0000      1.3
  @@ -10,7 +10,6 @@
   import org.apache.avalon.excalibur.logger.LoggerManager;
   import org.apache.avalon.framework.activity.Disposable;
   import org.apache.avalon.framework.activity.Startable;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.logger.Logger;
  @@ -38,13 +37,12 @@
        */
       public AbstractThreadSafeComponentHandler( final Class componentClass,
                                                  final Configuration config,
  -                                               final ComponentManager manager,
                                                  final ServiceManager service,
                                                  final Context context,
                                                  final LifecycleExtensionManager 
extManager )
           throws Exception
       {
  -        super( componentClass, config, manager, service, context, extManager );
  +        super( componentClass, config, service, context, extManager );
       }
   
       /**
  
  
  
  1.16      +3 -9      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ComponentFactory.java
  
  Index: ComponentFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ComponentFactory.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ComponentFactory.java     9 Jul 2002 13:32:36 -0000       1.15
  +++ ComponentFactory.java     12 Jul 2002 12:53:44 -0000      1.16
  @@ -11,7 +11,6 @@
   import org.apache.avalon.excalibur.instrument.Instrument;
   import org.apache.avalon.excalibur.instrument.Instrumentable;
   import org.apache.avalon.excalibur.logger.LoggerManager;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.container.ContainerUtil;
   import org.apache.avalon.framework.context.Context;
  @@ -22,6 +21,7 @@
   import org.apache.avalon.framework.service.ServiceManager;
   import org.apache.avalon.framework.thread.ThreadSafe;
   import org.apache.excalibur.fortress.lifecycle.LifecycleExtensionManager;
  +import org.apache.excalibur.fortress.lookup.ServiceComponentManager;
   import org.apache.excalibur.mpool.ObjectFactory;
   
   /**
  @@ -49,10 +49,6 @@
   
       /** The component manager for this component.
        */
  -    private ComponentManager m_componentManager;
  -
  -    /** The component manager for this component.
  -     */
       private ServiceManager m_serviceManager;
   
       /** The configuration for this component.
  @@ -83,7 +79,6 @@
        */
       public ComponentFactory( final Class componentClass,
                                final Configuration configuration,
  -                             final ComponentManager componentManager,
                                final ServiceManager serviceManager,
                                final Context context,
                                final LoggerManager logkit,
  @@ -91,7 +86,6 @@
       {
           m_componentClass = componentClass;
           m_configuration = configuration;
  -        m_componentManager = componentManager;
           m_serviceManager = serviceManager;
           m_context = context;
           m_logManager = logkit;
  @@ -129,7 +123,7 @@
           }
   
           ContainerUtil.contextualize( component, m_context );
  -        ContainerUtil.compose( component, m_componentManager );
  +        ContainerUtil.compose( component, new ServiceComponentManager( 
m_serviceManager ));
           ContainerUtil.service( component, m_serviceManager );
           ContainerUtil.configure( component, m_configuration );
   
  
  
  
  1.11      +1 -3      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ComponentHandler.java
  
  Index: ComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ComponentHandler.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ComponentHandler.java     9 Jul 2002 13:32:36 -0000       1.10
  +++ ComponentHandler.java     12 Jul 2002 12:53:44 -0000      1.11
  @@ -9,7 +9,6 @@
   
   import org.apache.avalon.framework.activity.Disposable;
   import org.apache.avalon.framework.activity.Initializable;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.service.ServiceManager;
  @@ -29,7 +28,6 @@
       Class[] HANDLER_CONSTRUCTOR = new Class[]{
           Class.class,
           Configuration.class,
  -        ComponentManager.class,
           ServiceManager.class,
           Context.class,
           LifecycleExtensionManager.class
  
  
  
  1.19      +2 -4      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/FactoryComponentHandler.java
  
  Index: FactoryComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/FactoryComponentHandler.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- FactoryComponentHandler.java      9 Jul 2002 13:32:36 -0000       1.18
  +++ FactoryComponentHandler.java      12 Jul 2002 12:53:44 -0000      1.19
  @@ -8,7 +8,6 @@
   package org.apache.excalibur.fortress.handler;
   
   import org.apache.avalon.excalibur.logger.LoggerManager;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.service.ServiceManager;
  @@ -33,13 +32,12 @@
        */
       public FactoryComponentHandler( final Class componentClass,
                                       final Configuration config,
  -                                    final ComponentManager manager,
                                       final ServiceManager service,
                                       final Context context,
                                       final LifecycleExtensionManager extManager )
           throws Exception
       {
  -        super( componentClass, config, manager, service, context, extManager );
  +        super( componentClass, config, service, context, extManager );
           m_logger = m_logkit.getLoggerForCategory( "system.handler.factory" );
           m_name = "FactoryComponentHandler";
       }
  
  
  
  1.3       +2 -4      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/LazyThreadSafeComponentHandler.java
  
  Index: LazyThreadSafeComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/LazyThreadSafeComponentHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LazyThreadSafeComponentHandler.java       9 Jul 2002 13:32:36 -0000       1.2
  +++ LazyThreadSafeComponentHandler.java       12 Jul 2002 12:53:44 -0000      1.3
  @@ -7,7 +7,6 @@
    */
   package org.apache.excalibur.fortress.handler;
   
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.service.ServiceManager;
  @@ -32,13 +31,12 @@
        */
       public LazyThreadSafeComponentHandler( final Class componentClass,
                                              final Configuration config,
  -                                           final ComponentManager manager,
                                              final ServiceManager service,
                                              final Context context,
                                              final LifecycleExtensionManager 
extManager )
           throws Exception
       {
  -        super( componentClass, config, manager, service, context, extManager );
  +        super( componentClass, config, service, context, extManager );
           m_logger = m_logkit.getLoggerForCategory( "system.handler.threadsafe.lazy" 
);
           m_name = "LazyThreadSafeComponentHandler";
       }
  
  
  
  1.20      +2 -4      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/PerThreadComponentHandler.java
  
  Index: PerThreadComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/PerThreadComponentHandler.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- PerThreadComponentHandler.java    9 Jul 2002 13:32:36 -0000       1.19
  +++ PerThreadComponentHandler.java    12 Jul 2002 12:53:44 -0000      1.20
  @@ -8,7 +8,6 @@
   package org.apache.excalibur.fortress.handler;
   
   import org.apache.avalon.excalibur.logger.LoggerManager;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.service.ServiceManager;
  @@ -35,13 +34,12 @@
        */
       public PerThreadComponentHandler( final Class componentClass,
                                         final Configuration config,
  -                                      final ComponentManager manager,
                                         final ServiceManager service,
                                         final Context context,
                                         final LifecycleExtensionManager extManager )
           throws Exception
       {
  -        super( componentClass, config, manager, service, context, extManager );
  +        super( componentClass, config, service, context, extManager );
           m_instance = new ThreadLocalComponent( m_factory );
           m_logger = m_logkit.getLoggerForCategory( "system.handler.perthread" );
           m_name = "PerThreadComponentHandler";
  
  
  
  1.23      +2 -4      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/PoolableComponentHandler.java
  
  Index: PoolableComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/PoolableComponentHandler.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- PoolableComponentHandler.java     9 Jul 2002 13:32:36 -0000       1.22
  +++ PoolableComponentHandler.java     12 Jul 2002 12:53:44 -0000      1.23
  @@ -8,7 +8,6 @@
   package org.apache.excalibur.fortress.handler;
   
   import org.apache.avalon.excalibur.logger.LoggerManager;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.service.ServiceManager;
  @@ -45,13 +44,12 @@
        */
       public PoolableComponentHandler( final Class componentClass,
                                        final Configuration config,
  -                                     final ComponentManager manager,
                                        final ServiceManager service,
                                        final Context context,
                                        final LifecycleExtensionManager extManager )
           throws Exception
       {
  -        super( componentClass, config, manager, service, context, extManager );
  +        super( componentClass, config, service, context, extManager );
           m_poolMin = config.getAttributeAsInteger( "pool-min", 10 );
           m_logger = m_logkit.getLoggerForCategory( "system.handler.poolable" );
           m_poolManager = (PoolManager)context.get( Container.POOL_MANAGER );
  
  
  
  1.19      +2 -4      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ThreadSafeComponentHandler.java
  
  Index: ThreadSafeComponentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/handler/ThreadSafeComponentHandler.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- ThreadSafeComponentHandler.java   9 Jul 2002 13:32:36 -0000       1.18
  +++ ThreadSafeComponentHandler.java   12 Jul 2002 12:53:44 -0000      1.19
  @@ -7,7 +7,6 @@
    */
   package org.apache.excalibur.fortress.handler;
   
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.service.ServiceManager;
  @@ -32,13 +31,12 @@
        */
       public ThreadSafeComponentHandler( final Class componentClass,
                                          final Configuration config,
  -                                       final ComponentManager manager,
                                          final ServiceManager service,
                                          final Context context,
                                          final LifecycleExtensionManager extManager )
           throws Exception
       {
  -        super( componentClass, config, manager, service, context, extManager );
  +        super( componentClass, config, service, context, extManager );
           m_logger = m_logkit.getLoggerForCategory( "system.handler.threadsafe" );
           m_name = "ThreadSafeComponentHandler";
       }
  
  
  
  1.6       +2 -2      
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/lookup/FortressComponentManager.java
  
  Index: FortressComponentManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/lookup/FortressComponentManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FortressComponentManager.java     9 Jul 2002 13:32:36 -0000       1.5
  +++ FortressComponentManager.java     12 Jul 2002 12:53:45 -0000      1.6
  @@ -46,7 +46,7 @@
        */
       public FortressComponentManager( final Container container, final 
ServiceManager parent, final LifecycleExtensionManager extManager, final Context 
context )
       {
  -        this( container, new ServiceComponentManager(parent), extManager, context);
  +        this( container, (parent != null) ? new ServiceComponentManager(parent) : 
(ComponentManager)null, extManager, context);
       }
   
       /**
  
  
  
  1.13      +20 -2     
jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextBuilder.java
  
  Index: ContextBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextBuilder.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ContextBuilder.java       25 Jun 2002 13:39:37 -0000      1.12
  +++ ContextBuilder.java       12 Jul 2002 12:53:45 -0000      1.13
  @@ -90,6 +90,15 @@
   
       public void setComponentManagerParent( ComponentManager componentManager )
       {
  +        try
  +        {
  +            context.get( SERVICE_MANAGER_PARENT );
  +        }
  +        catch ( ContextException e )
  +        {
  +            throw new IllegalStateException( "ServiceManagerParent already 
specified" );
  +        }
  +
           context.put( COMPONENT_MANAGER_PARENT, componentManager );
       }
   
  @@ -98,9 +107,18 @@
           context.put( COMPONENT_MANAGER, componentManager );
       }
   
  -    public void setServiceManagerParent( ServiceManager componentManager )
  +    public void setServiceManagerParent( ServiceManager serviceManager )
       {
  -        context.put( SERVICE_MANAGER_PARENT, componentManager );
  +        try
  +        {
  +            context.get( COMPONENT_MANAGER_PARENT );
  +        }
  +        catch ( ContextException e )
  +        {
  +            throw new IllegalStateException( "ComponentManagerParent already 
specified" );
  +        }
  +
  +        context.put( SERVICE_MANAGER_PARENT, serviceManager );
       }
   
       public void setServiceManager( ServiceManager componentManager )
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to