blob: 1b8956022f569e1844065d69d34f3c5888ac70f3 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- ===================================================================== -->
<!-- $Id$ -->
<!-- ===================================================================== -->
<document>
<properties>
<author email="pete@kazmier.com">Pete Kazmier</author>
<author email="mpoeschl@marmot.at">Martin Poeschl</author>
<author email="jason@zenplex.com">Jason van Zyl</author>
<author email="epugh@upstate.com">Eric Pugh</author>
<author email="tobrien@discursive.com">Tim O'Brien</author>
<author email="rgoers@apache.org">Ralph Goers</author>
<title>Java Configuration API</title>
</properties>
<body>
<section name="Intro">
<p>
The Commons Configuration software library 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:
<source><![CDATA[
Double double = config.getDouble("number");
Integer integer = config.getInteger("number");
]]></source>
</p>
<p>
Configuration parameters may be loaded from the following sources:
<ul>
<li>Properties files</li>
<li>XML documents</li>
<li>Windows INI files</li>
<li>Property list files (plist)</li>
<li>JNDI</li>
<li>JDBC Datasource</li>
<li>System properties</li>
<li>Applet parameters</li>
<li>Servlet parameters</li>
</ul>
Configuration objects are created using configuration builders.
Different configuration sources can be mixed using a <code>CombinedConfigurationBuilder</code> and
a <code>CombinedConfiguration</code>. Additional sources of configuration parameters can
be created by using custom configuration objects. This customization can be achieved by
extending <code>AbstractConfiguration</code> or <code>AbstractHierarchicalConfiguration</code>.
</p>
<p>
The full Javadoc API documentation is available <a href="apidocs/index.html">here</a>.
</p>
</section>
<section name="Commons Configuration 2.0 beta2">
<p>
The latest stable release of Apache Commons Configuration is version 1.10. It is available from the
<a href="http://commons.apache.org/configuration/download_configuration.cgi">Apache download area</a>.
It is also available from the <a href="http://repo1.maven.org/maven2/commons-configuration/commons-configuration/">Maven repository</a>.
The <a href="changes-report.html">Changes Report</a> explains all of the changes and bug fixes that have been made.
</p>
<p>
In the meantime, work has been spent on a major redesign of the library
addressing some of the weaknesses of the 1.x version series. The results
are now made available as a series of alpha and beta releases. These releases aim at gaining
feedback from the community regarding changed and new concepts implemented
for version 2.0. They are not yet production ready! The current beta version is also
available from the <a href="http://commons.apache.org/configuration/download_configuration.cgi">Download
page</a>; however, it was decided to <strong>not</strong> publish it to
Maven central. (We want to prevent the problematic scenario of having
multiple incompatible artifacts with the same Maven coordinates.) There is
a <a href="userguide/upgradeto2_0.html">Migration guide</a> that can be
used as guideline when upgrading from version 1.x to 2.0. It describes the
most important changes.
</p>
</section>
<section name="History">
<p>
Commons Configuration started as code in Apache JServ. The JServ code was subsequently
added to <a href="http://jakarta.apache.org/turbine">Jakarta Turbine</a>. After Jakarta
Turbine, this configuration interface moved to <a href="http://jakarta.apache.org/velocity">Jakarta Velocity</a>
and underwent various improvements. After Velocity, this code was introduced to the
<a href="http://commons.apache.org">Apache Commons</a> as <code>ExtendedProperties</code>.
Configuration began life in the Commons as a Sandbox component, and was promoted to the
Commons Proper in late 2003.
</p>
</section>
<section name="Bugs">
<p>
Bugs may be reported via the <a href="http://issues.apache.org/jira/browse/CONFIGURATION">ASF JIRA</a>
system. Detailed information can be found on the <a href="issue-tracking.html">issue tracking page</a>.
</p>
</section>
</body>
</document>