blob: 11e0af4348956e9f1c4458255728a9289ce8d154 [file] [log] [blame]
<?xml version="1.0"?>
<document>
<properties>
<title>Commons</title>
<author email="commons-dev@jakarta.apache.org">Commons Documentation Team</author>
</properties>
<body>
<section name="The Digester Component">
<p>Many Jakarta 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. Advanced features of <em>Digester</em>
include:</p>
<ul>
<li>Ability to plug in your own pattern matching engine, if the standard one
is not sufficient for your requirements.</li>
<li>Optional namespace-aware processing, so that you can define rules that
are relevant only to a particular XML namespace.</li>
<li>Encapsulation of <em>Rules</em> into <em>RuleSets</em> that can be
easily and conveniently reused in more than one application that requires
the same type of processing.</li>
</ul>
</section>
<section name="Documentation">
<p>User documentation is available as package descriptions within the
<a href="http://jakarta.apache.org/commons/digester/api/index.html">JavaDoc
API documents</a>. In particular, you should read the package description for
the <code>org.apache.commons.digester</code> package for detailed information
on using the package.</p>
<p>The <a href="http://jakarta.apache.org/commons/digester/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 CVS 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 CVS repository via <a
href="http://cvs.apache.org/viewcvs.cgi/jakarta-commons/digester/src/examples/">
the ViewCVS</a> web site, or can use CVS to download the files.
</p>
</section>
<section name="Releases">
<subsection name='Digester 1.6 Release'>
<p>
Digester 1.6 is an important release adding extra functionality
as well as fixes for bugs. It represents an important milestone in the evolution
of the Digester 1 design codebase.
</p>
<p>
Digester has a dependency on
<a href='http://jakarta.apache.org/commons/collections'>Commons Collections</a>.
This threatens to raise compatibility issues
now that two incompatible series of releases exist.
Fortunately, this dependency is only upon a single mature class (ArrayStack) and the versions
of this class to be found in different versions of the library are binary compatible.
Therefore a release from the 2.x series or from the 3.x series of commons collections
will do equally well (even though these libraries are incompatible). The dependency can
alternatively be satisfied by including the latest BeanUtils release (1.7)
(which includes the class).
</p>
<p>
The dependencies neccessary for Digester 1.6 can be summarized as follows:
</p>
<table>
<tr>
<th colspan='4'>Compatible Dependency Sets</th>
</tr>
<tr>
<td>Digester</td>
<td>+Logging 1.0.x</td>
<td>+BeanUtils 1.x</td>
<td>+Collections 2.x</td>
</tr>
<tr>
<td>Digester</td>
<td>+Logging 1.0.x</td>
<td>+BeanUtils 1.x</td>
<td>+Collections 3.x</td>
</tr>
<tr>
<td>Digester</td>
<td>+Logging 1.0.x</td>
<td>+BeanUtils 1.7</td>
<td>-</td>
</tr>
</table>
<p>
Digester 1.6.0 release is currently in preparation.
</p>
</subsection>
<subsection name='Older Releases'>
<ul>
<li>Version 1.5 (from mirror) - 27 Apr 2003
<a href="http://jakarta.apache.org/site/binindex.cgi">binary</a>
<a href="http://jakarta.apache.org/site/sourceindex.cgi">source</a> (latest)</li>
<li>Version 1.4.1 (from mirror)
<a href="http://jakarta.apache.org/site/binindex.cgi">binary</a>
<a href="http://jakarta.apache.org/site/sourceindex.cgi">source</a></li>
<li>Version 1.4 (from mirror)
<a href="http://jakarta.apache.org/site/binindex.cgi">binary</a>
<a href="http://jakarta.apache.org/site/sourceindex.cgi">source</a>
</li>
<li><a href="http://jakarta.apache.org/builds/jakarta-commons/release/commons-digester/v1.3/">Version 1.3</a></li>
<li><a href="http://jakarta.apache.org/builds/jakarta-commons/release/commons-digester/v1.2/">Version 1.2</a></li>
<li><a href="http://jakarta.apache.org/builds/jakarta-commons/release/commons-digester/v1.1.1/">Version 1.1.1</a></li>
<li><a href="http://jakarta.apache.org/builds/jakarta-commons/release/commons-digester/v1.0/">Version 1.0</a></li>
</ul>
</subsection>
</section>
<section name="Resources">
<ul>
<!-- newest first sounds like a reasonable rule -->
<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 Jakarta 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>