brett       2004/04/24 16:11:23

  Modified:    src/java/org/apache/maven Tag: MAVEN-1_0-BRANCH
                        MavenUtils.java
               src/java/org/apache/maven/plugin Tag: MAVEN-1_0-BRANCH
                        PluginManager.java
               src/java/org/apache/maven/jelly Tag: MAVEN-1_0-BRANCH
                        JellyUtils.java
               src/test/touchstone-build Tag: MAVEN-1_0-BRANCH maven.xml
               src/test/touchstone-build/src/reactor-build/inheritence Tag:
                        MAVEN-1_0-BRANCH maven.xml
               src/test/touchstone-build/src/reactor-build/inheritence/subproject
                        Tag: MAVEN-1_0-BRANCH maven.xml
               
src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2
                        Tag: MAVEN-1_0-BRANCH maven.xml
  Log:
  improve inheritence tests, fix parent property inheritence.
  setVariables( context.getVariables() ) will obviously not pass in properties from a 
parent
  context of context, so these were replaced with an iterating function to fold them 
in to the
  new context (which has an alternative parent context tree).
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.107.4.20 +2 -2      maven/src/java/org/apache/maven/MavenUtils.java
  
  Index: MavenUtils.java
  ===================================================================
  RCS file: /home/cvs/maven/src/java/org/apache/maven/MavenUtils.java,v
  retrieving revision 1.107.4.19
  retrieving revision 1.107.4.20
  diff -u -r1.107.4.19 -r1.107.4.20
  --- MavenUtils.java   23 Apr 2004 03:19:28 -0000      1.107.4.19
  +++ MavenUtils.java   24 Apr 2004 23:11:23 -0000      1.107.4.20
  @@ -337,7 +337,7 @@
           // can change this but I think we would like to avoid general Jelly
           // idiom in the POM anyway.
           JellyContext context = new JellyContext();
  -        context.setVariables( originalContext.getVariables() );
  +        JellyUtils.populateVariables( context, originalContext );
   
           // We don't want the context or the parent being written out into the XML 
which
           // is the interpolated POM.
  
  
  
  No                   revision
  No                   revision
  1.70.4.41 +2 -3      maven/src/java/org/apache/maven/plugin/PluginManager.java
  
  Index: PluginManager.java
  ===================================================================
  RCS file: /home/cvs/maven/src/java/org/apache/maven/plugin/PluginManager.java,v
  retrieving revision 1.70.4.40
  retrieving revision 1.70.4.41
  diff -u -r1.70.4.40 -r1.70.4.41
  --- PluginManager.java        23 Apr 2004 03:19:28 -0000      1.70.4.40
  +++ PluginManager.java        24 Apr 2004 23:11:23 -0000      1.70.4.41
  @@ -471,8 +471,7 @@
       {
           MavenJellyContext baseContext = new MavenJellyContext( 
mavenSession.getRootContext() );
           baseContext.setInherit( true );
  -        baseContext.setVariables( project.getContext().getVariables() );
  -        baseContext.setVariable( "context", baseContext );
  +        JellyUtils.populateVariables( baseContext, project.getContext() );
           project.pushContext( baseContext );
           baseContext.setProject( project );
   
  
  
  
  No                   revision
  No                   revision
  1.16.4.8  +17 -1     maven/src/java/org/apache/maven/jelly/JellyUtils.java
  
  Index: JellyUtils.java
  ===================================================================
  RCS file: /home/cvs/maven/src/java/org/apache/maven/jelly/JellyUtils.java,v
  retrieving revision 1.16.4.7
  retrieving revision 1.16.4.8
  diff -u -r1.16.4.7 -r1.16.4.8
  --- JellyUtils.java   2 Apr 2004 23:43:09 -0000       1.16.4.7
  +++ JellyUtils.java   24 Apr 2004 23:11:23 -0000      1.16.4.8
  @@ -236,4 +236,20 @@
           System.out.println( "======== comparison  done ========" );
       }
   
  +    /**
  +     * Populate a context with variables, including parent variables if inheritence 
is enabled.
  +     *
  +     * @param destContext the destination context
  +     * @param srcContext the source context
  +     */
  +    public static void populateVariables( JellyContext destContext, JellyContext 
sourceContext )
  +    {
  +        if ( sourceContext != null )
  +        {
  +            populateVariables( destContext, sourceContext.isInherit() ? 
sourceContext.getParent() : null );
  +            destContext.getVariables().putAll( sourceContext.getVariables() );
  +        }
  +        destContext.setVariable( "context", destContext );
  +    }
   }
  +
  
  
  
  No                   revision
  No                   revision
  1.43.4.13 +16 -0     maven/src/test/touchstone-build/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/maven/src/test/touchstone-build/maven.xml,v
  retrieving revision 1.43.4.12
  retrieving revision 1.43.4.13
  diff -u -r1.43.4.12 -r1.43.4.13
  --- maven.xml 4 Apr 2004 02:50:45 -0000       1.43.4.12
  +++ maven.xml 24 Apr 2004 23:11:23 -0000      1.43.4.13
  @@ -212,6 +212,7 @@
       <attainGoal name="test-reactor-run-twice" />
       <attainGoal name="test-context-switch" />
       <attainGoal name="test-defaults" />
  +    <attainGoal name="test-inheritence" />
   
   <!-- TODO - this is still broken (as in RC1)
       <attainGoal name="test-reactor-maven-username" />
  @@ -750,6 +751,21 @@
       <maven:maven
         descriptor="${basedir}/src/reactor-build/run_twice/project.xml"
         goals="run_twice"
  +      ignoreFailures="false"
  +    />
  +  </goal>
  +
  +  <goal name="test-inheritence">
  +    <ant:echo>Testing 1 level</ant:echo>
  +    <maven:maven
  +      descriptor="${basedir}/src/reactor-build/inheritence/subproject/project.xml"
  +      goals="runTest"
  +      ignoreFailures="false"
  +    />
  +    <ant:echo>Testing 2 levels</ant:echo>
  +    <maven:maven
  +      
