Jackrabbit configuration handling.

This package contains functionality for reading and manipulating the Jackrabbit configuration. The configuration functionality can be divided in two parts: parsing and representing configuration.

## Parsing configuration

The configuration parsing functionality is located in the {@link org.apache.jackrabbit.core.config.ConfigurationParser ConfigurationParser} class. The parser class reads repository and workspace configuration files and builds corresponding configuration object structures.

The static `create()` factory methods of the {@link org.apache.jackrabbit.core.config.RepositoryConfig RepositoryConfig} class are the standard ways of invoking the configuration parser.

## Representating configuration

The parsed configuration information is represented using Config object structures. The {@link org.apache.jackrabbit.core.config.RepositoryConfig RepositoryConfig} and {@link org.apache.jackrabbit.core.config.WorkspaceConfig WorkspaceConfig} classes are used for the top-level configuration. Other configuration classes are used according to the class diagram shown below.

In addition to the static configuration information, some Config classes contain references to configured implementation objects. These implementation objects are not instantiated in the Config constructors to simplify configuration parsing. Instead the Config classes provide an `init()` method that instantiates and initializes all contained implementation objects.

The {@link org.apache.jackrabbit.core.config.RepositoryConfig RepositoryConfig} class contains also a set of static and instance methods for manipulating the repository configuration, especially creating and loading workspace configurations.

## Modifying configuration

The configuration classes in this package are immutable to enforce the contract that the configuration should not be modified once it has been intstantiated. It is possible to subclass the configuration classes as long as the immutability contract is not broken. The public constructors allow a limited form of dynamic configurability for Jackrabbit, but note that the only officially supported Jackrabbit configuration interface are the XML configuration files.