blob: 6ad1a37df13bd5811354ab6103a3e590425370a6 [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.
-->
<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Commons</title>
<author email="dev@commons.apache.org">Commons Documentation Team</author>
</properties>
<body>
<section name="The Digester Component">
<p>Many projects read XML configuration files to provide initialization
of various Java objects within the system. There are several ways of doing
this, and the <em>Digester</em> component was designed to provide a common
implementation that can be used in many different projects.</p>
<p>Basically, the <em>Digester</em> package lets you configure an XML -&gt;
Java object mapping module, which triggers certain actions called
<em>rules</em> whenever a particular pattern of nested XML elements is
recognized. A rich set of predefined <em>rules</em> is available for your
use, or you can also create your own.</p>
</section>
<section name="Documentation">
<p>User documentation is available in the website, you can start reading the
<a href="http://commons.apache.org/digester/commons-digester-3.0/core.html">Core APIs</a>.</p>
<p>The <a href="http://commons.apache.org/digester/commons-digester-3.0/RELEASE-NOTES.txt">
Release Notes</a> document the new features and bug fixes that have been
included in this release.</p>
<p>The "examples" directory in the source code repository contains code which
demonstrates the basic functionality. In particular, you should read the
AddressBook example in the "api" subdirectory. You can view the examples
directly from the Subversion repository via <a
href="http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/examples/">
the web-based repository browser</a> web site, or can use subversion to
download the files.
</p>
<p>For the FAQ and other digester-related information, see
<a href="http://wiki.apache.org/commons/Digester">the Digester wiki page</a>.
</p>
</section>
<section name="Releases">
<subsection name="Digester 3.2 (December 2011)">
<p>The Digester 3.2 release is a maintenance release that adds the most innovating feature ever, providing the
objects <a href="./guide/constructor.html">Constructor</a> feature.</p>
<p>Take a look at Digester 3.2 release <a href="./changes-report.html#a3.2">changes list</a> for more details.</p>
<p>Digester 3.2 <b>requires a minimum of JDK 1.5</b>.</p>
<p>The recommended dependency set for Digester 3.2 is:</p>
<table>
<tr>
<th colspan="4">Recommended Dependency Set</th>
</tr>
<tr>
<td><strong>Digester</strong></td>
<td>+Logging 1.1.1</td>
<td>+BeanUtils 1.8.3</td>
<td>+CGLIB 2.2.2</td>
</tr>
</table>
<p>Since dependencies increased by number, since 3.2 release, Digester is distributed also in a single artifact
with shaded dependencies.</p>
<p>Maven users that want to switch over shaded artifact, must use the <code>with-deps</code> classifier:</p>
<source><![CDATA[<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-digester3</artifactId>
<version>3.2</version>
<classifier>with-deps</classifier>
</dependency>]]></source>
</subsection>
<subsection name="Digester 3.1 Release (October 2011)">
<p>The Digester 3.1 release is a maintenance release that adds the
<a href="./guide/async.html">Asynchronous parser</a> feature.</p>
</subsection>
<subsection name="Digester 3.0 Release (July 2011)">
<p>
The Digester 3.0 is an almost complete rewrite of the original Digester implementation, which offers:
</p>
<ul>
<li>
A universal loader: core features and extensions became not so easy to maintain, since every contribution was created
with a different approach; a fresh new architecture is able to load modules that allow users write and include easily
their own extensions;
</li>
<li>
Reusability of Digester configurations: what was missing is a way to
<i>describe</i>
how the Digester instances have to be built and not how to set rules given an existing instance;
</li>
<li>
Rules are now expressed via EDSL: the key feature of Digester3 is expressing rule bindings using a fluent APIs
collection, that speak more in English rather than in a programming language;
</li>
<li>
Improved errors reporting: rules binding debug operations have made easier, a detailed errors list of wrong binding is
reported just when the loader attempts to create a new Digester instance, and not when running it.
</li>
</ul>
<p><em>Acknowledgements</em>: The Digester 3 has been inspired by special people:</p>
<ul>
<li>Rahul Akolkar, for mentoring;</li>
<li>
James Carman, who had the initial idea of building a Digester with fluent APIs;
</li>
<li>Matt Benson, for having influenced on DSL;</li>
<li>
Daniele Testa [mrwolfgraphics AT gmail DOT com], who provided the Digester3 logo.
</li>
</ul>
</subsection>
</section>
<section name="Resources">
<ul>
<!-- newest first sounds like a reasonable rule -->
<li>
Jul 11, 2011 - The online magazine JaxEnter interviews Commons PMC Member Simone Tripodi asking
<a href="http://jaxenter.com/what-s-new-in-apache-commons-digester-3-0-36817.html">What's New in Apache Commons Digester 3.0?</a>.
</li>
<li>
<a href="http://wiki.apache.org/commons/Digester">The Apache wiki page for the commons digester component</a>.
</li>
<li>
Jan 6, 2005 - <a href="http://www.onjava.com/pub/a/onjava/2004/12/22/jakarta-gems-1.html">O&apos;Reilly article</a> by Timothy M. O&apos;Brien about jakarta commons in general, including info on Digester.
</li>
<li>
Jun 2, 2003 - <a href="http://www-106.ibm.com/developerworks/java/library/j-lucene/">IBM developerWorks article</a> by Otis Gospodnetic about parsing, indexing and searching XML with Digester and Lucene.
</li>
<li>
Oct 25, 2002 - <a href="http://www.javaworld.com">JavaWorld</a> has an
article on Digester entitled <a href="http://www.javaworld.com/javaworld/jw-10-2002/jw-1025-opensourceprofile.html">
Simplify XML file processing with the Apache Commons Digester</a>.
</li>
<li>
Oct 23, 2002 - <a href="http://www.onjava.com">OnJava</a> has an article
on Digester entitled
<a href="http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html">
Learning and using Jakarta Digester</a>.</li>
</ul>
</section>
</body>
</document>