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


<div align="center">
<h1>The Jakarta Commons <em>DBCP</em> Package</h1>
$Id: STATUS.html,v 1.4 2002/08/05 06:42:01 jmcnally 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>The <em>DBCP</em> package provides database connection pooling services.
The following features are supported

<ul>
<li>DataSource and Driver interfaces to the pool.</li>
<li>Support for arbitrary sources of the underlying Connections.</li>
<li>Integration with arbitrary org.apache.commons.pool.ObjectPool implementations.</li>
<li>Support for Connection validation, expiration, etc.</li>
<li>Support for PreparedStatement pooling.</li>
<li>XML configuration.</li>
</ul>

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

<p>The <em>DBCP</em> package 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><a href="http://java.sun.com/j2ee">Java 2 Enterprise Edition</a>
    (javax.sql packages only)</li>
<li>Jakarta-Commons Collections package</li>
<li>Jakarta-Commons Pool package</li>
<li>[currently, for JOCL configuration] <a href="http://www.megginson.com/SAX">Simple API for XML</a>
    (Version 2.0 or later)</li>
<li>[currently, for JOCL configuration] A SAX 2.0 compliant XML parser (Xerces, XP, etc.)</li>
<li><a href="http://www.junit.org">JUnit Testing Framework</a>
    (Version 3.2 or later) - for unit tests only, not required
    for deployment</li>
</ul>


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

<p>Current Release:  <strong>Unreleased, CVS Repository Only</strong></p>

<p>Planned Next Release:  TBD</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 the <em>DBCP</em> package 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>Morgan Delagrange
<li>Geir Magnusson Jr.
<li>Craig R. McClanahan
<li>John McNally
<li>Ignacio J. Ortega
<li>Rodney Waldhoff
<li>David Weinrich
<li>Glenn L. Nielsen 
</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.0
release of this component:</p>

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

  <tr>
    <td><strong>Additional Unit/Functional Tests</strong></td>
    <td align="center">&nbsp;</td>
  </tr>

  <tr>
    <td><strong>Vendor specific testing</strong> - Unit tests defined and
    executed for popular database servers</td>
    <td align="center"> - </td>
  </tr>

  <tr>
    <td><strong>Vendor specific testing - MySQL</strong></td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td><strong>Vendor specific testing - Postgres</strong></td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td><strong>Vendor specific testing - ODBC (SQLServer/Access)</strong></td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td><strong>Vendor specific testing - Oracle</strong></td>
    <td align="center">Rodney</td>
  </tr>
  <tr>
    <td><strong>Vendor specific testing - Sybase</strong></td>
    <td align="center">&nbsp;</td>
  </tr>

  <tr>
    <td><strong>Install / Use Documentation</strong>.  Expanded examples and
    installation documentation. </td>
    <td align="center">&nbsp;</td>
  </tr>

  <tr>
    <td><strong>Integration Documentation - Avalon?</strong></td>
    <td align="center">&nbsp;</td>
  </tr>

  <tr>
    <td><strong>Integration Documentation - Struts?</strong></td>
    <td align="center">&nbsp;</td>
  </tr>

  <tr>
    <td><strong>Integration Documentation - Turbine?</strong></td>
    <td align="center">&nbsp;</td>
  </tr>

  <tr>
    <td><strong>Replace JOCL with something else?</strong></td>
    <td align="center">Rodney<br>[Craig]</td>
  </tr>

</table>

</body>
</html>
