2008/2/24, Jason van Zyl <[EMAIL PROTECTED]>:
> Olivier,
>
>  Please for the love of god, would you please be more careful. You're
>  just ripping through all sorts of plugins making major behavioral
>  changes in core fundamental plugins? How do you know changing the way
>  properties are ordered isn't going to affect someone relying on the
>  command line winning? Are you absolutely sure?

Are you sure cli wins in the maven-resources-plugin ?
If I look at the current trunk in the plugin : cli (system props) are
loaded first !

Link : 
http://fisheye6.cenqua.com/browse/maven/plugins/trunk/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java?r=613480#l203

>
>  Also, as I've pointed out direct access to System properties in
>  plugins is categorically bad because it makes embedding (read IDE use)
>  totally unpredictable.

>  On 24-Feb-08, at 1:06 AM, [EMAIL PROTECTED] wrote:
>
>  > Author: olamy
>  > Date: Sun Feb 24 01:06:43 2008
>  > New Revision: 630604
>  >
>  > URL: http://svn.apache.org/viewvc?rev=630604&view=rev
>  > Log:
>  > change the Properties loading order now System Properties wins
>  >
>  >
>  > Modified:
>  >    maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/
>  > apache/maven/shared/filtering/DefaultMavenFileFilter.java
>  >    maven/sandbox/trunk/shared/maven-filtering/src/site/apt/index.apt
>  >    maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/
>  > apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
>  >
>  > Modified: maven/sandbox/trunk/shared/maven-filtering/src/main/java/
>  > org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
>  > URL: 
> http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java?rev=630604&r1=630603&r2=630604&view=diff
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > ======================================================================
>  > --- maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/
>  > apache/maven/shared/filtering/DefaultMavenFileFilter.java (original)
>  > +++ maven/sandbox/trunk/shared/maven-filtering/src/main/java/org/
>  > apache/maven/shared/filtering/DefaultMavenFileFilter.java Sun Feb 24
>  > 01:06:43 2008
>  > @@ -80,27 +80,38 @@
>  >                                           final boolean
>  > escapedBackslashesInFilePath )
>  >         throws MavenFilteringException
>  >     {
>  > -
>  > -        final Properties filterProperties = new Properties();
>  > -
>  > -        // System properties
>  > -        filterProperties.putAll( System.getProperties() );
>  > -
>  > -        // Project properties
>  > -        filterProperties.putAll( mavenProject.getProperties() ==
>  > null ? Collections.EMPTY_MAP : mavenProject
>  > -            .getProperties() );
>  > +
>  > +        // here we build some properties which will be used to read
>  > some properties files
>  > +        // to interpolate the expression ${ }  in this properties
>  > file
>  >
>  >         // Take a copy of filterProperties to ensure that evaluated
>  > filterTokens are not propagated
>  >         // to subsequent filter files. NB this replicates current
>  > behaviour and seems to make sense.
>  > +
>  >         final Properties baseProps = new Properties();
>  > -        baseProps.putAll( filterProperties );
>  >
>  > +        // Project properties
>  > +        baseProps.putAll( mavenProject.getProperties() == null ?
>  > Collections.EMPTY_MAP : mavenProject
>  > +            .getProperties() );
>  > +        // System properties wins
>  > +        baseProps.putAll( System.getProperties() );
>  > +
>  > +        // now we build properties to use for resources interpolation
>  > +
>  > +        final Properties filterProperties = new Properties();
>  > +
>  >         loadProperties( filterProperties, filters, baseProps );
>  >
>  >         loadProperties( filterProperties, mavenProject.getFilters(),
>  > baseProps );
>  >
>  >         loadProperties( filterProperties,
>  > mavenProject.getBuild().getFilters(), baseProps );
>  >
>  > +        // Project properties
>  > +        filterProperties.putAll( mavenProject.getProperties() ==
>  > null ? Collections.EMPTY_MAP : mavenProject
>  > +            .getProperties() );
>  > +        // System properties wins
>  > +        filterProperties.putAll( System.getProperties() );
>  > +
>  > +
>  >         List defaultFilterWrappers = new ArrayList( 3 );
>  >
>  >         // support ${token}
>  >
>  > Modified: maven/sandbox/trunk/shared/maven-filtering/src/site/apt/
>  > index.apt
>  > URL: 
> http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/site/apt/index.apt?rev=630604&r1=630603&r2=630604&view=diff
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > ======================================================================
>  > --- maven/sandbox/trunk/shared/maven-filtering/src/site/apt/
>  > index.apt (original)
>  > +++ maven/sandbox/trunk/shared/maven-filtering/src/site/apt/
>  > index.apt Sun Feb 24 01:06:43 2008
>  > @@ -42,27 +42,29 @@
>  >   This component has a method which returns the default
>  > FileUtils.FilterWrapper.
>  >   This are :
>  >
>  > -    * interpolation with token ${ } and values from SystemProps,
>  > project.properties, filters, project.filters and project.build.filters
>  > +    * interpolation with token $\{ \} and values from filters,
>  > project.filters, project.build.filters, pom.properties and SystemProps
>  >
>  > -    * interpolation with token @ @ and values from SystemProps,
>  > project.properties, filters, project.filters and project.build.filters
>  > +    * interpolation with token @ @ and values from filters,
>  > project.filters, project.build.filters, pom.properties and SystemProps
>  >
>  > -    * interpolation with token ${ } and values from mavenProject
>  > interpolation
>  > +    * interpolation with token $\{ \} and values from mavenProject
>  > interpolation
>  >
>  >     []
>  >
>  >     The values (Properties object) used for interpolation are loaded
>  > with the following order :
>  > +
>  > +    * List of properties file ( the method has a parameter which
>  > accept a List of String -> path properties files )
>  > +
>  > +    * pom.filters
>  >
>  > -    * System Properties
>  > +    * pom.build.filters
>  >
>  >     * pom.properties
>  >
>  > -    * List of properties ( the method has a parameter which accept
>  > a List of String -> path properties files )
>  > -
>  > -    * pom.filters
>  > -
>  > -    * pom.build.filters
>  > +    * System Properties
>  >
>  >     []
>  >
>  >     <<NOTE>> : As it's a Properties object, last defined key/value
>  > pair wins .
>  > -    The value for key java.version can be overriding with a
>  > property in the maven project (yes crazy but possible).
>  > +
>  > +    <<NOTE>> : When building the global Properties object and
>  > reading the properties files defined the different filters,
>  > +    interpolation with the token $\{ \} is supported for this
>  > filters with a limited properties values coming from pom.properties
>  > and System Properties (last wins too)
>  >
>  > Modified: maven/sandbox/trunk/shared/maven-filtering/src/test/java/
>  > org/apache/maven/shared/filtering/
>  > DefaultMavenResourcesFilteringTest.java
>  > URL: 
> http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java?rev=630604&r1=630603&r2=630604&view=diff
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > =
>  > ======================================================================
>  > --- maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/
>  > apache/maven/shared/filtering/
>  > DefaultMavenResourcesFilteringTest.java (original)
>  > +++ maven/sandbox/trunk/shared/maven-filtering/src/test/java/org/
>  > apache/maven/shared/filtering/
>  > DefaultMavenResourcesFilteringTest.java Sun Feb 24 01:06:43 2008
>  > @@ -29,7 +29,6 @@
>  > import java.util.Properties;
>  >
>  > import org.apache.maven.model.Resource;
>  > -import org.apache.maven.project.MavenProject;
>  > import org.codehaus.plexus.PlexusTestCase;
>  > import org.codehaus.plexus.util.FileUtils;
>  > import org.codehaus.plexus.util.IOUtil;
>  > @@ -106,7 +105,7 @@
>  >
>  >         assertEquals( "@@", result.getProperty( "emptyexpression" ) );
>  >         assertEquals( "${}",
>  > result.getProperty( "emptyexpression2" ) );
>  > -        assertEquals( "zloug", result.getProperty( "javaVersion" ) );
>  > +        assertEquals( System.getProperty( "java.version" ),
>  > result.getProperty( "javaVersion" ) );
>  >
>  >         assertEquals( baseDir.toString(), result.get( "base" ) );
>  >
>  >
>  >
>
>  Thanks,
>
>  Jason
>
>  ----------------------------------------------------------
>  Jason van Zyl
>  Founder,  Apache Maven
>  jason at sonatype dot com
>  ----------------------------------------------------------
>
>  Our achievements speak for themselves. What we have to keep track
>  of are our failures, discouragements and doubts. We tend to forget
>  the past difficulties, the many false starts, and the painful
>  groping. We see our past achievements as the end result of a
>  clean forward thrust, and our present difficulties as
>  signs of decline and decay.
>
>  -- Eric Hoffer, Reflections on the Human Condition
>
>
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to