Hello Tao,

there have recently been a couple of changes in [commons-configuration] related to a consistent handling of load() and save() methods across file based configuration classes. Some of the problems you encountered are probably caused by bugs that have been corrected in the mean time. So first of all you should update to the latest version, which is RC 2.

To your first experiment: You are correct that CompositeConfiguration concentrates on gathering configuration sources, but does not have much support for saving. A workaround is to cast the Configuration object returned by ConfigurationFactory to a CompositeConfiguration and directly to access the Configuration objects contained in the composite (using the getConfiguration(int index) method), cast them to the correct sub type and then call their save() methods. This should work.

To your second experiment: I am a bit confused because HierarchicalXMLConfiguration does not provide a save() method at the moment. Do you mean XMLConfiguration? Well, the FileNotFoundException thrown by save() methods of XMLConfiguration were caused by a bug that has been fixed. So an update to the newest version will probaby help. For HierarchicalXMLConfiguration I have written a patch that implements a save() method, but that has not been applied yet.

I hope I could help you. The official place for obtaining information about Jakarta commons components and putting questions is the commons user mailing list (which I have CCed). You should subscribe at this list. Maybe there are further replies to this posting.

Oliver

Tao Wang wrote:

Dear Mr. Heger:

My name is Tao Wang. I am trying to use commons-configuration to load and update XML configuration data. I got some problems when trying to save configuration. I can't find good examples over the Internet. I found your name inside the javadoc, and wondering if you don't mind give me some help or sample code for me to follow.

Basically, I did two experiments. First, I created a parent xml file that includes two 
configuration xml files. I created a Configuration using ConfigurationFactory, which 
returns a reference to Configuration. Reading the configuration data has no problem. 
But I can't save it, because the save() method is not defined in Configuration 
interface. Do I have to cast the reference to a child class that has save methods? In 
addition, since I load the data from two different xml files, I don't know how data 
can be saved into right files. Is that possible? If so, how?

My second experiment is to directly use HierarchicalXMLConfiguration class to load one 
configuration xml file. I have no problem to load the data. But I still can't call any 
of the save() methods. I got exception indicating that the file is not found. But I 
load the file successfully! If I tried to save it to another file, the exception said 
that it can't save to the file without giving a reason, though the file is actually 
created. Could you probably show me how to do the saving with 
HierarchicalXMLConfiguration class?

Your generous care and help would be greatly appreciated!

Best Regards,

Tao Wang






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to