<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.7 2003/02/11 07:07:31 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://jakarta.apache.org/jakarta-commons/beanutils/">
    Jakarta Commons BeanUtils</a> (Version 1.3 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 Release Candidate 1</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>Unit tests need to be developed for this package.
</ul>

</body>
</html>
