<html>
<head>
<title>Status File for Jakarta Commons "Digester" Component</title>
<head>
<body bgcolor="white">


<div align="center">
<h1>The Jakarta Commons <em>Digester</em> Component</h1>
$Id: STATUS.html,v 1.5 2002/08/13 17:11:19 sanders Exp $<br>
<a href="#Introduction">[Introduction]</a>
<a href="#Dependencies">[Dependencies]</a>
<a href="#Release Info">[Release Info]</a>
<a href="#Committers">[Committers]</a>
<a href="#Action Items">[Action Items]</a>
<br><br>
</div>


<a name="Introduction"></a>
<h3>1.  INTRODUCTION</h3>

 <p>
 This scope of the <em>Digester</em> component is primarily
 oriented to  XML -> Java object mapping.
 </p>
 <p>
  A <em>Digester</em> processes an XML input stream by matching a
  series of element nesting patterns to execute Rules that have been added
  prior to the start of parsing.  This package was inspired by the
  <code>XmlMapper</code> class that was part of Tomcat 3.0 and 3.1,
  but is organized somewhat differently.
 </p>

 <p>
  The original source was donated by the
  <a href="http://jakarta.apache.org/struts">Struts Framework</a> subproject.
 </p>


<a name="Dependencies"></a>
<h3>2.  DEPENDENCIES</h3>

<p>The <em>Digester</em> component is dependent upon the following external
components for development and use:</p>
<ul>
<li><a href="http://java.sun.com/j2se">Java Development Kit</a>
    (Version 1.2 or later)</li>
<li><strong>XML Parser</strong> compatible with the JAXP/1.1 specification.
    Examples compatible implementations include:
    <ul>
    <li><a href="http://java.sun.com/xml">JAXP/1.1 Reference Implementation</a></li>
    <li><a href="http://xml.apache.org/xerces-j">Xerces</a> (Version 1.3.1 or later)</li>
    </ul></li>
<li><a href="http://jakarta.apache.org/jakarta-commons/beanutils/">Jakarta Commons BeanUtils</a></li>
<li><a href="http://jakarta.apache.org/jakarta-commons/collections/">Jakarta Commons Collections</a></li>
</ul>


<a name="Release Info"></a>
<h3>3.  RELEASE INFO</h3>

<p>Current Release:
<a href="http://jakarta.apache.org/builds/jakarta-commons/release/commons-digester/v1.3/">Version 1.3</a></p>

<p>Planned Next Release:  Real Soon Now :)  See the
<a href="#Action Items">Action Items</a> list for tasks that need to be
completed prior to this release.</p>


<a name="Committers"></a>
<h3>4.  COMMITTERS</h3>

<p>The following individuals are the primary developers and maintainers of this
component.  Developers who plan to use <em>Digester</em> in their own
projects are encouraged to collaborate on the future development of this
component to ensure that it continues to meet a variety of needs.</p>
<ul>
<li><a href="mailto:craigmcc@apache.org">Craig McClanahan</a></li>
<li>Rodney Waldhoff</li>
<li><a href="mailto:sanders@apache.org">Scott Sanders</a></li>
<li><a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a></li>
<li><a href="mailto:rdonkin@apache.org">Robert Burrell Donkin</a></li>
</ul>

<a name="Action Items"></a>
<h3>5.  ACTION ITEMS</h3>

<p>The following action items need to be completed prior to a Version 1.2
release of this component:</p>

<table border="1">

  <tr>
    <th width="80%">Action Item</th>
    <th width="20%">Volunteer</th>
  </tr>

  <tr>
    <td><strong>Feedback from logging</strong>.  Let us know how the logging API
    is working for you.
    <td align="center">YOU ;-)</td>
  </tr>

  <tr>
    <td><strong>Install / Use Documentation</strong>.  Create simple
        installation and User's Guide documentation for this component.</td>
    <td align="center">Craig</td>
  </tr>

</table>



</body>
</html>
