commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Heger (JIRA)" <>
Subject [jira] Updated: (CONFIGURATION-248) Safeguard config source abstraction by using HierarchicalConfiguration as supertype for all configs
Date Thu, 11 Jan 2007 20:29:28 GMT


Oliver Heger updated CONFIGURATION-248:

    Affects Version/s:     (was: 1.3 Final)

I agree that a future version of the Configuration interface should support the special operations
for hierarchical configurations. Non hierarchical configurations can be seen as a "flat" special
case for hierarchical configurations. However because this is a major change that would break
binary compatibility, such a change can only be done in a major release, i.e. for Commons
Configuration 2.0.

In the meantime: Did you see the CombinedConfiguration class? This is a hierarchical version
of CompositeConfiguration.

> Safeguard config source abstraction by using HierarchicalConfiguration as supertype for
all configs
> ---------------------------------------------------------------------------------------------------
>                 Key: CONFIGURATION-248
>                 URL:
>             Project: Commons Configuration
>          Issue Type: Wish
>    Affects Versions: 1.3 Final
>         Environment: -
>            Reporter: Dennis Kuehn
>             Fix For: 2.0
> I hope I get this right:
> When I have a CompositeConfiguration, the nice thing about it is that I don't have to
care in which file or file type a config entry has been defined. Now when part of my CompositeConfiguration
has a hierarchical structure and I need the API provided by HierarchicalConfiguration, I lose
the aforementioned abstraction: I need to cast a specific part of my CompositeConfiguration
to HierarchicalConfiguration. This is a major design problem!
> It would be better to leverage the Composite Pattern here: derive all configuration classes
from HierarchicalConfiguration. Put differently, move the HierarchicalConfiguration API to
Configuration. Even if a config is not hierarchically structured, methods for hierarchical
access will be present, but that's a minor drawback which is intrinsic to the Composite Pattern.
This also happens when you are modelling a tree structure and you have a common supertype
"Node" which has a method "getSubNodes()" which will also be present in leaf node instances
(in this case, "getSubNodes()" would return null etc.).

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


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

View raw message