While using a 2.0.9 snapshot, I noticed that my plugins no longer see -D... cli arguments as system properties. Probably because System.setProperty(...) was removed in this revision. Why was this necessary ?
Tom On Jan 8, 2008 1:03 PM, <[EMAIL PROTECTED]> wrote: > Author: vsiveton > Date: Tue Jan 8 04:03:02 2008 > New Revision: 609944 > > URL: http://svn.apache.org/viewvc?rev=609944&view=rev > Log: > MNG-2848: Environment variables in profile activation not working > Submitted by: Richard van der Hoff > Reviewed by: Vincent Siveton > > o patch applied with a small fix for env.PATH in the test > > Modified: > maven/components/branches/maven-2.0.x > /maven-core/src/main/java/org/apache/maven/cli/MavenCli.java > maven/components/branches/maven-2.0.x > /maven-core/src/test/java/org/apache/maven/cli/MavenCliTest.java > > Modified: maven/components/branches/maven-2.0.x > /maven-core/src/main/java/org/apache/maven/cli/MavenCli.java > URL: > http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java?rev=609944&r1=609943&r2=609944&view=diff > > ============================================================================== > --- > maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java > (original) > +++ > maven/components/branches/maven-2.0.x/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java > Tue Jan 8 04:03:02 2008 > @@ -23,9 +23,11 @@ > import java.io.IOException; > import java.io.InputStream; > 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; > > import org.apache.commons.cli.CommandLine; > import org.apache.commons.cli.CommandLineParser; > @@ -63,6 +65,7 @@ > import org.codehaus.plexus.logging.Logger; > import org.codehaus.plexus.logging.LoggerManager; > import org.codehaus.plexus.util.Os; > +import org.codehaus.plexus.util.cli.CommandLineUtils; > import org.codehaus.plexus.util.xml.pull.XmlPullParserException; > > /** > @@ -221,7 +224,7 @@ > // TODO:Additionally, we can't change the mojo level > because the component key includes the version and it isn't known ahead of > time. This seems worth changing. > } > > - ProfileManager profileManager = new DefaultProfileManager( > embedder.getContainer(),System.getProperties() ); > + ProfileManager profileManager = new DefaultProfileManager( > embedder.getContainer(), executionProperties ); > > if ( commandLine.hasOption( CLIManager.ACTIVATE_PROFILES ) ) > { > @@ -561,10 +564,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 > @@ -611,13 +631,6 @@ > } > > 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/branches/maven-2.0.x > /maven-core/src/test/java/org/apache/maven/cli/MavenCliTest.java > URL: > http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-core/src/test/java/org/apache/maven/cli/MavenCliTest.java?rev=609944&r1=609943&r2=609944&view=diff > > ============================================================================== > --- > maven/components/branches/maven-2.0.x/maven-core/src/test/java/org/apache/maven/cli/MavenCliTest.java > (original) > +++ > maven/components/branches/maven-2.0.x/maven-core/src/test/java/org/apache/maven/cli/MavenCliTest.java > Tue Jan 8 04:03:02 2008 > @@ -21,6 +21,7 @@ > > import java.io.OutputStream; > import java.io.PrintStream; > +import java.util.Properties; > > import org.codehaus.classworlds.ClassWorld; > import org.codehaus.plexus.util.StringOutputStream; > @@ -78,5 +79,29 @@ > System.setErr( oldErr ); > System.setOut( oldOut ); > } > + } > + > + public void testGetExecutionProperties() > + throws Exception > + { > + System.setProperty( "test.property.1", "1.0" ); > + System.setProperty( "test.property.2", "2.0" ); > + Properties p = MavenCli.getExecutionProperties( ( new > MavenCli.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" ) ); > } > } > > >