blob: b6482ef991417fdf6c1ff6d6943098267c4e5f4a [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/current/docs/apidocs/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/current/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/viewcvs/jakarta/commons/proper/digester/trunk/src/examples/">
the web-based repository browser</a> web site, or can use subversion to
download the files.
</p>
</section>
<section name="Releases">
<subsection name='Digester 1.7 Release (1 June 2005)'>
<p>
Digester 1.7 is a minor bugfix and maintenance release. A few small features have been added.
New projects are encouraged to use this release of digester, but there is no urgency
for existing projects to upgrade; Digester 1.6 has proven to be a stable release. See
the release notes for more details.
</p>
<p>
The dependencies for Digester 1.7 are identical to the dependencies for Digester 1.6.
</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.7 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>
</subsection>
<subsection name='Downloading'>
<ul>
<li>The most recent release is available from apache mirrors via
<a href="http://jakarta.apache.org/site/downloads/downloads_commons-digester.cgi">
the regular download page</a>.</li>
<li>Reasonably recent releases are also available from apache mirrors, via the
"browse downloads" link at
<a href="http://jakarta.apache.org/site/downloads/downloads_commons-digester.cgi">
the regular download page</a>.</li>
<li>Older releases can be found
<a href="http://archive.apache.org/dist/jakarta/commons/digester/old">
on the archive site</a>.</li>
</ul>
<p>Please remember to verify the MD5 check sums.</p>
</subsection>
</section>
<section name="Resources">
<ul>
<!-- newest first sounds like a reasonable rule -->
<li>
<a href="http://wiki.apache.org/jakarta-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 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>