<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.4 2002/01/31 20:25:11 rdonkin 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.1.1/">Version 1.1.1</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>