descriptor="${basedir}/src/reactor-build/inheritence/subproject/subproject2/project.xml"
  +      goals="runTest"
         ignoreFailures="false"
       />
     </goal>
  
  
  
  No                   revision
  No                   revision
  1.1.4.3   +15 -8     
maven/src/test/touchstone-build/src/reactor-build/inheritence/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: 
/home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/maven.xml,v
  retrieving revision 1.1.4.2
  retrieving revision 1.1.4.3
  diff -u -r1.1.4.2 -r1.1.4.3
  --- maven.xml 4 Mar 2004 17:47:01 -0000       1.1.4.2
  +++ maven.xml 24 Apr 2004 23:11:23 -0000      1.1.4.3
  @@ -16,11 +16,18 @@
    * limitations under the License.
    */
    -->
  -

  -<project xmlns:j="jelly:core" xmlns:ant="jelly:ant">

  -

  -    <goal name="parent-goal">

  -      <ant:property name="parentVar" value="parentVar" />

  -    </goal>

  -

  -</project>

  +
  +<project xmlns:j="jelly:core" xmlns:ant="jelly:ant">
  +
  +    <goal name="parent-goal">
  +      <ant:property name="parentVar" value="parentVar" />
  +    </goal>
  +
  +    <goal name="parent-goal-override-1">
  +      <ant:property name="parentVarOverride1" value="parentVar" />
  +    </goal>
  +
  +    <goal name="parent-goal-override-2">
  +      <ant:property name="parentVarOverride2" value="parentVar" />
  +    </goal>
  +</project>
  
  
  
  No                   revision
  No                   revision
  1.1.4.3   +40 -28    
maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: 
/home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/maven.xml,v
  retrieving revision 1.1.4.2
  retrieving revision 1.1.4.3
  diff -u -r1.1.4.2 -r1.1.4.3
  --- maven.xml 4 Mar 2004 17:47:01 -0000       1.1.4.2
  +++ maven.xml 24 Apr 2004 23:11:23 -0000      1.1.4.3
  @@ -16,31 +16,43 @@
    * limitations under the License.
    */
    -->
  -

  -<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" default="runTest">

  -

  -    <goal name="runTest">

  -      <attainGoal name="parent-goal" />

  -      <j:if test="${parentVar != 'parentVar'}">

  -        <ant:fail>Sorry, but parentVar = '${parentVar}', not inherited</ant:fail>

  -      </j:if>

  -

  -      <j:set var="value" value="${parent.project.property}" />

  -      <j:if test="${value != 'okiedokie'}">

  -        <ant:fail>Sorry, but parent.project.property = '${value}', not 
