Hi, the last weeks I was working on a hierarchical alternative to CompositeConfiguration: the CombinedConfiguration class. The idea is that this class uses so-called NodeCombiner objects for constructing a combined node structure from the properties of the contained configurations. There are special NodeCombiner implementations for creating override and union combined configurations.
A CombinedConfiguration is registered as event listener at the contained configurations. Whenever one of these configurations is modified, the combined node structure is invalidated. The next time properties of the combined configuration are accessed, the structure is re-constructed. The DefaultConfigurationBuilder class was updated to return an instance of CombinedConfiguration. So it is possible to access all properties of the configurations listed in the configuration definition file in a true hierarchical manner (e.g. making use of the XPATH expression engine). The configuration definition file format could be somewhat enhanced for leveraging the new functionality, and I would like to hear your feedback about these enhancements: - All configuration definitions can now have an optional attribute called "config-name" that assigns a logic name to this configuration. It is then possible to access this configuration from the resulting CombinedConfiguration by name. - Attributes that contain meta information for the creation of configuration objects (rather than defining properties to be set on the newly created objects) now all start with the prefix "config-". This includes the attributes "config-at", and "config-optional". (For compatibility reasons the old attributes "at" and "optional" are still supported if no corresponding prefixed attributes exist.) - Configuration declarations in the "override" section now support the (config-) at-attribute, too. - I would like to introduce a new (optional) "header" section that contains information and property definitions related to the resulting CombinedConfiguration. This section would allow for instance to set flags like throwExceptionOnMissing or the list handling flag, choosing an expression engine and such things. WDYT? Oliver --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
