[ http://jira.codehaus.org/browse/MRESOURCES-15?page=all ]
     
Marvin King closed MRESOURCES-15:
---------------------------------

    Resolution: Fixed

> Resources plugin does not filter systemproperties properly
> ----------------------------------------------------------
>
>          Key: MRESOURCES-15
>          URL: http://jira.codehaus.org/browse/MRESOURCES-15
>      Project: Maven 2.x Resources Plugin
>         Type: Bug

>  Environment: maven 2.0.2, tested on Mac OS X, Windows XP
>     Reporter: Janis Schuller
>     Assignee: Marvin King
>      Fix For: 2.2
>  Attachments: possible_fix_for_MRESOURCES15.patch
>
> Original Estimate: 20 minutes
>         Remaining: 20 minutes
>
> I tried to use filtering to introduce build-time information into some 
> binaries. I used the filtering mechanism as described in the maven getting 
> started guide, but I did not succeed. If you try to filter e.g. ${os.name} it 
> will be filtered to the same result as using ${pom.name}. Other system 
> properties such as 
> java.version=${java.version} are simply not filtered and appear untouched in 
> the resulting file in the target-dir.  (Just follow getting started guide 
> section filtering to reproduce)
> I think I located the problem (or a part of it): In the resources-plugin's 
> Mojo Code in ResourcesMojo.java in initializeFiltering()
>     private void initializeFiltering()
>         throws MojoExecutionException
>     {
>         // System properties
>         filterProperties = new Properties( System.getProperties() );
>         .....
> the filter is initialized with default-values from System.getProperties(); 
> These properties are not added to the Hashtable the Properties object is 
> extending but to an internal member of Properties called defaults. In 
> getProperty() a second lookup to the internal member is performed in case of 
> a null return of super.get(key) -- but the filtering is done via 
> org.codehaus.plexus.util.InterpolationFilterReader which just calls 
> get() on the supplied variables Map (in our case a properties object)
> Simple solution would be to explicitly add all system properties to the 
> filter object:
>     private void initializeFiltering()
>         throws MojoExecutionException
>     {
>         // System properties
>         filterProperties = new Properties();
>         filterProperties.putAll(System.getProperties());
>         .....
> Hope that helps
>    Janis

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to