<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.7 2003/02/27 19:45:48 tobrien 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: Version 1.4</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>
<li><a href="mailto:tobrien@apache.org">Tim O'Brien</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>
