The Carbon Configuration system provides a flexible
abstract mechanism for maintaining hierarchical, strongly-typed information.
The configuration hierarchy is a tree structure with each node in the tree
either a Folder, containing other nodes, or a Document, containing configuration
information. The Carbon Core provides a file based system of nodes, but other
Carbon modules provide jar, classloader and JNDI bases nodes. The hierarchy
is extendable to allow implementations of other storage technologies.
Configuration documents are accessed in the hierarchy via Java interfaces.
These interfaces describe the contents of configuration documents. Methods
called on the interfaces retrieve the information contained within the documents.
Because the interfaces are strongly-typed,
developers can be assured of the type of information
coming from configuration documents. This limits developer mistakes
and negates the need to write validation logic.
It also facilitates development and maintenance because configuration interfaces
and their corresponding javadoc can provide
clear and concise documentation about what configuration information is required and
in what format.