# Package org.apache.commons.configuration2

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.

- Related Packages
  Package
  Description
  org.apache.commons.configuration2.beanutils
  In this package a `Configuration` implementation can be found that implements the `DynaBean` interface.
  org.apache.commons.configuration2.builder
  This package contains the implementations of configuration builder classes used to create new `Configuration` objects.
  org.apache.commons.configuration2.convert
  This package contains interfaces and classes related to data type conversions.
  org.apache.commons.configuration2.event
  This package contains interfaces and classes for receiving notifications about changes at configurations.
  org.apache.commons.configuration2.ex
  This package contains all exception classes used by this library.
  org.apache.commons.configuration2.interpol
  A package with helper classes used for interpolation (variable substitution).
  org.apache.commons.configuration2.io
  A package with classes related to I/O operations.
  org.apache.commons.configuration2.plist
  Configuration classes supporting NeXT / OpenStep /GNUStep style configuration.
  org.apache.commons.configuration2.reloading
  This package contains classes and interfaces related to the reloading mechanism.
  org.apache.commons.configuration2.resolver
  A package containing EntityResolvers.
  org.apache.commons.configuration2.spring
  A package containing integrations for the Spring Framework.
  org.apache.commons.configuration2.sync
  A package containing interfaces and classes related to synchronization of configurations.
  org.apache.commons.configuration2.tree
  A package with helper and utility classes used by hierarchical configurations.
  org.apache.commons.configuration2.web
  This package contains some implementations of the `Configuration` interface that are useful in web environments.
- 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.
  Configuration
  The main Configuration interface.
  ConfigurationComparator
  Comparator for configurations interface.
  ConfigurationConsumer<T>
  A Configuration task that may throw a ConfigurationException.
  ConfigurationConverter
  Configuration converter.
  ConfigurationDecoder
  An interface for decoding encoded values from a configuration source.
  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()`.
  FileBasedConfiguration
  An interface which combines the `FileBased` and `Configuration` interfaces.
  HierarchicalConfiguration<T>
  An interface for mutable hierarchical configurations.
  HierarchicalConfigurationXMLReader<T>
  A specialized SAX2 XML parser that "parses" hierarchical configuration objects.
  ImmutableConfiguration
  The main interface for accessing configuration data in a read-only fashion.
  ImmutableHierarchicalConfiguration
  An interface for immutable hierarchical configurations.
  INIConfiguration
  A specialized hierarchical configuration implementation for parsing ini files.
  INIConfiguration.Builder
  Builds instances of INIConfiguration.
  Initializable
  Definition of an interface to be implemented by `Configuration` implementations which support a special initialization method.
  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.IOFactory
  Definition of an interface that allows customization of read and write operations.
  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, see https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html.
  YAMLConfiguration
  A specialized hierarchical configuration class that is able to parse YAML documents.