avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mcconn...@apache.org
Subject cvs commit: avalon-sandbox/merlin/merlin-platform/tutorials/mixed/src/java/tutorial HelloComponent.java
Date Tue, 19 Aug 2003 03:51:24 GMT
mcconnell    2003/08/18 20:51:24

  Modified:    merlin   maven.xml
               merlin/activation project.xml
               merlin/activation/src/java/org/apache/avalon/activation/appliance/impl
                        DefaultAppliance.java Resources.properties
               merlin/activation/src/test/org/apache/avalon/activation/appliance
                        AbstractTestCase.java
               merlin/activation-spi project.xml
               merlin/composition/src/java/org/apache/avalon/composition/data/builder
                        XMLDeploymentProfileCreator.java
               merlin/composition/src/java/org/apache/avalon/composition/model/impl
                        DefaultSystemContext.java
               merlin/composition-spi/src/java/org/apache/avalon/composition/model
                        SystemContext.java
               merlin/kernel/bootstrap/src/etc merlin.properties
               merlin/kernel/impl project.xml
               merlin/kernel/spi project.xml
               merlin/merlin-platform project.xml
               merlin/merlin-platform/tutorials/context_casting/src/java/tutorial
                        HelloComponent.java
               merlin/merlin-platform/tutorials/context_standard/src/java/tutorial
                        HelloComponent.java
               merlin/merlin-platform/tutorials/contextualization
                        .cvsignore project.xml
               merlin/merlin-platform/tutorials/contextualization/src/java/tutorial
                        StandardComponent.java
               merlin/merlin-platform/tutorials/mixed/src/java/tutorial
                        HelloComponent.java
  Added:       merlin/activation-api/src/java/org/apache/avalon/activation/appliance
                        DuplicateApplianceException.java
               merlin/activation-api/src/java/org/apache/avalon/activation/lifecycle
                        LifestyleException.java
                        LifestyleRuntimeException.java
               merlin/activation-api/src/java/org/apache/avalon/activation/lifestyle
                        LifestyleException.java
                        LifestyleRuntimeException.java package.html
  Removed:     merlin/activation-spi/src/java/org/apache/avalon/activation/appliance
                        ApplianceEvent.java ApplianceException.java
                        ApplianceListener.java
                        ApplianceRuntimeException.java
                        AssemblyException.java CascadingIOException.java
                        DeploymentException.java
                        DuplicateApplianceException.java Home.java
                        NoProviderDefinitionException.java
                        UnknownServiceException.java
               merlin/activation-spi/src/java/org/apache/avalon/activation/lifecycle
                        ContextualizationHandler.java
                        LifecycleException.java
                        LifecycleRuntimeException.java
               merlin/activation-spi/src/java/org/apache/avalon/activation/lifestyle
                        LifestyleException.java
                        LifestyleRuntimeException.java
  Log:
  Updates relative to API/SPI seperation in activation package and updates to tutorials to reflect 3.0 classloading management.
  
  Revision  Changes    Path
  1.36      +1 -0      avalon-sandbox/merlin/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/maven.xml,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- maven.xml	12 Aug 2003 05:30:44 -0000	1.35
  +++ maven.xml	19 Aug 2003 03:51:22 -0000	1.36
  @@ -215,6 +215,7 @@
           <sourcepath path="${basedir}/../extension/src/java"/>
           <sourcepath path="${basedir}/../composition-spi/src/java"/>
           <sourcepath path="${basedir}/../composition/src/java"/>
  +        <sourcepath path="${basedir}/../activation-api/src/java"/>
           <sourcepath path="${basedir}/../activation-spi/src/java"/>
           <sourcepath path="${basedir}/../activation/src/java"/>
           <sourcepath path="${basedir}/../kernel/spi/src/java"/>
  
  
  
  1.4       +5 -0      avalon-sandbox/merlin/activation/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/activation/project.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- project.xml	12 Aug 2003 16:12:32 -0000	1.3
  +++ project.xml	19 Aug 2003 03:51:23 -0000	1.4
  @@ -31,6 +31,11 @@
   
       <dependency>
         <groupId>avalon-activation</groupId>
  +      <artifactId>avalon-activation-api</artifactId>
  +      <version>SNAPSHOT</version>
  +    </dependency>
  +    <dependency>
  +      <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
         <version>SNAPSHOT</version>
       </dependency>
  
  
  
  1.5       +60 -1     avalon-sandbox/merlin/activation/src/java/org/apache/avalon/activation/appliance/impl/DefaultAppliance.java
  
  Index: DefaultAppliance.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/activation/src/java/org/apache/avalon/activation/appliance/impl/DefaultAppliance.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultAppliance.java	18 Aug 2003 17:02:37 -0000	1.4
  +++ DefaultAppliance.java	19 Aug 2003 03:51:23 -0000	1.5
  @@ -626,6 +626,7 @@
                   int id = System.identityHashCode( instance );
                   getLogger().debug( "new instance: " + id );
               }
  +
               applyLogger( instance );
               applyContext( instance );
               applyServices( instance );
  @@ -634,6 +635,13 @@
               applyCreateStages( instance, true );
               applyInitialization( instance );
               applyStart( instance );
  +
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                int id = System.identityHashCode( instance );
  +                getLogger().debug( "component established: " + id );
  +            }
  +
               return instance;
           }
           catch( Throwable e )
  @@ -698,6 +706,11 @@
       {
           if( instance instanceof LogEnabled )
           {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                int id = System.identityHashCode( instance );
  +                getLogger().debug( "applying logger to: " + id );
  +            }
               ((LogEnabled)instance).enableLogging( getLogger() );
           }
       }
  @@ -714,6 +727,11 @@
           Context context = model.getContext();
           if( m_contextualization != null )
           {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                int id = System.identityHashCode( instance );
  +                getLogger().debug( "applying contextualization strategy to: " + id );
  +            }
               try
               {
                   m_contextualization.contextualize( instance, context );
  @@ -729,6 +747,12 @@
           }
           else if( instance instanceof Contextualizable )
           {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                int id = System.identityHashCode( instance );
  +                getLogger().debug( "applying contextualization to: " + id );
  +            }
  +
               try
               {
                   ((Contextualizable)instance).contextualize( context );
  @@ -749,6 +773,11 @@
       {
           if( instance instanceof Serviceable )
           {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                int id = System.identityHashCode( instance );
  +                getLogger().debug( "applying service manager to: " + id );
  +            }
               ServiceManager manager = new DefaultServiceManager( m_providers );
               ((Serviceable)instance).service( manager );
           }
  @@ -759,6 +788,11 @@
       {
           if( instance instanceof Configurable )
           {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                int id = System.identityHashCode( instance );
  +                getLogger().debug( "applying configuration to: " + id );
  +            }
               ((Configurable)instance).configure( m_model.getConfiguration() );
           }
       }
  @@ -768,6 +802,11 @@
       {
           if( instance instanceof Parameterizable )
           {
  +            if( getLogger().isDebugEnabled() )
  +            {
  +                int id = System.identityHashCode( instance );
  +                getLogger().debug( "applying parameters to: " + id );
  +            }
               ((Parameterizable)instance).parameterize( m_model.getParameters() );
           }
       }
  @@ -794,10 +833,20 @@
                   {
                       if( flag )
                       {
  +                        if( getLogger().isDebugEnabled() )
  +                        {
  +                            int id = System.identityHashCode( instance );
  +                            getLogger().debug( "applying create stage to: " + id );
  +                        }
                           handler.create( instance, context );
                       }
                       else
                       {
  +                        if( getLogger().isDebugEnabled() )
  +                        {
  +                            int id = System.identityHashCode( instance );
  +                            getLogger().debug( "applying destroy stage to: " + id );
  +                        }
                           handler.destroy( instance, context );
                       }
                   }
  @@ -846,10 +895,20 @@
                       Context context = m_model.getContextModel().getContext();
                       if( flag )
                       {
  +                        if( getLogger().isDebugEnabled() )
  +                        {
  +                            int id = System.identityHashCode( instance );
  +                            getLogger().debug( "applying access stage to: " + id );
  +                        }
                           handler.access( instance, context );
                       }
                       else
                       {
  +                        if( getLogger().isDebugEnabled() )
  +                        {
  +                            int id = System.identityHashCode( instance );
  +                            getLogger().debug( "applying release stage to: " + id );
  +                        }
                           handler.release( instance, context );
                       }
                   }
  
  
  
  1.2       +1 -1      avalon-sandbox/merlin/activation/src/java/org/apache/avalon/activation/appliance/impl/Resources.properties
  
  Index: Resources.properties
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/activation/src/java/org/apache/avalon/activation/appliance/impl/Resources.properties,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Resources.properties	7 Aug 2003 17:11:17 -0000	1.1
  +++ Resources.properties	19 Aug 2003 03:51:23 -0000	1.2
  @@ -9,7 +9,7 @@
   assembly.reassembly.error=Illegal attempt to re-assemble appliance [{0}].
   assembly.dissassembly.transitional.error=Illegal attempt to dissassemble [{0}] while the appliance is in a state of transition.
   assembly.dissassembly.state.error=Illegal attempt to dissassemble a dissassembled appliance [{0}].
  -assembly.context-strategy.bad-class.error=Context strategy handler class [{0}] does not implement the org.apache.avalon.activation.lifecycle.ContextualizationHandler interface.
  +assembly.context-strategy.bad-class.error=Context strategy handler class [{0}] does not implement the org.apache.avalon.activation.lifecycle.ContextualizationHandler interface defined in the container classloader.
   
   lifestyle.new.error=Unable to create a new component instance in appliance [{0}] due to a component deployment failure.
   lifecycle.instantiation.error=Could not instantiate an instance of the class [{0}].
  
  
  
  1.4       +24 -60    avalon-sandbox/merlin/activation/src/test/org/apache/avalon/activation/appliance/AbstractTestCase.java
  
  Index: AbstractTestCase.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/activation/src/test/org/apache/avalon/activation/appliance/AbstractTestCase.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractTestCase.java	18 Aug 2003 11:26:05 -0000	1.3
  +++ AbstractTestCase.java	19 Aug 2003 03:51:23 -0000	1.4
  @@ -49,6 +49,8 @@
   
       protected ContainmentModel m_model;
   
  +    protected SystemContext m_system;
  +
      //-------------------------------------------------------
      // constructor
      //-------------------------------------------------------
  @@ -81,20 +83,20 @@
       public void setUp() throws Exception
       {
           File base = new File( getTestDir(), "test-classes" );
  -        LoggingManager logging = createLoggingManager( base );
  -        m_logger = logging.getLoggerForCategory( "" );
  -        PoolManager pool = createPoolManager();
   
  -        // 
  -        // create the service context now even thought
  -        // its not needed until we start playing with appliances
  -        // and blocks
  +        //
  +        // WARNING: ALMOST EVIL
  +        // Next couple of lines are using a convinience operation
  +        // on DefaultSystemContext to create the system context.  This 
  +        // is temporary and will be replaced when a clean configurable 
  +        // system context factory is in place
           //
   
  -        DefaultServiceContext context = new DefaultServiceContext();
  -        context.put( PoolManager.ROLE, pool );
  -        context.put( LoggingManager.KEY, logging );
  -        m_context = context;
  +        File local = new File( base, "repository" );
  +        SystemContext system = 
  +              DefaultSystemContext.createSystemContext( 
  +                base, local, ConsoleLogger.LEVEL_DEBUG );
  +        m_logger = system.getLogger();
   
           //
           // load the meta data using the profile returned from getPath()
  @@ -102,45 +104,20 @@
           //
   
           ContainmentProfile profile = setUpProfile( new File( base, getPath() ) );
  -        File local = new File( base, "repository" );
  -        m_model = setUpModel( base, local, profile );
  -    }
  +        m_model = system.getFactory().createContainmentModel( profile );
   
  -   /**
  -    * Create the containment model.
  -    * @return the complete model
  -    */
  -    public ContainmentModel setUpModel( 
  -      File base, File repository, ContainmentProfile profile ) throws Exception
  -    {
  -        try
  -        {
  -            //
  -            // WARNING: EVIL
  -            // Next couple of lines are using a convinience operation
  -            // on DefaultSystemContext to create the system context.  This 
  -            // temporary and will be replaced when a clean configurable 
  -            // system context factory is in place
  -            //
  -
  -            SystemContext system = 
  -              DefaultSystemContext.createSystemContext( 
  -                base, repository, ConsoleLogger.LEVEL_DEBUG );
  +        // 
  +        // create the service context now even thought
  +        // its not needed until we start playing with appliances
  +        // and blocks
  +        //
   
  -            //
  -            // from here its good
  -            //
  +        PoolManager pool = createPoolManager();
  +        DefaultServiceContext context = new DefaultServiceContext();
  +        context.put( PoolManager.ROLE, pool );
  +        context.put( LoggingManager.KEY, system.getLoggingManager() );
  +        m_context = context;
   
  -            DefaultModelFactory factory = new DefaultModelFactory( system );
  -            return factory.createContainmentModel( profile );
  -        }
  -        catch( Throwable e )
  -        {
  -            final String error = "Setup failure.";
  -            final String message = ExceptionHelper.packException( error, e, true );
  -            getLogger().error( message );
  -            throw new Exception( message );
  -        }
       }
   
       protected ContainmentProfile setUpProfile( File file )
  @@ -195,19 +172,6 @@
                       "Internal error during establishment of the default pool manager. Cause: ";
               throw new Exception( error + e.toString() );
           }
  -    }
  -
  -    protected LoggingManager createLoggingManager( File base ) throws Exception
  -    {
  -        LoggingDescriptor logging =
  -                new LoggingDescriptor(
  -                        "", "DEBUG", null,
  -                        new CategoryDirective[0],
  -                        new TargetDescriptor[0] );
  -
  -        DefaultLoggingManager manager = 
  -          new DefaultLoggingManager( base, logging );
  -        return manager;
       }
   
       protected Logger getLogger()
  
  
  
  1.1                  avalon-sandbox/merlin/activation-api/src/java/org/apache/avalon/activation/appliance/DuplicateApplianceException.java
  
  Index: DuplicateApplianceException.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
      "Apache Software Foundation"  must not be used to endorse or promote
      products derived  from this  software without  prior written
      permission. For written permission, please contact apache@apache.org.
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation. For more  information on the
   Apache Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.avalon.activation.appliance;
  
  /**
   * Exception raised in response to an attempt to override the defintion
   * of an existing appliance.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2003/08/19 03:51:23 $
   */
  public final class DuplicateApplianceException
          extends ApplianceException
  {
  
      /**
       * Construct a new <code>DuplicateApplianceException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public DuplicateApplianceException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>DuplicateApplianceException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public DuplicateApplianceException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon-sandbox/merlin/activation-api/src/java/org/apache/avalon/activation/lifecycle/LifestyleException.java
  
  Index: LifestyleException.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
      "Apache Software Foundation"  must not be used to endorse or promote
      products derived  from this  software without  prior written
      permission. For written permission, please contact apache@apache.org.
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation. For more  information on the
   Apache Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.avalon.activation.lifestyle;
  
  import org.apache.avalon.framework.CascadingException;
  
  /**
   * Exception to indicate that there was a lifestyle related error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2003/08/19 03:51:23 $
   */
  public class LifestyleException
          extends CascadingException
  {
  
      /**
       * Construct a new <code>LifestyleException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public LifestyleException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>LifestyleException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public LifestyleException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon-sandbox/merlin/activation-api/src/java/org/apache/avalon/activation/lifecycle/LifestyleRuntimeException.java
  
  Index: LifestyleRuntimeException.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
      "Apache Software Foundation"  must not be used to endorse or promote
      products derived  from this  software without  prior written
      permission. For written permission, please contact apache@apache.org.
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation. For more  information on the
   Apache Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.avalon.activation.lifestyle;
  
  import org.apache.avalon.framework.CascadingRuntimeException;
  
  /**
   * Exception to indicate that there was a lifestyle related runtime error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2003/08/19 03:51:23 $
   */
  public class LifestyleRuntimeException
          extends CascadingRuntimeException
  {
  
      /**
       * Construct a new <code>LifestyleRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public LifestyleRuntimeException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>LifestyleRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public LifestyleRuntimeException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon-sandbox/merlin/activation-api/src/java/org/apache/avalon/activation/lifestyle/LifestyleException.java
  
  Index: LifestyleException.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
      "Apache Software Foundation"  must not be used to endorse or promote
      products derived  from this  software without  prior written
      permission. For written permission, please contact apache@apache.org.
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation. For more  information on the
   Apache Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.avalon.activation.lifestyle;
  
  import org.apache.avalon.framework.CascadingException;
  
  /**
   * Exception to indicate that there was a lifestyle related error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2003/08/19 03:51:23 $
   */
  public class LifestyleException
          extends CascadingException
  {
  
      /**
       * Construct a new <code>LifestyleException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public LifestyleException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>LifestyleException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public LifestyleException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon-sandbox/merlin/activation-api/src/java/org/apache/avalon/activation/lifestyle/LifestyleRuntimeException.java
  
  Index: LifestyleRuntimeException.java
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
      "Apache Software Foundation"  must not be used to endorse or promote
      products derived  from this  software without  prior written
      permission. For written permission, please contact apache@apache.org.
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
   This software  consists of voluntary contributions made  by many individuals
   on  behalf of the Apache Software  Foundation. For more  information on the
   Apache Software Foundation, please see <http://www.apache.org/>.
  
  */
  
  package org.apache.avalon.activation.lifestyle;
  
  import org.apache.avalon.framework.CascadingRuntimeException;
  
  /**
   * Exception to indicate that there was a lifestyle related runtime error.
   *
   * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
   * @version $Revision: 1.1 $ $Date: 2003/08/19 03:51:23 $
   */
  public class LifestyleRuntimeException
          extends CascadingRuntimeException
  {
  
      /**
       * Construct a new <code>LifestyleRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       */
      public LifestyleRuntimeException( final String message )
      {
          this( message, null );
      }
  
      /**
       * Construct a new <code>LifestyleRuntimeException</code> instance.
       *
       * @param message The detail message for this exception.
       * @param throwable the root cause of the exception
       */
      public LifestyleRuntimeException( final String message, final Throwable throwable )
      {
          super( message, throwable );
      }
  }
  
  
  
  
  1.1                  avalon-sandbox/merlin/activation-api/src/java/org/apache/avalon/activation/lifestyle/package.html
  
  Index: package.html
  ===================================================================
  <body>
  <p>The <code>lifestyle</code> package includes interfaces and public classes
  supporting lifestyle management.</p>
  </body>
  
  
  1.3       +6 -0      avalon-sandbox/merlin/activation-spi/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/activation-spi/project.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- project.xml	11 Aug 2003 22:58:46 -0000	1.2
  +++ project.xml	19 Aug 2003 03:51:23 -0000	1.3
  @@ -47,6 +47,12 @@
       </dependency>
   
       <dependency>
  +      <groupId>avalon-activation</groupId>
  +      <artifactId>avalon-activation-api</artifactId>
  +      <version>SNAPSHOT</version>
  +    </dependency>
  +
  +    <dependency>
         <groupId>avalon-extension</groupId>
         <artifactId>avalon-extension-spi</artifactId>
         <version>SNAPSHOT</version>
  
  
  
  1.6       +16 -5     avalon-sandbox/merlin/composition/src/java/org/apache/avalon/composition/data/builder/XMLDeploymentProfileCreator.java
  
  Index: XMLDeploymentProfileCreator.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/composition/src/java/org/apache/avalon/composition/data/builder/XMLDeploymentProfileCreator.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XMLDeploymentProfileCreator.java	11 Aug 2003 22:58:49 -0000	1.5
  +++ XMLDeploymentProfileCreator.java	19 Aug 2003 03:51:23 -0000	1.6
  @@ -59,6 +59,7 @@
   import org.apache.avalon.composition.data.DependencyDirective;
   import org.apache.avalon.composition.data.SelectionDirective;
   import org.apache.avalon.composition.data.*;
  +import org.apache.excalibur.configuration.ConfigurationUtil;
   
   /**
    *
  @@ -242,10 +243,20 @@
       public CategoryDirective getCategoryDirective( Configuration config )
         throws ConfigurationException
       {
  -        final String name = config.getAttribute( "name" );
  -        final String priority = config.getAttribute( "priority", null );
  -        final String target = config.getAttribute( "target", null );
  -        return new CategoryDirective( name, priority, target );
  +        try
  +        {
  +            final String name = config.getAttribute( "name" );
  +            final String priority = config.getAttribute( "priority", null );
  +            final String target = config.getAttribute( "target", null );
  +            return new CategoryDirective( name, priority, target );
  +        }
  +        catch( ConfigurationException e )
  +        {
  +            final String error = 
  +              "Invalid category descriptor."
  +              + ConfigurationUtil.list( config );
  +            throw new ConfigurationException( error, e );
  +        }
       }
   
       protected Parameters getParameters( Configuration config )
  
  
  
  1.13      +11 -1     avalon-sandbox/merlin/composition/src/java/org/apache/avalon/composition/model/impl/DefaultSystemContext.java
  
  Index: DefaultSystemContext.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/composition/src/java/org/apache/avalon/composition/model/impl/DefaultSystemContext.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- DefaultSystemContext.java	18 Aug 2003 17:02:37 -0000	1.12
  +++ DefaultSystemContext.java	19 Aug 2003 03:51:23 -0000	1.13
  @@ -345,6 +345,16 @@
       }
   
      /**
  +    * Return the logging manager.
  +    *
  +    * @return the logging manager.
  +    */
  +    public LoggingManager getLoggingManager()
  +    {
  +        return m_logging;
  +    }
  +
  +   /**
       * Return the system logging channel.
       *
       * @return the system logging channel
  
  
  
  1.6       +9 -1      avalon-sandbox/merlin/composition-spi/src/java/org/apache/avalon/composition/model/SystemContext.java
  
  Index: SystemContext.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/composition-spi/src/java/org/apache/avalon/composition/model/SystemContext.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SystemContext.java	11 Aug 2003 22:58:50 -0000	1.5
  +++ SystemContext.java	19 Aug 2003 03:51:23 -0000	1.6
  @@ -52,6 +52,7 @@
   
   import java.io.File;
   
  +import org.apache.avalon.composition.logging.LoggingManager;
   import org.apache.avalon.composition.model.ModelFactory;
   import org.apache.avalon.repository.Repository;
   import org.apache.avalon.framework.context.Context;
  @@ -125,6 +126,13 @@
       * @return the system classloader
       */
       ClassLoader getCommonClassLoader();
  +
  +   /**
  +    * Return the logging manager.
  +    *
  +    * @return the logging manager.
  +    */
  +    LoggingManager getLoggingManager();
   
      /**
       * Return the system logging channel.
  
  
  
  1.4       +4 -2      avalon-sandbox/merlin/kernel/bootstrap/src/etc/merlin.properties
  
  Index: merlin.properties
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/kernel/bootstrap/src/etc/merlin.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- merlin.properties	18 Aug 2003 17:02:37 -0000	1.3
  +++ merlin.properties	19 Aug 2003 03:51:23 -0000	1.4
  @@ -7,7 +7,7 @@
   #
   # the bootstrap classpath
   #
  -merlin.bootstrap.classpath.length=23
  +merlin.bootstrap.classpath.length=24
   merlin.bootstrap.classpath.0=xerces:xerces;2.2.1
   merlin.bootstrap.classpath.1=xml-apis:xml-apis;1.0.b2
   merlin.bootstrap.classpath.2=avalon-framework:avalon-framework-api;SNAPSHOT
  @@ -31,13 +31,15 @@
   merlin.bootstrap.classpath.20=excalibur-event:excalibur-event;1.0.3
   merlin.bootstrap.classpath.21=excalibur-configuration:excalibur-configuration;1.1-dev
   merlin.bootstrap.classpath.22=excalibur-lifecycle:excalibur-lifecycle;1.0
  +merlin.bootstrap.classpath.23=avalon-activation:avalon-activation-api;SNAPSHOT
   
   #
   # the api classpath
   #
  -merlin.api.classpath.length=2
  +merlin.api.classpath.length=3
   merlin.api.classpath.0=avalon-framework:avalon-framework-api;SNAPSHOT
   merlin.api.classpath.1=avalon-meta:avalon-meta-api;SNAPSHOT
  +merlin.api.classpath.2=avalon-activation:avalon-activation-api;SNAPSHOT
   
   #
   # the spi classpath
  
  
  
  1.2       +5 -0      avalon-sandbox/merlin/kernel/impl/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/kernel/impl/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	11 Aug 2003 22:34:47 -0000	1.1
  +++ project.xml	19 Aug 2003 03:51:23 -0000	1.2
  @@ -31,6 +31,11 @@
   
       <dependency>
         <groupId>avalon-activation</groupId>
  +      <artifactId>avalon-activation-api</artifactId>
  +      <version>SNAPSHOT</version>
  +    </dependency>
  +    <dependency>
  +      <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
         <version>SNAPSHOT</version>
       </dependency>
  
  
  
  1.3       +5 -0      avalon-sandbox/merlin/kernel/spi/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/kernel/spi/project.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- project.xml	18 Aug 2003 11:26:06 -0000	1.2
  +++ project.xml	19 Aug 2003 03:51:23 -0000	1.3
  @@ -38,6 +38,11 @@
   
       <dependency>
         <groupId>avalon-activation</groupId>
  +      <artifactId>avalon-activation-api</artifactId>
  +      <version>SNAPSHOT</version>
  +    </dependency>
  +    <dependency>
  +      <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
         <version>SNAPSHOT</version>
       </dependency>
  
  
  
  1.17      +5 -0      avalon-sandbox/merlin/merlin-platform/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-platform/project.xml,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- project.xml	16 Aug 2003 11:16:32 -0000	1.16
  +++ project.xml	19 Aug 2003 03:51:23 -0000	1.17
  @@ -72,6 +72,11 @@
   
       <dependency>
         <groupId>avalon-activation</groupId>
  +      <artifactId>avalon-activation-api</artifactId>
  +      <version>SNAPSHOT</version>
  +    </dependency>
  +    <dependency>
  +      <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
         <version>SNAPSHOT</version>
       </dependency>
  
  
  
  1.3       +2 -2      avalon-sandbox/merlin/merlin-platform/tutorials/context_casting/src/java/tutorial/HelloComponent.java
  
  Index: HelloComponent.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-platform/tutorials/context_casting/src/java/tutorial/HelloComponent.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HelloComponent.java	18 Aug 2003 16:59:41 -0000	1.2
  +++ HelloComponent.java	19 Aug 2003 03:51:24 -0000	1.3
  @@ -20,8 +20,8 @@
       * class that implements a domain specific context interface.
       *
       * @avalon.context type="tutorial.DemoContext"
  -    * @avalon.entry key="urn:avalon:name" type="java.lang.String"
  -    * @avalon.entry key="urn:avalon:partition" type="java.lang.String"
  +    * @avalon.entry key="urn:avalon:name"
  +    * @avalon.entry key="urn:avalon:partition"
       * @avalon.entry key="urn:avalon:home" type="java.io.File"
       * @avalon.entry key="urn:avalon:temp" type="java.io.File"
       */
  
  
  
  1.4       +2 -2      avalon-sandbox/merlin/merlin-platform/tutorials/context_standard/src/java/tutorial/HelloComponent.java
  
  Index: HelloComponent.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-platform/tutorials/context_standard/src/java/tutorial/HelloComponent.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HelloComponent.java	18 Aug 2003 17:45:02 -0000	1.3
  +++ HelloComponent.java	19 Aug 2003 03:51:24 -0000	1.4
  @@ -28,8 +28,8 @@
       * working directories, component name and partition.
       *
       * @avalon.context
  -    * @avalon.entry key="urn:avalon:name" type="java.lang.String"
  -    * @avalon.entry key="urn:avalon:partition" type="java.lang.String"
  +    * @avalon.entry key="urn:avalon:name" 
  +    * @avalon.entry key="urn:avalon:partition" 
       * @avalon.entry key="urn:avalon:home" type="java.io.File"
       * @avalon.entry key="urn:avalon:temp" type="java.io.File"
       */
  
  
  
  1.2       +1 -0      avalon-sandbox/merlin/merlin-platform/tutorials/contextualization/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-platform/tutorials/contextualization/.cvsignore,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- .cvsignore	18 Aug 2003 19:38:37 -0000	1.1
  +++ .cvsignore	19 Aug 2003 03:51:24 -0000	1.2
  @@ -3,3 +3,4 @@
   build
   target
   tutorial.jar
  +kernel.xml
  \ No newline at end of file
  
  
  
  1.2       +1 -1      avalon-sandbox/merlin/merlin-platform/tutorials/contextualization/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-platform/tutorials/contextualization/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	18 Aug 2003 19:38:37 -0000	1.1
  +++ project.xml	19 Aug 2003 03:51:24 -0000	1.2
  @@ -24,7 +24,7 @@
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
  -      <artifactId>avalon-activation-spi</artifactId>
  +      <artifactId>avalon-activation-api</artifactId>
         <version>SNAPSHOT</version>
       </dependency>
     </dependencies>
  
  
  
  1.3       +9 -5      avalon-sandbox/merlin/merlin-platform/tutorials/contextualization/src/java/tutorial/StandardComponent.java
  
  Index: StandardComponent.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-platform/tutorials/contextualization/src/java/tutorial/StandardComponent.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StandardComponent.java	18 Aug 2003 19:38:37 -0000	1.2
  +++ StandardComponent.java	19 Aug 2003 03:51:24 -0000	1.3
  @@ -78,6 +78,7 @@
       private String m_name;
       private String m_partition;
       private String m_message;
  +    private StandardContext m_context;
   
       //=======================================================================
       // Contextualizable
  @@ -89,13 +90,14 @@
       * @param context the context value
       *
       * @avalon.context strategy="tutorial.Contextualizable"
  -    * @avalon.entry key="urn:avalon:name" type="java.lang.String"
  -    * @avalon.entry key="urn:avalon:partition" type="java.lang.String"
  +    * @avalon.entry key="urn:avalon:name" 
  +    * @avalon.entry key="urn:avalon:partition"
       * @avalon.entry key="urn:avalon:home" type="java.io.File"
       * @avalon.entry key="urn:avalon:temp" type="java.io.File"
       */
       public void contextualize( StandardContext context )
       {
  +        m_context = context;
           m_home = context.getHomeDirectory();
           m_work = context.getWorkingDirectory();
           m_name = context.getName();
  @@ -112,10 +114,13 @@
       public void initialize() throws Exception
       {
           m_message =
  -          "  home: " + m_home
  +          "  strategy: " + Contextualizable.class.getName()
  +          + "\n  context: " + m_context.getClass().getName()
  +          + "\n  home: " + m_home
             + "\n  work: " + m_work
             + "\n  name: " + m_name
             + "\n  partition: " + m_partition;
  +        printMessage();
       }
   
       //=======================================================================
  @@ -151,8 +156,7 @@
        */
       public void printMessage()
       {
  -        getLogger().info( "context\n" 
  -         + "  contextualization using a custom hander\n"
  +        getLogger().info( "contextualization using a custom strategy\n\n"
            + m_message + "\n");
       }
   }
  
  
  
  1.4       +2 -2      avalon-sandbox/merlin/merlin-platform/tutorials/mixed/src/java/tutorial/HelloComponent.java
  
  Index: HelloComponent.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/merlin/merlin-platform/tutorials/mixed/src/java/tutorial/HelloComponent.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HelloComponent.java	18 Aug 2003 17:02:37 -0000	1.3
  +++ HelloComponent.java	19 Aug 2003 03:51:24 -0000	1.4
  @@ -36,10 +36,10 @@
       * working directories, component name and partition.
       *
       * @avalon.meta.context type="tutorial.DemoContext"
  +    * @avalon.meta.entry key="urn:avalon:name" 
  +    * @avalon.meta.entry key="urn:avalon:partition" 
       * @avalon.meta.entry key="urn:avalon:home" type="java.io.File"
       * @avalon.meta.entry key="urn:avalon:temp" type="java.io.File"
  -    * @avalon.meta.entry key="urn:avalon:name" type="java.lang.String"
  -    * @avalon.meta.entry key="urn:avalon:partition" type="java.lang.String"
       * @avalon.meta.entry key="cruncher" type="tutorial.NumberCruncher" optional="true"
       */
       public void contextualize( Context context ) throws ContextException
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org


Mime
View raw message