You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2002/11/19 13:30:39 UTC

cvs commit: jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/assembly/appliance/builder ApplianceCreator.java ApplianceBuilder.java

mcconnell    2002/11/19 04:30:39

  Modified:    assembly/src/java/org/apache/excalibur/assembly/appliance/builder
                        ApplianceCreator.java ApplianceBuilder.java
  Log:
  Lots of updates that leverage seperation between builder and manager.
  
  Revision  Changes    Path
  1.2       +3 -3      jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/assembly/appliance/builder/ApplianceCreator.java
  
  Index: ApplianceCreator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/assembly/appliance/builder/ApplianceCreator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ApplianceCreator.java	18 Nov 2002 11:02:29 -0000	1.1
  +++ ApplianceCreator.java	19 Nov 2002 12:30:39 -0000	1.2
  @@ -73,8 +73,8 @@
        * @return the appliance
        * @exception Exception if an error occurs during appliance creation
        */
  -    Appliance createAppliance( Configuration config )
  -        throws Exception;
  +    Appliance createAppliance( Profile profile, Configuration config )
  +      throws Exception;
   
       /**
        * Create an {@link Appliance} instances from the supplied arguments.
  
  
  
  1.3       +7 -63     jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/assembly/appliance/builder/ApplianceBuilder.java
  
  Index: ApplianceBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/java/org/apache/excalibur/assembly/appliance/builder/ApplianceBuilder.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ApplianceBuilder.java	19 Nov 2002 03:12:20 -0000	1.2
  +++ ApplianceBuilder.java	19 Nov 2002 12:30:39 -0000	1.3
  @@ -66,7 +66,7 @@
   import org.apache.excalibur.meta.model.builder.ProfileBuilder;
   import org.apache.excalibur.assembly.appliance.DefaultAppliance;
   import org.apache.excalibur.assembly.appliance.Appliance;
  -import org.apache.excalibur.assembly.type.TypeManager;
  +import org.apache.excalibur.assembly.profile.DefaultProfileManager;
   
   /**
    * A ApplianceBuilder is responsible for building an {@link Appliance}
  @@ -75,44 +75,8 @@
    * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
    * @version $Revision$ $Date$
    */
  -public final class ApplianceBuilder implements Contextualizable
  +public final class ApplianceBuilder 
   {
  -    //==================================================================
  -    // state
  -    //==================================================================
  -
  -   /**
  -    * The profile building to use when creating the profile encapsulated 
  -    * within the appliance declaration (supplied during contextualization).
  -    */
  -    private ProfileBuilder m_profileBuilder;
  -
  -   /**
  -    * The type building to use when creating the profile encapsulated 
  -    * within the appliance declaration (supplied during contextualization).
  -    */
  -    private TypeManager m_typeManager;
  -
  -   /**
  -    * The profile classloader to use (supplied during contextualization).
  -    */
  -    private ClassLoader m_loader;
  -
  -    //==================================================================
  -    // Contextualizable
  -    //==================================================================
  -
  -   /**
  -    * Supply of the rutime context by the container managing this builder.
  -    * @param context the context
  -    * @exception ContextException if a required contect value was not supplied
  -    */
  -    public void contextualize( Context context ) throws ContextException
  -    {
  -        m_typeManager = (TypeManager) context.get("merlin:appliance.type-manager");
  -        m_profileBuilder = (ProfileBuilder) context.get("merlin:appliance.profile-builder");
  -        m_loader = (ClassLoader) context.get("merlin:appliance.classloader");
  -    }
   
       //==================================================================
       // ApplianceCreator
  @@ -124,10 +88,12 @@
       * @return the appliance
       * @exception Exception if an error occurs during appliance creation
       */
  -    public Appliance createAppliance( Configuration config )
  +    public Appliance createAppliance( Profile profile, Configuration config )
          throws Exception
       {
  -        return build( config );
  +        final boolean enabled = config.getAttributeAsBoolean( "enabled", true );
  +        final boolean activation = getActivationMode( config );
  +        return createAppliance( profile, enabled, activation );
       }
   
       /**
  @@ -168,28 +134,6 @@
               return false;
           }
           return config.getAttributeAsBoolean( "activation", false );
  -    }
  -
  -    /**
  -     * Build an Appliance from a configuration.
  -     *
  -     * @param config the appliance configuration fragment
  -     * @return the created Appliance
  -     * @throws Exception if an error occurs during apliance creation
  -     */
  -    private Appliance build( Configuration config )
  -        throws Exception
  -    {
  -        final boolean enabled =
  -            config.getAttributeAsBoolean( "enabled", true );
  -        final boolean activation =
  -            getActivationMode( config );
  -
  -        final Configuration conf = config.getChild("profile");
  -        String classname = conf.getAttribute("type");
  -        Type type = m_typeManager.registerType( classname );
  -        final Profile profile = m_profileBuilder.build( type, conf );
  -        return createAppliance( profile, enabled, activation );
       }
   
   }
  
  
  

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