You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by bl...@apache.org on 2002/06/25 15:39:37 UTC

cvs commit: jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util ContextBuilder.java ContextManagerConstants.java

bloritsch    2002/06/25 06:39:37

  Modified:    fortress/src/java/org/apache/excalibur/fortress
                        AbstractContainer.java
                        ContainerManagerConstants.java
                        DefaultContainerManager.java
               fortress/src/java/org/apache/excalibur/fortress/lookup
                        FortressComponentManager.java
               fortress/src/java/org/apache/excalibur/fortress/util
                        ContextBuilder.java ContextManagerConstants.java
  Added:       fortress/src/java/org/apache/excalibur/fortress/lookup
                        ServiceComponentManager.java
  Log:
  Add support for ServiceManager in the container
  
  Revision  Changes    Path
  1.42      +6 -5      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.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- AbstractContainer.java	23 Jun 2002 03:32:40 -0000	1.41
  +++ AbstractContainer.java	25 Jun 2002 13:39:37 -0000	1.42
  @@ -32,6 +32,7 @@
   import org.apache.avalon.framework.logger.Logger;
   import org.apache.avalon.framework.service.ServiceException;
   import org.apache.avalon.framework.service.ServiceManager;
  +import org.apache.avalon.framework.service.Serviceable;
   import org.apache.excalibur.event.Queue;
   import org.apache.excalibur.event.command.Command;
   import org.apache.excalibur.fortress.handler.ComponentHandler;
  @@ -53,10 +54,10 @@
    */
   public abstract class AbstractContainer
       extends AbstractLogEnabled
  -    implements Contextualizable, Composable, Configurable, Initializable, Disposable, Container
  +    implements Contextualizable, Serviceable, Configurable, Initializable, Disposable, Container
   {
       protected Context m_context;
  -    private ComponentManager m_manager;
  +    private ServiceManager m_manager;
       protected LoggerManager m_logManager;
       protected PoolManager m_poolManager;
       protected Queue m_commandQueue;
  @@ -390,8 +391,8 @@
        * Root ComponentLocator.  The Container may choose to have it's ComponentLocator
        * delegate to the root manager, or it may choose to be entirely self contained.
        */
  -    public void compose( ComponentManager manager )
  -        throws ComponentException
  +    public void service( ServiceManager manager )
  +        throws ServiceException
       {
           m_manager = manager;
       }
  
  
  
  1.7       +6 -1      jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/ContainerManagerConstants.java
  
  Index: ContainerManagerConstants.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/ContainerManagerConstants.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ContainerManagerConstants.java	13 Jun 2002 17:24:51 -0000	1.6
  +++ ContainerManagerConstants.java	25 Jun 2002 13:39:37 -0000	1.7
  @@ -28,6 +28,11 @@
       String COMPONENT_MANAGER = "container.componentManager";
   
       /**
  +     * ComponentLocator: The component manager to give to the container.
  +     */
  +    String SERVICE_MANAGER = "container.serviceManager";
  +
  +    /**
        * Configuration: The configuration to give to the container.
        */
       String CONFIGURATION = "container.configuration";
  
  
  
  1.10      +9 -1      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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DefaultContainerManager.java	13 May 2002 12:17:39 -0000	1.9
  +++ DefaultContainerManager.java	25 Jun 2002 13:39:37 -0000	1.10
  @@ -23,6 +23,8 @@
   import org.apache.avalon.framework.logger.Logger;
   import org.apache.avalon.framework.parameters.Parameterizable;
   import org.apache.avalon.framework.parameters.Parameters;
  +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.util.ComponentStateValidator;
   
  @@ -143,6 +145,12 @@
                   {
                       validator.checkComposed();
                       ( (Composable)instance ).compose( (ComponentManager)initParameters.get( COMPONENT_MANAGER ) );
  +                }
  +
  +                if( instance instanceof Serviceable )
  +                {
  +                    validator.checkComposed();
  +                    ( (Serviceable)instance ).service( (ServiceManager)initParameters.get( SERVICE_MANAGER ) );
                   }
   
                   if( instance instanceof Configurable )
  
  
  
  1.2       +10 -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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FortressComponentManager.java	18 Jun 2002 18:45:36 -0000	1.1
  +++ FortressComponentManager.java	25 Jun 2002 13:39:37 -0000	1.2
  @@ -13,6 +13,7 @@
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.ComponentSelector;
   import org.apache.avalon.framework.service.ServiceException;
  +import org.apache.avalon.framework.service.ServiceManager;
   import org.apache.excalibur.fortress.Container;
   import org.apache.excalibur.fortress.handler.ComponentHandler;
   
  @@ -36,7 +37,14 @@
        */
       public FortressComponentManager( final Container container )
       {
  -        this( container, null );
  +        this( container,(ComponentManager)null );
  +    }
  +    
  +    /**
  +     */
  +    public FortressComponentManager( final Container container, final ServiceManager parent )
  +    {
  +        this( container, new ServiceComponentManager(parent));
       }
   
       /**
  
  
  
  1.1                  jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/lookup/ServiceComponentManager.java
  
  Index: ServiceComponentManager.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.excalibur.fortress.lookup;
  
  import org.apache.avalon.framework.component.Component;
  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;
  
  /**
   * This is the Default ServiceManager for the Container.  It provides
   * a very simple abstraction, and makes it easy for the Container to manage
   * the references.
   *
   * @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
   * @version CVS $Revision: 1.1 $ $Date: 2002/06/25 13:39:37 $
   */
  public class ServiceComponentManager implements ComponentManager
  {
      private final ServiceManager m_manager;
  
      /**
       * This constructor is a constructor for a ComponentServiceManager
       */
      public ServiceComponentManager( final ServiceManager wrapped )
      {
          m_manager = wrapped;
      }
  
      public Component lookup( String role )
          throws ComponentException
      {
          Component temp = null;
  
          try
          {
              temp = (Component) m_manager.lookup( role );
          }
          catch( ServiceException ce )
          {
              throw new ComponentException( role, "Could not return a reference to the Component", ce );
          }
          catch( ClassCastException cce )
          {
              throw new ComponentException( role, "The requested component does not implement Component", cce );
          }
  
          return temp;
      }
  
      public boolean hasComponent( String role )
      {
          return m_manager.hasService( role );
      }
  
      public void release( Component component )
      {
          m_manager.release(component);
      }
  }
  
  
  
  1.12      +11 -0     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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ContextBuilder.java	13 May 2002 12:17:39 -0000	1.11
  +++ ContextBuilder.java	25 Jun 2002 13:39:37 -0000	1.12
  @@ -8,6 +8,7 @@
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.context.ContextException;
   import org.apache.avalon.framework.context.DefaultContext;
  +import org.apache.avalon.framework.service.ServiceManager;
   import org.apache.excalibur.event.Queue;
   import org.apache.excalibur.mpool.PoolManager;
   
  @@ -95,6 +96,16 @@
       public void setComponentManager( ComponentManager componentManager )
       {
           context.put( COMPONENT_MANAGER, componentManager );
  +    }
  +
  +    public void setServiceManagerParent( ServiceManager componentManager )
  +    {
  +        context.put( SERVICE_MANAGER_PARENT, componentManager );
  +    }
  +
  +    public void setServiceManager( ServiceManager componentManager )
  +    {
  +        context.put( SERVICE_MANAGER, componentManager );
       }
   
       public void setContainerClass( String containerClass )
  
  
  
  1.7       +2 -1      jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextManagerConstants.java
  
  Index: ContextManagerConstants.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/fortress/src/java/org/apache/excalibur/fortress/util/ContextManagerConstants.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ContextManagerConstants.java	13 Apr 2002 01:39:57 -0000	1.6
  +++ ContextManagerConstants.java	25 Jun 2002 13:39:37 -0000	1.7
  @@ -34,5 +34,6 @@
       String COMPONENT_MANAGER_CLASS = "container.componentManager.config";
       String COMPONENT_MANAGER_CONFIGURATION = "container.componentManager.config";
       String COMPONENT_MANAGER_PARENT = "container.componentManager.parent";
  +    String SERVICE_MANAGER_PARENT = "container.serviceManager.parent";
       String COMPONENT_MANAGER_CONFIGURATION_URI = "container.componentManager.config.uri";
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>