escapeString is broken - break filtered output
----------------------------------------------

                 Key: MRESOURCES-110
                 URL: http://jira.codehaus.org/browse/MRESOURCES-110
             Project: Maven 2.x Resources Plugin
          Issue Type: Bug
    Affects Versions: 2.4.1, 2.4
         Environment: Maven 2.0.9, WinXP 
            Reporter: Marco Rothe
            Priority: Critical


If the escapeString parameter is specified in plugin configuration this will 
break the filtered output.

For example the configuration

<plugin>
   <artifactId>maven-resources-plugin</artifactId>
   <version>2.4.1</version>
   <configuration>
     <escapeString>!</escapeString>
   </configuration>
</plugin>

an file to filter (an XML file)

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <!-- This is a comment ... until filtering ... -->
   <broken-tag>Why are my !\${\}\! static.content broken if the escapeString 
occure ?!?</broken-tag>
   <broken-tag>Content with replacement: ${replaceThis} !</broken-tag>
   <broken-tag>Content with escaped replacement: Do not !${replaceThis} 
!</broken-tag>
</root>

and a property

 <properties>
        <replaceThis>I am the replacement</replaceThis>
 </properties>

from pom or profile.xml

result in

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <!- This is a comment ... until filtering ... -->
   <broken-tag>Why are my !${\}\!static.content broken if the escapeString 
occure ?!</broken-tag>
   <broken-tag>Content with replacement: I am the replacement !/broken-tag>
   <broken-tag>Content with escaped replacement: Do not ${replaceThis} 
!/broken-tag>
</root>

Note the broken comment and tags! 
If using Resources-Plugin 2.3 the output is like expected:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <!-- This is a comment ... until filtering ... -->
   <broken-tag>Why are my !\${\}\! static.content broken if the escapeString 
occure ?!?</broken-tag>
   <broken-tag>Content with replacement: I am the replacement !</broken-tag>
   <broken-tag>Content with escaped replacement: Do not ${replaceThis} 
!</broken-tag>
</root>

Got even worse when using a complex escape string like 
<escapeString>static</escapeString> (I know it's a silly example ;)). The 
result is

<?xml version=".0" encoding="UTF-8"?>
<root>
    <!-- This is acomment ... until filtering ... -->
   <broken-tag>Why are my !\${\}\! staticcontent broken if the escapeSring 
occure ?!?</broken-tag>
   <broken-tag>Content with replacement: I am the replacement !</broken-tag>
   <broken-tag>Content with escapedreplacement: Do not !I am the replacement 
!</broken-tag>
</root>

Note the missing characters all over the file ... :-/

So the actual state of the escapeString feature is unpredictable and nearly 
useless.



-- 
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