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:03:07 UTC
svn commit: r609944 - in
/maven/components/branches/maven-2.0.x/maven-core/src:
main/java/org/apache/maven/cli/MavenCli.java
test/java/org/apache/maven/cli/MavenCliTest.java
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" ) );
}
}
Re: svn commit: r609944 - in /maven/components/branches/maven-2.0.x/maven-core/src: main/java/org/apache/maven/cli/MavenCli.java test/java/org/apache/maven/cli/MavenCliTest.java
Posted by Vincent Siveton <vi...@gmail.com>.
We are aware on this. FYI the issue MNG-2848 is still open.
Cheers,
Vincent
2008/1/30, Tom Huybrechts <to...@gmail.com>:
> 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, <vs...@apache.org> 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" ) );
> > }
> > }
> >
> >
> >
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: svn commit: r609944 - in /maven/components/branches/maven-2.0.x/maven-core/src: main/java/org/apache/maven/cli/MavenCli.java test/java/org/apache/maven/cli/MavenCliTest.java
Posted by Tom Huybrechts <to...@gmail.com>.
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, <vs...@apache.org> 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" ) );
> }
> }
>
>
>