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] preserve mulitline property over load and save
Date Wed, 14 Sep 2011 20:07:30 GMT
Am 14.09.2011 13:18, schrieb Wieland Gmeiner:
> On Wed, Sep 14, 2011 at 12:37 PM, sebb<sebbaz@gmail.com>  wrote:
>> On 14 September 2011 09:23, Wieland Gmeiner<wieland.gmeiner@gmail.com>  wrote:
>>> On Wed, Sep 14, 2011 at 1:15 AM, sebb<sebbaz@gmail.com>  wrote:
>>>> On 13 September 2011 23:19, Wieland Gmeiner<wieland.gmeiner@gmail.com>
 wrote:
>>>>> On Wed, Sep 14, 2011 at 12:06 AM, sebb<sebbaz@gmail.com>  wrote:
>>>>>> On 13 September 2011 21:31, Oliver Heger<oliver.heger@oliver-heger.de>
 wrote:
>>>>>>>> Is there a possiblity to tweak the PropertiesConfiguration
so that it
>>>>>>>> preserves the original layout over a load/store cycle?
>>>>>>
>>>>>> Why do you want to do this?
>>>>>
>>>>> Because I'm programmatically changing configuration files (e.g.
>>>>> inserting additional properties) and it would be nice not to mess up
>>>>> the layout of the original files. A sysadmin won't be pleased if some
>>>>> update program changes the layout of his handcrafted config files. I
>>>>> wouldn't.
>>>>
>>>> In that case, I think you are going to have to write your own output method.
>>>>
>>>> So long as you don't change any of the input settings, you should just
>>>> be able to append the new ones to the end.
>>>
>>> I also have to change values of already existing properties, so
>>> appending only is not a choice.
>>
>> Fixing property values in place is going to be a lot harder in general.
>>
>> As already noted, the original formatting is dropped when the file is loaded.
>> But even if the format were retained, it's still tricky to rewrite the
>> file with the new values if spacing is significant.
>> What if the new values are longer or shorter? Should spacing be adjusted?
>> If the original property has a single value, and another value is
>> added, should this be on the same line or the next?
>> And what spacing should be used?
>>
>> Try writing down the rules for updating the file assuming that the
>> person doing it has no knowledge of what the format is trying to
>> achieve.
>
> I know it's hard, because I tried to do that for xml and properties
> with the Java SE alone. While handling the "real" work (i.e. merging
> nodes/properties) is not so hard, the layout problem was driving me
> nuts, thats why I started to search some library where someone already
> solved that problem for me. But it seems that will remain on the todo
> list at the moment.

A possible approach could be to extend PropertiesConfigurationLayout to 
store the unprocessed property values. (This is similar to what sebb had 
already suggested.) It should be feasible to extend the special 
properties reader class so that it can provide the original data.

As long as property values are not changed, the original layout of the 
file could be retained (at least to a better degree). 
PropertiesConfigurationLayout uses a linked hash map to store its data 
so the order is also kept. (IIRC multiple occurrences of properties are 
an exception, they are always grouped together.)

If there are really specific needs for formatting property values, maybe 
the layout object could be extended to provide a method for setting a 
formatted property value.

But all of this is not trivial and will also increase memory 
consumption. So it should be possible to disable this feature if it is 
not needed (or maybe even disabled per default).

Just some thoughts - I am still unsure whether this is worth the effort.

Oliver

>
>>> Btw, for appending only I don't need configurations at all.
>>>
>>> ---------------------------------------------------------------------
>>> 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