Property Expansion/Filtering does not always work for System.properties
-----------------------------------------------------------------------
Key: MASSEMBLY-167
URL: http://jira.codehaus.org/browse/MASSEMBLY-167
Project: Maven 2.x Assembly Plugin
Issue Type: Bug
Affects Versions: 2.2
Environment: JDK 1.5.0_10, Maven 2.1-SNAPSHOT, Linux 2.6.18
Reporter: Daniel Krisher
Priority: Minor
When using filtering for a file element in an assembly descriptor, System
properties (e.g. java.version) are not always available (and do not get
replaced in the filtered file).
For example, my assembly descriptor contains:
{noformat}
<file>
<source>src/main/files/config/splash.xml</source>
<outputDirectory>/config</outputDirectory>
<filtered>true</filtered>
</file>
{noformat}
and splash.xml (pre-filtering):
{noformat}
<properties>
<entry key="title">${project.name}</entry>
<entry key="Version">${project.version}</entry>
<entry key="Compiled with Java ">${java.version}</entry>
</properties>
{noformat}
Which results in a post-filtered splash.xml:
{noformat}
<properties>
<entry key="title">ACES Viewer</entry>
<entry key="Version">0.7-SNAPSHOT</entry>
<entry key="Compiled with Java ">${java.version}</entry>
</properties>
{noformat}
The problem appears to be in the 'initializeFiltering()' method of the
FileFormatter class. The filter properties are initialized using:
filterProperties = new Properties(System.getProperties());
Changing this to:
filterProperties = new Properties();
filterProperties.putAll(System.getProperties());
Seems to fix the problem.
The Properties javadocs are a little vague on the constructor parameter:
public Properties(Properties defaults)
Creates an empty property list with the specified defaults.
--
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