You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2020/01/20 20:38:00 UTC

[jira] [Comment Edited] (CONFIGURATION-753) Handling of interpolation is inconsistent

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

Gary D. Gregory edited comment on CONFIGURATION-753 at 1/20/20 8:37 PM:
------------------------------------------------------------------------

[~tpoliaw]

Looking at [https://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html#Properties_files] it would seem that the way to do list values in properties file is, for example:

foo = value1, value2, value3

There is also [https://commons.apache.org/proper/commons-configuration/userguide/howto_basicfeatures.html#List_handling]

What is worrisome is that there is some code that must build a list based on repeated keys and I am not sure if that is documented or intentional. This is obviously an area where a unit test is needed if it is missing.

Maybe someone else can chime in. I find it odd that repeating keys would build a list since that is far from what a java.util.Properties object can do.

Thoughts?

 


was (Author: garydgregory):
[~tpoliaw]

Looking at [https://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html#Properties_files] it would seem that the way to do list values in properties file is, for example:

foo = value1, value2, value3

There is also [https://commons.apache.org/proper/commons-configuration/userguide/howto_basicfeatures.html#List_handling]

What is worrisome is that there is some code that must build a list based on repeated keys and I am not sure if that is documented or intentional.

Maybe someone else can chime in. I find it odd that repeating keys would build a list since that is far from what a java.util.Properties object can do.

Thoughts?

 

> Handling of interpolation is inconsistent
> -----------------------------------------
>
>                 Key: CONFIGURATION-753
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-753
>             Project: Commons Configuration
>          Issue Type: Bug
>          Components: Interpolation
>    Affects Versions: 2.5
>         Environment: Java 8, Configurations2 2.5
>            Reporter: Peter
>            Priority: Major
>         Attachments: test.properties
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> If a key is repeated in a configuration and then used in an interpolation elsewhere, the behaviour is inconsistent. There are other tickets/discussions about whether it should just pick the first value or not, but I don't think it should do both.
> {code:java|title=/tmp/test.properties}
> abc = hello
> abc = world
> foo.one = ${abc}
> foo.two = prefix ${abc} suffix
> {code}
> {code:java|title=Demo.java (main)}
> Parameters params = new Parameters();
> FileBasedConfigurationBuilder<FileBasedConfiguration> builder = new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
>     .configure(params.fileBased()
>         .setFileName("/tmp/test.properties")
>       );
> try {
>     FileBasedConfiguration config = builder.getConfiguration();
>     System.out.println(config.getString("foo.one"));
>     System.out.println(config.getString("foo.two"));
> } catch (ConfigurationException cex) {
>     // pass
> }
> {code}
> The output from the above is
> {noformat}
> hello 
> prefix [hello, world] suffix
> {noformat}
> In the first case, only the first value is being matched, in the second both values (and [, ]) are used.
> I'd expect the output to either be
> {noformat:title=First value only}
> hello
> prefix hello suffix
> {noformat}
> or
> {noformat:title=Both values used}
> [hello, world]
> prefix [hello, world] suffix
> {noformat}
> I can work around whichever style is chosen but think it'd be much more intuitive if both cases were handled the same.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)