# Package org.apache.commons.configuration2

The Configuration main package. It contains the definition of the `Configuration` interface and frequently used implementations like `PropertiesConfiguration` (dealing with `.properties` files) or `XMLConfiguration` that can load XML documents.

- Interface Summary
  Interface | Description
  --- | ---
  Configuration | The main Configuration interface.
  ConfigurationComparator | Comparator for configurations interface.
  ConfigurationConsumer<T> | A Configuration task that may throw a ConfigurationException.
  ConfigurationDecoder | An interface for decoding encoded values from a configuration source.
  FileBasedConfiguration | An interface which combines the `FileBased` and `Configuration` interfaces.
  HierarchicalConfiguration<T> | An interface for mutable hierarchical configurations.
  ImmutableConfiguration | The main interface for accessing configuration data in a read-only fashion.
  ImmutableHierarchicalConfiguration | An interface for immutable hierarchical configurations.
  Initializable | Definition of an interface to be implemented by `Configuration` implementations which support a special initialization method.
  PropertiesConfiguration.IOFactory | Definition of an interface that allows customization of read and write operations.

- Class Summary
  Class | Description
  --- | ---
  AbstractConfiguration | Abstract configuration class.
  AbstractHierarchicalConfiguration<T> | A specialized configuration class that extends its base class by the ability of keeping more structure in the stored properties.
  AbstractYAMLBasedConfiguration | A base class for configuration implementations based on YAML structures.
  BaseConfiguration | Basic configuration class.
  BaseConfigurationXMLReader | A specialized SAX2 XML parser that processes configuration objects.
  BaseHierarchicalConfiguration | A specialized hierarchical configuration implementation that is based on a structure of `ImmutableNode` objects.
  BaseHierarchicalConfiguration.BuilderVisitor | A specialized visitor base class that can be used for storing the tree of configuration nodes.
  CombinedConfiguration | A hierarchical composite configuration class.
  CompositeConfiguration | `CompositeConfiguration` allows you to add multiple `Configuration` objects to an aggregated configuration.
  ConfigurationConverter | Configuration converter.
  ConfigurationLookup | A specialized implementation of the `Lookup` interface which uses a `Configuration` object to resolve variables.
  ConfigurationMap | The `ConfigurationMap` wraps a configuration-collection `Configuration` instance to provide a `Map` interface.
  ConfigurationUtils | Miscellaneous utility methods for configurations.
  ConfigurationXMLReader | A base class for "faked" `XMLReader` classes that transform a configuration object in a set of SAX parsing events.
  DatabaseConfiguration | Configuration stored in a database.
  DataConfiguration | Decorator providing additional getters for any Configuration.
  DynamicCombinedConfiguration | DynamicCombinedConfiguration allows a set of CombinedConfigurations to be used.
  EnvironmentConfiguration | A Configuration implementation that reads the platform specific environment variables using the map returned by `System.getenv()`.
  HierarchicalConfigurationXMLReader<T> | A specialized SAX2 XML parser that "parses" hierarchical configuration objects.
  INIConfiguration | A specialized hierarchical configuration implementation for parsing ini files.
  INIConfiguration.Builder | Builds instances of INIConfiguration.
  JNDIConfiguration | This Configuration class allows you to interface with a JNDI datasource.
  JSONConfiguration | A specialized hierarchical configuration class that is able to parse JSON documents.
  MapConfiguration | A Map based Configuration.
  PatternSubtreeConfigurationWrapper | Wraps a BaseHierarchicalConfiguration and allows subtrees to be accessed via a configured path with replaceable tokens derived from the ConfigurationInterpolator.
  PropertiesConfiguration | This is the "classic" Properties loader which loads the values from a single or multiple files (which can be chained with "include =".
  PropertiesConfiguration.DefaultIOFactory | A default implementation of the `IOFactory` interface.
  PropertiesConfiguration.JupIOFactory | An alternative `PropertiesConfiguration.IOFactory` that tries to mimic the behavior of `Properties` (Jup) more closely.
  PropertiesConfiguration.JupPropertiesReader | A `PropertiesConfiguration.PropertiesReader` that tries to mimic the behavior of `Properties`.
  PropertiesConfiguration.JupPropertiesWriter | A `PropertiesConfiguration.PropertiesWriter` that tries to mimic the behavior of `Properties`.
  PropertiesConfiguration.PropertiesReader | This class is used to read properties lines.
  PropertiesConfiguration.PropertiesWriter | This class is used to write properties lines.
  PropertiesConfigurationLayout | A helper class used by `PropertiesConfiguration` to keep the layout of a properties file.
  StrictConfigurationComparator | Strict comparator for configurations.
  SubnodeConfiguration | A specialized hierarchical configuration class with a node model that uses a tracked node of another node model as its root node.
  SubsetConfiguration | A subset of another configuration.
  SystemConfiguration | A configuration based on the system properties.
  XMLConfiguration | A specialized hierarchical configuration class that is able to parse XML documents.
  XMLPropertiesConfiguration | This configuration implements the XML properties format introduced in Java 5.0, see http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html.
  YAMLConfiguration | A specialized hierarchical configuration class that is able to parse YAML documents.