inherited</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${parent.build.property}" />

  -      <j:if test="${value != 'okiedokie'}">

  -        <ant:fail>Sorry, but parent.build.property = '${value}', not 
inherited</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${parent.project.property.override}" />

  -      <j:if test="${value != 'overridden'}">

  -        <ant:fail>Sorry, but parent.project.property.override = '${value}', 
inherited incorrectly</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${parent.build.property.override}" />

  -      <j:if test="${value != 'overridden'}">

  -        <ant:fail>Sorry, but parent.build.property.override = '${value}', inherited 
incorrectly</ant:fail>

  -      </j:if>

  -    </goal>

  -

  -</project>

  +
  +<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" default="runTest">
  +
  +    <goal name="runTest">
  +      <ant:echo>inherited goal test</ant:echo>
  +      <attainGoal name="parent-goal" />
  +      <j:if test="${parentVar != 'parentVar'}">
  +        <ant:fail>Sorry, but parentVar = '${parentVar}', not inherited</ant:fail>
  +      </j:if>
  +      <ant:echo>test goal overridden</ant:echo>
  +      <attainGoal name="parent-goal-override-1" />
  +      <j:if test="${parentVarOverride1 == 'parentVar'}">
  +        <ant:fail>Sorry, but parentVarOverride1 = '${parentVar}', inherited in 
subproject by mistake</ant:fail>
  +      </j:if>
  +      <ant:echo>inherited project property test</ant:echo>
  +      <j:set var="value" value="${parent.project.property}" />
  +      <j:if test="${value != 'okiedokie'}">
  +        <ant:fail>Sorry, but parent.project.property = '${value}', not 
inherited</ant:fail>
  +      </j:if>
  +      <ant:echo>inherited build property test</ant:echo>
  +      <j:set var="value" value="${parent.build.property}" />
  +      <j:if test="${value != 'okiedokie'}">
  +        <ant:fail>Sorry, but parent.build.property = '${value}', not 
inherited</ant:fail>
  +      </j:if>
  +      <ant:echo>inherited project property override test</ant:echo>
  +      <j:set var="value" value="${parent.project.property.override}" />
  +      <j:if test="${value != 'overridden'}">
  +        <ant:fail>Sorry, but parent.project.property.override = '${value}', 
inherited incorrectly</ant:fail>
  +      </j:if>
  +      <ant:echo>inherited build property override test</ant:echo>
  +      <j:set var="value" value="${parent.build.property.override}" />
  +      <j:if test="${value != 'overridden'}">
  +        <ant:fail>Sorry, but parent.build.property.override = '${value}', inherited 
incorrectly</ant:fail>
  +      </j:if>
  +    </goal>
  +
  +    <goal name="parent-goal-override-1">
  +      <ant:echo>Inside overridden goal</ant:echo>
  +    </goal>
  +</project>
  
  
  
  No                   revision
  No                   revision
  1.1.4.3   +52 -38    
maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: 
/home/cvs/maven/src/test/touchstone-build/src/reactor-build/inheritence/subproject/subproject2/maven.xml,v
  retrieving revision 1.1.4.2
  retrieving revision 1.1.4.3
  diff -u -r1.1.4.2 -r1.1.4.3
  --- maven.xml 4 Mar 2004 17:47:01 -0000       1.1.4.2
  +++ maven.xml 24 Apr 2004 23:11:23 -0000      1.1.4.3
  @@ -16,41 +16,55 @@
    * limitations under the License.
    */
    -->
  -

  -<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" default="runTest">

  -

  -    <goal name="runTest">

  -<!--

  -      <attainGoal name="parent-goal" />

  --->

  -      <j:if test="${parentVar != 'parentVar'}">

  -        <ant:fail>Sorry, but parentVar = '${parentVar}', not inherited in 2nd 
subproject</ant:fail>

  -      </j:if>

  -

  -      <j:set var="value" value="${subproject.project.property}" />

  -      <j:if test="${value != 'okiedokie'}">

  -        <ant:fail>Sorry, but subproject.project.property = '${value}', not 
