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


<div align="center">
<h1>The Jakarta Commons <em>FileUpload</em> Component</h1>
$Id: STATUS.html,v 1.8 2003/05/16 04:06:02 martinc 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>FileUpload</em> Component contains a set of Java classes that 
provide helper methods for handling RFC 1867.
The following classes are included:</p>
<ul>
<li><strong>FileUpload</strong> - High-level class for parsing the request.</li>
<li>
  <strong>MultipartStream</strong> - Low-level processing of multipart 
  data streams 
</li>
<li>
  <strong>FileItem</strong> - This interface represents a file received using
  multipart/form-data POST request
</li>
<li><strong>DefaultFileItem</strong> - Implementation of FileItem</li>
<li>
    <strong>FileUploadException</strong> - Exception thrown if processing
    the request data fails.
</li>
</ul>


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

<p>The <em>FileUpload</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><a href="http://java.sun.com/products/servlet/index.html">Java Servlets</a>
    (Version 2.2 or later)</li>
<li><a href="http://www.junit.org">JUnit Testing Framework</a>
    (Version 3.8.1 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: 1.0 Beta 1</p>

<p>Planned Next Release: 1.0 Beta 2</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>FileUpload</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:jmcnally at apache.org">John McNally</a></li>
<li><a href="mailto:dlr at apache.org">Daniel Rall</a></li>
<li><a href="mailto:jvanzyl at apache.org">Jason van Zyl</a></li>
<li><a href="mailto:martinc at apache.org">Martin Cooper</a></li>
<li><a href="mailto:rdonkin at apache.org">Robert Burrell Donkin</a></li>
</ul>


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

<p>The following action items are pending:</p>
<ul>
  <li><b>Additional unit tests</b> to increase code coverage.</li>
  <li><b>Documentation</b> for the customization capabilities.</li>
</ul>

</body>
</html>
