= Appendix B: Development features = <> This section covers how some deploy specific problems are dealt with. This section should most properly be moved elsewhere, but where?? == XMLStructure == To handle the configuration files in the ~+{{{xml}}}+~ format, a new structure had to be implemented. === Problem === This problem involves the creation of the setting files for the applications. Since the settings are inherited through the hierarchy, the datastructure for handling these settings should be able to inherit and overwrite such settings. The structure should also be able to write out the final settings to a file. === Analysis === The existing ~+{{{XMLTree}}}+~ class (under ~+{{{dk.netarkivet.common.utils}}}+~) only has functions to get data from xml files, and does therefore not have the required features to handle the problems of ~+{{{Deploy}}}+~. A new class for handling these problems are therefore needed. It will be too much work to implement a new XML handling tool from scratch, when so many other datastructures for handling xml files already exists. ~+{{{XMLTree}}}+~ uses the ~+{{{com.dom4j}}}+~ library, which handles the xml format very well. It also contains a lot of features which can be used for manipulating the xml document. === Solution === It is only the settings in the deployGlobal level which is loaded directly from the document. The settings of the other instances are initially inherited from the level above, and their specific settings are used to overwrite/append to these settings. The overwrite/append means that the branches in the settings which are not there already, will be created and appended. While the existing branches will have their value overwritten.