You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2008/01/08 13:04:54 UTC

svn commit: r609945 - in /maven/components/trunk/maven-embedder/src: main/java/org/apache/maven/cli/CLIRequestUtils.java test/java/org/apache/maven/cli/CLIRequestUtilsTest.java

Author: vsiveton
Date: Tue Jan  8 04:04:42 2008
New Revision: 609945

URL: http://svn.apache.org/viewvc?rev=609945&view=rev
Log:
o merged from r609944 (MNG-2848: Environment variables in profile activation not working)

Modified:
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java?rev=609945&r1=609944&r2=609945&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java Tue Jan  8 04:04:42 2008
@@ -4,12 +4,16 @@
 import org.apache.maven.MavenTransferListener;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequest;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 import java.util.StringTokenizer;
+import java.util.Map.Entry;
 
 public final class CLIRequestUtils
 {
@@ -225,10 +229,27 @@
     // System properties handling
     // ----------------------------------------------------------------------
 
-    private static Properties getExecutionProperties( CommandLine commandLine )
+    static Properties getExecutionProperties( CommandLine commandLine )
     {
         Properties executionProperties = new Properties();
 
+        // add the env vars to the property set, with the "env." prefix
+        // XXX support for env vars should probably be removed from the ModelInterpolator
+        try
+        {
+            Properties envVars = CommandLineUtils.getSystemEnvVars();
+            Iterator i = envVars.entrySet().iterator();
+            while ( i.hasNext() )
+            {
+                Entry e = (Entry) i.next();
+                executionProperties.setProperty( "env." + e.getKey().toString(), e.getValue().toString() );
+            }
+        }
+        catch ( IOException e )
+        {
+            System.err.println( "Error getting environment vars for profile activation: " + e );
+        }
+
         // ----------------------------------------------------------------------
         // Options that are set on the command line become system properties
         // and therefore are set in the session properties. System properties
@@ -276,13 +297,5 @@
         }
 
         executionProperties.setProperty( name, value );
-
-        // ----------------------------------------------------------------------
-        // I'm leaving the setting of system properties here as not to break
-        // the SystemPropertyProfileActivator. This won't harm embedding. jvz.
-        // ----------------------------------------------------------------------
-
-        System.setProperty( name, value );
     }
-
 }

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java?rev=609945&r1=609944&r2=609945&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java Tue Jan  8 04:04:42 2008
@@ -44,4 +44,27 @@
         assertTrue( ( goals == null ) || goals.isEmpty() );
     }
 
+    public void testGetExecutionProperties()
+        throws Exception
+    {
+        System.setProperty( "test.property.1", "1.0" );
+        System.setProperty( "test.property.2", "2.0" );
+        Properties p = CLIRequestUtils.getExecutionProperties( new CLIManager().parse( new String[] {
+            "-Dtest.property.2=2.1",
+            "-Dtest.property.3=3.0" } ) );
+
+        // assume that everybody has a PATH env var
+        String envPath = p.getProperty( "env.PATH" );
+        if ( envPath == null )
+        {
+            envPath = p.getProperty( "env.Path" );
+        }
+        assertNotNull( envPath );
+
+        assertEquals( "1.0", p.getProperty( "test.property.1" ) );
+        assertEquals( "3.0", p.getProperty( "test.property.3" ) );
+
+        // sys props should override cmdline props
+        assertEquals( "2.0", p.getProperty( "test.property.2" ) );
+    }
 }