inherited in 2nd subproject</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${subproject.build.property}" />

  -      <j:if test="${value != 'okiedokie'}">

  -        <ant:fail>Sorry, but subproject.build.property = '${value}', not inherited 
in 2nd subproject</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${parent.project.property}" />

  -      <j:if test="${value != 'okiedokie'}">

  -        <ant:fail>Sorry, but parent.project.property = '${value}', not inherited in 
2nd subproject</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${parent.build.property}" />

  -      <j:if test="${value != 'okiedokie'}">

  -        <ant:fail>Sorry, but parent.build.property = '${value}', not inherited in 
2nd subproject</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${parent.project.property.override}" />

  -      <j:if test="${value != 'overridden'}">

  -        <ant:fail>Sorry, but parent.project.property.override = '${value}', 
inherited incorrectly in 2nd subproject</ant:fail>

  -      </j:if>

  -      <j:set var="value" value="${parent.build.property.override}" />

  -      <j:if test="${value != 'overridden'}">

  -        <ant:fail>Sorry, but parent.build.property.override = '${value}', inherited 
incorrectly in 2nd subproject</ant:fail>

  -      </j:if>

  -    </goal>

  -

  -</project>

  +
  +<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" default="runTest">
  +
  +    <goal name="runTest">
  +      <ant:echo>test goal presence two deep</ant:echo>
  +      <attainGoal name="parent-goal" />
  +      <j:if test="${parentVar != 'parentVar'}">
  +        <ant:fail>Sorry, but parentVar = '${parentVar}', not inherited in 2nd 
subproject</ant:fail>
  +      </j:if>
  +
  +      <ant:echo>test goal overridden two deep</ant:echo>
  +      <attainGoal name="parent-goal-override-2" />
  +      <j:if test="${parentVarOverride2 == 'parentVar'}">
  +        <ant:fail>Sorry, but parentVarOverride2 = '${parentVar}', inherited in 2nd 
subproject by mistake</ant:fail>
  +      </j:if>
  +
  +      <ant:echo>test project property one deep</ant:echo>
  +      <j:set var="value" value="${subproject.project.property}" />
  +      <j:if test="${value != 'okiedokie'}">
  +        <ant:fail>Sorry, but subproject.project.property = '${value}', not 
inherited in 2nd subproject</ant:fail>
  +      </j:if>
  +      <ant:echo>test build property one deep</ant:echo>
  +      <j:set var="value" value="${subproject.build.property}" />
  +      <j:if test="${value != 'okiedokie'}">
  +        <ant:fail>Sorry, but subproject.build.property = '${value}', not inherited 
in 2nd subproject</ant:fail>
  +      </j:if>
  +      <ant:echo>test project property two deep</ant:echo>
  +      <j:set var="value" value="${parent.project.property}" />
  +      <j:if test="${value != 'okiedokie'}">
  +        <ant:fail>Sorry, but parent.project.property = '${value}', not inherited in 
2nd subproject</ant:fail>
  +      </j:if>
  +      <ant:echo>test build property two deep</ant:echo>
  +      <j:set var="value" value="${parent.build.property}" />
  +      <j:if test="${value != 'okiedokie'}">
  +        <ant:fail>Sorry, but parent.build.property = '${value}', not inherited in 
2nd subproject</ant:fail>
  +      </j:if>
  +      <ant:echo>test project property override two deep</ant:echo>
  +      <j:set var="value" value="${parent.project.property.override}" />
  +      <j:if test="${value != 'overridden2'}">
  +        <ant:fail>Sorry, but parent.project.property.override = '${value}', 
inherited incorrectly in 2nd subproject</ant:fail>
  +      </j:if>
  +      <ant:echo>test build property override two deep</ant:echo>
  +      <j:set var="value" value="${parent.build.property.override}" />
  +      <j:if test="${value != 'overridden2'}">
  +        <ant:fail>Sorry, but parent.build.property.override = '${value}', inherited 
incorrectly in 2nd subproject</ant:fail>
  +      </j:if>
  +    </goal>
  +
  +    <goal name="parent-goal-override-2">
  +      <ant:echo>Inside overridden goal</ant:echo>
  +    </goal>
  +</project>
  
  
  

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

Reply via email to