You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2015/03/14 22:06:59 UTC

svn commit: r1666746 - in /maven/shared/trunk/maven-invoker: pom.xml src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java

Author: rfscholte
Date: Sat Mar 14 21:06:58 2015
New Revision: 1666746

URL: http://svn.apache.org/r1666746
Log:
[MSHARED-411] maven-invoker - addShellEnvironment forgets variable settings on successive calls

Modified:
    maven/shared/trunk/maven-invoker/pom.xml
    maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
    maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java

Modified: maven/shared/trunk/maven-invoker/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/pom.xml?rev=1666746&r1=1666745&r2=1666746&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/pom.xml (original)
+++ maven/shared/trunk/maven-invoker/pom.xml Sat Mar 14 21:06:58 2015
@@ -53,6 +53,9 @@ under the License.
 
   <contributors>
     <contributor>
+      <name>Holger Mense</name>
+    </contributor>
+    <contributor>
       <name>Lucien Weller</name>
     </contributor>
   </contributors>

Modified: maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java?rev=1666746&r1=1666745&r2=1666746&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java (original)
+++ maven/shared/trunk/maven-invoker/src/main/java/org/apache/maven/shared/invoker/DefaultInvocationRequest.java Sat Mar 14 21:06:58 2015
@@ -282,6 +282,9 @@ public class DefaultInvocationRequest
         return this;
     }
 
+    /**
+     * @see MavenCommandLineBuilder#setShellEnvironment(InvocationRequest, org.codehaus.plexus.util.cli.Commandline)
+     */
     public boolean isShellEnvironmentInherited()
     {
         return shellEnvironmentInherited;
@@ -383,7 +386,7 @@ public class DefaultInvocationRequest
 
     public InvocationRequest addShellEnvironment( String name, String value )
     {
-        if ( this.shellEnvironmentInherited )
+        if ( this.shellEnvironments == null )
         {
             this.shellEnvironments = new HashMap<String, String>();
         }

Modified: maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java?rev=1666746&r1=1666745&r2=1666746&view=diff
==============================================================================
--- maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java (original)
+++ maven/shared/trunk/maven-invoker/src/test/java/org/apache/maven/shared/invoker/MavenCommandLineBuilderTest.java Sat Mar 14 21:06:58 2015
@@ -33,6 +33,7 @@ import java.util.Set;
 import junit.framework.TestCase;
 
 import org.codehaus.plexus.util.Os;
+import org.codehaus.plexus.util.cli.CommandLineException;
 import org.codehaus.plexus.util.cli.Commandline;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
@@ -1105,6 +1106,30 @@ public class MavenCommandLineBuilderTest
         assertTrue( "Expected executable to be absolute", executable.isAbsolute() );
     }
     
+    public void testAddShellEnvironment()
+        throws Exception
+    {
+        setupTempMavenHomeIfMissing();
+
+        InvocationRequest request = newRequest();
+
+        String envVar1Name = "VAR-1";
+        String envVar1Value = "VAR-1-VALUE";
+
+        String envVar2Name = "VAR-2";
+        String envVar2Value = "VAR-2-VALUE";
+
+        request.addShellEnvironment( envVar1Name, envVar1Value );
+        request.addShellEnvironment( envVar2Name, envVar2Value );
+
+        MavenCommandLineBuilder commandLineBuilder = new MavenCommandLineBuilder();
+
+        Commandline commandline = commandLineBuilder.build( request );
+
+        assertEnvironmentVariablePresent( commandline, envVar1Name, envVar1Value );
+        assertEnvironmentVariablePresent( commandline, envVar2Name, envVar2Value );
+    }
+    
     public void setUp()
     {
         sysProps = System.getProperties();
@@ -1144,6 +1169,17 @@ public class MavenCommandLineBuilderTest
         System.out.println( "Starting: " + element.getMethodName() );
     }
 
+    private void assertEnvironmentVariablePresent( Commandline cli, String varName, String varValue )
+        throws CommandLineException
+    {
+        List<String> environmentVariables = Arrays.asList( cli.getEnvironmentVariables() );
+
+        String expectedDeclaration = varName + "=" + varValue;
+
+        assertTrue( "Environment variable setting: \'" + expectedDeclaration + "\' is mssing in "
+            + environmentVariables, environmentVariables.contains( expectedDeclaration ) );
+    }
+    
     private void assertArgumentsPresentInOrder( Commandline cli, String... expected )
     {
         assertArgumentsPresentInOrder( cli, Arrays.asList( expected ) );