\u001B[1mSYNOPSIS\u001B[0m
    ${project.description}

    Original Maven URL:
        \u001B[33mmvn:${pkgGroupId}/${pkgArtifactId}/${pkgVersion}\u001B[0m

\u001B[1mDESCRIPTION\u001B[0m
    Commons Configuration provides a generic configuration interface which enables a Java application to read
    configuration data from a variety of sources. Commons Configuration provides typed access to single, and
    multi-valued configuration parameters as demonstrated by the following code:

        Double double = config.getDouble("number");
        Integer integer = config.getInteger("number");

    Configuration parameters may be loaded from the following sources:

        * Properties files
        * XML documents
        * Windows INI files
        * Property list files (plist)
        * JNDI
        * JDBC Datasource
        * System properties
        * Applet parameters
        * Servlet parameters

    Different configuration sources can be mixed using a ConfigurationFactory and a CompositeConfiguration.
    Additional sources of configuration parameters can be created by using custom configuration objects.
    This customization can be achieved by extending AbstractConfiguration or AbstractFileConfiguration.

\u001B[1mSEE ALSO\u001B[0m
    \u001B[36mhttp://commons.apache.org/configuration/\u001B[0m
