commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Heger <>
Subject [configuration] Alternative to CompositeConfiguration
Date Wed, 26 Apr 2006 11:30:05 GMT

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.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message