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 2003/10/17 05:26:30 UTC

cvs commit: avalon/merlin/platform/xdocs/tools/maven navigation.xml

mcconnell    2003/10/16 20:26:30

  Modified:    merlin/activation/api project.xml
               merlin/activation/api/src/java/org/apache/avalon/activation/appliance
                        Engine.java Home.java
               merlin/activation/impl project.xml
               merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl
                        DefaultAppliance.java DefaultBlock.java
                        DefaultServiceManager.java
               merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl
                        AbstractLifestyleHandler.java
                        PooledLifestyleHandler.java
                        SingletonLifestyleHandler.java
                        ThreadLifestyleHandler.java
                        TransientLifestyleHandler.java
               merlin/activation/impl/src/test/org/apache/avalon/activation/appliance
                        AbstractTestCase.java
               merlin/activation/impl/src/test/org/apache/avalon/playground
                        ExploitationManager.xinfo SimpleComponent.xinfo
               merlin/activation/spi project.xml
               merlin/activation/spi/src/java/org/apache/avalon/activation/lifestyle
                        LifestyleHandler.java
               merlin/composition/api project.xml
               merlin/composition/api/src/java/org/apache/avalon/composition/model
                        DeploymentModel.java
               merlin/composition/impl project.xml
               merlin/composition/impl/src/java/org/apache/avalon/composition/data/builder
                        XMLProfileCreator.java
               merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl
                        DefaultDeploymentModel.java
               merlin/composition/spi project.xml
               merlin/kernel/bootstrap/src/etc merlin.properties
               merlin/kernel/impl project.xml
               merlin/kernel/impl/src/java/org/apache/avalon/merlin/kernel/impl
                        DefaultKernel.java DefaultLoader.java
               merlin/kernel/plugin project.xml
               merlin/kernel/spi project.xml
               merlin/kernel/spi/src/java/org/apache/avalon/merlin/kernel
                        Controller.java
               merlin/kernel/unit project.xml
               merlin/kernel/unit/src/etc merlin.properties
               merlin/kernel/unit/src/java/org/apache/avalon/merlin/unit
                        AbstractMerlinTestCase.java
               merlin   platform.xml
               merlin/platform/tutorials/context/strategy project.xml
               merlin/platform/tutorials/hello project.xml
               merlin/platform/tutorials/lifecycle/activation project.xml
               merlin/platform/xdocs/meta index.xml
               merlin/platform/xdocs/tools index.xml navigation.xml
               merlin/platform/xdocs/tools/maven navigation.xml
  Log:
  Sync. avalon-composition, avalon-activation and merlin with avalon-meta version update.
  
  Revision  Changes    Path
  1.2       +3 -3      avalon/merlin/activation/api/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/api/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	24 Sep 2003 09:30:18 -0000	1.1
  +++ project.xml	17 Oct 2003 03:26:28 -0000	1.2
  @@ -8,7 +8,7 @@
     <id>avalon-activation-api</id>
     <name>Avalon Activation API</name>
     <package>org.apache.avalon.activation</package>
  -  <currentVersion>1.0b1</currentVersion>
  +  <currentVersion>1.1-dev</currentVersion>
   
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Activation API</shortDescription>
  @@ -27,12 +27,12 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
     </dependencies>
  
  
  
  1.2       +6 -6      avalon/merlin/activation/api/src/java/org/apache/avalon/activation/appliance/Engine.java
  
  Index: Engine.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/api/src/java/org/apache/avalon/activation/appliance/Engine.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Engine.java	12 Oct 2003 15:34:49 -0000	1.1
  +++ Engine.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -69,7 +69,7 @@
       * @param dependency the dependency model
       * @return the appliance
       */
  -    Appliance resolveAppliance( DependencyModel dependency )
  +    Appliance locate( DependencyModel dependency )
         throws Exception;
   
      /**
  @@ -77,7 +77,7 @@
       * @param dependency the dependency descriptor
       * @return the appliance
       */
  -    Appliance resolveAppliance( DependencyDescriptor dependency )
  +    Appliance locate( DependencyDescriptor dependency )
         throws Exception;
   
      /**
  @@ -85,7 +85,7 @@
       * @param stage the stage model
       * @return the appliance
       */
  -    Appliance resolveAppliance( StageModel stage )
  +    Appliance locate( StageModel stage )
         throws Exception;
   
      /**
  @@ -93,7 +93,7 @@
       * @param stage the stage descriptor
       * @return the appliance
       */
  -    Appliance resolveAppliance( StageDescriptor stage )
  +    Appliance locate( StageDescriptor stage )
         throws Exception;
   
      /**
  @@ -101,6 +101,6 @@
       * @param path the appliance path
       * @return the appliance
       */
  -    Appliance resolveAppliance( String path )
  +    Appliance locate( String path )
         throws Exception;
   }
  
  
  
  1.2       +3 -16     avalon/merlin/activation/api/src/java/org/apache/avalon/activation/appliance/Home.java
  
  Index: Home.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/api/src/java/org/apache/avalon/activation/appliance/Home.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Home.java	24 Sep 2003 09:30:20 -0000	1.1
  +++ Home.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -65,29 +65,16 @@
       /**
        * Resolve a object to a value.
        *
  -     * @param source the context within the the resolution is applied
        * @return the resolved object
        * @throws Exception if an error occurs
        */
  -    Object resolve( Object source ) throws Exception;
  -
  -    /**
  -     * Resolve a object to a value relative to a supplied set of 
  -     * interface classes.
  -     *
  -     * @param source the aquiring source
  -     * @param ref the castable service classes 
  -     * @return the resolved object
  -     * @throws Exception if an error occurs
  -     */
  -    Object resolve( Object source, Class[] ref ) throws Exception;
  +    Object resolve() throws Exception;
   
       /**
        * Release an object
        *
  -     * @param source the client that obtained the intial reference
        * @param instance the object to be released
        */
  -    void release( Object source, Object instance );
  +    void release( Object instance );
   
   }
  
  
  
  1.3       +9 -9      avalon/merlin/activation/impl/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/project.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- project.xml	7 Oct 2003 17:42:55 -0000	1.2
  +++ project.xml	17 Oct 2003 03:26:28 -0000	1.3
  @@ -8,7 +8,7 @@
     <id>avalon-activation-impl</id>
     <name>Avalon Activation Framework</name>
     <package>org.apache.avalon.activation</package>
  -  <currentVersion>1.0b2</currentVersion>
  +  <currentVersion>1.1-dev</currentVersion>
   
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Runtime activation framework.</shortDescription>
  @@ -44,44 +44,44 @@
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-impl</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-impl</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
  
  
  
  1.2       +220 -100  avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultAppliance.java
  
  Index: DefaultAppliance.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultAppliance.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultAppliance.java	24 Sep 2003 09:30:35 -0000	1.1
  +++ DefaultAppliance.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -54,6 +54,10 @@
   import java.util.Map;
   import java.util.Hashtable;
   import java.util.ArrayList;
  +import java.lang.reflect.InvocationHandler;
  +import java.lang.reflect.InvocationTargetException;
  +import java.lang.reflect.Method;
  +import java.lang.reflect.Proxy;
   
   import org.apache.avalon.activation.appliance.Appliance;
   import org.apache.avalon.activation.appliance.ApplianceException;
  @@ -115,7 +119,7 @@
    * @version $Revision$ $Date$
    */
   public class DefaultAppliance extends AbstractAppliance
  -  implements Composite, Factory, DefaultApplianceMBean
  +  implements Composite, DefaultApplianceMBean
   {
       //-------------------------------------------------------------------
       // static
  @@ -164,6 +168,11 @@
       */
       private final ServiceContext m_context;
   
  +   /**
  +    * The instance factory.
  +    */
  +    private final Factory m_factory = new StandardFactory();
  +
       //-------------------------------------------------------------------
       // mutable state
       //-------------------------------------------------------------------
  @@ -299,7 +308,7 @@
                           StageDescriptor stage = 
                             new StageDescriptor( clazz.getName() );
                           m_contextProvider = 
  -                          m_engine.resolveAppliance( stage );
  +                          m_engine.locate( stage );
                       }
                       catch( Throwable e )
                       {
  @@ -356,7 +365,7 @@
                   try
                   {
                       final Appliance appliance = 
  -                      m_engine.resolveAppliance( dependency );
  +                      m_engine.locate( dependency );
                       registerListener( appliance );
                       m_providers.put( key, appliance );
                       if( getLogger().isDebugEnabled() )
  @@ -388,7 +397,7 @@
                   try
                   {
                       final Appliance appliance = 
  -                      m_engine.resolveAppliance( stage );
  +                      m_engine.locate( stage );
                       registerListener( appliance );
                       m_stages.put( key, appliance );
                       if( getLogger().isDebugEnabled() )
  @@ -502,7 +511,7 @@
   
               if( m_model.getActivationPolicy() )
               {
  -                Object instance = resolve( this );
  +                Object instance = resolve();
                   if( getLogger().isDebugEnabled() )
                   {
                       int id = System.identityHashCode( instance );
  @@ -531,7 +540,7 @@
               }
               if( m_contextProvider != null )
               {
  -                m_contextProvider.release( this, m_contextualization );
  +                m_contextProvider.release( m_contextualization );
                   m_contextualization = null;
               }
               m_deployment.setEnabled( false );
  @@ -546,55 +555,45 @@
       /**
        * Resolve a object to a value.
        *
  -     * @param source the context within the the resolution is applied
        * @return the resolved object
        * @throws Exception if an error occurs
        */
  -    public Object resolve( Object source ) throws Exception
  +    public Object resolve() throws Exception
       {
  -        return resolve( source, new Class[0] );
  -    }
  -
  -    /**
  -     * Resolve a object to a value relative to a supplied set of 
  -     * interface classes.
  -     *
  -     * @param source the aquiring source
  -     * @param ref the castable service classes
  -     * @return the resolved object
  -     * @throws Exception if an error occurs
  -     */
  -    public Object resolve( final Object source, final Class[] ref ) throws Exception
  -    {
  -        if( source == null ) throw new NullPointerException( "source" );
           if( !m_deployment.isEnabled() )
           {
               final String error = 
                 "Illegal attempt to resolve an service from a non-deployed appliance ["
  -              + this + "]. A probably cause is a recursive dependency declaration.";
  +              + this + "]. A possible cause is a recursive dependency declaration.";
               getLogger().error( error );
               throw new IllegalStateException( error );
           }
   
  -        Class[] refs = ref;
  -        if( refs == null ) refs = new Class[0];
  -        Object instance = m_lifestyle.resolve( source, refs );
  -        return applyAccessStages( instance, true );
  +        Object provider = m_lifestyle.resolve();
  +        accessInstance( getProviderInstance( provider ) );
  +        return provider;
       }
   
       /**
        * Release an object.
        *
  -     * @param source the client that obtained the intial reference
        * @param instance the object to be released
        */
  -    public void release( Object source, Object instance )
  +    public void release( Object instance )
       {
           if( instance == null ) return;
  -        if( source == null ) throw new NullPointerException( "source" );
  -
           if( !m_deployment.isEnabled() ) return;
  +        releaseInstance( getProviderInstance( instance ) );
  +        m_lifestyle.release( instance );
  +    }
  +
  +    private void accessInstance( Object instance ) throws Exception
  +    {
  +        applyAccessStages( instance, true );
  +    }
   
  +    private void releaseInstance( Object instance )
  +    {
           try
           {
               applyAccessStages( instance, false );
  @@ -605,66 +604,25 @@
                 REZ.getString( "lifestyle.release.warning" );
               getLogger().warn( error, e );
           }
  -        finally
  -        {
  -            m_lifestyle.release( source, instance );
  -        }
       }
   
  -    //-------------------------------------------------------------------
  -    // Factory
  -    //-------------------------------------------------------------------
   
  -   /**
  -    * Create a new fully deployed instance of the type managed by the 
  -    * appliance.
  -    *
  -    * @return the deployed component instance
  -    * @exception LifecycleException if an error while processing
  -    *    the component though its deployment lifecycle
  -    */
  -    public Object newInstance() throws LifecycleException
  +    private Object getProviderInstance( Object instance )
       {
  -        Class clazz = m_model.getDeploymentClass();
  -        Object instance = null;
  -        try
  +        if( Proxy.isProxyClass( instance.getClass() ) )
           {
  -            instance = createNewInstance( clazz );
  -            if( getLogger().isDebugEnabled() )
  -            {
  -                int id = System.identityHashCode( instance );
  -                getLogger().debug( "new instance: " + id );
  -            }
  -
  -            applyLogger( instance );
  -            applyContext( instance );
  -            applyServices( instance );
  -            applyConfiguration( instance );
  -            applyParameters( instance );
  -            applyCreateStages( instance, true );
  -            applyInitialization( instance );
  -            applyStart( instance );
  -
  -            if( getLogger().isDebugEnabled() )
  -            {
  -                int id = System.identityHashCode( instance );
  -                getLogger().debug( "established: " + id );
  -            }
  -
  -            return instance;
  +            ApplianceInvocationHandler handler = 
  +              (ApplianceInvocationHandler) Proxy.getInvocationHandler( instance );
  +            return handler.getInstance();
           }
  -        catch( Throwable e )
  +        else
           {
  -            destroy( instance );
  -            final String error = 
  -              REZ.getString( "lifestyle.new.error", m_model.getQualifiedName() );
  -            throw new LifecycleException( error, e );
  +            return instance;
           }
       }
   
  -    public void destroy( Object instance )
  +    private void destroyInstance( Object instance )
       {
  -        if( instance == null ) return;
           final int id = System.identityHashCode( instance );
           getLogger().debug( "component disposal: " + id );
           try
  @@ -677,10 +635,7 @@
           {
               getLogger().warn( "ignoring release stage error", e );
           }
  -        finally
  -        {
  -            getLogger().debug( "destroyed instance: " + id );
  -        }
  +        getLogger().debug( "destroyed instance: " + id );
       }
   
       //-------------------------------------------------------------------
  @@ -825,7 +780,11 @@
         throws Exception
       {
           StageDescriptor[] stages = m_model.getType().getStages();
  -        getLogger().debug( "stage count: " + stages.length );
  +        if( ( stages.length > 0 ) && getLogger().isDebugEnabled() )
  +        {
  +            getLogger().debug( "stage count: " + stages.length );
  +        }
  +
           for( int i=0; i<stages.length; i++ )
           {
               StageDescriptor stage = stages[i];
  @@ -841,7 +800,7 @@
   
               if( Creator.class.isAssignableFrom( c ) )
               {
  -                Creator handler = (Creator) provider.resolve( this );
  +                Creator handler = (Creator) provider.resolve();
                   Context context = m_model.getContextModel().getContext();
                   try
                   {
  @@ -880,14 +839,14 @@
                   }
                   finally
                   {
  -                    provider.release( this, handler );
  +                    provider.release( handler );
                   }
               }
   
               if( flag && LifecycleCreateExtension.class.isAssignableFrom( c ) )
               {
                   LifecycleCreateExtension handler = 
  -                  (LifecycleCreateExtension) provider.resolve( this );
  +                  (LifecycleCreateExtension) provider.resolve();
                   try
                   {
                       if( getLogger().isDebugEnabled() )
  @@ -899,13 +858,13 @@
                   }
                   finally
                   {
  -                    provider.release( this, handler );
  +                    provider.release( handler );
                   }
               }
               else if( !flag && LifecycleDestroyExtension.class.isAssignableFrom( c ) )
               {
                   LifecycleDestroyExtension handler = 
  -                  (LifecycleDestroyExtension) provider.resolve( this );
  +                  (LifecycleDestroyExtension) provider.resolve();
   
                   try
                   {
  @@ -927,7 +886,7 @@
                   }
                   finally
                   {
  -                    provider.release( this, handler );
  +                    provider.release( handler );
                   }
               }
           }
  @@ -950,7 +909,7 @@
               Class c = ((DeploymentModel)provider.getModel()).getDeploymentClass();
               if( Accessor.class.isAssignableFrom( c ) )
               {
  -                Accessor handler = (Accessor) provider.resolve( this );
  +                Accessor handler = (Accessor) provider.resolve();
                   try
                   {
                       Context context = m_model.getContextModel().getContext();
  @@ -990,7 +949,7 @@
                   }
                   finally
                   {
  -                    provider.release( this, handler );
  +                    provider.release( handler );
                   }
               }
           }
  @@ -1133,7 +1092,7 @@
   
           try
           {
  -            return (ContextualizationHandler) appliance.resolve( this );
  +            return (ContextualizationHandler) appliance.resolve();
           }
           catch( Throwable e )
           {
  @@ -1150,19 +1109,19 @@
           Logger log = getLogger();
           if( lifestyle.equals( InfoDescriptor.SINGLETON ) )
           {
  -            return new SingletonLifestyleHandler( log, this );
  +            return new SingletonLifestyleHandler( log, m_factory );
           }
           else if( lifestyle.equals( InfoDescriptor.THREAD ) )
           {
  -            return new ThreadLifestyleHandler( log, this );
  +            return new ThreadLifestyleHandler( log, m_factory );
           }
           else if( lifestyle.equals( InfoDescriptor.POOLED ) )
           {
  -            return new PooledLifestyleHandler( log, this );
  +            return new PooledLifestyleHandler( log, m_factory );
           }
           else
           {
  -            return new TransientLifestyleHandler( log, this );
  +            return new TransientLifestyleHandler( log, m_factory );
           }
       }
   
  @@ -1183,4 +1142,165 @@
           //
       }
   
  +    private Object createProvider( Object instance ) throws ApplianceException
  +    {
  +        Class[] classes = m_model.getInterfaces();
  +        try
  +        {
  +            ApplianceInvocationHandler handler = 
  +              new ApplianceInvocationHandler( instance );
  +            return Proxy.newProxyInstance( 
  +              m_model.getDeploymentClass().getClassLoader(),
  +              classes,
  +              handler );
  +        }
  +        catch( Throwable e )
  +        {
  +            final String error = 
  +              "Proxy establishment failure in block: " + this;
  +            throw new ApplianceException( error, e );
  +        }
  +    }
  +
  +   /**
  +    * This makes a dynamic proxy for an object.  The object can be represented
  +    * by one, some or all of it's interfaces.
  +    *
  +    */
  +    private final class ApplianceInvocationHandler
  +        implements InvocationHandler
  +    {
  +        private final Object m_instance;
  +        private boolean m_disposed = false;
  +
  +       /**
  +        * Create a proxy invocation handler.
  +        *
  +        * @param instance the underlying provider 
  +        */
  +        protected ApplianceInvocationHandler( Object instance )
  +        {
  +            m_instance = instance;
  +        }
  +
  +        /**
  +         * Invoke the specified method on underlying object.
  +         * This is called by the proxy object.
  +         *
  +         * @param proxy the proxy object
  +         * @param method the method invoked on proxy object
  +         * @param args the arguments supplied to method
  +         * @return the return value of method
  +         * @throws Throwable if an error occurs
  +         */
  +        public Object invoke( final Object proxy,
  +                final Method method,
  +                final Object[] args )
  +                throws Throwable
  +        {
  +            if( proxy == null ) throw new NullPointerException( "proxy" );
  +            if( method == null ) throw new NullPointerException( "method" );
  +            if( m_disposed ) throw new IllegalStateException( "disposed" );
  +
  +            try
  +            {
  +                return method.invoke( m_instance, args );
  +            }
  +            catch( InvocationTargetException e )
  +            {
  +                final String error = 
  +                  "Delegation error raised by component: " + m_model.getQualifiedName();
  +                throw new ApplianceException( error, e.getTargetException() );
  +            }
  +            catch( Throwable e )
  +            {
  +                final String error =
  +                  "Service resolution failure for the component: '" 
  +                  + method.getDeclaringClass()
  +                  + "' for operation: '" + method.getName()
  +                  + "' in appliance: " + m_model.getQualifiedName();
  +                throw new ApplianceException( error, e );
  +            }
  +        }
  +
  +        protected void finalize() throws Throwable
  +        {
  +            if( !m_disposed )
  +            {
  +                release( m_instance );
  +            }
  +        }
  +
  +        Object getInstance()
  +        {
  +            return m_instance;
  +        }
  +    }
  +
  +    private class StandardFactory implements Factory
  +    {
  +       /**
  +        * Create a new instance of a component. 
  +        *
  +        * @exception LifecycleException
  +        */
  +        public Object newInstance() throws LifecycleException
  +        {
  +            Class clazz = m_model.getDeploymentClass();
  +            Object instance = null;
  +            try
  +            {
  +                instance = createNewInstance( clazz );
  +                if( getLogger().isDebugEnabled() )
  +                {
  +                    int id = System.identityHashCode( instance );
  +                    getLogger().debug( "new instance: " + id );
  +                }
  +
  +                applyLogger( instance );
  +                applyContext( instance );
  +                applyServices( instance );
  +                applyConfiguration( instance );
  +                applyParameters( instance );
  +                applyCreateStages( instance, true );
  +                applyInitialization( instance );
  +                applyStart( instance );
  +
  +                if( getLogger().isDebugEnabled() )
  +                {
  +                    int id = System.identityHashCode( instance );
  +                    getLogger().debug( "established: " + id );
  +                }
  +            }
  +            catch( Throwable e )
  +            {
  +                final String error = 
  +                  REZ.getString( "lifestyle.new.error", m_model.getQualifiedName() );
  +                throw new LifecycleException( error, e );
  +            }
  +
  +            try
  +            {
  +                return createProvider( instance );
  +            }
  +            catch( Throwable e )
  +            {
  +                final String error = 
  +                  "Proxy establishment failure.";
  +                getLogger().error( error );
  +                throw new LifecycleException( error, e );
  +            }
  +        }
  +
  +       /**
  +        * Decommission and dispose of the supplied component. 
  +        *
  +        * @param instance the object to decommission
  +        */
  +        public void destroy( Object instance )
  +        {
  +            if( instance == null ) throw new NullPointerException( "instance" );
  +            destroyInstance( getProviderInstance( instance ) );
  +        }
  +    }
   }
  
  
  
  1.3       +19 -35    avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultBlock.java
  
  Index: DefaultBlock.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultBlock.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefaultBlock.java	7 Oct 2003 17:42:55 -0000	1.2
  +++ DefaultBlock.java	17 Oct 2003 03:26:28 -0000	1.3
  @@ -226,17 +226,17 @@
       * @param dependency the dependency model
       * @return the appliance
       */
  -    public Appliance resolveAppliance( DependencyModel dependency )
  +    public Appliance locate( DependencyModel dependency )
         throws Exception
       {
           final String path = dependency.getPath();
           if( path != null )
           {
  -            return resolveAppliance( path );
  +            return locate( path );
           }
           else
           {
  -            return resolveAppliance( dependency.getDependency() );
  +            return locate( dependency.getDependency() );
           }
       }
   
  @@ -248,7 +248,7 @@
       *    for the supplied dependency
       * @exception Exception if an error occurs
       */
  -    public Appliance resolveAppliance( DependencyDescriptor dependency )
  +    public Appliance locate( DependencyDescriptor dependency )
         throws Exception
       {
           if( getLogger().isDebugEnabled() )
  @@ -287,7 +287,7 @@
   
           if( m_engine != null )
           {
  -            return m_engine.resolveAppliance( dependency );
  +            return m_engine.locate( dependency );
           }
           else
           {
  @@ -301,17 +301,17 @@
       * @param stage the stage model
       * @return the appliance
       */
  -    public Appliance resolveAppliance( StageModel stage )
  +    public Appliance locate( StageModel stage )
         throws Exception
       {
           final String path = stage.getPath();
           if( path != null )
           {
  -            return resolveAppliance( path );
  +            return locate( path );
           }
           else
           {
  -            return resolveAppliance( stage.getStage() );
  +            return locate( stage.getStage() );
           }
       }
   
  @@ -323,7 +323,7 @@
       *    for the supplied stage
       * @exception Exception if an error occurs
       */
  -    public Appliance resolveAppliance( StageDescriptor stage )
  +    public Appliance locate( StageDescriptor stage )
         throws NoProviderDefinitionException, Exception
       {
           if( getLogger().isDebugEnabled() )
  @@ -360,7 +360,7 @@
   
           if( m_engine != null )
           {
  -            return m_engine.resolveAppliance( stage );
  +            return m_engine.locate( stage );
           }
           else
           {
  @@ -375,7 +375,7 @@
       * @return the appliance
       * @exception Exception if an error occurs
       */
  -    public Appliance resolveAppliance( String source )
  +    public Appliance locate( String source )
         throws Exception
       {
           String path = source;
  @@ -413,7 +413,7 @@
                   Appliance child = m_repository.getLocalAppliance( root );
                   if( child instanceof Engine )
                   {
  -                    return ((Engine)child).resolveAppliance( path );
  +                    return ((Engine)child).locate( path );
                   }
                   else
                   {
  @@ -437,7 +437,7 @@
   
                   if( m_engine != null )
                   {
  -                    return m_engine.resolveAppliance( path );
  +                    return m_engine.locate( path );
                   }
                   else
                   {
  @@ -694,24 +694,10 @@
       /**
        * Resolve a object to a value.
        *
  -     * @param consumer the consumer
        * @return the resolved object
        * @throws Exception if an error occurs
        */
  -    public Object resolve( Object consumer ) throws Exception
  -    {
  -        return resolve( consumer, new Class[0] );
  -    }
  -
  -    /**
  -     * Resolve a object to a value qualified by a supplied service reference.
  -     *
  -     * @param source the context within the the resolution is applied
  -     * @param ref the requested service interfaces
  -     * @return the resolved object
  -     * @throws Exception if an error occurs
  -     */
  -    public Object resolve( Object source, Class[] ref ) throws Exception
  +    public Object resolve() throws Exception
       {
           return m_proxy;
       }
  @@ -719,14 +705,12 @@
       /**
        * Release an object
        *
  -     * @param source the client that obtained the intial reference
        * @param instance the object to be released
        */
  -    public void release( Object source, Object instance )
  +    public void release( Object instance )
       {
           //
  -        // TODO: propergate the release to the object 
  -        // actually providing the service
  +        // container proxy is a singleton reference
           //
       }
   
  @@ -1016,7 +1000,7 @@
                 m_model.getExportDirective( method.getDeclaringClass() );
   
               String path = service.getPath();
  -            Appliance provider = (Appliance) m_block.resolveAppliance( path );
  +            Appliance provider = (Appliance) m_block.locate( path );
               m_logger.debug( "delegating: " +  method.getName() );
   
               //
  @@ -1026,7 +1010,7 @@
   
               try
               {
  -                Object object = provider.resolve( this );
  +                Object object = provider.resolve();
                   return method.invoke( object, args );
               }
               catch( InvocationTargetException e )
  
  
  
  1.2       +5 -4      avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultServiceManager.java
  
  Index: DefaultServiceManager.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/appliance/impl/DefaultServiceManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultServiceManager.java	24 Sep 2003 09:30:43 -0000	1.1
  +++ DefaultServiceManager.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -58,13 +58,14 @@
   import java.util.Hashtable;
   
   import org.apache.avalon.activation.appliance.Appliance;
  +import org.apache.avalon.activation.appliance.ApplianceException;
  +import org.apache.avalon.activation.appliance.ApplianceRuntimeException;
   import org.apache.avalon.activation.appliance.Home;
   import org.apache.avalon.composition.util.ExceptionHelper;
   import org.apache.avalon.framework.logger.Logger;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
   import org.apache.avalon.framework.service.ServiceException;
   import org.apache.avalon.framework.service.ServiceManager;
  -import org.apache.avalon.meta.info.DependencyDescriptor;
   
   /**
    * Default implementation of the framework {@link ServiceManager} interface.
  @@ -141,10 +142,10 @@
               throw new ServiceException( key, error );
           }
   
  -        Home provider = (Home) m_map.get( key );
  +        Appliance provider = (Appliance) m_map.get( key );
           try
           {
  -            Object object = provider.resolve( this );
  +            Object object = provider.resolve();
               String id = "" + System.identityHashCode( object );
               m_table.put( id, key );
               final String message = 
  @@ -202,7 +203,7 @@
   
           try
           {
  -            provider.release( this, object );
  +            provider.release( object );
               final String message = 
                 "released service [" + id + "] from the key [" + key + "].";
               getLogger().debug( message );
  
  
  
  1.2       +1 -13     avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/AbstractLifestyleHandler.java
  
  Index: AbstractLifestyleHandler.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/AbstractLifestyleHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractLifestyleHandler.java	24 Sep 2003 09:30:44 -0000	1.1
  +++ AbstractLifestyleHandler.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -73,16 +73,4 @@
           enableLogging( logger );
       }
   
  -    /**
  -     * Resolve a object to a value.
  -     *
  -     * @param source the context within the the resolution is applied
  -     * @return the resolved object
  -     * @throws Exception if an error occurs
  -     */
  -    public Object resolve( Object source ) throws Exception
  -    {
  -        return resolve( source, new Class[0] );
  -    }
  -
   }
  
  
  
  1.2       +6 -8      avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/PooledLifestyleHandler.java
  
  Index: PooledLifestyleHandler.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/PooledLifestyleHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PooledLifestyleHandler.java	24 Sep 2003 09:30:45 -0000	1.1
  +++ PooledLifestyleHandler.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -69,24 +69,22 @@
        * Resolve a object to a value relative to a supplied set of 
        * interface classes.
        *
  -     * @param source the aquiring source
  -     * @param ref the castable service classes 
        * @return the resolved object
        * @throws Exception if an error occurs
        */
  -    public Object resolve( Object source, Class[] ref ) throws Exception
  +    public Object resolve() throws Exception
       {
           throw new UnsupportedOperationException();
       }
   
       /**
  -     * Release an object.  The abstract implementation does nothing,
  +     * Release an object. 
        *
  -     * @param source the context with respect the reclaimed object is qualified
  -     * @param object the object to be reclaimed
  +     * @param instance the object to be reclaimed
        */
  -    public void release( Object source, Object object )
  +    public void release( Object instance )
       {
  +        throw new UnsupportedOperationException();
       }
   
   }
  
  
  
  1.2       +8 -8      avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/SingletonLifestyleHandler.java
  
  Index: SingletonLifestyleHandler.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/SingletonLifestyleHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SingletonLifestyleHandler.java	24 Sep 2003 09:30:47 -0000	1.1
  +++ SingletonLifestyleHandler.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -50,6 +50,8 @@
   
   package org.apache.avalon.activation.lifestyle.impl;
   
  +import java.lang.ref.WeakReference;
  +
   import org.apache.avalon.activation.lifecycle.Factory;
   import org.apache.avalon.framework.activity.Disposable;
   import org.apache.avalon.framework.logger.Logger;
  @@ -76,12 +78,10 @@
        * Resolve a object to a value relative to a supplied set of 
        * interface classes.
        *
  -     * @param source the aquiring source
  -     * @param ref the castable service classes 
        * @return the resolved object
        * @throws Exception if an error occurs
        */
  -    public Object resolve( Object source, Class[] ref ) throws Exception
  +    public Object resolve() throws Exception
       {
           //
           // TODO: Add support for ref handling - first off
  @@ -99,13 +99,13 @@
       }
   
       /**
  -     * Release an object.  The abstract implementation does nothing,
  +     * Release an object.
        *
  -     * @param source the context with respect the reclaimed object is qualified
  -     * @param object the object to be reclaimed
  +     * @param instance the object to be released
        */
  -    public void release( Object source, Object object )
  +    public void release( Object instance )
       {
  +        // don't release the singleton
       }
   
      /**
  
  
  
  1.2       +5 -7      avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/ThreadLifestyleHandler.java
  
  Index: ThreadLifestyleHandler.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/ThreadLifestyleHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ThreadLifestyleHandler.java	24 Sep 2003 09:30:47 -0000	1.1
  +++ ThreadLifestyleHandler.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -104,12 +104,10 @@
        * Resolve a object to a value relative to a supplied set of 
        * interface classes.
        *
  -     * @param source the aquiring source
  -     * @param ref the castable service classes 
        * @return the resolved object
        * @throws Exception if an error occurs
        */
  -    public Object resolve( Object source, Class[] ref ) throws Exception
  +    public Object resolve() throws Exception
       {
           if( m_local == null )
           {
  @@ -121,11 +119,11 @@
       /**
        * Release an object.  The abstract implementation does nothing,
        *
  -     * @param source the context with respect the reclaimed object is qualified
  -     * @param object the object to be reclaimed
  +     * @param instance the object to be reclaimed
        */
  -    public void release( Object source, Object object )
  +    public void release( Object instance )
       {
  +        // don't release
       }
   
      /**
  
  
  
  1.2       +26 -16    avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/TransientLifestyleHandler.java
  
  Index: TransientLifestyleHandler.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/java/org/apache/avalon/activation/lifestyle/impl/TransientLifestyleHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TransientLifestyleHandler.java	24 Sep 2003 09:30:48 -0000	1.1
  +++ TransientLifestyleHandler.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -50,6 +50,9 @@
   
   package org.apache.avalon.activation.lifestyle.impl;
   
  +import java.lang.ref.WeakReference;
  +import java.lang.ref.ReferenceQueue;
  +
   import java.util.ArrayList;
   
   import org.apache.avalon.activation.lifecycle.Factory;
  @@ -64,7 +67,8 @@
   {
       private final Factory m_factory;
   
  -    // TODO: change this to weak references
  +    private final ReferenceQueue m_queue = new ReferenceQueue();
  +
       private ArrayList m_list = new ArrayList();
   
       public TransientLifestyleHandler( Logger logger, Factory factory )
  @@ -77,28 +81,29 @@
        * Resolve a object to a value relative to a supplied set of 
        * interface classes.
        *
  -     * @param source the aquiring source
  -     * @param ref the castable service classes 
        * @return the resolved object
        * @throws Exception if an error occurs
        */
  -    public Object resolve( Object source, Class[] ref ) throws Exception
  +    public Object resolve() throws Exception
       {
  +        // TODO: setup a background thread to check m_queue for 
  +        // released references and remove them from our list, otherwise we
  +        // have a memory leak due to accumulation of weak references
  +
           Object instance = m_factory.newInstance();
  -        m_list.add( instance );
  +        WeakReference reference = new WeakReference( instance, m_queue );
  +        m_list.add( reference );
           return instance;
       }
   
       /**
  -     * Release an object.  The abstract implementation does nothing,
  +     * Release an object. 
        *
  -     * @param source the context with respect the reclaimed object is qualified
  -     * @param object the object to be reclaimed
  +     * @param instance the object to be reclaimed
        */
  -    public void release( Object source, Object object )
  +    public void release( Object instance )
       {
  -        m_list.remove( object );
  -        m_factory.destroy( object );
  +        m_factory.destroy( instance );
       }
   
      /**
  @@ -106,12 +111,17 @@
       */
       public synchronized void dispose()
       {
  -        Object[] instances = m_list.toArray();
  -        for( int i=0; i<instances.length; i++ )
  +        WeakReference[] refs = (WeakReference[]) m_list.toArray( new WeakReference[0] );
  +        for( int i=0; i<refs.length; i++ )
           {
  -            m_factory.destroy( instances[i] );
  +            WeakReference ref = refs[i];
  +            Object instance = ref.get();
  +            if( instance != null )
  +            {
  +                m_factory.destroy( instance );
  +                ref.clear();
  +            }
           }
           m_list.clear();
       }
  -
   }
  
  
  
  1.2       +1 -1      avalon/merlin/activation/impl/src/test/org/apache/avalon/activation/appliance/AbstractTestCase.java
  
  Index: AbstractTestCase.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/test/org/apache/avalon/activation/appliance/AbstractTestCase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractTestCase.java	24 Sep 2003 09:30:48 -0000	1.1
  +++ AbstractTestCase.java	17 Oct 2003 03:26:28 -0000	1.2
  @@ -95,7 +95,7 @@
           File local = new File( base, "repository" );
           SystemContext system = 
                 DefaultSystemContext.createSystemContext( 
  -                base, local, ConsoleLogger.LEVEL_ERROR );
  +                base, local, ConsoleLogger.LEVEL_DEBUG );
           m_logger = system.getLogger();
   
           //
  
  
  
  1.2       +1 -1      avalon/merlin/activation/impl/src/test/org/apache/avalon/playground/ExploitationManager.xinfo
  
  Index: ExploitationManager.xinfo
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/test/org/apache/avalon/playground/ExploitationManager.xinfo,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ExploitationManager.xinfo	24 Sep 2003 09:30:53 -0000	1.1
  +++ ExploitationManager.xinfo	17 Oct 2003 03:26:28 -0000	1.2
  @@ -28,7 +28,7 @@
     Declaration of the lifecycle support phases that this manager provides. 
     -->
     <extensions>
  -    <extension type="org.apache.avalon.playground.Exploitable" />
  +    <extension id="urn:avalon.playground:exploitable" />
     </extensions>
   
   </type>
  
  
  
  1.2       +1 -1      avalon/merlin/activation/impl/src/test/org/apache/avalon/playground/SimpleComponent.xinfo
  
  Index: SimpleComponent.xinfo
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/impl/src/test/org/apache/avalon/playground/SimpleComponent.xinfo,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SimpleComponent.xinfo	24 Sep 2003 09:30:54 -0000	1.1
  +++ SimpleComponent.xinfo	17 Oct 2003 03:26:28 -0000	1.2
  @@ -44,7 +44,7 @@
     the container has to manage.
     -->
     <stages>
  -     <stage type="org.apache.avalon.playground.Exploitable" />
  +     <stage id="urn:avalon.playground:exploitable" />
        <stage id="urn:avalon.playground:demonstratable"/>
     </stages>
   
  
  
  
  1.2       +5 -5      avalon/merlin/activation/spi/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/spi/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	24 Sep 2003 09:30:56 -0000	1.1
  +++ project.xml	17 Oct 2003 03:26:28 -0000	1.2
  @@ -8,7 +8,7 @@
     <id>avalon-activation-spi</id>
     <name>Avalon Activation SPI</name>
     <package>org.apache.avalon.activation</package>
  -  <currentVersion>1.0b1</currentVersion>
  +  <currentVersion>1.1-dev</currentVersion>
   
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Activation Service Provider Interface</shortDescription>
  @@ -35,24 +35,24 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
  
  
  
  1.2       +17 -4     avalon/merlin/activation/spi/src/java/org/apache/avalon/activation/lifestyle/LifestyleHandler.java
  
  Index: LifestyleHandler.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/activation/spi/src/java/org/apache/avalon/activation/lifestyle/LifestyleHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LifestyleHandler.java	24 Sep 2003 09:31:00 -0000	1.1
  +++ LifestyleHandler.java	17 Oct 2003 03:26:29 -0000	1.2
  @@ -50,14 +50,27 @@
   
   package org.apache.avalon.activation.lifestyle;
   
  -import org.apache.avalon.activation.appliance.Home;
  -
   /**
    * A lifestyle handler provides support for a particular lifestyle policy.
    *
    * @author <a href="mailto:dev@avalon.apache.org">Avalon Development Team</a>
    * @version $Revision$ $Date$
    */
  -public interface LifestyleHandler extends Home
  +public interface LifestyleHandler
   {
  +    /**
  +     * Resolve a object to a value.
  +     *
  +     * @return the resolved object
  +     * @throws Exception if an error occurs
  +     */
  +    Object resolve() throws Exception;
  +
  +    /**
  +     * Release an object
  +     *
  +     * @param instance the object to be released
  +     */
  +    void release( Object instance );
  +
   }
  
  
  
  1.2       +3 -3      avalon/merlin/composition/api/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/composition/api/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	24 Sep 2003 09:31:00 -0000	1.1
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.2
  @@ -8,7 +8,7 @@
     <id>avalon-composition-api</id>
     <name>Avalon Composition API</name>
     <package>org.apache.avalon.assembly</package>
  -  <currentVersion>1.0b1</currentVersion>
  +  <currentVersion>1.1-dev</currentVersion>
   
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Avalon Composition SPI</shortDescription>
  @@ -34,12 +34,12 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
  
  
  
  1.2       +8 -1      avalon/merlin/composition/api/src/java/org/apache/avalon/composition/model/DeploymentModel.java
  
  Index: DeploymentModel.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/composition/api/src/java/org/apache/avalon/composition/model/DeploymentModel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DeploymentModel.java	24 Sep 2003 09:31:17 -0000	1.1
  +++ DeploymentModel.java	17 Oct 2003 03:26:29 -0000	1.2
  @@ -208,4 +208,11 @@
       */
       StageModel[] getStageModels();
   
  +   /**
  +    * Return the set of services produced by the model as a array of classes.
  +    *
  +    * @return the service classes
  +    */
  +    Class[] getInterfaces();
  +
   }
  
  
  
  1.2       +7 -6      avalon/merlin/composition/impl/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/composition/impl/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	24 Sep 2003 09:31:24 -0000	1.1
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.2
  @@ -8,7 +8,7 @@
     <id>avalon-composition-impl</id>
     <name>Avalon Composition Framework</name>
     <package>org.apache.avalon.composition</package>
  -  <currentVersion>1.0b1</currentVersion>
  +  <currentVersion>1.1-dev</currentVersion>
   
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Avalon Composition Framework.</shortDescription>
  @@ -38,31 +38,32 @@
         <artifactId>avalon-framework-impl</artifactId>
         <version>4.1.5</version>
       </dependency>
  +
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-impl</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
   
  
  
  
  1.2       +9 -2      avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/data/builder/XMLProfileCreator.java
  
  Index: XMLProfileCreator.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/data/builder/XMLProfileCreator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XMLProfileCreator.java	24 Sep 2003 09:31:42 -0000	1.1
  +++ XMLProfileCreator.java	17 Oct 2003 03:26:29 -0000	1.2
  @@ -123,7 +123,14 @@
           {
               return true;
           }
  -        return fallback ;
  +        else if( string.equals( "lazy" ) || string.equals( "false" ) )
  +        {
  +            return false;
  +        }
  +        else
  +        {
  +            return fallback ;
  +        }
       }
   
       public CategoriesDirective getCategoriesDirective( 
  
  
  
  1.2       +42 -1     avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultDeploymentModel.java
  
  Index: DefaultDeploymentModel.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/composition/impl/src/java/org/apache/avalon/composition/model/impl/DefaultDeploymentModel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultDeploymentModel.java	24 Sep 2003 09:32:09 -0000	1.1
  +++ DefaultDeploymentModel.java	17 Oct 2003 03:26:29 -0000	1.2
  @@ -269,6 +269,7 @@
           return m_context.getType().getServices();
       }
   
  +
      /**
       * Return TRUE is this model is capable of supporting a supplied 
       * depedendency.
  @@ -587,6 +588,45 @@
           return m_stages;
       }
   
  +   /**
  +    * Return the set of services produced by the model as a array of classes.
  +    *
  +    * @return the service classes
  +    */
  +    public Class[] getInterfaces()
  +    {
  +        //
  +        // TODO: add a SoftReference to hold the service class array
  +        // instad of generating each time
  +        //
  +
  +        ClassLoader classLoader = m_context.getClassLoader();
  +        ArrayList list = new ArrayList();
  +        ServiceDescriptor[] services = getServices();
  +        for( int i=0; i<services.length; i++ )
  +        {
  +            final ServiceDescriptor service = services[i];
  +            final String classname = service.getReference().getClassname();
  +            list.add( getComponentClass( classLoader, classname ) );
  +        }
  +
  +        //
  +        // if the component is an extension then add all implemented 
  +        // interfaces
  +        //
  +
  +        if( getType().getExtensions().length > 0 )
  +        {
  +            Class[] interfaces = getDeploymentClass().getInterfaces();
  +            for( int i=0; i<interfaces.length; i++ )
  +            {
  +                list.add( interfaces[i] );
  +            }
  +        }
  +
  +        return (Class[]) list.toArray( new Class[0] );
  +    }
  +
       //==============================================================
       // implementation
       //==============================================================
  @@ -615,6 +655,7 @@
           {
               Class contextualizable = 
                 getComponentClass( classLoader, strategy );
  +
   
               if( contextualizable == null )
               {
  
  
  
  1.2       +4 -4      avalon/merlin/composition/spi/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/composition/spi/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	24 Sep 2003 09:32:28 -0000	1.1
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.2
  @@ -8,7 +8,7 @@
     <id>avalon-composition-spi</id>
     <name>Avalon Composition SPI</name>
     <package>org.apache.avalon.assembly</package>
  -  <currentVersion>1.0b1</currentVersion>
  +  <currentVersion>1.1-dev</currentVersion>
   
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Avalon Composition SPI</shortDescription>
  @@ -34,12 +34,12 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
  @@ -51,7 +51,7 @@
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
     </dependencies>
  
  
  
  1.5       +11 -11    avalon/merlin/kernel/bootstrap/src/etc/merlin.properties
  
  Index: merlin.properties
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/bootstrap/src/etc/merlin.properties,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- merlin.properties	14 Oct 2003 10:55:57 -0000	1.4
  +++ merlin.properties	17 Oct 2003 03:26:29 -0000	1.5
  @@ -8,33 +8,33 @@
   # the api classpath
   #
   merlin.api.classpath.0=avalon-framework:avalon-framework-api;4.1.5
  -merlin.api.classpath.1=avalon-meta:avalon-meta-api;1.1
  -merlin.api.classpath.2=avalon-composition:avalon-composition-api;1.0b1
  -merlin.api.classpath.3=avalon-activation:avalon-activation-api;1.0b1
  +merlin.api.classpath.1=avalon-meta:avalon-meta-api;1.2-dev
  +merlin.api.classpath.2=avalon-composition:avalon-composition-api;1.1-dev
  +merlin.api.classpath.3=avalon-activation:avalon-activation-api;1.1-dev
   merlin.api.classpath.4=excalibur-lifecycle:excalibur-lifecycle-api;1.0
   merlin.api.classpath.5=avalon-extension:avalon-extension-spi;1.0
  -merlin.api.classpath.6=merlin:merlin-kernel-spi;3.1b2
  +merlin.api.classpath.6=merlin:merlin-kernel-spi;3.2-dev
   
   #
   # the spi classpath
   #
  -merlin.spi.classpath.0=avalon-meta:avalon-meta-spi;1.1
  -merlin.spi.classpath.1=avalon-composition:avalon-composition-spi;1.0b1
  -merlin.spi.classpath.2=avalon-activation:avalon-activation-spi;1.0b1
  +merlin.spi.classpath.0=avalon-meta:avalon-meta-spi;1.2-dev
  +merlin.spi.classpath.1=avalon-composition:avalon-composition-spi;1.1-dev
  +merlin.spi.classpath.2=avalon-activation:avalon-activation-spi;1.1-dev
   merlin.spi.classpath.3=avalon-repository:avalon-repository-spi;1.0b1
   
   #
   # the bootstrap classpath
   #
   merlin.impl.classpath.0=avalon-framework:avalon-framework-impl;4.1.5
  -merlin.impl.classpath.1=avalon-meta:avalon-meta-impl;1.1
  +merlin.impl.classpath.1=avalon-meta:avalon-meta-impl;1.2-dev
   merlin.impl.classpath.2=avalon-extension:avalon-extension-impl;1.0
  -merlin.impl.classpath.3=avalon-composition:avalon-composition-impl;1.0b1
  -merlin.impl.classpath.4=avalon-activation:avalon-activation-impl;1.0b1
  +merlin.impl.classpath.3=avalon-composition:avalon-composition-impl;1.1-dev
  +merlin.impl.classpath.4=avalon-activation:avalon-activation-impl;1.1-dev
   merlin.impl.classpath.5=excalibur-i18n:excalibur-i18n;1.1
   merlin.impl.classpath.6=avalon-repository:avalon-repository-impl;1.0b1
   merlin.impl.classpath.7=commons-cli:commons-cli;1.0
  -merlin.impl.classpath.8=merlin:merlin-kernel-impl;3.1b2
  +merlin.impl.classpath.8=merlin:merlin-kernel-impl;3.2-dev
   merlin.impl.classpath.9=logkit:logkit;1.2
   merlin.impl.classpath.10=excalibur-event:excalibur-event;1.0.3
   merlin.impl.classpath.11=excalibur-configuration:excalibur-configuration;1.1
  
  
  
  1.4       +11 -11    avalon/merlin/kernel/impl/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/impl/project.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- project.xml	13 Oct 2003 01:28:26 -0000	1.3
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.4
  @@ -9,7 +9,7 @@
     <name>Merlin Kernel Implementation</name>
     <package>org.apache.avalon.merlin</package>
   
  -  <currentVersion>3.1b2</currentVersion>
  +  <currentVersion>3.2-dev</currentVersion>
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Merlin Kernel Implementation</shortDescription>
   
  @@ -37,7 +37,7 @@
       <dependency>
         <groupId>merlin</groupId>
         <artifactId>merlin-kernel-spi</artifactId>
  -      <version>3.1b2</version>
  +      <version>3.2-dev</version>
       </dependency>
   
       <!-- avalon dependecies -->
  @@ -45,17 +45,17 @@
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-impl</artifactId>
  -      <version>1.0b2</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
  @@ -72,33 +72,33 @@
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-impl</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-impl</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
  
  
  
  1.5       +2 -2      avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/kernel/impl/DefaultKernel.java
  
  Index: DefaultKernel.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/kernel/impl/DefaultKernel.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultKernel.java	13 Oct 2003 01:28:26 -0000	1.4
  +++ DefaultKernel.java	17 Oct 2003 03:26:29 -0000	1.5
  @@ -402,7 +402,7 @@
           if( !m_self.isEnabled() ) throw new IllegalStateException( "kernel" );
           try
           {
  -            return (Block) m_block.resolveAppliance( model.getQualifiedName() );
  +            return (Block) m_block.locate( model.getQualifiedName() );
           }
           catch( Throwable e )
           {
  
  
  
  1.3       +2 -2      avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/kernel/impl/DefaultLoader.java
  
  Index: DefaultLoader.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/kernel/impl/DefaultLoader.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefaultLoader.java	13 Oct 2003 01:28:26 -0000	1.2
  +++ DefaultLoader.java	17 Oct 2003 03:26:29 -0000	1.3
  @@ -145,14 +145,14 @@
   
           try
           {
  -            Appliance appliance = m_kernel.getRootBlock().resolveAppliance( path );
  +            Appliance appliance = m_kernel.getRootBlock().locate( path );
               if( appliance == null )
               {
                   final String problem = 
                     "Unknown appliance: " + path;
                   throw new IllegalArgumentException( problem );
               }
  -            return appliance.resolve( this );
  +            return appliance.resolve();
           }
           catch( Throwable e )
           {
  
  
  
  1.5       +11 -11    avalon/merlin/kernel/plugin/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/plugin/project.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- project.xml	13 Oct 2003 01:28:26 -0000	1.4
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.5
  @@ -30,44 +30,44 @@
       <dependency>
         <groupId>merlin</groupId>
         <artifactId>merlin-kernel-spi</artifactId>
  -      <version>3.1b2</version>
  +      <version>3.2-dev</version>
       </dependency>
       <dependency>
         <groupId>merlin</groupId>
         <artifactId>merlin-kernel-impl</artifactId>
  -      <version>3.1b2</version>
  +      <version>3.2-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-impl</artifactId>
  -      <version>1.0b2</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-impl</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
  @@ -84,17 +84,17 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-impl</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
  
  
  
  1.5       +3 -3      avalon/merlin/kernel/spi/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/spi/project.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- project.xml	13 Oct 2003 01:28:26 -0000	1.4
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.5
  @@ -9,7 +9,7 @@
     <name>Merlin Kernel SPI</name>
     <package>org.apache.avalon.merlin</package>
   
  -  <currentVersion>3.1b2</currentVersion>
  +  <currentVersion>3.2-dev</currentVersion>
     <inceptionYear>2002</inceptionYear>
     <shortDescription>Merlin Kernel SPI</shortDescription>
     <description>
  @@ -27,13 +27,13 @@
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
     </dependencies>
  
  
  
  1.2       +1 -5      avalon/merlin/kernel/spi/src/java/org/apache/avalon/merlin/kernel/Controller.java
  
  Index: Controller.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/spi/src/java/org/apache/avalon/merlin/kernel/Controller.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Controller.java	24 Sep 2003 09:33:21 -0000	1.1
  +++ Controller.java	17 Oct 2003 03:26:29 -0000	1.2
  @@ -50,10 +50,6 @@
   
   package org.apache.avalon.merlin.kernel;
   
  -import java.net.URL;
  -
  -import org.apache.avalon.activation.appliance.Home;
  -
   /**
    * The Controller interface defines a subset of management operations exposed by
    * a kernel implementation.
  
  
  
  1.8       +5 -5      avalon/merlin/kernel/unit/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/unit/project.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- project.xml	13 Oct 2003 22:50:05 -0000	1.7
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.8
  @@ -6,7 +6,7 @@
     <groupId>merlin</groupId>
     <id>merlin-unit</id>
     <name>Merlin Unit</name>
  -  <currentVersion>3.1-dev</currentVersion>
  +  <currentVersion>3.2-dev</currentVersion>
     <package>org.apache.avalon.merlin.unit</package>
   
     <inceptionYear>2003</inceptionYear>
  @@ -45,25 +45,25 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>merlin</groupId>
         <artifactId>merlin-kernel-spi</artifactId>
  -      <version>3.1b2</version>
  +      <version>3.2-dev</version>
       </dependency>
   
       <dependency>
  
  
  
  1.4       +11 -11    avalon/merlin/kernel/unit/src/etc/merlin.properties
  
  Index: merlin.properties
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/unit/src/etc/merlin.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- merlin.properties	14 Oct 2003 10:55:57 -0000	1.3
  +++ merlin.properties	17 Oct 2003 03:26:29 -0000	1.4
  @@ -8,33 +8,33 @@
   # the api classpath
   #
   merlin.api.classpath.0=avalon-framework:avalon-framework-api;4.1.5
  -merlin.api.classpath.1=avalon-meta:avalon-meta-api;1.1
  -merlin.api.classpath.2=avalon-composition:avalon-composition-api;1.0b1
  -merlin.api.classpath.3=avalon-activation:avalon-activation-api;1.0b1
  +merlin.api.classpath.1=avalon-meta:avalon-meta-api;1.2-dev
  +merlin.api.classpath.2=avalon-composition:avalon-composition-api;1.1-dev
  +merlin.api.classpath.3=avalon-activation:avalon-activation-api;1.1-dev
   merlin.api.classpath.4=excalibur-lifecycle:excalibur-lifecycle-api;1.0
   merlin.api.classpath.5=avalon-extension:avalon-extension-spi;1.0
  -merlin.api.classpath.6=merlin:merlin-kernel-spi;3.1b2
  +merlin.api.classpath.6=merlin:merlin-kernel-spi;3.2-dev
   
   #
   # the spi classpath
   #
  -merlin.spi.classpath.0=avalon-meta:avalon-meta-spi;1.1
  -merlin.spi.classpath.1=avalon-composition:avalon-composition-spi;1.0b1
  -merlin.spi.classpath.2=avalon-activation:avalon-activation-spi;1.0b1
  +merlin.spi.classpath.0=avalon-meta:avalon-meta-spi;1.2-dev
  +merlin.spi.classpath.1=avalon-composition:avalon-composition-spi;1.1-dev
  +merlin.spi.classpath.2=avalon-activation:avalon-activation-spi;1.1-dev
   merlin.spi.classpath.3=avalon-repository:avalon-repository-spi;1.0b1
   
   #
   # the bootstrap classpath
   #
   merlin.impl.classpath.0=avalon-framework:avalon-framework-impl;4.1.5
  -merlin.impl.classpath.1=avalon-meta:avalon-meta-impl;1.1
  +merlin.impl.classpath.1=avalon-meta:avalon-meta-impl;1.2-dev
   merlin.impl.classpath.2=avalon-extension:avalon-extension-impl;1.0
  -merlin.impl.classpath.3=avalon-composition:avalon-composition-impl;1.0b1
  -merlin.impl.classpath.4=avalon-activation:avalon-activation-impl;1.0b1
  +merlin.impl.classpath.3=avalon-composition:avalon-composition-impl;1.1-dev
  +merlin.impl.classpath.4=avalon-activation:avalon-activation-impl;1.1-dev
   merlin.impl.classpath.5=excalibur-i18n:excalibur-i18n;1.1
   merlin.impl.classpath.6=avalon-repository:avalon-repository-impl;1.0b1
   merlin.impl.classpath.7=commons-cli:commons-cli;1.0
  -merlin.impl.classpath.8=merlin:merlin-kernel-impl;3.1b2
  +merlin.impl.classpath.8=merlin:merlin-kernel-impl;3.2-dev
   merlin.impl.classpath.9=logkit:logkit;1.2
   merlin.impl.classpath.10=excalibur-event:excalibur-event;1.0.3
   merlin.impl.classpath.11=excalibur-configuration:excalibur-configuration;1.1
  
  
  
  1.8       +2 -2      avalon/merlin/kernel/unit/src/java/org/apache/avalon/merlin/unit/AbstractMerlinTestCase.java
  
  Index: AbstractMerlinTestCase.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/unit/src/java/org/apache/avalon/merlin/unit/AbstractMerlinTestCase.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AbstractMerlinTestCase.java	16 Oct 2003 04:03:14 -0000	1.7
  +++ AbstractMerlinTestCase.java	17 Oct 2003 03:26:29 -0000	1.8
  @@ -325,14 +325,14 @@
   
           try
           {
  -            Appliance appliance = m_block.resolveAppliance( path );
  +            Appliance appliance = m_block.locate( path );
               if( appliance == null )
               {
                   final String problem = 
                     "Unknown appliance: " + path;
                   throw new IllegalArgumentException( problem );
               }
  -            return appliance.resolve( this );
  +            return appliance.resolve();
           }
           catch( Throwable e )
           {
  
  
  
  1.5       +12 -12    avalon/merlin/platform.xml
  
  Index: platform.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- platform.xml	13 Oct 2003 22:39:27 -0000	1.4
  +++ platform.xml	17 Oct 2003 03:26:29 -0000	1.5
  @@ -28,12 +28,12 @@
       <dependency>
         <groupId>merlin</groupId>
         <artifactId>merlin-kernel-spi</artifactId>
  -      <version>3.1b2</version>
  +      <version>3.2-dev</version>
       </dependency>
       <dependency>
         <groupId>merlin</groupId>
         <artifactId>merlin-kernel-impl</artifactId>
  -      <version>3.1b2</version>
  +      <version>3.2-dev</version>
       </dependency>
   
       <!-- avalon dependecies -->
  @@ -63,22 +63,22 @@
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-spi</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-impl</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-tools</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
  @@ -89,33 +89,33 @@
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-impl</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-spi</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-impl</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
   
       <dependency>
  
  
  
  1.2       +1 -1      avalon/merlin/platform/tutorials/context/strategy/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/tutorials/context/strategy/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	24 Sep 2003 09:33:56 -0000	1.1
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.2
  @@ -26,7 +26,7 @@
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
     </dependencies>
     
  
  
  
  1.4       +1 -1      avalon/merlin/platform/tutorials/hello/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/tutorials/hello/project.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- project.xml	14 Oct 2003 10:52:05 -0000	1.3
  +++ project.xml	17 Oct 2003 03:26:29 -0000	1.4
  @@ -27,7 +27,7 @@
       <dependency>
         <groupId>merlin</groupId>
         <artifactId>merlin-unit</artifactId>
  -      <version>3.1-dev</version>
  +      <version>3.2-dev</version>
       </dependency>
   
     </dependencies>
  
  
  
  1.2       +3 -3      avalon/merlin/platform/tutorials/lifecycle/activation/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/tutorials/lifecycle/activation/project.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- project.xml	24 Sep 2003 09:34:02 -0000	1.1
  +++ project.xml	17 Oct 2003 03:26:30 -0000	1.2
  @@ -26,17 +26,17 @@
       <dependency>
         <groupId>avalon-composition</groupId>
         <artifactId>avalon-composition-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-activation</groupId>
         <artifactId>avalon-activation-api</artifactId>
  -      <version>1.0b1</version>
  +      <version>1.1-dev</version>
       </dependency>
       <dependency>
         <groupId>avalon-meta</groupId>
         <artifactId>avalon-meta-api</artifactId>
  -      <version>1.1</version>
  +      <version>1.2-dev</version>
       </dependency>
     </dependencies>
     
  
  
  
  1.2       +1 -1      avalon/merlin/platform/xdocs/meta/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/xdocs/meta/index.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- index.xml	24 Sep 2003 09:34:39 -0000	1.1
  +++ index.xml	17 Oct 2003 03:26:30 -0000	1.2
  @@ -60,7 +60,7 @@
       <section name="Meta Model">
   
       <subsection name="Overview">
  -<p>The Merlin container provides a comprehense mata model supporting component deployment.  The meta model provides a set of directives that that provide the information necesasary for component deployment.  Underlying the Merlin Meta-Model is the <a href="http://avalon.apache.org/sandbox/avalon-meta/index.html">Avalon Meta-Info Model</a> which defines a component type. 
  +<p>The Merlin container provides a comprehense mata model supporting component deployment.  The meta model provides a set of directives that that provide the information necesasary for component deployment.  Underlying the Merlin Meta-Model is the <a href="http://avalon.apache.org/meta/index.html">Avalon Meta-Info Model</a> which defines a component type. 
   </p>
       </subsection>
   
  
  
  
  1.2       +1 -1      avalon/merlin/platform/xdocs/tools/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/xdocs/tools/index.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- index.xml	24 Sep 2003 09:35:48 -0000	1.1
  +++ index.xml	17 Oct 2003 03:26:30 -0000	1.2
  @@ -82,7 +82,7 @@
             <tr><th>Topic</th><th>Summary</th></tr>
             <tr>
               <td>
  -<a href="http://avalon.apache.org/sandbox/avalon-meta/tools/index.html">Javadoc Tags</a></td>
  +<a href="http://avalon.apache.org/meta/tools/index.html">Javadoc Tags</a></td>
               <td>
                 Reference specification of the Javadoc Tags used to 
                 support automation of component and service metadata.
  
  
  
  1.2       +1 -1      avalon/merlin/platform/xdocs/tools/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/xdocs/tools/navigation.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- navigation.xml	24 Sep 2003 09:35:48 -0000	1.1
  +++ navigation.xml	17 Oct 2003 03:26:30 -0000	1.2
  @@ -70,7 +70,7 @@
         <item name="Tools" href="/tools/index.html">
           <item name="Merlin Plugin for Maven" href="/tools/maven/index.html"/>
           <item name="Meta Plugin for Maven" 
  -          href="http://avalon.apache.org/sandbox/avalon-meta/tools/index.html"/>
  +          href="http://avalon.apache.org/meta/tools/index.html"/>
         </item>
       </menu>
   
  
  
  
  1.2       +1 -1      avalon/merlin/platform/xdocs/tools/maven/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/xdocs/tools/maven/navigation.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- navigation.xml	24 Sep 2003 09:35:50 -0000	1.1
  +++ navigation.xml	17 Oct 2003 03:26:30 -0000	1.2
  @@ -73,7 +73,7 @@
             <item name="Properties" href="/tools/maven/properties.html"/>
           </item>
           <item name="Meta Plugin for Maven" 
  -          href="http://avalon.apache.org/sandbox/avalon-meta/tools/index.html"/>
  +          href="http://avalon.apache.org/meta/tools/index.html"/>
         </item>
       </menu>
   
  
  
  

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