commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Heger <oliver.he...@oliver-heger.de>
Subject Re: [configuration] attributes in xml config don't apply to all entries of a list
Date Thu, 31 May 2012 15:28:03 GMT
Am 31.05.2012 08:30, schrieb Alexander Selg:
> Hi Oliver,
>
> thanks for your clarification.
>
>  From my point of view it would be more straightforward assigning
> attributes to all nodes of a list. Otherwise the list feature seems
> incomlete to me.
> Our lists are a bit longish so I was very happy that I can avoid
> repeating tags in our config.xml.
>
> Does it make sense to create an improvement issue?

Why not? However, I think this issue will not be dealt with in an 1.x 
version because it might break existing code.

For Configuration 2.x list handling and list delimiter parsing are 
certainly topics which can be improved.

Oliver

>
> Otherwise I think I would prefer to read the list as string and parse
> it as a list by myself ...
>
> Thank you for your help,
> Alex
>
> 2012/5/30 Oliver Heger<oliver.heger@oliver-heger.de>:
>> Am 30.05.2012 16:53, schrieb Alexander Selg:
>>
>>> Hi,
>>>
>>> I'm using a different implementation of the DefaultExpressionEngine. I
>>> use attributes in our applications conf.xml to filter the result of
>>> DefaultExpressionEngine.query().
>>> So I have a config file like
>>>
>>> <configuration>
>>>         <someStrings environment="test">str1,str2,str3</someStrings>
>>>         <someStrings environment="prod">str4,str5,str6</someStrings>
>>> </configuration>
>>>
>>> In the query() methode of MyExpressionEngine I want to access these
>>> attributes
>>>
>>>         List<ConfigurationNode>    queryResults = super.query(root, key);
>>>         for (ConfigurationNode queryResult : queryResults) {
>>>             attributes = queryResult.getAttributes();
>>>             ...
>>>         }
>>>
>>> The problem is that I only get the attributes for the first node - the
>>> subsequent nodes don't have any attributes set.
>>> So for "str1" I'll get the attribute environment="test", for "str2"
>>> and "str3" I'll get no attributes.
>>>
>>> Is that a bug?
>>> Am I doing something wrong?
>>>
>>> I'm using commons-configuration 1.8 with jdk1.6
>>>
>>> Any help would be appreciated,
>>> Alex
>>
>>
>> Not sure whether this behavior is somewhere documented, but it is indeed
>> intended. There are unit tests for XMLConfiguration which test that
>> attributes are only assigned to the first node of a list.
>>
>> I guess, there are different use cases. When the code was developed a
>> decision had to be taken. At that time assigning attributes only to the
>> first node seemed to be straightforward.
>>
>> If you have any control over your XML, I would recommend to avoid
>> comma-separated properties with multiple values. In XML lists can be defined
>> in a natural way by just repeating tags. Then the association between
>> attributes and values nodes is obvious.
>>
>> HTH
>> Oliver
>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>> For additional commands, e-mail: user-help@commons.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> For additional commands, e-mail: user-help@commons.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message