You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Jason van Zyl <jv...@sonatype.com> on 2008/12/19 16:43:30 UTC

Re: svn commit: r727983 - in /maven/core-integration-testing/trunk/core-it-suite/src/test: java/org/apache/maven/it/ resources/mng-3916/ resources/mng-3916/sub/

This is good material for writing a spec test. Obviously only one  
version of a plugin should be selected but the executions from both  
should be combined if the executions have ids.

On 19-Dec-08, at 4:22 AM, bentmann@apache.org wrote:

> Author: bentmann
> Date: Fri Dec 19 01:22:14 2008
> New Revision: 727983
>
> URL: http://svn.apache.org/viewvc?rev=727983&view=rev
> Log:
> [MNG-3916] [regression] Inherited plugin executions are lost if  
> child and parent define different versions of the plugin
>
> o Added IT
>
> Added:
>    maven/core-integration-testing/trunk/core-it-suite/src/test/java/ 
> org/apache/maven/it/ 
> MavenITmng3916PluginExecutionInheritanceTest.java   (with props)
>    maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/
>    maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/pom.xml   (with props)
>    maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/sub/
>    maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/sub/pom.xml   (with props)
> Modified:
>    maven/core-integration-testing/trunk/core-it-suite/src/test/java/ 
> org/apache/maven/it/IntegrationTestSuite.java
>
> Modified: maven/core-integration-testing/trunk/core-it-suite/src/ 
> test/java/org/apache/maven/it/IntegrationTestSuite.java
> URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java?rev=727983&r1=727982&r2=727983&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- maven/core-integration-testing/trunk/core-it-suite/src/test/java/ 
> org/apache/maven/it/IntegrationTestSuite.java (original)
> +++ maven/core-integration-testing/trunk/core-it-suite/src/test/java/ 
> org/apache/maven/it/IntegrationTestSuite.java Fri Dec 19 01:22:14 2008
> @@ -90,6 +90,7 @@
>         // suite.addTestSuite( MavenIT0109ReleaseUpdateTest.class );
>         //  
> suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
>
> +         
> suite 
> .addTestSuite( MavenITmng3916PluginExecutionInheritanceTest.class );
>          
> suite 
> .addTestSuite 
> ( MavenITmng3906MergedPluginClassPathOrderingTest.class );
>          
> suite 
> .addTestSuite( MavenITmng3904NestedBuildDirInterpolationTest.class );
>          
> suite 
> .addTestSuite 
> ( MavenITmng3900ProfilePropertiesInterpolationTest.class );
>
> Added: maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> java/org/apache/maven/it/ 
> MavenITmng3916PluginExecutionInheritanceTest.java
> URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3916PluginExecutionInheritanceTest.java?rev=727983&view=auto
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- maven/core-integration-testing/trunk/core-it-suite/src/test/java/ 
> org/apache/maven/it/ 
> MavenITmng3916PluginExecutionInheritanceTest.java (added)
> +++ maven/core-integration-testing/trunk/core-it-suite/src/test/java/ 
> org/apache/maven/it/ 
> MavenITmng3916PluginExecutionInheritanceTest.java Fri Dec 19  
> 01:22:14 2008
> @@ -0,0 +1,68 @@
> +package org.apache.maven.it;
> +
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +import org.apache.maven.it.Verifier;
> +import org.apache.maven.it.util.ResourceExtractor;
> +
> +import java.io.File;
> +import java.util.Arrays;
> +import java.util.Collections;
> +import java.util.List;
> +
> +/**
> + * This is a test set for <a href="http://jira.codehaus.org/browse/MNG-3916 
> ">MNG-3916</a>.
> + *
> + * @author Benjamin Bentmann
> + * @version $Id$
> + */
> +public class MavenITmng3916PluginExecutionInheritanceTest
> +    extends AbstractMavenIntegrationTestCase
> +{
> +
> +    public MavenITmng3916PluginExecutionInheritanceTest()
> +    {
> +        super( "(2.0.4,)" );
> +    }
> +
> +    /**
> +     * Test that plugin executions are properly merged during  
> inheritance, even if the plugin sections have different
> +     * versions.
> +     */
> +    public void testitMNG3916()
> +        throws Exception
> +    {
> +        File testDir =  
> ResourceExtractor.simpleExtractResources( getClass(), "/mng-3916" );
> +
> +        Verifier verifier = new Verifier( new File( testDir,  
> "sub" ).getAbsolutePath() );
> +        verifier.setAutoclean( false );
> +        verifier.deleteDirectory( "target" );
> +        verifier.executeGoal( "validate" );
> +        verifier.verifyErrorFreeLog();
> +        verifier.resetStreams();
> +
> +        List executions = verifier.loadLines( "target/exec.log",  
> "UTF-8" );
> +        // NOTE: Ordering of executions is another issue  
> (MNG-3887), so ignore/normalize order
> +        Collections.sort( executions );
> +        List expected = Arrays.asList( new String[] { "child-1",  
> "child-2", "child-default", "parent-1", "parent-2" } );
> +        assertEquals( expected, executions );
> +    }
> +
> +}
>
> Propchange: maven/core-integration-testing/trunk/core-it-suite/src/ 
> test/java/org/apache/maven/it/ 
> MavenITmng3916PluginExecutionInheritanceTest.java
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange: maven/core-integration-testing/trunk/core-it-suite/src/ 
> test/java/org/apache/maven/it/ 
> MavenITmng3916PluginExecutionInheritanceTest.java
> ------------------------------------------------------------------------------
>    svn:keywords = Author Date Id Revision
>
> Added: maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/pom.xml
> URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3916/pom.xml?rev=727983&view=auto
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/pom.xml (added)
> +++ maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/pom.xml Fri Dec 19 01:22:14 2008
> @@ -0,0 +1,80 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +
> +<!--
> +Licensed to the Apache Software Foundation (ASF) under one
> +or more contributor license agreements.  See the NOTICE file
> +distributed with this work for additional information
> +regarding copyright ownership.  The ASF licenses this file
> +to you under the Apache License, Version 2.0 (the
> +"License"); you may not use this file except in compliance
> +with the License.  You may obtain a copy of the License at
> +
> +  http://www.apache.org/licenses/LICENSE-2.0
> +
> +Unless required by applicable law or agreed to in writing,
> +software distributed under the License is distributed on an
> +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +KIND, either express or implied.  See the License for the
> +specific language governing permissions and limitations
> +under the License.
> +-->
> +
> +<project>
> +  <modelVersion>4.0.0</modelVersion>
> +
> +  <groupId>org.apache.maven.its.mng3916</groupId>
> +  <artifactId>parent</artifactId>
> +  <version>0.1</version>
> +  <packaging>pom</packaging>
> +
> +  <name>Maven Integration Test :: MNG-3916</name>
> +  <description>
> +    Test that plugin executions are properly merged during  
> inheritance, even if the plugin sections have different
> +    versions.
> +  </description>
> +
> +  <build>
> +    <plugins>
> +      <plugin>
> +        <groupId>org.apache.maven.its.plugins</groupId>
> +        <artifactId>maven-it-plugin-log-file</artifactId>
> +        <version>2.1-SNAPSHOT</version>
> +        <executions>
> +          <execution>
> +            <id>parent-1</id>
> +            <phase>validate</phase>
> +            <goals>
> +              <goal>log-string</goal>
> +            </goals>
> +            <configuration>
> +              <logFile>target/exec.log</logFile>
> +              <string>parent-1</string>
> +            </configuration>
> +          </execution>
> +          <execution>
> +            <id>parent-2</id>
> +            <phase>validate</phase>
> +            <goals>
> +              <goal>log-string</goal>
> +            </goals>
> +            <configuration>
> +              <logFile>target/exec.log</logFile>
> +              <string>parent-2</string>
> +            </configuration>
> +          </execution>
> +          <execution>
> +            <!-- NOTE: <id> deliberately omitted to use default  
> value -->
> +            <phase>validate</phase>
> +            <goals>
> +              <goal>log-string</goal>
> +            </goals>
> +            <configuration>
> +              <logFile>target/exec.log</logFile>
> +              <string>parent-default</string>
> +            </configuration>
> +          </execution>
> +        </executions>
> +      </plugin>
> +    </plugins>
> +  </build>
> +</project>
>
> Propchange: maven/core-integration-testing/trunk/core-it-suite/src/ 
> test/resources/mng-3916/pom.xml
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange: maven/core-integration-testing/trunk/core-it-suite/src/ 
> test/resources/mng-3916/pom.xml
> ------------------------------------------------------------------------------
>    svn:keywords = Author Date Id Revision
>
> Added: maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/sub/pom.xml
> URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3916/sub/pom.xml?rev=727983&view=auto
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/sub/pom.xml (added)
> +++ maven/core-integration-testing/trunk/core-it-suite/src/test/ 
> resources/mng-3916/sub/pom.xml Fri Dec 19 01:22:14 2008
> @@ -0,0 +1,83 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +
> +<!--
> +Licensed to the Apache Software Foundation (ASF) under one
> +or more contributor license agreements.  See the NOTICE file
> +distributed with this work for additional information
> +regarding copyright ownership.  The ASF licenses this file
> +to you under the Apache License, Version 2.0 (the
> +"License"); you may not use this file except in compliance
> +with the License.  You may obtain a copy of the License at
> +
> +  http://www.apache.org/licenses/LICENSE-2.0
> +
> +Unless required by applicable law or agreed to in writing,
> +software distributed under the License is distributed on an
> +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> +KIND, either express or implied.  See the License for the
> +specific language governing permissions and limitations
> +under the License.
> +-->
> +
> +<project>
> +  <modelVersion>4.0.0</modelVersion>
> +
> +  <parent>
> +    <groupId>org.apache.maven.its.mng3916</groupId>
> +    <artifactId>parent</artifactId>
> +    <version>0.1</version>
> +  </parent>
> +
> +  <artifactId>child</artifactId>
> +
> +  <name>Maven Integration Test :: MNG-3916</name>
> +  <description>
> +    Test that plugin executions are properly merged during  
> inheritance, even if the plugin sections have different
> +    versions.
> +  </description>
> +
> +  <build>
> +    <plugins>
> +      <plugin>
> +        <groupId>org.apache.maven.its.plugins</groupId>
> +        <artifactId>maven-it-plugin-log-file</artifactId>
> +        <!-- NOTE: <version> element deliberately omitted here -->
> +        <executions>
> +          <execution>
> +            <id>child-1</id>
> +            <phase>validate</phase>
> +            <goals>
> +              <goal>log-string</goal>
> +            </goals>
> +            <configuration>
> +              <logFile>target/exec.log</logFile>
> +              <string>child-1</string>
> +            </configuration>
> +          </execution>
> +          <execution>
> +            <id>child-2</id>
> +            <phase>validate</phase>
> +            <goals>
> +              <goal>log-string</goal>
> +            </goals>
> +            <configuration>
> +              <logFile>target/exec.log</logFile>
> +              <string>child-2</string>
> +            </configuration>
> +          </execution>
> +          <execution>
> +            <!-- NOTE: <id> deliberately omitted to use default  
> value -->
> +            <phase>validate</phase>
> +            <goals>
> +              <goal>log-string</goal>
> +            </goals>
> +            <configuration>
> +              <logFile>target/exec.log</logFile>
> +              <string>child-default</string>
> +            </configuration>
> +          </execution>
> +        </executions>
> +      </plugin>
> +    </plugins>
> +  </build>
> +</project>
>
> Propchange: maven/core-integration-testing/trunk/core-it-suite/src/ 
> test/resources/mng-3916/sub/pom.xml
> ------------------------------------------------------------------------------
>    svn:eol-style = native
>
> Propchange: maven/core-integration-testing/trunk/core-it-suite/src/ 
> test/resources/mng-3916/sub/pom.xml
> ------------------------------------------------------------------------------
>    svn:keywords = Author Date Id Revision
>
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

A language that doesn’t affect the way you think about programming is  
not worth knowing.

  -— Alan Perlis


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org