You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/08/19 14:12:35 UTC

cvs commit: jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/store ComponentStore.java

donaldp     2002/08/19 05:12:35

  Modified:    containerkit/src/java/org/apache/excalibur/containerkit/kernel
                        AbstractServiceKernel.java
  Added:       containerkit/src/java/org/apache/excalibur/containerkit/store
                        ComponentStore.java
  Log:
  Start separating out storage and processing of component.
  
  Revision  Changes    Path
  1.21      +7 -7      jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel/AbstractServiceKernel.java
  
  Index: AbstractServiceKernel.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/kernel/AbstractServiceKernel.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- AbstractServiceKernel.java	18 Aug 2002 03:46:08 -0000	1.20
  +++ AbstractServiceKernel.java	19 Aug 2002 12:12:35 -0000	1.21
  @@ -8,7 +8,6 @@
   package org.apache.excalibur.containerkit.kernel;
   
   import java.util.ArrayList;
  -import java.util.HashMap;
   import java.util.List;
   import org.apache.avalon.excalibur.i18n.ResourceManager;
   import org.apache.avalon.excalibur.i18n.Resources;
  @@ -21,6 +20,7 @@
   import org.apache.excalibur.containerkit.lifecycle.LifecycleHelper;
   import org.apache.excalibur.containerkit.lifecycle.ResourceProvider;
   import org.apache.excalibur.containerkit.metadata.ComponentMetaData;
  +import org.apache.excalibur.containerkit.store.ComponentStore;
   import org.apache.avalon.framework.info.ComponentInfo;
   
   /**
  @@ -55,7 +55,7 @@
       /**
        * The map of all entrys present in application.
        */
  -    private final HashMap m_entrys = new HashMap();
  +    private final ComponentStore m_store = new ComponentStore();
       /**
        * The {@link DependencyMap} via which dependency graph is
        * produced.
  @@ -148,7 +148,7 @@
       protected final void startupComponent( final String name )
           throws Exception
       {
  -        final ComponentEntry entry = (ComponentEntry)m_entrys.get( name );
  +        final ComponentEntry entry = m_store.getComponent( name );
           final ComponentEntry[] components =
               m_dependencyMap.getProviderGraph( entry );
           processComponents( true, components );
  @@ -162,7 +162,7 @@
       protected final void shutdownComponent( final String name )
           throws Exception
       {
  -        final ComponentEntry entry = (ComponentEntry)m_entrys.get( name );
  +        final ComponentEntry entry = m_store.getComponent( name );
           final ComponentEntry[] components =
               m_dependencyMap.getConsumerGraph( entry );
           processComponents( false, components );
  @@ -190,13 +190,13 @@
       {
           final ComponentInfo info = m_factory.createInfo( component.getImplementationKey() );
           final ComponentEntry entry = new ComponentEntry( info, component );
  -        m_entrys.put( component.getName(), entry );
  +        m_store.addComponent( entry );
           m_dependencyMap.add( entry );
       }
   
       protected final Object getComponent( final String name )
       {
  -        final ComponentEntry entry = (ComponentEntry)m_entrys.get( name );
  +        final ComponentEntry entry = m_store.getComponent( name );
           if( null != entry )
           {
               return entry.getObject();
  
  
  
  1.1                  jakarta-avalon-excalibur/containerkit/src/java/org/apache/excalibur/containerkit/store/ComponentStore.java
  
  Index: ComponentStore.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.containerkit.store;
  
  import java.util.HashMap;
  import java.util.Map;
  import java.util.Collection;
  import java.util.ArrayList;
  import org.apache.excalibur.containerkit.kernel.ComponentEntry;
  
  /**
   *
   *
   * @author <a href="mailto:peter at apache.org">Peter Donald</a>
   * @version $Revision: 1.1 $ $Date: 2002/08/19 12:12:35 $
   */
  public class ComponentStore
  {
      /**
       * The set of components in assembly.
       * Used when searching for providers/consumers.
       */
      private final Map m_components = new HashMap();
  
      /**
       * Add a component to store.
       *
       * @param component the component
       */
      public void addComponent( final ComponentEntry component )
      {
          final String name =
              component.getMetaData().getName();
          m_components.put( name, component );
      }
  
      /**
       * Remove a component from the store.
       *
       * @param component the component
       */
      public void removeComponent( final ComponentEntry component )
      {
          final String name =
              component.getMetaData().getName();
          m_components.remove( name );
      }
  
      /**
       * Return a component with specified name.
       *
       * @return a component with specified name
       */
      public ComponentEntry getComponent( final String name )
      {
          return (ComponentEntry)m_components.get( name );
      }
  
      /**
       * Return a collection containing all the
       * names of components in store. No ordering of
       * components is guarenteed or mandated.
       *
       * @return the collection containing all component names
       */
      public Collection getComponentNames()
      {
          final Collection collection = m_components.keySet();
          final ArrayList components = new ArrayList();
          components.addAll( collection );
          return components;
      }
  
      /**
       * Return a collection containing all the
       * components in store. Noordering of
       * components is guarenteed or mandated.
       *
       * @return the collection containing all components
       */
      public Collection getComponents()
      {
          final Collection collection = m_components.values();
          final ArrayList components = new ArrayList();
          components.addAll( collection );
          return components;
      }
  }
  
  
  

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