[ 
http://jira.codehaus.org/browse/MRESOURCES-104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=217651#action_217651
 ] 

Ian Springer edited comment on MRESOURCES-104 at 4/12/10 9:22 AM:
------------------------------------------------------------------

I think the cause of this is that when the template processor encounters the 
'@' character, it goes into a state where it's looking for a closing '@' 
character, but it should pop out of this state once it encounters a newline 
character (since a template variable name will never contain a newline). Once 
it hits a newline, it should assume the '@' was not the first character of a 
variable, and just print out the '@' character and the remainder of the line 
as-is to the target file.

The read() method in the InterpolationFilterReader from plexus-utils is what is 
ultimately used to do the replacement of template variables (more specifically, 
the resources plugin calls maven filtering which calls pluex-utils 
FileUtils.copyFile(), which is passed a FileUtils$FilterWrapper, which wraps an 
InterpolationFilterReader). 

It is in InterpolationFilterReader.read() that code needs to be added to check 
for newlines.

http://svn.codehaus.org/plexus/plexus-utils/trunk/src/main/java/org/codehaus/plexus/util/InterpolationFilterReader.java


      was (Author: ips):
    I think the cause of this is that when the template processor encounters 
the '@' character, it goes into a state where it's looking for a closing '@' 
character, but it should pop out of this state once it encounters a newline 
character (since a template variable name will never contain a newline). Once 
it hits a newline, it should assume the '@' was not the first character of a 
variable, and just print out the '@' character and the remainder of the line 
as-is to the target file.

  
> while filtering resources the token replacement stops at the character @ 
> -------------------------------------------------------------------------
>
>                 Key: MRESOURCES-104
>                 URL: http://jira.codehaus.org/browse/MRESOURCES-104
>             Project: Maven 2.x Resources Plugin
>          Issue Type: Bug
>    Affects Versions: 2.4
>         Environment: Windows XP, Java 1.6.0_16
>            Reporter: Thomas Fahrmeyer
>             Fix For: 2.5
>
>
> Create a simple file hello.txt under src/main/resources with following 
> content:
> "
> This property ${testProperty} was replaced
> but the one behind a @ will not be processed, as you
> see:  ${testProperty}. You shouldn't see a property reference.
> "
> define a build section in your pom.xml like this
> <build>
>       <resources>
>                       <resource>
>                               <directory>src/main/resources</directory>
>                               <filtering>true</filtering>
>                               <includes>
>                                       <include>**/*.txt</include>
>                               </includes>
>                       </resource>
>                       <resource>
>                               <directory>src/main/resources</directory>
>                               <filtering>false</filtering>
>                               <excludes>
>                                       <exclude>**/*.txt</exclude>
>                               </excludes>
>                       </resource>
>               </resources>
> Run the command: 
> mvn process-resources -DtestProperty=IwasReplaced
> this produces the output
> "
> This property IwasReplaced was replaced
> but the one behind a @ will not be processed, as you
> see:  ${testProperty}. You shouldn't see a property reference.
> "
> As you see, the second property reference was not resolved. The replacement 
> just stops after the @ character.

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