You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Antony Bourgois (JIRA)" <ji...@codehaus.org> on 2009/10/29 17:25:26 UTC

[jira] Commented: (MRESOURCES-70) Filter does not process nested ${} variables

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

Antony Bourgois commented on MRESOURCES-70:
-------------------------------------------

I'm having the same issue with Maven 2.2.1 - though the nesting works fine in Maven 2.0.7.

In my project's POM, I have the 2 properties:

        <deploy-env>local</deploy-env>
        <db.user>${db.user.${deploy-env}}</db.user>

In the above config, "deploy-env" is defaulted to "local", which I override at the command prompt with -Ddeploy-env=test

In my ~/.m2/settings.xml, I have the following properties:

        <!-- local connection -->
        <db.user.local>defaultAdmin</db.user.local>
        <!-- test connection -->
        <db.user.test>remoteAdmin</db.user.test>

I just have to modify the M2_HOME env variable to switch Maven version and experience the difference in evaluated output.

In my filtered config, ${db.user} evaluates to:
- in 2.0.7 - databaseUser=defaultAdmin   (correct)
- in 2.2.1 - databaseUser=${db.user.${deploy-env}}   (oops! unexpected)

Is this an actual bug or a feature change between 2.0.x and 2.2.x?

It's actually quite an issue for us as you expect.
If you have a comment, that'd be great.

> Filter does not process nested ${} variables
> --------------------------------------------
>
>                 Key: MRESOURCES-70
>                 URL: http://jira.codehaus.org/browse/MRESOURCES-70
>             Project: Maven 2.x Resources Plugin
>          Issue Type: New Feature
>    Affects Versions: 2.2
>            Reporter: Matt Steele
>             Fix For: 2.5
>
>
> When I try filtering this under src/main/resources:
> jms.username=${${env}.jms.username}
> with this filtering strategy:
>   	<resources>
>   		<resource>
>   			<directory>src/main/resources</directory>
>   			<filtering>true</filtering>
>   		</resource>
>   	</resources>
> Setting the property (from command line, <property>, etc.) fails to properly filter the nested element:
> jms.username=${${env}.jms.username} 
> For example, I'd like the filter to convert to this (using a property of -Denv=dev):
> jms.username=${dev.jms.username} 

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