Thanks Oliver, that worked.
Thanks for your help with this.
Brian
On Wed, Nov 26, 2008 at 9:31 PM, Oliver Heger
<[EMAIL PROTECTED]>wrote:
> Brian Boyle schrieb:
>
>> Hi Oliver,
>>
>> Thanks for replying so quickly.
>> I tried out your suggestion and it works perfectly.
>> I've had a look at the CombinedConfiguration object and I managed to get
>> it
>> working. I have added my code below.....is this the correct way to do this
>> or is there an even easier way to do it with CombinedConfiguration?
>>
>> Cheers,
>>
>> Brian
>>
>> CombinedConfiguration cc = new CombinedConfiguration(new
>> OverrideCombiner());
>> cc.addConfiguration(masterConf);
>> cc.addConfiguration(localConf);
>>
>> XMLConfiguration result = new XMLConfiguration();
>> result.setRootNode(cc.getRootNode());
>> XMLConfiguration finalResult = new XMLConfiguration(result);
>> finalResult.setRootElementName("IMConfig");
>> finalResult.save("resources/CombinedConfig.xml");
>>
>>
> I think you should be able to do
>
> CombinedConfiguration cc = new CombinedConfiguration(new
> OverrideCombiner());
> cc.addConfiguration(masterConf);
> cc.addConfiguration(localConf);
> XMLConfiguration result = new XMLConfiguration(cc);
> result.save(...);
>
> Oliver
>
>
>
>> On Wed, Nov 26, 2008 at 9:04 PM, Oliver Heger
>> <[EMAIL PROTECTED]>wrote:
>>
>> Brian Boyle schrieb:
>>>
>>> Hi there,
>>>
>>>> I am using the OverrideCombiner class to combine two XMLConfigurations
>>>> together. This works fine and then I set this combined configuration as
>>>> the
>>>> RootNode of a new XMLConfigruation. I am then trying to save this newly
>>>> created configuration as a new file and this does not seem to work. Does
>>>> anybody know if this is possible or have a missed a step along the way?
>>>>
>>>> Thanks,
>>>>
>>>> Brian
>>>> P.S. Here is my code.
>>>>
>>>> XMLConfiguration masterConf = new XMLConfiguration();
>>>> XMLConfiguration localConf = new XMLConfiguration();
>>>> masterConf.load("resources/Masterconfig.xml");
>>>> localConf.load("resources/localConfig.xml");
>>>>
>>>> NodeCombiner combiner = new OverrideCombiner();
>>>> ConfigurationNode cn =
>>>> combiner.combine(localConf.getRootNode(),
>>>> masterConf.getRootNode());
>>>>
>>>> XMLConfiguration result = new XMLConfiguration();
>>>> result.setRootNode(cn);
>>>> result.save("resources/CombinedConfig.xml");
>>>>
>>>>
>>>> The problem is that the configuration nodes contain references to the
>>> XML
>>> DOM elements they correspond to. These references are also used by
>>> XMLConfiguration to find out, which nodes have been changed and must be
>>> written.
>>>
>>> To solve your problem these references must be cleared. The easiest way
>>> to
>>> do this is using the constructor of XMLConfiguration that takes another
>>> hierarchical configuration as argument. You can try creating another
>>> XMLConfiguration as copy of the existing one:
>>>
>>> XMLConfiguration result = new XMLConfiguration();
>>> result.setRootNode(cn);
>>> XMLConfiguratiion finalResult = new XMLConfiguration(result);
>>> finalResult.save(...);
>>>
>>> BTW, is there a reason why you do not use CombinedConfiguration? This
>>> class
>>> will do the work with the combiners for you. You can then create the
>>> result
>>> XMLConfiguration from this combined configuration.
>>>
>>> HTH
>>> Oliver
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
Brian Boyle
Mobile: 087 418 5215
Email: [EMAIL PROTECTED]