You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Oliver Heger <ol...@t-online.de> on 2006/04/26 13:30:05 UTC

[configuration] Alternative to CompositeConfiguration

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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: [configuration] Alternative to CompositeConfiguration

Posted by Jörg Schaible <jo...@gmx.de>.
Hi Oliver,

Oliver Heger wrote:

> 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?

Sounds all reasonable ;-)

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org