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 2004/02/20 23:49:57 UTC

cvs commit: avalon/merlin/platform/tutorials/lifecycle/activation/src/java/tutorial DemonstratableProvider.java

mcconnell    2004/02/20 14:49:57

  Modified:    merlin/kernel/impl maven.xml project.properties
               merlin/kernel/impl/src/java/org/apache/avalon/merlin/impl
                        DefaultCriteria.java
               merlin/kernel/unit merlin.properties
               merlin   maven.xml
               merlin/platform/tutorials/context/strategy project.xml
               merlin/platform/tutorials/context/strategy/src/java/tutorial
                        DemoContextualizationHandler.java
               merlin/platform/tutorials/hello merlin.properties
               merlin/platform/tutorials/lifecycle/activation/src/java/tutorial
                        DemonstratableProvider.java
  Log:
  Update criteria management to leverage the improved defaults code, improve the maven.xml scripts concerning default static properties handling, and update tutorials to reflect changes in the composition and activation apis.
  
  Revision  Changes    Path
  1.8       +19 -0     avalon/merlin/kernel/impl/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/impl/maven.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- maven.xml	14 Feb 2004 21:33:56 -0000	1.7
  +++ maven.xml	20 Feb 2004 22:49:56 -0000	1.8
  @@ -16,6 +16,24 @@
     -->
   
     <postGoal name="java:compile">
  +
  +    <ant:copy toFile="${maven.build.dir}/classes/merlin.properties">
  +      <fileset dir="${basedir}/conf">
  +        <include name="merlin.template"/>
  +      </fileset>
  +      <filterset>
  +        <filter token="MERLIN_IMPLEMENTATION" 
  +           value="artifact:${pom.groupId}/${pom.artifactId}#${pom.currentVersion}"/>
  +        <filter token="LOGGING_IMPLEMENTATION" 
  +           value="${merlin.logging.implementation}"/>
  +        <filter token="STANDARD_RUNTIME" 
  +           value="${merlin.runtime.standard.implementation}"/>
  +        <filter token="SECURE_RUNTIME" 
  +           value="${merlin.runtime.csi.implementation}"/>
  +      </filterset>
  +    </ant:copy>
  +
  +    <!--
       <ant:echo file="${maven.build.dir}/classes/merlin.properties">
   #
   # merlin system implementation
  @@ -37,6 +55,7 @@
   # EOF
   #
   </ant:echo>
  +    -->
       <ant:mkdir dir="${maven.repo.local}/${pom.groupId}/properties"/>
       <ant:copy toDir="${maven.repo.local}/${pom.groupId}/properties" 
          file="${maven.build.dir}/classes/merlin.properties" verbose="yes"/>
  
  
  
  1.6       +3 -3      avalon/merlin/kernel/impl/project.properties
  
  Index: project.properties
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/impl/project.properties,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- project.properties	14 Feb 2004 21:33:56 -0000	1.5
  +++ project.properties	20 Feb 2004 22:49:56 -0000	1.6
  @@ -8,6 +8,6 @@
   # default logging strategy
   #
   
  -merlin.logging.implementation = artifact:avalon-logging/avalon-logkit-impl?version=1.0-SNAPSHOT
  -merlin.runtime.standard.implementation = artifact:avalon-activation/avalon-activation-impl?version=2.0-SNAPSHOT
  -merlin.runtime.csi.implementation = artifact:avalon-activation/avalon-activation-csi?version=2.0-SNAPSHOT
  +merlin.logging.implementation = artifact:avalon-logging/avalon-logkit-impl#1.0-SNAPSHOT
  +merlin.runtime.standard.implementation = artifact:avalon-activation/avalon-activation-impl#2.0-SNAPSHOT
  +merlin.runtime.csi.implementation = artifact:avalon-activation/avalon-activation-csi#2.0-SNAPSHOT
  
  
  
  1.22      +43 -133   avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/impl/DefaultCriteria.java
  
  Index: DefaultCriteria.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/impl/src/java/org/apache/avalon/merlin/impl/DefaultCriteria.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- DefaultCriteria.java	14 Feb 2004 21:33:56 -0000	1.21
  +++ DefaultCriteria.java	20 Feb 2004 22:49:56 -0000	1.22
  @@ -39,6 +39,7 @@
   
   import org.apache.avalon.util.defaults.Defaults;
   import org.apache.avalon.util.defaults.DefaultsFinder;
  +import org.apache.avalon.util.defaults.DefaultsBuilder;
   import org.apache.avalon.util.defaults.SimpleDefaultsFinder;
   import org.apache.avalon.util.defaults.SystemDefaultsFinder;
   import org.apache.avalon.util.env.Env;
  @@ -227,145 +228,54 @@
   
           m_context = context;
   
  -        //
  -        // static defaults are the most primative
  -        //
  -
  -        Properties avalonStatic = getStaticProperties( AVALON_PROPERTIES );
  -        Properties merlinStatic = getStaticProperties( MERLIN_PROPERTIES );
  -
  -        //
  -        // then comes environment variables
  -        //
  -
  -        Properties env = getEnvinronment();
  -
  -        //
  -        // then the system properites
  -        //
  -
  -        Properties system = System.getProperties();
  -
  -        //
  -        // get the application properties
  -        //
  -
  -        Properties avalonSystem = 
  -          getLocalProperties( getAvalonHomeDirectory(), AVALON_PROPERTIES );
  -        Properties merlinSystem = 
  -          getLocalProperties( getMerlinHomeDirectory(), MERLIN_PROPERTIES );
  -
  -        //
  -        // ${user.home} overrides environment
  -        //
  -
  -        Properties avalonHome = 
  -          getLocalProperties( USER_HOME, AVALON_PROPERTIES );
  -        Properties merlinHome = 
  -          getLocalProperties( USER_HOME, MERLIN_PROPERTIES );
  -
  -        //
  -        // and ${merlin.dir} overrides ${user.home}
  -        //
  -
  -        File work = getWorkingDirectory();
  -        Properties avalonWork = 
  -          getLocalProperties( work, AVALON_PROPERTIES );
  -        Properties merlinWork = 
  -          getLocalProperties( work, MERLIN_PROPERTIES );
  -
  -        //
  -        // Create the finder (discovery policy), construct the defaults, and
  -        // macro expand the values.
  -        //
  -
  -        final Properties[] parameters = 
  -          new Properties[] { 
  -            avalonStatic, 
  -            merlinStatic, 
  -            avalonSystem, 
  -            merlinSystem, 
  -            env, 
  -            avalonHome, 
  -            avalonWork, 
  -            merlinHome, 
  -            merlinWork };
  -
  -        final DefaultsFinder[] finders = 
  -          new DefaultsFinder[]{
  -            new SimpleDefaultsFinder( 
  -              parameters, 
  -              false ), 
  -            new SystemDefaultsFinder() 
  -          };
  -        
  -        Defaults defaults = 
  -          new Defaults( 
  -             Parameter.getKeys( super.getParameters() ), new String[0], finders );
  -
  -        //printProperties( defaults, "defaults" );
  -
  -        //
  -        // add ${merlin.dir} to assist in synbol expansion then expand
  -        // symbols (done twice to handle nested defintions)
  -        //
  -
  -        defaults.setProperty( "merlin.dir", work.toString() );
  -        Defaults.macroExpand( defaults, new Properties[]{ system, avalonStatic, env } );
  -        Defaults.macroExpand( defaults, new Properties[]{ system, avalonStatic, env } );
  -
  -        //
  -        // following aquistion of the default parameters we need to assign
  -        // them as criteria values before we expose the criteria instance to the
  -        // client
  -        //
  -
  -        put( "merlin.dir", work.toString() );
  -        ArrayList errors = new ArrayList();
  -        Parameter[] params = super.getParameters();
  -        for( int i=0; i<params.length; i++ )
  +        try
           {
  -            Parameter param = params[i];
  -            final String key = param.getKey();
  -            if( !key.equals( "merlin.dir" ) && !key.equals( "merlin.implementation" ))
  +            final String key = context.getApplicationKey();
  +            final File work = context.getInitialWorkingDirectory();
  +            DefaultsBuilder builder = new DefaultsBuilder( key, work );
  +            Properties defaults = 
  +              Defaults.getStaticProperties( DefaultCriteria.class, "/merlin.properties" );
  +
  +            //
  +            // set the ${merlin.dir} value 
  +            //
  +
  +            defaults.setProperty( "merlin.dir", getWorkingDirectory().toString() );
  +
  +            //
  +            // get the consolidated properties
  +            //
  +
  +            final String[] keys = super.getKeys();
  +            Properties properties = 
  +              builder.getConsolidatedProperties( defaults, keys );
  +
  +            //
  +            // expand the properties
  +            //
  +
  +            Defaults.macroExpand( properties, new Properties[0] );
  +            Defaults.macroExpand( properties, new Properties[0] );
  +
  +            //
  +            // apply any non-null properties to the criteria
  +            //
  +
  +            for( int i=0; i<keys.length; i++ )
               {
  -                try
  -                {
  -                    put( key, defaults.getProperty( key ) );
  -                }
  -                catch( Exception re )
  +                final String propertyKey = keys[i];
  +                final String value = properties.getProperty( propertyKey );
  +                if( null != value )
                   {
  -                    errors.add( re );
  +                    put( propertyKey, value );
                   }
               }
           }
  -
  -        //
  -        // check for any errors created in the process and dump a 
  -        // notice to System.err
  -        //
  -
  -        if( errors.size() > 0 )
  +        catch( Throwable e )
           {
  -            Throwable[] throwables = 
  -              (Throwable[]) errors.toArray( new Throwable[0] );
  -            
  -            if( errors.size() > 1 )
  -            {
  -                final String report = 
  -                  "Multiple errors (ignored) while resolving defaults.";
  -                String message = 
  -                  ExceptionHelper.packException( report, throwables, false );
  -                System.err.println( message );
  -            }
  -            else
  -            {
  -                final String report = 
  -                  "One error (ignored) occured while resolving defaults.";
  -                String message = 
  -                  ExceptionHelper.packException( report, throwables[0], false );
  -                System.err.println( message );
  -            }
  +            final String error = 
  +              "Unexpected error while constructing criteria defaults.";
  +            throw new KernelRuntimeException( error, e );
           }
       }
   
  
  
  
  1.5       +0 -1      avalon/merlin/kernel/unit/merlin.properties
  
  Index: merlin.properties
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/kernel/unit/merlin.properties,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- merlin.properties	20 Jan 2004 01:28:48 -0000	1.4
  +++ merlin.properties	20 Feb 2004 22:49:56 -0000	1.5
  @@ -3,4 +3,3 @@
   merlin.debug = false
   merlin.deployment = conf/hello.block
   merlin.override = conf/override.xml
  -#merlin.implementation = merlin:merlin-impl;SNAPSHOT
  
  
  
  1.54      +1 -1      avalon/merlin/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/maven.xml,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- maven.xml	19 Feb 2004 08:58:05 -0000	1.53
  +++ maven.xml	20 Feb 2004 22:49:56 -0000	1.54
  @@ -580,7 +580,7 @@
         basedir="${basedir}"
         includes="platform/tutorials/**/project.xml"
         excludes="platform/tutorials/project.xml,**/target/**"
  -      goals=""
  +      goals="jar:install"
         banner="Validate:"
         ignoreFailures="false" />
     </goal>
  
  
  
  1.7       +2 -2      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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- project.xml	13 Jan 2004 11:41:28 -0000	1.6
  +++ project.xml	20 Feb 2004 22:49:57 -0000	1.7
  @@ -24,8 +24,8 @@
         <version>4.1.5</version>
       </dependency>
       <dependency>
  -      <groupId>avalon-activation</groupId>
  -      <artifactId>avalon-activation-api</artifactId>
  +      <groupId>avalon-composition</groupId>
  +      <artifactId>avalon-composition-api</artifactId>
         <version>2.0-SNAPSHOT</version>
       </dependency>
     </dependencies>
  
  
  
  1.3       +1 -1      avalon/merlin/platform/tutorials/context/strategy/src/java/tutorial/DemoContextualizationHandler.java
  
  Index: DemoContextualizationHandler.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/tutorials/context/strategy/src/java/tutorial/DemoContextualizationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DemoContextualizationHandler.java	24 Jan 2004 23:25:34 -0000	1.2
  +++ DemoContextualizationHandler.java	20 Feb 2004 22:49:57 -0000	1.3
  @@ -20,7 +20,7 @@
   import java.lang.reflect.Constructor;
   import java.util.Map;
   
  -import org.apache.avalon.activation.lifecycle.ContextualizationHandler;
  +import org.apache.avalon.composition.model.ContextualizationHandler;
   import org.apache.avalon.framework.context.ContextException;
   import org.apache.avalon.framework.context.Context;
   
  
  
  
  1.8       +1 -1      avalon/merlin/platform/tutorials/hello/merlin.properties
  
  Index: merlin.properties
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/tutorials/hello/merlin.properties,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- merlin.properties	10 Feb 2004 19:54:29 -0000	1.7
  +++ merlin.properties	20 Feb 2004 22:49:57 -0000	1.8
  @@ -1,3 +1,3 @@
   
  -merlin.info = false
  +merlin.info = true
   merlin.debug = false
  
  
  
  1.4       +3 -1      avalon/merlin/platform/tutorials/lifecycle/activation/src/java/tutorial/DemonstratableProvider.java
  
  Index: DemonstratableProvider.java
  ===================================================================
  RCS file: /home/cvs/avalon/merlin/platform/tutorials/lifecycle/activation/src/java/tutorial/DemonstratableProvider.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DemonstratableProvider.java	24 Jan 2004 23:25:34 -0000	1.3
  +++ DemonstratableProvider.java	20 Feb 2004 22:49:57 -0000	1.4
  @@ -17,12 +17,14 @@
   
   package tutorial;
   
  -import org.apache.avalon.activation.lifecycle.LifecycleCreateExtension;
  +import org.apache.avalon.composition.model.LifecycleCreateExtension;
   import org.apache.avalon.composition.model.ComponentModel;
  +
   import org.apache.avalon.framework.activity.Disposable;
   import org.apache.avalon.framework.activity.Initializable;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
  +
   import org.apache.avalon.meta.info.StageDescriptor;
   
   /**
  
  
  

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