You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Tom Huybrechts <to...@gmail.com> on 2008/01/30 12:10:28 UTC

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

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" ) );
>     }
>  }
>
>
>

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