You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/08/04 12:16:20 UTC

svn commit: r800721 - in /maven/core-integration-testing/trunk/core-it-suite/src/test: java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java resources/mng-3401/pom.xml

Author: bentmann
Date: Tue Aug  4 10:16:20 2009
New Revision: 800721

URL: http://svn.apache.org/viewvc?rev=800721&view=rev
Log:
[MNG-4280] [regression] Direct CLI invocation of goal causes "default-cli" config to be processed twice, duplicating list values

o Strengthened existing IT to check configuration handling in detail

Modified:
    maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java
    maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java
    maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3401/pom.xml

Modified: maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java?rev=800721&r1=800720&r2=800721&view=diff
==============================================================================
--- maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java (original)
+++ maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3203DefaultLifecycleExecIdTest.java Tue Aug  4 10:16:20 2009
@@ -23,7 +23,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.it.AbstractMavenIntegrationTestCase;
 import org.apache.maven.it.Verifier;
 import org.apache.maven.it.util.ResourceExtractor;
@@ -40,10 +39,10 @@
 public class MavenITmng3203DefaultLifecycleExecIdTest
     extends AbstractMavenIntegrationTestCase
 {
+
     public MavenITmng3203DefaultLifecycleExecIdTest()
-        throws InvalidVersionSpecificationException
     {
-        super( "(2.1.99,)" );
+        super( "[2.2.0,)" );
     }
 
     public void testitMNG3203 ()

Modified: maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java?rev=800721&r1=800720&r2=800721&view=diff
==============================================================================
--- maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java (original)
+++ maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3401CLIDefaultExecIdTest.java Tue Aug  4 10:16:20 2009
@@ -1,3 +1,5 @@
+package org.apache.maven.it;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,57 +19,53 @@
  * under the License.
  */
 
-package org.apache.maven.it;
-
 import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Properties;
 
-import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
-import org.apache.maven.it.AbstractMavenIntegrationTestCase;
-import org.apache.maven.it.Verifier;
-import org.apache.maven.it.VerificationException;
 import org.apache.maven.it.util.ResourceExtractor;
 
 /**
  * This is a test set for <a href="http://jira.codehaus.org/browse/MNG-3401">MNG-3401</a>.
- *
- * @todo Fill in a better description of what this test verifies!
  * 
  * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
  * @author jdcasey
- * 
  */
 public class MavenITmng3401CLIDefaultExecIdTest
     extends AbstractMavenIntegrationTestCase
 {
+
     public MavenITmng3401CLIDefaultExecIdTest()
-        throws InvalidVersionSpecificationException
     {
-        super( "(2.1.99,)" );
+        super( "[2.2.0,)" );
     }
 
-    public void testitMNG3401 ()
+    /**
+     * Test that the configuration of an execution block with the id "default-cli" applies to direct CLI
+     * invocations of a goal as well.
+     */
+    public void testitMNG3401()
         throws Exception
     {
-        // The testdir is computed from the location of this
-        // file.
         File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3401" );
 
         Verifier verifier = new Verifier( testDir.getAbsolutePath() );
+        verifier.setAutoclean( false );
+        verifier.deleteDirectory( "target" );
+        verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-configuration:2.1-SNAPSHOT:config" );
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
 
-		try
-		{
-	        verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
-
-	        verifier.verifyErrorFreeLog();
-	        fail( "Failed to incorporate 'default-cli' execution for touch mojo." );
-		}
-		catch ( VerificationException e )
-		{
-			// expected
-		}
+        Properties props = verifier.loadProperties( "target/config.properties" );
 
-        verifier.resetStreams();
+        assertEquals( "PASSED", props.getProperty( "stringParam" ) );
+
+        assertEquals( "4", props.getProperty( "stringParams" ) );
+        assertEquals( "a", props.getProperty( "stringParams.0" ) );
+        assertEquals( "c", props.getProperty( "stringParams.1" ) );
+        assertEquals( "b", props.getProperty( "stringParams.2" ) );
+        assertEquals( "d", props.getProperty( "stringParams.3" ) );
+
+        assertEquals( "maven-core-it", props.getProperty( "defaultParam" ) );
     }
+
 }

Modified: maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3401/pom.xml
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3401/pom.xml?rev=800721&r1=800720&r2=800721&view=diff
==============================================================================
--- maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3401/pom.xml (original)
+++ maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-3401/pom.xml Tue Aug  4 10:16:20 2009
@@ -5,18 +5,37 @@
   <artifactId>mng-3401</artifactId>
   <version>1</version>
   <packaging>pom</packaging>
+
+  <name>Maven Integration Test :: MNG-3401</name>
+  <description>
+    Test that the configuration of an execution block with the id "default-cli" applies to direct CLI
+    invocations of a goal as well.
+  </description>
   
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.its.plugins</groupId>
-        <artifactId>maven-it-plugin-touch</artifactId>
+        <artifactId>maven-it-plugin-configuration</artifactId>
         <version>2.1-SNAPSHOT</version>
+        <configuration>
+          <!-- plugin-level config still applies as well but is recessive -->
+          <propertiesFile>target/config.properties</propertiesFile>
+          <stringParam>FAILED</stringParam>
+        </configuration>
         <executions>
           <execution>
             <id>default-cli</id>
             <configuration>
-              <fail>true</fail>
+              <stringParam>PASSED</stringParam>
+              <!-- NOTE: Intentionally using append mode here to check the config gets processed only once -->
+              <stringParams combine.children="append">
+                <!-- NOTE: These values are deliberately not in alpha order! -->
+                <stringParam>a</stringParam>
+                <stringParam>c</stringParam>
+                <stringParam>b</stringParam>
+                <stringParam>d</stringParam>
+              </stringParams>
             </configuration>
           </execution>
         </executions>