You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Oliver Heger (Commented) (JIRA)" <ji...@apache.org> on 2012/02/29 21:49:58 UTC

[jira] [Commented] (CONFIGURATION-481) Variable interpolation across files broken in 1.7 & 1.8

    [ https://issues.apache.org/jira/browse/CONFIGURATION-481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13219533#comment-13219533 ] 

Oliver Heger commented on CONFIGURATION-481:
--------------------------------------------

I am working on a fix (or better a re-implementation) based on the {{ConfigurationInterpolator}} class and its feature to construct a chain of interpolators. The idea is that {{DefaultConfigurationBuilder}} adds a special parent interpolator to the configurations it creates which queries the newly constructed {{CombinedConfiguration}}.

However, I must admit it is a mystery to me how this feature could work in the past. (I also did not find any breaking change.) It was certainly an undocumented feature which only worked by acciddent.
                
> Variable interpolation across files broken in 1.7 & 1.8
> -------------------------------------------------------
>
>                 Key: CONFIGURATION-481
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-481
>             Project: Commons Configuration
>          Issue Type: Bug
>          Components: Interpolation
>    Affects Versions: 1.7, 1.8
>         Environment: Any OS, but have verified with Windows 7 and AIX 6.1, running Java 1.6.0.
>            Reporter: Jim Prantzalos
>            Assignee: Oliver Heger
>         Attachments: ApacheBug-CONFIGURATION-481.7z
>
>
> With Commons Configuration 1.6, I was able to declare a variable in a properties file, and then reference it in a XML file using the $\{myvar\} syntax.
> For example:
> global.properties:
> {noformat}myvar=abc{noformat}
> test.xml:
> {code:xml}
> <products>
>   <product name="abc">
>     <desc>${myvar}-product</desc>
>   </product>
> </products>
> {code}
> config.xml:
> {code:xml}
> <properties fileName="global.properties"/>
> <xml fileName="test.xml" config-name="test">
>   <expressionEngine config-class="org.apache.commons.configuration.tree.xpath.XPathExpressionEngine"/>
> </xml>
> {code}
> When I try to retrieve the value, like so:
> {code}combinedConfig.getConfiguration("test").configurationAt("products/product[@name='abc']", true).getString("desc"){code}
> I get "$\{myvar\}-product" instead of "abc-product".
> This was working in Commons Configuration 1.6, but seems to be broken in 1.7 and 1.8.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira