mcconnell    2002/12/27 17:32:02

  Modified:    merlin/src/java/org/apache/avalon/merlin/container
                        DefaultContainer.java
  Log:
  added support for resolving and applying a custom component configuration
  
  Revision  Changes    Path
  1.10      +17 -4     
avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/container/DefaultContainer.java
  
  Index: DefaultContainer.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-sandbox/merlin/src/java/org/apache/avalon/merlin/container/DefaultContainer.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DefaultContainer.java     27 Dec 2002 16:41:06 -0000      1.9
  +++ DefaultContainer.java     28 Dec 2002 01:32:02 -0000      1.10
  @@ -68,6 +68,9 @@
   import org.apache.avalon.assembly.appliance.ApplianceException;
   import org.apache.avalon.assembly.lifecycle.AssemblyException;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
  +import org.apache.avalon.framework.configuration.Configuration;
  +import org.apache.avalon.framework.configuration.Configurable;
  +import org.apache.avalon.framework.configuration.ConfigurationException;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.context.Contextualizable;
   import org.apache.avalon.framework.context.ContextException;
  @@ -75,8 +78,10 @@
   import org.apache.avalon.framework.activity.Initializable;
   import org.apache.avalon.framework.activity.Startable;
   import org.apache.avalon.merlin.container.ContainerDescriptor;
  +import org.apache.avalon.merlin.kernel.DefaultKernel;
   import org.apache.avalon.merlin.service.Registry;
   import org.apache.avalon.meta.model.Profile;
  +import org.apache.excalibur.configuration.ConfigurationUtil;
   
   /**
    * <p>Default implementation of a container model within which a set 
  @@ -130,14 +135,17 @@
       */
       private String m_path;
   
  +   /**
  +    * Component configuration.
  +    */
  +    private Configuration m_targets;
  +
       //==============================================================
       // Contextualizable
       //==============================================================
   
      /**
  -    * <p>Application of a runtime context to the lifestyle service.
  -    * The context value will be passed directly to lifestyle handlers 
  -    * established by this service.
  +    * <p>Application of a runtime context for this container.
       * @param context the runtime context
       */
       public void contextualize( Context context ) throws ContextException
  @@ -147,6 +155,7 @@
           m_descriptor = (ContainerDescriptor) context.get( 
"urn:merlin:container.descriptor" );
           m_partition = (String) context.get( "urn:avalon:partition.name" );
           m_registry = (Registry) context.get( "urn:merlin:container.registry" );
  +        m_targets = (Configuration) context.get( 
"urn:merlin:container.configuration" );
       }
   
       //==============================================================
  @@ -186,6 +195,8 @@
               getLogger().debug( "initialization: " + m_path + " (" + profiles.length 
+ ")" );
           }
   
  +        getLogger().info( "configuration array:\n" + ConfigurationUtil.list( 
m_targets ) );
  +
           for( int i=0; i<profiles.length; i++ )
           {
               Profile profile = profiles[i];
  @@ -196,7 +207,9 @@
                   getLogger().debug( message );
               }
               DefaultApplianceContext context = new DefaultApplianceContext( profile 
);
  +            Configuration config = DefaultKernel.getNamedConfiguration( m_targets, 
profile.getName() );
               context.setPartitionName( m_path );
  +            context.setConfiguration( config );
               context.makeReadOnly();
               Appliance appliance = createAppliance( context, true );
               m_components.add( appliance );
  
  
  

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

Reply via email to