mcconnell    2002/12/19 02:33:10

  Modified:    assembly/src/java/org/apache/avalon/assembly/profile
                        ProfileManager.java
  Log:
  Simplified the service manager implementation to use a list of services as 
opposed to prior version that was maintaining a map of services.
  
  Revision  Changes    Path
  1.8       +19 -56    
avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/profile/ProfileManager.java
  
  Index: ProfileManager.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-sandbox/assembly/src/java/org/apache/avalon/assembly/profile/ProfileManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ProfileManager.java       17 Dec 2002 04:58:33 -0000      1.7
  +++ ProfileManager.java       19 Dec 2002 10:33:10 -0000      1.8
  @@ -51,6 +51,7 @@
   package org.apache.avalon.assembly.profile;
   
   import java.util.Hashtable;
  +import java.util.List;
   import java.util.ArrayList;
   import java.util.Enumeration;
   import java.util.Iterator;
  @@ -107,7 +108,7 @@
       /**
        * Table of component profiles keyed by profile name.
        */
  -    private final Hashtable m_profiles = new Hashtable();
  +    private final List m_profiles = new ArrayList();
   
      /**
       * The default profile selector.
  @@ -266,22 +267,6 @@
   
           try
           {
  -            getNamedProfile( profile.getName() );
  -            if( !replace )
  -            {
  -                throw new DuplicateProfileException( 
  -                  profile.getType().getInfo().getClassname()
  -                  + "/" + profile.getName()  );
  -            }
  -            flag = true;
  -        }
  -        catch( UnknownProfileException upe )
  -        {
  -            // continue
  -        }
  -
  -        try
  -        {
               verify( profile );
           }
           catch( Throwable e )
  @@ -294,36 +279,12 @@
   
           if( getLogger().isDebugEnabled() )
           {
  -            if( flag )
  -            {
  -                getLogger().debug(
  -                  "replace: " + profile + " " + profile.getMode() );
  -            }
  -            else
  -            {
  -                getLogger().debug(
  +            getLogger().debug(
                     "add: " + profile + " " + profile.getMode() );
  -            }
           }
   
  -        m_profiles.put( profile.getName(), profile );
  -    }
  +        m_profiles.add( profile );
   
  -    /**
  -     * Returns a profile held locally by the manager based on the profile 
name.
  -     * @param name the profile name
  -     * @return the profile matching the supplied name
  -     * @exception UnknownProfileException if the profile name is unknown 
within
  -     *   the scope of the manager
  -     */
  -    public Profile getNamedProfile( String name ) throws 
UnknownProfileException
  -    {
  -        Profile profile = (Profile) m_profiles.get( name );
  -        if( profile == null )
  -        {
  -            throw new UnknownProfileException( name );
  -        }
  -        return profile;
       }
       
       /**
  @@ -334,15 +295,16 @@
        */
       public Profile getProfile( Type type ) throws UnknownTypeException
       {
  -        Enumeration enum = m_profiles.elements();
  -        while( enum.hasMoreElements() )
  +        Iterator iterator = m_profiles.iterator();
  +        while( iterator.hasNext() )
           {
  -            Profile profile = (Profile) enum.nextElement();
  +            Profile profile = (Profile) iterator.next();
               if( profile.getType().equals( type ) )
               {
                   return profile;
               }
           }
  +
           if( m_parent != null )
           {
               return m_parent.getProfile( type );
  @@ -376,10 +338,10 @@
               }
           }
           
  -        Enumeration enum = m_profiles.elements();
  -        while( enum.hasMoreElements() )
  +        Iterator iterator = m_profiles.iterator();
  +        while( iterator.hasNext() )
           {
  -            Profile profile = (Profile) enum.nextElement();
  +            Profile profile = (Profile) iterator.next();
               if( profile.getType().equals( type ) )
               {
                   list.add( type );
  @@ -413,10 +375,11 @@
           }
   
           ReferenceDescriptor reference = dependency.getReference();
  -        Enumeration enum = m_profiles.elements();
  -        while( enum.hasMoreElements() )
  +
  +        Iterator iterator = m_profiles.iterator();
  +        while( iterator.hasNext() )
           {
  -            Profile profile = (Profile) enum.nextElement();
  +            Profile profile = (Profile) iterator.next();
               Object service = profile.getType().getService( reference );
               if( service != null )
               {
  @@ -449,10 +412,10 @@
               }
           }
   
  -        Enumeration enum = m_profiles.elements();
  -        while( enum.hasMoreElements() )
  +        Iterator iterator = m_profiles.iterator();
  +        while( iterator.hasNext() )
           {
  -            Profile profile = (Profile) enum.nextElement();
  +            Profile profile = (Profile) iterator.next();
               if( profile.getType().getExtension( stage ) != null )
               {
                   list.add( profile );
  
  
  

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

Reply via email to