aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/jakarta-poi/docs/changes.html180
-rw-r--r--build/jakarta-poi/docs/contrib.html530
-rw-r--r--build/jakarta-poi/docs/faq.html223
-rw-r--r--build/jakarta-poi/docs/hdf/images/cocoon2-small.jpgbin0 -> 1684 bytes
-rw-r--r--build/jakarta-poi/docs/hdf/images/header.gifbin0 -> 3165 bytes
-rw-r--r--build/jakarta-poi/docs/hdf/images/jakarta-logo.gifbin0 -> 8006 bytes
-rw-r--r--build/jakarta-poi/docs/hdf/index.html91
-rw-r--r--build/jakarta-poi/docs/historyandfuture.html284
-rw-r--r--build/jakarta-poi/docs/hssf/how-to.html1137
-rw-r--r--build/jakarta-poi/docs/hssf/images/cocoon2-small.jpgbin0 -> 1684 bytes
-rw-r--r--build/jakarta-poi/docs/hssf/images/header.gifbin0 -> 3165 bytes
-rw-r--r--build/jakarta-poi/docs/hssf/images/jakarta-logo.gifbin0 -> 8006 bytes
-rw-r--r--build/jakarta-poi/docs/hssf/index.html132
-rw-r--r--build/jakarta-poi/docs/hssf/use-case.html480
-rw-r--r--build/jakarta-poi/docs/images/cocoon2-small.jpgbin0 -> 1684 bytes
-rw-r--r--build/jakarta-poi/docs/images/header.gifbin0 -> 3165 bytes
-rw-r--r--build/jakarta-poi/docs/images/jakarta-logo.gifbin0 -> 8006 bytes
-rw-r--r--build/jakarta-poi/docs/images/update.jpgbin0 -> 1305 bytes
-rw-r--r--build/jakarta-poi/docs/index.html372
-rw-r--r--build/jakarta-poi/docs/livesites.html185
-rw-r--r--build/jakarta-poi/docs/mail-archives.html198
-rw-r--r--build/jakarta-poi/docs/mail-lists.html318
-rw-r--r--build/jakarta-poi/docs/overview.html283
-rw-r--r--build/jakarta-poi/docs/plan/POI10Vision.html1117
-rw-r--r--build/jakarta-poi/docs/plan/POI20Vision.html1213
-rw-r--r--build/jakarta-poi/docs/plan/images/cocoon2-small.jpgbin0 -> 1684 bytes
-rw-r--r--build/jakarta-poi/docs/plan/images/header.gifbin0 -> 3165 bytes
-rw-r--r--build/jakarta-poi/docs/plan/images/jakarta-logo.gifbin0 -> 8006 bytes
-rw-r--r--build/jakarta-poi/docs/poifs/how-to.html997
-rw-r--r--build/jakarta-poi/docs/poifs/images/cocoon2-small.jpgbin0 -> 1684 bytes
-rw-r--r--build/jakarta-poi/docs/poifs/images/header.gifbin0 -> 3165 bytes
-rw-r--r--build/jakarta-poi/docs/poifs/images/jakarta-logo.gifbin0 -> 8006 bytes
-rw-r--r--build/jakarta-poi/docs/poifs/index.html119
-rw-r--r--build/jakarta-poi/docs/poifs/usecases.html1245
-rw-r--r--build/jakarta-poi/docs/todo.html192
-rw-r--r--build/jakarta-poi/docs/utils/images/cocoon2-small.jpgbin0 -> 1684 bytes
-rw-r--r--build/jakarta-poi/docs/utils/images/header.gifbin0 -> 3165 bytes
-rw-r--r--build/jakarta-poi/docs/utils/images/jakarta-logo.gifbin0 -> 8006 bytes
-rw-r--r--build/jakarta-poi/docs/utils/index.html101
-rw-r--r--build/jakarta-poi/docs/who.html260
40 files changed, 9657 insertions, 0 deletions
diff --git a/build/jakarta-poi/docs/changes.html b/build/jakarta-poi/docs/changes.html
new file mode 100644
index 0000000000..675a6fdfff
--- /dev/null
+++ b/build/jakarta-poi/docs/changes.html
@@ -0,0 +1,180 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>History of Changes</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>History of Changes</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>History of Changes</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b> 1.1-dev (February 17 2002)</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+<sl>
+
+<li>
+<icon alt="update" src="images/update.jpg"></icon>
+ New project build.
+ (NKB)</li>
+
+<li>
+<icon alt="update" src="images/update.jpg"></icon>
+ New project documentation system based on Cocoon.
+ (NKB)</li>
+
+</sl>
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/contrib.html b/build/jakarta-poi/docs/contrib.html
new file mode 100644
index 0000000000..1511b1da88
--- /dev/null
+++ b/build/jakarta-poi/docs/contrib.html
@@ -0,0 +1,530 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Contribution to POI</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Contribution to POI</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Contribution to POI</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Introduction</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">
+ The POI Project is an <a href="http://www.opensource.org/">Open Source</a>
+ volunteer project released under a very open license.
+ This means there are many ways to contribute to the project - either
+ with direct participation (coding, documenting, answering questions,
+ proposing ideas, reporting bugs, suggesting bug fixes, etc. ...) or by resource
+ donations (money, time, publicity, hardware, software, conference
+ presentations, speeches, etc. ...).
+ </p>
+
+<p align="justify">
+ To begin with, we suggest you subscribe to the
+ <a href="mail-lists.html">POI mailing lists</a>
+ (follow the link for information on how to subscribe and to access the mail
+ list archives). Listen in for a while, to hear how others make contributions.
+ </p>
+
+
+<p align="justify">You can get your local working copy of the
+ <a href="http://jakarta.apache.org/site/cvsindex.html">latest and
+ greatest code</a> (which you find in the jakarta-poi module in
+ the CVS code repository. Review the <a href="todo.html">todo</a> list and choose a task
+ (or perhaps you have noticed something that needs patching). Make the changes, do the testing,
+ generate a patch, and post to the dev mailing list. (Do not worry - the process is easy and
+ explained below.)
+ </p>
+
+
+<p align="justify">
+ Document writers are usually the most wanted people so if
+ you like to help but you're not familiar with the innermost technical details, don't worry:
+ we have work for you! And we'll be very available to you for any questions!
+ </p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Help Wanted Here</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The rest of this document is mainly about
+ contributing new or improved code and/or documentation, but we would also be glad to have
+ extra help in any of the following areas:
+ </p>
+
+<ul>
+
+<li>Answering questions on the <code>users</code> mailing list - there is often a problem of
+ having too many questioners and not enough experts to respond to all the questions.</li>
+
+<li>Testing POI (especially its less-frequently-used features) on various configurations
+ and reporting back.</li>
+
+<li>Debugging - producing reproducible test cases and/or finding causes of bugs. Some known bugs are informally listed on
+ <a href="todo.html">To Do</a>, and some are recorded in Bugzilla
+ (see <a href="#procedure">explanation below</a>).</li>
+
+<li>Specifying/analyzing/designing new features - and beyond. (If you wish to get involved
+ with this, please join the <code>general POI mailing list</code>
+ , install and try out POI
+ and read some of the <a href="mail-lists.html">mail archives</a>.
+ You should have a strong "fluency" in Java and a basic understanding of
+ the POI architecture - don't just say "it should have XYZ" without reading anything first -
+ because chances are, someone's already thought of that feature!)</li>
+
+<li>Packaging easy-to-install packages (such as RPMs) for the myriad of possible configurations out
+ there. (The project does not maintain anything but the basic <code>.zip</code> and
+ <code>.tar.gz</code> packages, but anyone is welcome to build their own specific packages and
+ announce them on the <code>general POI list</code>)</li>
+
+<li>... and there is just one other thing - don't forget to tell everyone who asks, how great POI is! ;-)
+ The more people that know about and start to use POI, the larger the pool of
+ potential contributors there will be.
+ </li>
+
+</ul>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>CVS Usage Precis</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">An overview of how to use CVS to participate in POI development.
+ Do not be afraid - you cannot accidently destroy the actual code repository,
+ because you are working with a local copy as an anonymous user.
+ You do not have the system permissions to change anything. You can only
+ update your local repository and compare your revisions with the real
+ repository.
+ </p>
+
+
+<p align="justify">
+ (Further general CVS usage information is at
+ <a href="http://www.cvshome.org/">www.cvshome.org</a> and your local
+ <code>info cvs</code> pages or <code>man cvs</code> pages or user
+ documentation.)
+ </p>
+
+
+<p align="justify">
+ Let us lead by example. We will show you how to establish your local
+ repository, how to keep it up-to-date, and how to generate the differences
+ to create a patch. (The commands are for Linux.)
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>CVS Committer with Secure Shell access</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">After a developer has consistently provided contributions (code,
+ documentation and discussion), then the rest of the dev community
+ may vote to grant this developer commit access to CVS.
+ </p>
+
+
+<p align="justify">You will need secure access to the repository to be able to commit
+ patches. Here are some resources that help to get your machine configured
+ to use the repository over SSH.
+ </p>
+
+
+<ul>
+
+<li>
+<a href="http://cvsbook.red-bean.com/">The CVS Book</a>
+</li>
+
+<li>
+<a href="http://www.cvshome.org/">www.cvshome.org</a>
+</li>
+
+<li>
+<a href="https://sourceforge.net/cvs/?group_id=32701"></a>
+ - See the bottom of the page for links to tips for UNIX and Windows.
+ Even if you are on UNIX, the Windows page will also help.</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Procedure for Raising Development Issues</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ There are two methods for discussing development and submitting patches.
+ So that everyone can be productive, it is important to know which method
+ is appropriate for a certain situation and how to go about it without
+ confusion. This section explains when to use the
+ <code>developer</code> <a href="mail-lists.html">mailing list</a>
+ and the bug database.
+ </p>
+
+
+<p align="justify">
+ Research your topic thoroughly before beginning to discuss a new
+ development issue. Search and browse through the email archives - your
+ issue may have been discussed before. Prepare your post clearly and
+ concisely.
+ </p>
+
+
+<p align="justify">
+ Most issues will be discovered, resolved, and then patched quickly
+ via the <code>developer</code> mailing list. Larger issues, and ones that
+ are not yet fully understood or are hard to solve, are destined for
+ Bugzilla.
+ </p>
+
+
+<p align="justify">
+ Experienced developers use Bugzilla directly, as they are very sure
+ when they have found a bug and when not. However, less experienced users
+ should first discuss it on the user or developer mailing list (as
+ appropriate). Impatient people frequently enter everything into Bugzilla
+ without caring if it is a bug in POI or their own
+ installation/configuration mistake - please, do not do this.
+ </p>
+
+
+<p align="justify">
+ As a rule-of-thumb, discuss an issue on the <code>developers</code>
+ mailing list first to work out any details.
+ After it is confirmed to be worthwhile, and you are clear about it,
+ then submit the bug description or patch via Bug Tracking.
+ </p>
+
+
+<p align="justify">
+ If you do not get any answer on your first attempt, post
+ your issue again until you get a reply. (But, please, not every hour - allow a few
+ days for the list to deal with it.) Do not be impatient - remember that
+ the whole world is busy, not just you. Bear in mind that other countries
+ will have holidays at different times to your country and that they are
+ in different time zones. You might also consider re-writing your initial
+ posting - perhaps it was not clear enough
+ and the readers' eyes glazed over.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Contribution Notes and Tips</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ This is a collection of tips for contributing to the project in a manner
+ that is productive for all parties.
+ </p>
+
+
+<ul>
+
+<li>
+ Every contribution is worthwhile. Even if the ensuing discussion
+ proves it to be off-beam, then it may jog ideas for other people.
+ </li>
+
+<li>
+ Use sensible and concise email subject headings. Search engines, and
+ humans trying to browse a voluminous list, will respond favorably to a
+ descriptive title.
+ </li>
+
+<li>Start new threads with new Subjects for new topics, rather than
+ re-using the previous Subject line.
+ </li>
+
+<li>Keep each topic focussed. If some new topic arises, start a new
+ discussion. This leaves the original topic to continue un-cluttered.
+ </li>
+
+<li>Whenever you decide to start a new topic, then start with a fresh
+ new email message window. Do not use the "Reply to" button,
+ because threaded mail-readers get confused (they use the
+ <code>In-reply-to</code> header). Otherwise, your new topic will get
+ lost in the previous thread and go un-answered.
+ </li>
+
+<li>
+ Prepend your email subject line with a marker when that is appropriate,
+ e.g. <code>[Patch]</code>, <code>[Proposal]</code>,
+ <code>[RT]</code> (Random Thought, these quickly blossom into research
+ topics :-), <code>[STATUS]</code> (development status of a certain
+ feature).
+ </li>
+
+<li>
+ When making changes to XML documentation, or any XML document for that
+ matter, use a
+ <a href="http://www.oasis-open.org/cover/">validating parser</a>
+ (one that is tried and true is
+ <a href="http://www.jclark.com/sp/">SP/nsgmls</a>).
+ This procedure will detect errors without having to go through the whole
+ <code>build docs</code> process to find them. Do not expect POI
+ or the build system to detect the validation errors for you - they can
+ do it, but that is not their purpose. (Anyway, nsgmls validation error
+ messages are more informative.). Andy wishes it to be known he uses
+ <a href="http://www.sourceforge.net/projects/jedit">jEdit</a>. For
+ his XML editing. (That is when he's not hacking it in 'vi' the true editor
+ and light of the text editing world!).
+ </li>
+
+<li>
+ Remember that most people are participating in development on a
+ volunteer basis and in their "spare time". These enthusiasts will attempt
+ to respond to issues. It may take a little while to get your answers.
+ </li>
+
+<li>
+ Research your topic thoroughly before beginning to discuss a new
+ development issue. Search and browse through the email archives - your
+ issue may have been discussed before. Do not just perceive a problem and
+ then rush out with a question - instead, delve.
+ </li>
+
+<li>
+ Try to at least offer a partial solution and not just a problem statement.
+ </li>
+
+<li>
+ Take the time to clearly explain your issue and write a concise email
+ message. Less confusion facilitates fast and complete resolution.
+ </li>
+
+<li>
+ Do not bother to send an email reply that simply says "thanks".
+ When the issue is resolved, that is the finish - end of thread.
+ Reduce clutter.
+ </li>
+
+<li>
+ You would usually do any development work against the HEAD branch of CVS.
+ </li>
+
+<li>
+ When sending a patch, you usually do not need to worry about which CVS
+ branch it should be applied to. The maintainers of the repository will
+ decide.
+ </li>
+
+<li>
+ If an issue starts to get bogged down in list discussion, then it may
+ be appropriate to go into private off-list discussion with a few interested
+ other people. Spare the list from the gory details. Report a summary back
+ to the list to finalize the thread.
+ </li>
+
+<li>
+ Become familiar with the mailing lists. As you browse and search, you will
+ see the way other people do things. Follow the leading examples.
+ </li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/faq.html b/build/jakarta-poi/docs/faq.html
new file mode 100644
index 0000000000..8ee9b4ecc2
--- /dev/null
+++ b/build/jakarta-poi/docs/faq.html
@@ -0,0 +1,223 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Frequently Asked Questions</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Frequently Asked Questions</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Frequently Asked Questions</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Questions</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+<ul>
+<li>
+<jump anchor="faq-1">
+ What is the HSSF "eventmodel"?
+ </jump>
+</li>
+</ul>
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Answers</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+<anchor id="faq-1"></anchor>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>
+ What is the HSSF "eventmodel"?
+ </b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+
+
+<p align="justify">
+ The HSSF eventmodel package is a new API for reading XLS files more efficiently. It does
+ require more knowledge on the part of the user, but reduces memory consumption by more than
+ tenfold. It is based on the AWT event model in combination with SAX. If you need read-only
+ access to a given XLS file, this is the best way to do it.
+ </p>
+
+
+
+
+<p align="justify">
+ Soon, very soon.
+ </p>
+
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/hdf/images/cocoon2-small.jpg b/build/jakarta-poi/docs/hdf/images/cocoon2-small.jpg
new file mode 100644
index 0000000000..e8f6dd8c8c
--- /dev/null
+++ b/build/jakarta-poi/docs/hdf/images/cocoon2-small.jpg
Binary files differ
diff --git a/build/jakarta-poi/docs/hdf/images/header.gif b/build/jakarta-poi/docs/hdf/images/header.gif
new file mode 100644
index 0000000000..b9c2ee1391
--- /dev/null
+++ b/build/jakarta-poi/docs/hdf/images/header.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/hdf/images/jakarta-logo.gif b/build/jakarta-poi/docs/hdf/images/jakarta-logo.gif
new file mode 100644
index 0000000000..82baef3abe
--- /dev/null
+++ b/build/jakarta-poi/docs/hdf/images/jakarta-logo.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/hdf/index.html b/build/jakarta-poi/docs/hdf/index.html
new file mode 100644
index 0000000000..e43370d2b8
--- /dev/null
+++ b/build/jakarta-poi/docs/hdf/index.html
@@ -0,0 +1,91 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>HDF</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>HDF</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>HDF</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">HDF will be the name of OUR port of the Microsoft Word 97(-2002) file format to
+ pure Java.</p>
+
+<p align="justify">HDF is still in early development. If you want to help us, you can
+ follow development on the poi-dev mailing list.</p>
+
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/historyandfuture.html b/build/jakarta-poi/docs/historyandfuture.html
new file mode 100644
index 0000000000..82fa66f4fd
--- /dev/null
+++ b/build/jakarta-poi/docs/historyandfuture.html
@@ -0,0 +1,284 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title></title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*"><font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Brief Project History</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">The POI project was dreamed up back around April 2001, when
+ Andy Oliver landed a short term contract to do Java-based
+ reporting to Excel. He'd done this project a few times before
+ and knew right where to look for the tools he needed.
+ Ironically, the API he used to use had skyrocketed from around
+ $300 ($US) to around $10K ($US). He figured it would take two
+ people around six months to write an Excel port so he
+ recommended the client fork out the $10K.
+ </p>
+
+
+<p align="justify">Around June 2001, Andy started thinking how great it would
+ be to have an open source Java tool to do this and, while he
+ had some spare time, he started on the project and learned
+ about OLE 2 Compound Document Format. After hitting some real
+ stumpers he realized he'd need help. He posted a message to
+ his local Java User's Group (JUG) and asked if anyone else
+ would be interested. He lucked out and the most talented Java
+ programmer he'd ever met, Marc Johnson, joined the project. He
+ ran rings around Andy at porting OLE 2 CDF and rewrote his
+ skeletal code into a more sophisticated library. It took Marc
+ a few iterations to get something they were happy with.
+ </p>
+
+
+<p align="justify">While Marc worked on that, Andy ported XLS to Java, based
+ on Marc's library. Several users wrote in asking to read XLS
+ (not just write as had originally been planned) and one user
+ had special requests for a different use for POIFS. Before
+ long, the project scope had tripled. POI 1.0 was released a
+ month later than planned, but with far more features. Marc
+ quickly wrote the serializer framework and HSSF Serializer in
+ record time and Andy banged out more documentation and worked
+ on making people aware of the project
+ </p>
+
+
+<p align="justify"> Shortly before the release, POI was fortunate to come into
+ contact with Nicola -Ken- Barrozzi who gave them samples for
+ the HSSF Serializer and help uncover its unfortunate bugs
+ (which were promptly fixed). More recently, Ken ported most
+ of the POI project documentation to XML from Andy's crappy
+ HTML docs he wrote with Star Office.
+ </p>
+
+
+<p align="justify"> Around the same time as the release, Glen Stampoultzis
+joined the project. Glen was ticked off at Andy's flippant attitude
+towards adding graphing to HSSF. Glen got so ticked off he decided to
+grab a hammer and do it himself. Glen has already become an integral
+part of the POI development community; his contributions to HSSF have
+already started making waves.
+ </p>
+
+
+<p align="justify">Somewhere in there we decided to finally submit the project
+ to <a href="http://xml.apache.org/cocoon">The Apache
+ Cocoon Project</a>, only to discover the project had
+ outgrown fitting nicely into just Cocoon long ago.
+ Furthermore, Andy started eyeing other projects he'd like to
+ see POI functionality added to. So it was decided to donate
+ the Serializers and Generators to Cocoon, other POI
+ integration components to other projects, and the POI APIs
+ would become part of Jakarta. It was a bumpy road but it
+ looks like everything turned out since you're reading this!
+ </p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>What's next for POI</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">First we'll tackle this from a project standpoint: Well, we
+ made an offer to Microsoft and Actuate (tongue in cheek
+ ... well mostly) that we'd quit the project and retire if
+ they'd simply write us each a really large check. I've yet to
+ get a phone call or email so I'm assuming they're not going to
+ pay us to go away.
+ </p>
+
+<p align="justify">Next, we've got some work to do here at Jakarta to finish
+ integrating POI into the community. Furthermore, we're
+ still transitioning the Serializer to Cocoon.
+ </p>
+
+<p align="justify">HSSF, during the 2.0 cycle, will undergo a few
+ optimizations. We'll also be adding new features like a full
+ implementation of Formulas and custom text formats. We're
+ hoping to be able to generate smaller files by adding
+ write-support for RK, MulRK and MulBlank records. I'm also
+ going to work on a Cocoon 2 Generator. Currently, reading is
+ not very efficient in HSSF. This is mainly because in order to
+ write or modify, one needs to be able to update upstream
+ pointers to downstream data. To do this you have to have
+ everything between in memory. A Generator would allow SAX
+ events to be processed instead. (This will be based on the low
+ level structures). One of the great things about this is that,
+ you'll not only have a more efficient way to read the file,
+ you'll have a great way to use spreadsheets as XML data
+ sources.
+ </p>
+
+<p align="justify">The HSSF Serializer, will further separate into a general
+ framework for creating serializers for other formats and the
+ HSSF Serializer specific implementation. (This is largely
+ already true). We'll also be adding support for features
+ already supported by HSSF (styles, fonts, text formats). We're
+ hoping to add support for formulas during this cycle.
+ </p>
+
+<p align="justify">We're beginning to expand our scope yet again. If we could
+ do all of this for XLS files, what about Doc files or PPT
+ files? We're thinking that our next component (HDF - Horrible
+ Document Format) should follow the same pattern. We're hoping
+ that new blood will join the team and allow us to tackle this
+ even faster (in part because POIFS is already finished). But
+ maybe what we need most is you! </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/hssf/how-to.html b/build/jakarta-poi/docs/hssf/how-to.html
new file mode 100644
index 0000000000..f80b36c91b
--- /dev/null
+++ b/build/jakarta-poi/docs/hssf/how-to.html
@@ -0,0 +1,1137 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>The New Halloween Document</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">HSSF</font><font size="-1">
+<ul>
+<li>
+<a href="how-to.html"><font size="-1">HOWTO</font></a>
+</li>
+<li>
+<a href="use-case.html"><font size="-1">Use Case</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>The New Halloween Document</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>The New Halloween Document</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>How to use the HSSF prototype API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Recent revision history</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>12.30.2001 - revised for poi 1.0-final - minor revisions</li>
+
+<li>01.03.2001 - revised for poi 1.1-devel</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Capabilities</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">This release of the how-to outlines functionality included in a
+ development build of HSSF. Those looking for information on the
+ release edition should look in the poi-src for the release or at a
+ previous edition in CVS tagged for that release.</p>
+
+<p align="justify">
+ This release allows numeric and string cell values to be written to
+ or read from an XLS file. Also in this release is row and column
+ sizing, cell styling (bold, italics, borders,etc), and support for
+ built-in data formats. New to this release is an event-based API
+ for reading XLS files. It differs greatly from the read/write API
+ and is intended for intermediate developers who need a smaller
+ memory footprint. It will also serve as the basis for the HSSF
+ Generator.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Target Audience</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">This release is intended for developers, java-fanatics and the
+just generally all around impatient. HSSF has not yet been
+extensively tested in a high load multi-threaded situation. This
+release is not considered to be "golden" as it has new
+features that have not been extensively tested, and is an early 2.0
+build that could be restructured significantly in the future (not
+that there are necessarily plans to do so, just that you're better
+off basing your code on 1.0 and sticking with it if you don't need
+2.0 stuff bad enough to deal with us pulling the rug out from under
+you regularly).</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>General Use</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>User API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>Writing a new one</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">The high level API (package: org.apache.poi.hssf.usermodel)
+is what most people should use. Usage is very simple.
+</p>
+
+<p align="justify">Workbooks are created by creating an instance of
+org.apache.poi.hssf.usermodel.HSSFWorkbook.
+</p>
+
+<p align="justify">Sheets are created by calling createSheet() from an existing
+instance of HSSFWorkbook, the created sheet is automatically added in
+sequence to the workbook. In this release there will always be at
+least three sheets generated regardless of whether you have three
+sheets. More than three sheets is probably not supported. Sheets do
+not in themselves have a sheet name (the tab at the bottom); you set
+the name associated with a sheet by calling
+HSSFWorkbook.setSheetName(sheetindex,"SheetName").</p>
+
+<p align="justify">Rows are created by calling createRow(rowNumber) from an existing
+instance of HSSFSheet. Only rows that have cell values should be
+added to the sheet. To set the row's height, you just call
+setRowHeight(height) on the row object. The height must be given in
+twips, or 1/20th of a point. If you prefer, there is also a
+setRowHeightInPoints method.
+</p>
+
+<p align="justify">Cells are created by calling createCell(column, type) from an
+existing HSSFRow. Only cells that have values should be added to the
+row. Cells should have their cell type set to either
+HSSFCell.CELL_TYPE_NUMERIC or HSSFCell.CELL_TYPE_STRING depending on
+whether they contain a numeric or textual value. Cells must also have
+a value set. Set the value by calling setCellValue with either a
+String or double as a parameter. Individual cells do not have a
+width; you must call setColumnWidth(colindex, width) (use units of
+1/256th of a character) on the HSSFSheet object. (You can't do it on
+an individual basis in the GUI either).</p>
+
+<p align="justify">Cells are styled with HSSFCellStyle objects which in turn contain
+a reference to an HSSFFont object. These are created via the
+HSSFWorkbook object by calling createCellStyle() and createFont().
+Once you create the object you must set its parameters (colors,
+borders, etc). To set a font for an HSSFCellStyle call
+setFont(fontobj).
+</p>
+
+<p align="justify">Once you have generated your workbook, you can write it out by
+calling write(outputStream) from your instance of Workbook, passing
+it an OutputStream (for instance, a FileOutputStream or
+ServletOutputStream). You must close the OutputStream yourself. HSSF
+does not close it for you.
+</p>
+
+<p align="justify">Here is some example code (excerpted and adapted from
+org.apache.poi.hssf.dev.HSSF test class):</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre> // create a new file
+ FileOutputStream out = new FileOutputStream("/home/me/myfile.xls");
+ // create a new workbook
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // create a new sheet
+ HSSFSheet s = wb.createSheet();
+ // declare a row object reference
+ HSSFRow r = null;
+ // declare a cell object reference
+ HSSFCell c = null;
+ // create 3 cell styles
+ HSSFCellStyle cs = wb.createCellStyle();
+ HSSFCellStyle cs2 = wb.createCellStyle();
+ HSSFCellStyle cs3 = wb.createCellStyle();
+ // create 2 fonts objects
+ HSSFFont f = wb.createFont();
+ HSSFFont f2 = wb.createFont();
+
+ //set font 1 to 12 point type
+ f.setFontHeightInPoints((short)12);
+ //make it red
+ f.setColor((short)0xA);
+ // make it bold
+ //arial is the default font
+ f.setBoldweight(f.BOLDWEIGHT_BOLD);
+
+ //set font 2 to 10 point type
+ f2.setFontHeightInPoints((short)10);
+ //make it the color at palette index 0xf (white)
+ f2.setColor((short)0xf);
+ //make it bold
+ f2.setBoldweight(f2.BOLDWEIGHT_BOLD);
+
+ //set cell stlye
+ cs.setFont(f);
+ //set the cell format see HSSFDataFromat for a full list
+ cs.setDataFormat(HSSFDataFormat.getFormat("($#,##0_);[Red]($#,##0)"));
+
+ //set a thin border
+ cs2.setBorderBottom(cs2.BORDER_THIN);
+ //fill w fg fill color
+ cs2.setFillPattern((short)1);
+ // set foreground fill to red
+ cs2.setFillForegroundColor((short)0xA);
+
+ // set the font
+ cs2.setFont(f2);
+
+ // set the sheet name to HSSF Test
+ wb.setSheetName(0,"HSSF Test");
+ // create a sheet with 300 rows (0-299)
+ for (rownum = (short)0; rownum &lt; 300; rownum++)
+ {
+ // create a row
+ r = s.createRow(rownum);
+ // on every other row
+ if ( (rownum % 2) == 0) {
+ // make the row height bigger (in twips - 1/20 of a point)
+ r.setHeight((short)0x249);
+ }
+
+ //r.setRowNum(( short ) rownum);
+ // create 50 cells (0-49) (the += 2 becomes apparent later
+ for (short cellnum = (short)0; cellnum &lt; 50; cellnum += 2)
+ {
+ // create a numeric cell
+ c = r.createCell(cellnum,HSSFCell.CELL_TYPE_NUMERIC);
+ // do some goofy math to demonstrate decimals
+ c.setCellValue(rownum * 10000 + cellnum
+ + ((( double ) rownum / 1000)
+ + (( double ) cellnum / 10000)));
+
+ // on every other row
+ if ( (rownum % 2) == 0) {
+ // set this cell to the first cell style we defined
+ c.setCellStyle(cs);
+ }
+
+ // create a string cell (see why += 2 in the
+ c = r.createCell((short)(cellnum+1),HSSFCell.CELL_TYPE_STRING);
+
+ // set the cell's string value to "TEST"
+ c.setCellValue("TEST");
+ // make this column a bit wider
+ s.setColumnWidth((short)(cellnum+1), (short)((50*8) / ((double)1/20)) );
+
+ // on every other row
+ if ( (rownum % 2) == 0) {
+ // set this to the white on red cell style
+ // we defined above
+ c.setCellStyle(cs2);
+ }
+
+ }
+ }
+
+ //draw a thick black border on the row at the bottom using BLANKS
+ // advance 2 rows
+ rownum++;
+ rownum++;
+
+ r = s.createRow(rownum);
+
+ // define the third style to be the default
+ // except with a thick black border at the bottom
+ cs3.setBorderBottom(cs3.BORDER_THICK);
+
+ //create 50 cells
+ for (short cellnum = (short)0; cellnum &lt; 50; cellnum++) {
+ //create a blank type cell (no value)
+ c = r.createCell(cellnum,HSSFCell.CELL_TYPE_BLANK);
+ // set it to the thick black border style
+ c.setCellStyle(cs3);
+ }
+
+ //end draw thick black border
+
+
+ // demonstrate adding/naming and deleting a sheet
+ // create a sheet, set its title then delete it
+ s = wb.createSheet();
+ wb.setSheetName(1,"DeletedSheet");
+ wb.removeSheetAt(1);
+ //end deleted sheet
+
+ // write the workbook to the output stream
+ // close our file (don't blow out our file handles
+ wb.write(out);
+ out.close();
+ </pre>
+</td>
+</tr>
+</table>
+</div>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>Reading or modifying an existing file</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">Reading in a file is equally simple. To read in a file, create a
+new instance of org.apache.poi.poifs.Filesystem, passing in an open InputStream, such as a FileInputStream
+for your XLS, to the constructor. Construct a new instance of
+org.apache.poi.hssf.usermodel.HSSFWorkbook passing the
+Filesystem instance to the constructor. From there you have access to
+all of the high level model objects through their assessor methods
+(workbook.getSheet(sheetNum), sheet.getRow(rownum), etc).
+</p>
+
+<p align="justify">Modifying the file you have read in is simple. You retrieve the
+object via an assessor method, remove it via a parent object's remove
+method (sheet.removeRow(hssfrow)) and create objects just as you
+would if creating a new xls. When you are done modifying cells just
+call workbook.write(outputstream) just as you did above.</p>
+
+<p align="justify">An example of this can be seen in
+<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/poi/poi/production/src/net/sourceforge/poi/hssf/dev/HSSF.java?rev=HEAD&content-type=text/plain">org.apache.poi.hssf.dev.HSSF</a>.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Event API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">The event API is brand new. It is intended for intermediate
+developers who are willing to learn a little bit of the low level API
+structures. Its relatively simple to use, but requires a basic
+understanding of the parts of an Excel file (or willingness to
+learn). The advantage provided is that you can read an XLS with a
+relatively small memory footprint.
+</p>
+
+<p align="justify">To use this API you construct an instance of
+org.apache.poi.hssf.eventmodel.HSSFRequest. Register a class you
+create that supports the
+org.apache.poi.hssf.eventmodel.HSSFListener interface using the
+HSSFRequest.addListener(yourlistener, recordsid). The recordsid
+should be a static reference number (such as BOFRecord.sid) contained
+in the classes in org.apache.poi.hssf.record. The trick is you
+have to know what these records are. Alternatively you can call
+HSSFRequest.addListenerForAllRecords(mylistener). In order to learn
+about these records you can either read all of the javadoc in the
+org.apache.poi.hssf.record package or you can just hack up a
+copy of org.apache.poi.hssf.dev.EFHSSF and adapt it to your
+needs. TODO: better documentation on records.</p>
+
+<p align="justify">Once you've registered your listeners in the HSSFRequest object
+you can construct an instance of
+org.apache.poi.poifs.filesystem.FileSystem (see POIFS howto) and
+pass it your XLS file inputstream. You can either pass this, along
+with the request you constructed, to an instance of HSSFEventFactory
+via the HSSFEventFactory.processWorkbookEvents(request, Filesystem)
+method, or you can get an instance of DocumentInputStream from
+Filesystem.createDocumentInputStream("Workbook") and pass
+it to HSSFEventFactory.processEvents(request, inputStream). Once you
+make this call, the listeners that you constructed receive calls to
+their processRecord(Record) methods with each Record they are
+registered to listen for until the file has been completely read.
+</p>
+
+<p align="justify">A code excerpt from org.apache.poi.hssf.dev.EFHSSF (which is
+in CVS or the source distribution) is reprinted below with excessive
+comments:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+//this non-public class implements the required interface
+// we construct it with a copy of its container class...this is cheap but effective
+class EFHSSFListener implements HSSFListener {
+ EFHSSF efhssf;
+ public EFHSSFListener(EFHSSF efhssf) {
+ this.efhssf = efhssf;
+ }
+
+ // we just use this as an adapter so we pass the record to the method in the container class
+ public void processRecord(Record record) {
+ efhssf.recordHandler(record);
+ }
+}
+
+ //here is an excerpt of the main line execution code from EFHSSF
+ public void run() throws IOException {
+ // create a new file input stream with the input file specified
+ // at the command line
+ FileInputStream fin = new FileInputStream(infile);
+ // create a new org.apache.poi.poifs.filesystem.Filesystem
+ Filesystem poifs = new Filesystem(fin);
+ // get the Workbook (excel part) stream in a InputStream
+ InputStream din = poifs.createDocumentInputStream("Workbook");
+ // construct out HSSFRequest object
+ HSSFRequest req = new HSSFRequest();
+ // lazy listen for ALL records with the listener shown above
+ req.addListenerForAllRecords(new EFHSSFListener(this));
+ // create our event factory
+ HSSFEventFactory factory = new HSSFEventFactory();
+ // process our events based on the document input stream
+ factory.processEvents(req,din);
+ // once all the events are processed close our file input stream
+ fin.close();
+ // and our document input stream (don't want to leak these!)
+ din.close();
+ // create a new output stream from filename specified at the command line
+ FileOutputStream fout = new FileOutputStream(outfile);
+ // write the HSSFWorkbook (class member) we created out to the file.
+ workbook.write(fout);
+ // close our file output stream
+ fout.close();
+ // print done. Go enjoy your copy of the file.
+ System.out.println("done.");
+ }
+
+
+ //here is an excerpt of the recordHander called from our listener.
+ // the record handler in the container class is intent on just rewriting the file
+ public void recordHandler(Record record) {
+ HSSFRow row = null;
+ HSSFCell cell = null;
+ int sheetnum = -1;
+ switch (record.getSid()) {
+ // the BOFRecord can represent either the beginning of a sheet or the workbook
+ case BOFRecord.sid:
+ BOFRecord bof = (BOFRecord) record;
+ if (bof.getType() == bof.TYPE_WORKBOOK) {
+ //if its the workbook then create a new HSSFWorkbook
+ workbook = new HSSFWorkbook();
+ // assigned to the class level member
+ } else if (bof.getType() == bof.TYPE_WORKSHEET) {
+ sheetnum++;
+ // otherwise if its a sheet increment the sheetnum index
+ cursheet = workbook.getSheetAt(sheetnum);
+ }
+ break;
+ // get the sheet at that index and assign it to method variable
+ // cursheet (the sheet was created when the BoundSheetRecord record occurred
+ case BoundSheetRecord.sid:
+ // when we find a boundsheet record create a new sheet in the workbook and
+ BoundSheetRecord bsr = (BoundSheetRecord) record;
+ // assign it the name specified in this record.
+ workbook.createSheet(bsr.getSheetname());
+ break;
+ // if this is a row record add the row to the current sheet
+ case RowRecord.sid:
+ RowRecord rowrec = (RowRecord) record;
+ // assign our row the rownumber specified in the Row Record
+ cursheet.createRow(rowrec.getRowNumber());
+ break;
+ // if this is a NumberRecord (RKRecord, MulRKRecord get converted to Number
+ // records) then get the row specified in the number record from the current
+ // sheet. With this instance of HSSFRow create a new HSSFCell with the column
+ // number specified in the record and assign it type NUMERIC
+ case NumberRecord.sid:
+ NumberRecord numrec = (NumberRecord) record;
+ row = cursheet.getRow(numrec.getRow());
+ cell = row.createCell(numrec.getColumn(),HSSFCell.CELL_TYPE_NUMERIC);
+ // set the HSSFCell's value to the value stored in the NumberRecord
+ cell.setCellValue(numrec.getValue());
+ break;
+ // if this is the SSTRecord (occurs once in the workbook) then add all of its
+ // strings to our workbook. We'll look them up later when we add LABELSST records.
+ case SSTRecord.sid:
+ SSTRecord sstrec = (SSTRecord) record;
+ for (int k = 0; k &lt; sstrec.getNumUniqueStrings(); k++) {
+ workbook.addSSTString(sstrec.getString(k));
+ }
+ break;
+ // if this is a LabelSSTRecord then get the row specified in the LabelSSTRecord from
+ // the current sheet. With this instance of HSSFRow create a new HSSFCell with the
+ // column nubmer specified in the record and set the type to type STRING.
+ case LabelSSTRecord.sid:
+ LabelSSTRecord lrec = (LabelSSTRecord) record;
+ row = cursheet.getRow(lrec.getRow());
+ cell = row.createCell(lrec.getColumn(),HSSFCell.CELL_TYPE_STRING);
+ //set the cells value to the string in our workbook object (added in the case
+ //above) at the index specified by the LabelSSTRecord.
+ cell.setCellValue(workbook.getSSTString(lrec.getSSTIndex()));
+ break;
+ }
+ }</pre>
+</td>
+</tr>
+</table>
+</div>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Low Level APIs</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">The low level API is not much to look at. It consists of lots of
+"Records" in the org.apache.poi.hssf.record.* package,
+and set of helper classes in org.apache.poi.hssf.model.*. The
+record classes are consistent with the low level binary structures
+inside a BIFF8 file (which is embedded in a POIFS file system). You
+probably need the book: "Microsoft Excel 97 Developer's Kit"
+from Microsoft Press in order to understand how these fit together
+(out of print but easily obtainable from Amazon's used books). In
+order to gain a good understanding of how to use the low level APIs
+should view the source in org.apache.poi.hssf.usermodel.* and
+the classes in org.apache.poi.hssf.model.*. You should read the
+documentation for the POIFS libraries as well.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>HSSF Class/Test Application</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">The HSSF application is nothing more than a test for the high
+level API (and indirectly the low level support). The main body of
+its code is repeated above. To run it:
+</p>
+
+<ul>
+
+<li>download the poi-alpha build and untar it (tar xvzf
+ tarball.tar.gz)
+ </li>
+
+<li>set up your classpath as follows:
+ <code>export HSSFDIR={wherever you put HSSF's jar files}
+export LOG4JDIR={wherever you put LOG4J's jar files}
+export CLASSPATH=$CLASSPATH:$HSSFDIR/hssf.jar:$HSSFDIR/poi-poifs.jar:$HSSFDIR/poi-util.jar:$LOG4JDIR/jog4j.jar</code>
+
+</li>
+<li>type:
+ <code>java org.apache.poi.hssf.dev.HSSF ~/myxls.xls write</code>
+</li>
+
+</ul>
+
+<p align="justify">This should generate a test sheet in your home directory called <code>"myxls.xls"</code>. </p>
+
+<ul>
+
+<li>Type:
+ <code>java org.apache.poi.hssf.dev.HSSF ~/input.xls output.xls
+This is the read/write/modify test. It reads in the spreadsheet, modifies a cell, and writes it back out.
+Failing this test is not necessarily a bad thing. If HSSF tries to modify a non-existant sheet then this will
+most likely fail. No big deal. </code>
+</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>HSSF Logging facility</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">HSSF now has a logging facility (using log4j - thanks jakarta!)
+that will record massive amounts of debugging information. Its mostly
+useful to us hssf-developing geeks, but might be useful in tracking
+down problems. By default we turn this off because it results in
+unnecessary performance degradation when fully turned on! Using it is
+simple. You need an hssflog.properties file (example listed below,
+those familiar with log4j can customize this as they wish). You can
+either put this in your home directory (or wherever the default
+directory is on windows which I suspect is c:\windows) or you can put
+it wherever you want and set the HSSF.log to the path ending in "/"
+(or "\\" on windows). If for any reason HSSF can't find it,
+you get no logging. If the log configuration dictates the logging be
+turned off, you get no logging.</p>
+
+<p align="justify">Here is an example hssflog.properties (actually its not an example
+its mine):
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre># Set root category priority to DEBUG and its only appender to A1.
+log4j.rootCategory=DEBUG, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
+#uncomment below to change the level to WARN to disable debugging information. This effectively turns off logging.
+#the default level is DEBUG (and changing it to DEBUG is the basically the same thing as leaving it commented out).
+#log4j.category.org.apache.poi=WARN</pre>
+</td>
+</tr>
+</table>
+</div>
+</p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>HSSF Developer's tools</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">HSSF has a number of tools useful for developers to debug/develop
+stuff using HSSF (and more generally XLS files). We've already
+discussed the app for testing HSSF read/write/modify capabilities;
+now we'll talk a bit about BiffViewer. Early on in the development of
+HSSF, it was decided that knowing what was in a record, what was
+wrong with it, etc. was virtually impossible with the available
+tools. So we developed BiffViewer. You can find it at
+org.apache.poi.hssf.dev.BiffViewer. It performs two basic
+functions and a derivative.
+</p>
+
+<p align="justify">The first is "biffview". To do this you run it (assumes
+you have everything setup in your classpath and that you know what
+you're doing enough to be thinking about this) with an xls file as a
+parameter. It will give you a listing of all understood records with
+their data and a list of not-yet-understood records with no data
+(because it doesn't know how to interpret them). This listing is
+useful for several things. First, you can look at the values and SEE
+what is wrong in quasi-English. Second, you can send the output to a
+file and compare it.
+</p>
+
+<p align="justify">The second function is "big freakin dump", just pass a
+file and a second argument matching "bfd" exactly. This
+will just make a big hexdump of the file.
+</p>
+
+<p align="justify">Lastly, there is "mixed" mode which does the same as
+regular biffview, only it includes hex dumps of certain records
+intertwined. To use that just pass a file with a second argument
+matching "on" exactly.</p>
+
+<p align="justify">In the next release cycle we'll also have something called a
+FormulaViewer. The class is already there, but its not very useful
+yet. When it does something, I'll document it.</p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>What's Next?</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">This release contains code that supports "internationalization"
+or more accurately non-US/UK languages; however, it has not been
+tested with the new API changes (please help us with this). We've
+shifted focus a bit for this release in recognition of the
+international support we've gotten. We're going to focus on western
+European languages for our first beta. We're more than happy to
+accept help in supporting non-Western European languages if someone
+who knows what they're doing in this area is willing to pitch in!
+(There is next to no documentation on what is necessary to support
+such a move and its really hard to support a language when you don't even
+know the alphabet).</p>
+
+<p align="justify">This release of HSSF does not yet support Formulas. I've been
+focusing on the requests I've gotten in. That being said, if we get
+more user feedback on what is most useful first we'll aim for that.
+As a general principal, HSSF's goal is to support HSSF-Serializer
+(meaning an emphasis on write). We would like to hear from you! How
+are you using HSSF/POIFS? How would you like to use it? What features
+are most important first?
+</p>
+
+<p align="justify">This release is near feature freeze for the 1.0-beta. All
+priorities refer to things we'll be adding in the next release
+(probably 2.0). The 1.0-beta is scheduled for release in the mid to
+late December timeframe. While it's way to early to say when the
+2.0-beta will be released, my "gut" feeling is to aim for
+around March and have at least the first three items.</p>
+
+<p align="justify">Current list of priorities:</p>
+
+<ol>
+
+<li>Helper class for fonts, etc.</li>
+
+<li>Add Formulas.</li>
+
+<li>Implement more record types (for other things ... not sure
+ what this will mean yet).</li>
+
+<li>Add more dummy checks (for when API user's do things they
+ "can't" do)</li>
+
+<li>Add support for embedded graphics and stuff like that.</li>
+
+<li>Create new adapter object for handling MulBlank, MulRk, Rk
+ records.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Changes</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>1.1.0</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<ol>
+
+<li>Created new event model</li>
+
+<li>Optimizations made to HSSF including aggregate records for
+ values, rows, etc.</li>
+
+<li>predictive sizing, offset based writing (instead of lots of
+ array copies)</li>
+
+<li>minor re-factoring and bug fixes.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>1.0.0</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<ol>
+
+<li>Minor documentation updates.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.14.0</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ol>
+
+<ol>
+
+<li>Added DataFormat helper class and exposed set and get format
+ on HSSFCellStyle</li>
+
+<li>Fixed column width apis (unit wise) and various javadoc on
+ the subject</li>
+
+<li>Fix for Dimensions record (again)... (one of these days I'll
+ write a unit test for this ;-p).</li>
+
+<li>Some optimization on sheet creation.</li>
+
+</ol>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.13.0</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">- NO WAY!</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.12.0</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ol>
+
+<li>Added MulBlank, Blank, ColInfo</li>
+
+<li>Added log4j facility and removed all sys.out type logging</li>
+
+<li>Added support for adding font's, styles and corresponding
+ high level api for styling cells</li>
+
+<li>added support for changing row height, cell width and default
+ row height/cell width.</li>
+
+<li>Added fixes for internationalization (UTF-16 should work now
+ from HSSFCell.setStringValue, etc when the encoding is set)</li>
+
+<li>added support for adding/removing and naming sheets.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.11.0</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ol>
+
+<li>Bugfix release. We were throwing an exception when reading
+ RKRecord objects.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.10.0</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ol>
+
+<li>Got continuation records to work (read/write)</li>
+
+<li>Added various pre-support for formulas</li>
+
+<li>Massive API reorganization, repackaging.</li>
+
+<li>BiffViewer class added for validating HSSF &amp; POI and/or
+ HSSF Output.</li>
+
+<li>Better API support for modification.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.7 (and interim releases)</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ol>
+
+<li>Added encoding flag to high and low level api to use utf-16
+ when needed (HSSFCell.setEncoding())</li>
+
+<li>added read only support for Label records (which are
+ reinterpreted as LabelSST when written)</li>
+
+<li>Broken continuation record implementation (oops)</li>
+
+<li>BiffViewer class added for validating HSSF &amp; POI and/or
+ HSSF Output.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>0.6 (release)</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ol>
+
+<li>Support for read/write and modify.</li>
+
+<li>Read only support for MulRK records (converted to Number when
+ writing)
+ </li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/hssf/images/cocoon2-small.jpg b/build/jakarta-poi/docs/hssf/images/cocoon2-small.jpg
new file mode 100644
index 0000000000..e8f6dd8c8c
--- /dev/null
+++ b/build/jakarta-poi/docs/hssf/images/cocoon2-small.jpg
Binary files differ
diff --git a/build/jakarta-poi/docs/hssf/images/header.gif b/build/jakarta-poi/docs/hssf/images/header.gif
new file mode 100644
index 0000000000..b9c2ee1391
--- /dev/null
+++ b/build/jakarta-poi/docs/hssf/images/header.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/hssf/images/jakarta-logo.gif b/build/jakarta-poi/docs/hssf/images/jakarta-logo.gif
new file mode 100644
index 0000000000..82baef3abe
--- /dev/null
+++ b/build/jakarta-poi/docs/hssf/images/jakarta-logo.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/hssf/index.html b/build/jakarta-poi/docs/hssf/index.html
new file mode 100644
index 0000000000..5e4814847c
--- /dev/null
+++ b/build/jakarta-poi/docs/hssf/index.html
@@ -0,0 +1,132 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>HSSF</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">HSSF</font><font size="-1">
+<ul>
+<li>
+<a href="how-to.html"><font size="-1">HOWTO</font></a>
+</li>
+<li>
+<a href="use-case.html"><font size="-1">Use Case</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>HSSF</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>HSSF</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">HSSF is the POI Project's pure Java implementation of the Excel '97(-2002) file format.</p>
+
+<p align="justify">HSSF provides a way to read spreadsheets create, modify, read and write XLS spreadsheets
+ It provides:
+ </p>
+
+<ul>
+
+<li>low level structures for those with special needs</li>
+
+<li>an eventmodel api for efficient read-only access</li>
+
+<li>a full usermodel api for creating, reading and modifying XLS files</li>
+
+</ul>
+
+<p align="justify">
+ Truth be told there is probably a better way to generate your spreadsheet
+ generation (yet you'll still be using HSSF indirectly). At the time of
+ this writing we're in the process of moving the HSSF Serializer over to
+ the <a href="http://xml.apache.org/cocoon">Apache Cocoon
+ Project</a>. With Cocoon you can serialize any XML datasource (of
+ which might be a ESQL page outputting in SQL for instance) by simply
+ applying the stylesheet and designating the serializer.
+ </p>
+
+<p align="justify">
+ If you're merely reading spreadsheet data, then use the eventmodel api
+ in the org.apache.poi.hssf.eventmodel package.
+ </p>
+
+<p align="justify">
+ If you're modifying spreadsheet data then use the usermodel api. You
+ can also generate spreadsheets this way, but using Cocoon (which will do
+ it this way indirectly) is the best way...we promise.
+ </p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/hssf/use-case.html b/build/jakarta-poi/docs/hssf/use-case.html
new file mode 100644
index 0000000000..3a6754a8f3
--- /dev/null
+++ b/build/jakarta-poi/docs/hssf/use-case.html
@@ -0,0 +1,480 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>HSSF Use Cases</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">HSSF</font><font size="-1">
+<ul>
+<li>
+<a href="how-to.html"><font size="-1">HOWTO</font></a>
+</li>
+<li>
+<a href="use-case.html"><font size="-1">Use Case</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>HSSF Use Cases</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>HSSF Use Cases</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>HSSF Use Cases</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 1: Read existing HSSF</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">
+<em>Primary Actor:</em> HSSF client</p>
+
+<p align="justify">
+<em>Scope:</em> HSSF</p>
+
+<p align="justify">
+<em>Level:</em> Summary</p>
+
+<p align="justify">
+<em>Stakeholders and Interests:</em>
+</p>
+
+<ul>
+
+<li>HSSF client- wants to read content
+ of HSSF file</li>
+
+<li>HSSF - understands HSSF file</li>
+
+<li>POIFS - understands underlying POI
+ file system</li>
+
+</ul>
+
+<p align="justify">
+<em>Precondition:</em> None</p>
+
+<p align="justify">
+<em>Minimal Guarantee:</em> None</p>
+
+<p align="justify">
+<em>Main Success Guarantee:</em>
+</p>
+
+<ol>
+
+<li>HSSF client requests HSSF to read
+ a HSSF file, providing an InputStream
+ containing HSSF file in question.</li>
+
+<li>HSSF requests POIFS to read the HSSF
+ file, passing the InputStream
+ object to POIFS (POIFS use case 1, read existing file system)</li>
+
+<li>HSSF reads the "Workbook"
+ file (use case 4, read workbook entry)</li>
+
+</ol>
+
+<p align="justify">
+<em>Extensions:</em>
+</p>
+
+<p align="justify">2a. Exceptions
+thrown by POIFS will be passed on to the HSSF client.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 2: Write HSSF file</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">
+<em>Primary Actor:</em> HSSF client</p>
+
+<p align="justify">
+<em>Scope:</em> HSSF</p>
+
+<p align="justify">
+<em>Level:</em> Summary</p>
+
+<p align="justify">
+<em>Stakeholders and Interests:</em>
+</p>
+
+<ul>
+
+<li>HSSF client- wants to write file
+ out.</li>
+
+<li>HSSF - knows how to write file
+ out.</li>
+
+<li>POIFS - knows how to write file
+ system out.</li>
+
+</ul>
+
+<p align="justify">
+<em>Precondition:</em>
+</p>
+
+<ul>
+
+<li>File has been
+ read (use case 1, read existing HSSF file) and subsequently modified
+ or file has been created (use case 3, create HSSF file)</li>
+
+</ul>
+
+<p align="justify">
+<em>Minimal Guarantee:</em> None</p>
+
+<p align="justify">
+<em>Main Success Guarantee:</em>
+</p>
+
+<ol>
+
+<li>HSSF client
+ provides an OutputStream to
+ write the file to.</li>
+
+<li>HSSF writes
+ the "Workbook" to its associated POIFS file system (use case
+ 5, write workbook entry)</li>
+
+<li>HSSF
+ requests POIFS to write its file system out, using the OutputStream
+ obtained from the HSSF client (POIFS use case 2, write file system).</li>
+
+</ol>
+
+<p align="justify">
+<em>Extensions:</em>
+</p>
+
+<p align="justify">3a. Exceptions
+from POIFS are passed to the HSSF client.</p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 3:Create HSSF file</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">
+<em>Primary Actor:</em> HSSF client</p>
+
+<p align="justify">
+<em>Scope:</em> HSSF</p>
+
+<p align="justify">
+
+<em>Level:</em> Summary</p>
+
+<p align="justify">
+<em>Stakeholders and Interests:</em>
+</p>
+
+<ul>
+
+<li>HSSF client- wants to create a new
+ file.</li>
+
+<li>HSSF - knows how to create a new
+ file.</li>
+
+<li>POIFS - knows how to creat a new
+ file system.</li>
+
+</ul>
+
+<p align="justify">
+<em>Precondition:</em>
+</p>
+
+<p align="justify">
+<em>Minimal Guarantee:</em> None</p>
+
+<p align="justify">
+<em>Main Success Guarantee:</em>
+</p>
+
+<ol>
+
+<li>HSSF requests
+ POIFS to create a new file system (POIFS use case 3, create new file
+ system)</li>
+
+</ol>
+
+<p align="justify">
+<em>Extensions:</em>
+None</p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 4: Read workbook entry</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+<em>Primary Actor:</em> HSSF</p>
+
+<p align="justify">
+<em>Scope:</em> HSSF</p>
+
+<p align="justify">
+
+<em>Level:</em> Summary</p>
+
+<p align="justify">
+<em>Stakeholders and Interests:</em>
+</p>
+
+<ul>
+
+<li>HSSF - knows how to read the
+ workbook entry</li>
+
+<li>POIFS - knows how to manage the file
+ system.</li>
+
+</ul>
+
+<p align="justify">
+<em>Precondition:</em>
+</p>
+
+<ul>
+
+<li>The file
+ system has been read (use case 1, read existing HSSF file) or has
+ been created and written to (use case 3, create HSSF file system;
+ use case 5, write workbook entry).</li>
+
+</ul>
+
+<p align="justify">
+<em>Minimal
+Guarantee:</em> None</p>
+
+<p align="justify">
+<em>Main Success Guarantee:</em>
+</p>
+
+<ol>
+
+<li>
+ HSSF requests POIFS for the "Workbook" file</li>
+
+<li>POIFS returns
+ an InputStream for the file.</li>
+
+<li>HSSF reads
+ from the InputStream provided by POIFS</li>
+
+<li>HSSF closes
+ the InputStream provided by POIFS</li>
+
+</ol>
+
+<p align="justify">
+<em>Extensions:</em>
+</p>
+
+<p align="justify">3a. Exceptions
+thrown by POIFS will be passed on</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 5: Write workbook entry</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+
+<p align="justify">
+<em>Primary Actor:</em> HSSF</p>
+
+<p align="justify">
+<em>Scope:</em> HSSF</p>
+
+<p align="justify">
+
+<em>Level:</em> Summary</p>
+
+<p align="justify">
+<em>Stakeholders and Interests:</em>
+</p>
+
+<ul>
+
+<li>HSSF - knows how to manage the
+ write the workbook entry.</li>
+
+<li>POIFS - knows how to manage the file
+ system.</li>
+
+</ul>
+
+<p align="justify">
+<em>Precondition:</em>
+
+</p>
+
+<ul>
+
+<li>Either an existing HSSF file has
+ been read (use case 1, read existing HSSF file) or an HSSF file has
+ been created (use case 3, create HSSF file).</li>
+
+</ul>
+
+<p align="justify">
+<em>Minimal Guarantee:</em> None</p>
+
+<p align="justify">
+<em>Main Success Guarantee:</em>
+</p>
+
+<ol>
+
+<li>HSSF
+ checks the POIFS file system directory for the "Workbook"
+ file (POIFS use case 8, read file system directory)</li>
+
+<li>If "Workbook" is in the directory, HSSF requests POIFS to
+ replace it with the new workbook entry (POIFS use case 4, replace file
+ in file system). Otherwise, HSSF requests POIFS to write the new
+ workbook file, with the name "Workbook" (POIFS use case 6,
+ write new file to file system)</li>
+
+</ol>
+
+<p align="justify">
+<em>Extensions:</em>None</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/images/cocoon2-small.jpg b/build/jakarta-poi/docs/images/cocoon2-small.jpg
new file mode 100644
index 0000000000..e8f6dd8c8c
--- /dev/null
+++ b/build/jakarta-poi/docs/images/cocoon2-small.jpg
Binary files differ
diff --git a/build/jakarta-poi/docs/images/header.gif b/build/jakarta-poi/docs/images/header.gif
new file mode 100644
index 0000000000..b9c2ee1391
--- /dev/null
+++ b/build/jakarta-poi/docs/images/header.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/images/jakarta-logo.gif b/build/jakarta-poi/docs/images/jakarta-logo.gif
new file mode 100644
index 0000000000..82baef3abe
--- /dev/null
+++ b/build/jakarta-poi/docs/images/jakarta-logo.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/images/update.jpg b/build/jakarta-poi/docs/images/update.jpg
new file mode 100644
index 0000000000..586a4527e3
--- /dev/null
+++ b/build/jakarta-poi/docs/images/update.jpg
Binary files differ
diff --git a/build/jakarta-poi/docs/index.html b/build/jakarta-poi/docs/index.html
new file mode 100644
index 0000000000..c201aaa7d7
--- /dev/null
+++ b/build/jakarta-poi/docs/index.html
@@ -0,0 +1,372 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title></title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*"><font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Purpose</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The POI project consists of APIs for manipulating various file formats
+ based upon Microsoft's OLE 2 Compound Document format using pure Java.
+ </p>
+
+<p align="justify">
+ OLE 2 Compound Document Format based files include most Microsoft Office
+ files such as XLS and DOC.
+ </p>
+
+<p align="justify">
+ As a general policy we try to collaborate as much as possible with other projects to
+ provide this functionality. Examples include: <a href="http://xml.apache.org/cocoon">Cocoon</a> for
+ which you'll soon find generators and serializers for our projects;
+ <a href="http://www.openoffice.org">Open Office.org</a> with whom we collaborate in documenting the
+ XLS format; and <a href="http://jakarta.apache.org/lucene">Lucene</a> for which we'll soon have file
+ format interpretors. When practical, we donate components directly to those projects for POI-enabling them.
+ </p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Why/when would I use POI</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ We'll tackle this on a component level. POI refers to the whole project.
+ </p>
+
+<p align="justify">
+ So why should you use POIFS or HSSF?
+ </p>
+
+<p align="justify">
+ You'd use POIFS if you had a document written in OLE 2 Compound Document Format, probably written using
+ MFC, that you needed to read in Java. Alternatively, you'd use POI to write OLE 2 Compound Document Format
+ if you needed to inter-operate with software running on the Windows platform. We are not just bragging when
+ we say that POIFS is the most complete and correct port of this file format to date!
+ </p>
+
+<p align="justify">
+ You'd use HSSF if you needed to read or write an XLS (Excel) file using Java. You can also read and modify
+ spreadsheets using this API, although right now writing is more mature.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>What does POI stand for?</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ POI stands for Poor Obfuscation Implementation. Why would we name our project such a derogatory name? Well,
+ Microsoft's OLE 2 Compound Document Format is a poorly conceived thing. It is essentially an archive structured
+ much like the old DOS FAT filesystem. Redmond chose, instead of using tar, gzip, zip or arc, to invent their own
+ archive format that does not provide any standard encryption or compression, is not very appendable and is prone
+ to fragmentation.
+ </p>
+
+<p align="justify">
+ Poi is also a Hawaiian delicacy that <a href="http://www.m-w.com">Merriam Webster's dictionary</a> defines as:
+ "A Hawaiian food of taro root cooked, pounded, and kneaded to a paste and often allowed to ferment." This seemed
+ strangely descriptive of the file format.
+ </p>
+
+<p align="justify">
+ So if you like acronyms, then POI is an acronym. If you hate them, then we just used the name of the food for our
+ project. If you wish to signify your love or hate for acronyms, use POI or Poi to refer to the project respectively.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Components To Date</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+ A common misconception is that POI writes Excel files. POI is the name of the project. POI contains several
+ components, one of which, HSSF, writes Excel files. The following are components of the entire POI project
+ and a brief summary of their purpose.
+ </td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>POIFS</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+ POIFS is the oldest and most stable part of the project. It is our port of the OLE 2 Compound Document Format to
+ pure Java. It supports both read and write functionality. All of our components ultimately rely on it by
+ definition. Please see <a href="poifs/index.html">the POIFS project page</a> for more information.
+ </td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>HSSF</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+ HSSF is our port of the Microsoft Excel 97(-2002) file format (BIFF8) to pure Java. It supports read and write
+ capability. Please see <a href="hssf/index.html">the HSSF project page</a> for more information.
+ </td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>HDF</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+ HDF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
+ Please see <a href="hdf/index.html">the HDF project page for more information</a>. This component is
+ in the early stages of design. Jump in!
+ </td>
+</tr>
+</table>
+</div>
+<br>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>What happened to the HSSF Serializer?</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+ The HSSF Serializer, which was part of our 1.0 release and last builds on
+ <a href="http://www.sourceforge.net/projects/poi">Sourceforge</a>, has been donated to the Cocoon project. We're
+ currently in the process of porting it over.
+ </td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Contributing </b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ So you'd like to contribute to the project? Great! We need enthusiastic, hard-working, talented folks to help
+ us on the project in several areas. The first is bug reports and feature requests! The second is documentation -
+ we'll be at your every beck and call if you've got a critique or you'd like to contribute or otherwise improve
+ the documentation. We could especially use some help documenting the HSSF file format! Last, but not least, we
+ could use some binary crunching Java coders to chew through the convolution that characterizes Microsoft's file
+ formats and help us port new ones to a superior Java platform!
+ </p>
+
+<p align="justify">So if you're motivated, ready, and have the time, join the mail lists and we'll be happy to help you get started on the
+ project!
+ </p>
+
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/livesites.html b/build/jakarta-poi/docs/livesites.html
new file mode 100644
index 0000000000..e9d2e4c983
--- /dev/null
+++ b/build/jakarta-poi/docs/livesites.html
@@ -0,0 +1,185 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Live Sites using Poi</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Live Sites using Poi</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Live Sites using Poi</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Live Sites using Poi</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Here is a list of some of the web sites that are proudly using Poi 1.X (in no particular order):
+ </p>
+ <!--
+ <ul>
+ <li><link href=""></link></li>
+ </ul>
+ </s1>
+ -->
+
+<p align="justify">
+ If you do not find your site here, make sure you tell us
+ (use the word "Livesites" in the email subject, confirm that
+ you want to be listed publicly, say which version of Poi, and do not
+ forget to tell us the URL).
+ We would like to see this list grow bigger every day :-)
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/mail-archives.html b/build/jakarta-poi/docs/mail-archives.html
new file mode 100644
index 0000000000..535049a618
--- /dev/null
+++ b/build/jakarta-poi/docs/mail-archives.html
@@ -0,0 +1,198 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Mail Archives</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Mail Archives</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Mail Archives</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Mailing List Archives</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ There are a number of mailing list archives available.
+ </p>
+
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>poi-user</em></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>poi-dev</em></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Regularly updated?</em></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Searchable?</em></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Speed</em></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><em>Other features?</em></font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><a href="http://www.mail-archive.com/poi-user@jakarta.apache.org">
+ Apache</a></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><a href="http://www.mail-archive.com/poi-dev@jakarta.apache.org">
+ Apache</a></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Yes</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">?</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">?</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">?</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/mail-lists.html b/build/jakarta-poi/docs/mail-lists.html
new file mode 100644
index 0000000000..da04ec79b9
--- /dev/null
+++ b/build/jakarta-poi/docs/mail-lists.html
@@ -0,0 +1,318 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Mailing Lists</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Mailing Lists</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Mailing Lists</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Important Notice</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+<em>IMPORTANT: Before posting a question or problem to any mailing list,
+ </em>please first look at the following resources in this order:</p>
+
+<ol>
+
+<li>
+<connect href="faq.html" type="simple" show="replace" actuate="user" mode="soft">FAQs</connect>
+</li>
+
+<li>
+<a href="http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/">ODP XML links</a>
+ - a wealth of general XML information.</li>
+
+<li>
+<connect href="mail-archives.html" type="simple" show="replace" actuate="user" mode="soft">Mailing list archives</connect> -
+ a veritable goldmine of Poi-specific information - if you know where to look!</li>
+
+</ol>
+
+
+<p align="justify">
+<em>IMPORTANT:</em> Careful postings please.
+ These are high-volume lists, so we all needs ways to help us all
+ work smarter.
+ See tips for <a href="contrib.html#tips">Contributing</a>
+
+</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Poi Users</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+<a href="mailto://poi-user-subscribe@jakarta.apache.org">Subscribe</a>
+ <a href="mailto://poi-user-unsubscribe@jakarta.apache.org">Unsubscribe</a>
+
+</p>
+
+
+<p align="justify">The general list, for problems, bug reports, asking for advice on how
+ best to implement a site, comparisons with other frameworks, etc.
+ But don't forget to look in the FAQ first, please!</p>
+
+
+<p align="justify">
+<em>This is also not an appropriate list for general Java questions.</em>
+ Instead try <a href="news:comp.lang.java.help">news:comp.lang.java.help</a>
+ or <a href="http://hotdispatch.com/">http://hotdispatch.com/</a>, for
+ example.</p>
+
+
+<p align="justify">
+<em>This is not an appropriate list for general XML questions.</em>
+ Instead
+ look at the <a href="http://dmoz.org/">ODP</a> for
+ <a href="http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/">XML/XSL links</a>
+ (such as the excellent <a href="http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html">
+ XSL tutorial at Zvon.org</a>) or try the
+ <a href="http://www.mulberrytech.com/xsl/">Mulberrytech XSL list</a>.</p>
+
+
+<p align="justify">
+<em>IMPORTANT:</em> If you are posting about a problem
+ you are having (as most people do), it will aid in finding a
+ speedy resolution if you provide full configuration details
+ (especially the <em>version number</em>, but also your
+ operating system, JDK version, etc.), and full details of any
+ errors encountered (including full error messages and stack
+ traces).</p>
+
+
+<p align="justify">Please also have some consideration for the other users on the list - this is a
+ busy list and we do not appreciate getting the exact same message posted impatiently
+ several times a day/week! Doing so is only likely to make your question answered more
+ slowly, or not at all, not faster.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Poi Dev</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+<a href="mailto://poi-dev-subscribe@jakarta.apache.org">Subscribe</a>
+ <a href="mailto://poi-dev-unsubscribe@jakarta.apache.org">Unsubscribe</a>
+
+</p>
+
+
+<p align="justify">This list is for developers <em>working on</em> or wanting to work on
+ Poi itself (not developers merely working <em>with</em> Poi),
+ for code patches to Poi to be posted (please use <code>diff -u</code> format),
+ and for general Poi questions.</p>
+
+
+<p align="justify">Note this is <em>NOT</em> for general Poi questions like "Why
+ isn't Poi working on my machine?" -
+ please ask those sorts of questions on users list (after reading the
+ FAQ first, of course).</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Related Mailing Lists</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">(See also <a href="http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/">
+ ODP XML links</a> for related websites.)</p>
+
+<ul>
+
+<li>
+<a href="http://xml.apache.org/mail.html">XML Apache Projects</a> -
+ list of mailing lists for all the projects on xml.apache.org.</li>
+
+<li>Some servlet engines have their own mailing lists for servlet-engine
+ configuration questions, such as
+ <a href="mailto:tomcat-user-subscribe@jakarta.apache.org">tomcat-user</a> (note it is "user"
+ and not "users").</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/overview.html b/build/jakarta-poi/docs/overview.html
new file mode 100644
index 0000000000..768ac0e1a4
--- /dev/null
+++ b/build/jakarta-poi/docs/overview.html
@@ -0,0 +1,283 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Overview</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Overview</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Overview</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>What is it?</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">The POI project is the master project for developing pure
+ Java ports of file formats based on Microsoft's OLE 2 Compound
+ Document Format. OLE 2 Compound Document Format is used by
+ Microsoft Office Documents, as well as by programs using MFC
+ property sets to serialize their document objects.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Sub-Projects</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ There following are ports, packages or components contained in the POI project.
+ </p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>POIFS</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+
+<a href="poifs/index.html">POIFS</a> is the set of APIs
+ for reading and writing OLE 2 Compound Document Formats using (only) Java.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>HSSF</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+
+<a href="hssf/index.html">HSSF</a> is the set of APIs
+ for reading and writing Microsoft Excel 97(-XP) spreadsheet using (only) Java.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>HDF</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+
+<a href="hdf/index.html">HDF</a> is the set of APIs
+ for reading and writing Microsoft Word 97(-XP) spreadsheet using (only) Java.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>POI-Utils</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+
+<a href="utils/index.html">POI-Utils</a> are general purpose artifacts
+ from POI development that have not yet been implemented elsewhere. We're
+ always looking to donate these and maintain them as part of a general library
+ used in another project. These are things we need to complete our mission but
+ are generally outside of it.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/plan/POI10Vision.html b/build/jakarta-poi/docs/plan/POI10Vision.html
new file mode 100644
index 0000000000..8d350d0c73
--- /dev/null
+++ b/build/jakarta-poi/docs/plan/POI10Vision.html
@@ -0,0 +1,1117 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>POI 1.0 Vision Document</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Planning Documents</font><font size="-1">
+<ul>
+<li>
+<a href="POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>POI 1.0 Vision Document</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>POI 1.0 Vision Document</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Preface</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ (21-Jan-02) While this document is just full of useful project
+ introductory information and I do suggest those interested in getting
+ involved in the project read it, it is woefully out of date.
+ </p>
+
+<p align="justify">
+ We deliberately allowed this document to run out of date because it
+ is a good reflection of what the original vision was for POI 1.0.
+ You'll note that some of the terminology is not used in quite the same
+ way any longer. I've made some minor corrections where reading this
+ confused me. An example: in some places this document may refer to
+ POI API instead of POIFS API. When this vision was written we had
+ an incomplete understanding of the project.
+ </p>
+
+<p align="justify">
+ Lastly, the scope of the project expanded dramatically near the end
+ of the 1.0 cycle. Our vision at the time was to focus merely on the
+ Excel port (having no idea how the project would grow or be received)
+ and provide the OLE 2 Compound Document port for others to port later
+ formats. We now plan to spearhead these ports under the umbrella of
+ the POI project. So, you've been warned. Read on, but just realize
+ that we had a fuzzy view of things to come, and hindsight is 20-20.
+ </p>
+
+<p align="justify">
+ If I recall major holes were: a complete understanding of the format
+ of OLE 2 Compound Document format, Excel file format, and exactly how
+ Cocoon 2 Serializers worked. (that just about covers the whole range
+ huh?)
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>1. Introduction</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>1.1 Purpose of this document</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The purpose of this document is to
+ collect, analyze and define high-level requirements, user needs and
+ features of the HSSF Serializer for Cocoon 2 and related libraries.
+ The HSSF Serializer is a java class supporting the Serializer
+ interface from the Cocoon 2 project and outputting in a compatible
+ format of that used by the spreadsheet program Microsoft Excel '97.
+ The HSSF Serializer will be responsible for converting XML
+ spreadsheet-like documents into Excel-compatible XLS spreadsheets.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>1.2 Project Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ Many web apps today hit a brick wall
+ when it comes to the user request that they be able to easily
+ manipulate their reports and data extracts in the popular Microsoft
+ Excel spreadsheet format. This often causes inferior technologies to be
+ chosen for the project simply because they easily support this
+ format. This project seeks to extend existing XML, Java and Apache
+ Cocoon 2 project technologies by:
+ </p>
+
+
+<ul>
+
+<li>
+ providing an extensible library
+ (POIFS) which reads/writes in a compatable format to OLE 2 Compound
+ Document Format (aka Structured Storage Format) for easy
+ implementation of other document types;
+ </li>
+
+<li>
+ providing a library (HSSF) for
+ manipulating spreadsheet data and outputting it in a compatible
+ format to Microsoft Excel XLS format;
+ </li>
+
+<li>
+ and providing a Cocoon 2
+ Serializer (HSSFSerializer) for serializing XML documents as
+ Excel-compatible spreadsheets.
+ </li>
+
+</ul>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>2. User Description</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.1 User/Market Demographics</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ There are a number of enthusiastic
+ users of XML, UNIX and Java technology. Secondly, the Microsoft
+ solution for outputting Office Document formats often involves
+ actually manipulating the software as an OLE Server. This method
+ provides extremely low performance, extremely high overhead and is
+ only capable of handing one document at a time.
+ </p>
+
+<ol>
+
+<li>
+ Our intended audience for the HSSF
+ Serializer portion of this project are developers writing reports or
+ data extracts in XML format.
+ </li>
+
+<li>
+ Our intended audience for the HSSF
+ library portion of this project is ourselves as we are developing
+ the serializer and anyone who needs to write to Excel spreadsheets
+ in a non-XML Java environment or who has specific needs not
+ addressed by the Serializer.
+ </li>
+
+<li>
+ Our intended audience for the
+ "POIFS" OLE 2 Compound Document format reader/writer is
+ ourselves as we are writing the HSSF library and secondly, anyone
+ wishing to provide other libraries for reading/writing OLE 2
+ Compound Document Format in Java.
+ </li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.2. User environment</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The users of this software shall be
+ developers in a Java environment on any Operating System or power
+ users who are capable of XML document generation/deployment.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.3. Key User Needs</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The OLE 2 Compound Document format is
+ undocumented for all practical purposes and cryptic for all
+ impractical purposes. Developer needs in this area include
+ documentation and an easy to use library for reading and writing in
+ this format without requiring the developer to have intimate
+ knowledge of the format.
+ </p>
+
+<p align="justify">
+ There is currently no good way to write
+ to Microsoft Excel documents from Java or from a non-Microsoft
+ Windows based platform for that matter. Developers need an easy to
+ use library that supports a reasonable feature set and allows
+ seperation of data from formatting/stylistic concerns.
+ </p>
+
+<p align="justify">
+ There is currently no good way to
+ transform XML data to Microsoft Excel. Apache's Cocoon 2 project
+ supplies a complete framework for XML, but nothing for outputting in
+ Excel's XLS format. Developers and power users alike need a simple
+ method to output XML documents to Excel through server-side
+ processing.
+ </p>
+
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.4. Alternatives and Competition</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The alternative to this project is to
+ buy the $10,000 Formula 1 library (<a href="http://www.tidestone.com/">www.tidestone.com</a>)
+ and accept its crude api and limitations. As a second alternative,
+ give up XML and write Visual Basic code on a Microsoft Windows based
+ Environment or output in Microsoft's beta and primarily undocumented
+ XML for office format.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>3. Project Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.1. Project Perspective</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The produced code shall be licensed by
+ the Apache License as used by the Cocoon 2 project and maintained on
+ a project page until such time as the Cocoon 2 developers accept it
+ as a donation (at which time the copyright will be turned over to
+ them).
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.2. Project Position Statement</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ For developers on a Java and/or XML
+ environment this project will provide all the tools necessary for
+ outputting XML data in the Microsoft Excel format. This project seeks
+ to make the use of Microsoft Windows based servers unnecessary for
+ file format considerations and to fully document the OLE 2 Compound
+ Document format. The project aims not only to provide the tools for
+ serializing XML to Excel's file format and the tools for writing to
+ that file format from Java, but also to provide the tools for later
+ projects to convert other OLE 2 Compound Document formats to pure
+ Java APIs.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.3. Summary of Capabilities</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ HSSF Serializer for Apache Cocoon 2
+ </p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Benefit
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Supporting Features
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Standard XML tag language for sheet data
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Serializer will transform documents utilizing a defined tag
+ language
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Utilize XML to output in Excel
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Serializer will output in Excel
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Java API to output in Excel on any platform
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ The project will develop an API that outputs in Excel using
+ pure Java.
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Make it easy for developers to port other OLE 2 Compound
+ Document-based formats to Java.
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ The POIFS library will contain both a high-level abstraction
+ along with low-level constructs. The project will fully document
+ the OLE 2 Compound Document Format.
+ </font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.4. Assumptions and Dependencies</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>
+ The HSSF Serializer will run on
+ any Java 2 supporting platform with Apache Cocoon 2 installed along
+ with the HSSF and POIFS APIs.
+ </li>
+
+<li>
+ The HSSF API requires a Java 2
+ implementation and the POI API.
+ </li>
+
+<li>
+ The POIFS API requires a Java 2
+ implementation.
+ </li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>4. Project Features</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The POIFS API will include:
+ </p>
+
+<ul>
+
+<li>
+ Low level structures representing
+ the structures in a POI filesystems.
+ </li>
+
+<li>
+ A low-level API for
+ creating/manipulating POI filesystems.
+ </li>
+
+<li>
+ A set of high level interfaces
+ abstracting the user from the POI filesystem constructs and
+ representing it as a standard filesystem (Files, directories, etc)
+ </li>
+
+</ul>
+
+<p align="justify">
+ The HSSF API will include:
+ </p>
+
+<ul>
+
+<li>
+ Low level structures representing
+ the structures in an Excel file.
+ </li>
+
+<li>
+ A low-level API for creating and
+ manipulating Excel files and writing them into POI filesystems.
+ </li>
+
+<li>
+ A high level model and style
+ interface for manipulating spreadsheet data without knowing anything
+ about the Excel format itself.
+ </li>
+
+</ul>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>4.1 POI Filesystem API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The POI Filesystem API includes:
+ </p>
+
+<ul>
+
+<li>An implementation of Big Blocks</li>
+
+<li>An implementation of Small Blocks</li>
+
+<li>An implementation of Header Blocks</li>
+
+<li>An implementation of Block Allocation Tables</li>
+
+<li>An implementation of Property Sets</li>
+
+<li>An implementation of the POI
+ filesystem including functions to get and set the above constructs;
+ compound functions for reading/writing files/directories.
+ </li>
+
+<li>An abstraction of the POI
+ filesystem providing interfaces representing Files, Directories,
+ FileSystems in normal terminology and encapulating the above
+ constructs.
+ </li>
+
+<li>Full documentation of the POI file
+ format.
+ </li>
+
+<li>Full documentation of the APIs and
+ interfaces provided through Javadoc, user documentation (aimed at
+ developers using the APIs)
+ </li>
+
+<li>Examples aimed at teaching the
+ user to write code using POI. (titled: recipes for POI)
+ </li>
+
+<li>Performance specifications.
+ (Example POI filesystems rated by some measure of complexity along
+ with system specifications and execution times for given operations)
+ </li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>4.2 HSSF API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF API includes:
+ </p>
+
+<ul>
+
+<li>An implementation of Record
+ (binary 2 byte type followed by 2 byte size (n) followed by n bytes)</li>
+
+<li>Implementations of many standard
+ record types mapping the data bytes to fields along with methods to
+ reserialize those fields</li>
+
+<li>An implementation of the HSSF File
+ including functions to get/set the above constructs, create a blank
+ file with the minimum required record types and mappings between
+ getting/setting data and style in a workbook to the creation of
+ record types, and read HSSF files.</li>
+
+<li>An abstraction of the HSSF file
+ format providing interfaces representing the HSSF File, HSSF
+ Workbook, HSSF Sheet, HSSF Column, HSSF Formulas in a manner
+ seperating the data from the styling and encapsulating the above
+ constructs.</li>
+
+<li>Full documentation of the HSSF
+ file format (which will be a subset of the Excel '97 File format).
+ This must be done with care for legal reasons.</li>
+
+<li>Full documentation of the APIs and
+ interfaces provided through Javadoc, user documentation (aimed at
+ developers using the apis).</li>
+
+<li>Examples aimed at teaching
+ developers to use the APIs.
+ </li>
+
+<li>Performance specifications.
+ (Example files rated by some measure of complexity along with system
+ specifications and execution times for given operations - possibly
+ the same files used for POI's tests)</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>4.3 HSSF Serializer</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF Serializer subproject:
+ </p>
+
+<ul>
+
+<li>A class supporting the Cocoon 2
+ Serializer Interface.</li>
+
+<li>An interface between the SAX
+ events and the HSSF APIs.</li>
+
+<li>A specified tag language for using
+ with the Serializer.</li>
+
+<li>Documentation on the tag language
+ for the HSSF Serializer</li>
+
+<li>Normal javadocs.</li>
+
+<li>Example XML files</li>
+
+<li>Performance specifications.
+ (Example XML docs and stylesheets rated by some measure of
+ complexity along with system specifications and execution times)</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>5. Other Product Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.1. Applicable Standards</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ All Java code will be 100% pure Java.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.2. System Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The minimum system requirements for POIFS are:
+ </p>
+
+<ul>
+
+<li>64 Mbytes memory</li>
+
+<li>Java 2 environment</li>
+
+<li>Pentium or better processor (or equivalent on other platforms)</li>
+
+</ul>
+
+<p align="justify">
+ The minimum system requirements for HSSF are:
+ </p>
+
+<ul>
+
+<li>64 Mbytes memory</li>
+
+<li>Java 2 environment</li>
+
+<li>Pentium or better processor (or equivalent on other platforms)</li>
+
+<li>POIFS API</li>
+
+</ul>
+
+<p align="justify">
+ The minimum system requirements for the HSSF Serializer are:
+ </p>
+
+<ul>
+
+<li>64 Mbytes memory</li>
+
+<li>Java 2 environment</li>
+
+<li>Pentium or better processor (or equivalent on other platforms)</li>
+
+<li>Cocoon 2</li>
+
+<li>HSSF API</li>
+
+<li>POI API</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.3. Performance Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ All components must perform well enough
+ to be practical for use in a webserver environment (especially
+ Cocoon2/Tomcat/Apache combo)
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.4. Environmental Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The software will run primarily in
+ developer environments. We should make some allowances for
+ not-highly-technical users to write XML documents for the HSSF
+ Serializer. All other components will assume intermediate Java 2
+ knowledge. No XML knowledge will be required except for using the
+ HSSF Serializer. As much documentation as is practical shall be
+ required for all components as XML is relatively new, and the
+ concepts introduced for writing spreadsheets and to POI filesystems
+ will be brand new to Java and many Java developers.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>6. Documentation Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.1 POI Filesystem</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The filesystem as read and written by
+ POI shall be fully documented and explained so that the average Java
+ developer can understand it.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.2. POI API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The POI API will be fully documented
+ through Javadoc. A walkthrough of using the high level POI API shall
+ be provided. No documentation outside of the Javadoc shall be
+ provided for the low-level POI APIs.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.3. HSSF File Format</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF File Format as implemented by
+ the HSSF API will be fully documented. No documentation will be
+ provided for features that are not supported by HSSF API that are
+ supported by the Excel 97 File Format. Care will be taken not to
+ infringe on any "legal stuff".
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.4. HSSF API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF API will be documented by
+ javadoc. A walkthrough of using the high level HSSF API shall be
+ provided. No documentation outside of the Javadoc shall be provided
+ for the low level HSSF APIs.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.5. HSSF Serializer</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF Serializer will be documented
+ by javadoc.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.6 HSSF Serializer Tag language</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The XML tag language along with
+ function and usage shall be fully documented. Examples will be
+ provided as well.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>7. Terminology</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>7.1 Filesystem</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ filesystem shall refer only to the POI formatted archive.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>7.2 File</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ file shall refer to the embedded data stream within a
+ POI filesystem. This will be the actual embedded document.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/plan/POI20Vision.html b/build/jakarta-poi/docs/plan/POI20Vision.html
new file mode 100644
index 0000000000..a80a241c90
--- /dev/null
+++ b/build/jakarta-poi/docs/plan/POI20Vision.html
@@ -0,0 +1,1213 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>POI 2.0 Vision Document</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Planning Documents</font><font size="-1">
+<ul>
+<li>
+<a href="POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>POI 2.0 Vision Document</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>POI 2.0 Vision Document</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Preface</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ This is the POI 2.0 cycle vision document. Although the vision
+ has not changed and this document is certainly not out of date and
+ the vision has not changed, the structure of the project has
+ changed a bit. We're not going to change the vision document to
+ reflect this (however proper that may be) because it would only
+ involve deletion. There is no purpose in providing less
+ information provded we give clarification.
+ </p>
+
+<p align="justify">
+ This document was created before the POI components for
+ <a href="http://xml.apache.org/cocoon">Apache Cocoon</a>
+ were accepted into the Cocoon project itself. It was also
+ written before POI was accepted into Jakarta. So while the
+ vision hasn't changed some of the components are actually now
+ part of other projects. We'll still be working on them on the
+ same timeline roughly (minus the overhead of coordination with
+ other groups), but they are no longer technically part of the
+ POI project itself.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>1. Introduction</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>1.1 Purpose of this document</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The purpose of this document is to
+ collect, analyze and define high-level requirements, user needs,
+ and features of the second release of the POI project software.
+ The POI project currently consists of the following components:
+ the HSSF Serializer, the HSSF library and the POIFS library.
+ </p>
+
+<ul>
+
+<li>
+ The HSSF Serializer is a set of Java classes whose main
+ class supports the Serializer interface from the Cocoon
+ 2 project and outputs the serialized data in a format
+ compatible with the spreadsheet program Microsoft Excel
+ '97.
+ </li>
+
+<li>
+ The HSSF library is a set of classes for reading and
+ writing Microsoft Excel 97 file format using pure Java.
+ </li>
+
+<li>
+ The POIFS library is a set of classes for reading and
+ writing Microsoft's OLE 2 Compound Document format using
+ pure Java.
+ </li>
+
+</ul>
+
+<p align="justify">By the completion of this release cycle the POI project will also
+ include the HSSF Generator and the HDF library.
+ </p>
+
+<ul>
+
+<li>The HSSF Generator will be responsible for using HSSF to read
+ in the XLS (Excel 97) file format and create SAX events. The HSSF
+ Generator will support the applicable interfaces specified by the
+ Apache Cocoon 2 project.
+ </li>
+
+<li>The HDF library will provide a set of high level interfaces
+ for reading and writing Microsoft Word 97 file format using pure
+ Java.</li>
+
+</ul>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>1.2 Project Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The first release of the POI project
+ was an astounding success. This release seeks to build on that
+ success by:
+ </p>
+
+<ul>
+
+<li>
+ Refactoring POIFS into imput and
+ output classes as well as an event-driven API for reading.
+ </li>
+
+<li>
+ Refactor HSSF for greater
+ performance as well as an event-driven API for reading
+ </li>
+
+<li>
+ Extend HSSF by adding the ability to read and write formulas.
+ </li>
+
+<li>
+ Extend HSSF by adding the ability to read and write
+ user-defined styles.
+ </li>
+
+<li>
+ Create a Cocoon 2 Generator for HSSF using the same tags
+ as the HSSF Serializer.
+ </li>
+
+<li>
+ Create a new library (HDF) for reading and writing
+ Microsoft Word DOC format.
+ </li>
+
+<li>
+ Refactor the HSSFSerializer into a separate extensible
+ POIFSSerializer and HSSFSerializer
+ </li>
+
+<li>
+ Providing the create excel charts. (write only)
+ </li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>2. User Description</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.1 User/Market Demographics</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ There are a number of enthusiastic
+ users of XML, UNIX and Java technology. Furthermore, the Microsoft
+ solution for outputting Office Document formats often involves
+ actually manipulating the software as an OLE Server. This method
+ provides extremely low performance, extremely high overhead and is
+ only capable of handing one document at a time.
+ </p>
+
+<ol>
+
+<li>
+ Our intended audience for the HSSF
+ Serializer portion of this project are developers writing reports or
+ data extracts in XML format.
+ </li>
+
+<li>
+ Our intended audience for the HSSF
+ library portion of this project is ourselves as we are developing
+ the HSSF serializer and anyone who needs to read and write Excel
+ spreadsheets in a non-XML Java environment, or who has specific
+ needs not addressed by the Serializer
+ </li>
+
+<li>
+ Our intended audience for the
+ POIFS library is ourselves as we are developing the HSSF and HDF
+ libraries and anyone wishing to provide other libraries for
+ reading/writing other file formats utilizing the OLE 2 Compound
+ Document Format in Java.
+ </li>
+
+<li>
+ Our intended audience for the HSSF
+ generator are developers who need to export Excel spreadsheets to
+ XML in a non-proprietary environment.
+ </li>
+
+<li>
+ Our intended audience for the HDF
+ library is ourselves, as we will be developing a HDF Serializer in a
+ later release, and anyone wishing to add .DOC file processing and
+ creation to their projects.
+ </li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.2. User environment</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The users of this software shall be
+ developers in a Java environment on any operating system, or power
+ users who are capable of XML document generation/deployment.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.3. Key User Needs</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF library currently requires a
+ full object representation to be created before reading values. This
+ results in very high memory utilization. We need to reduce this
+ substantially for reading. It would be preferable to do this for
+ writing, but it may not be possible due to the constraints imposed by
+ the file format itself. Memory utilization during read is our top
+ user complaint.
+ </p>
+
+<p align="justify">
+ The POIFS library currently requires a
+ full object representation to be created before reading values. This
+ results in very high memory utilization. We need to reduce this
+ substantially for reading.
+ </p>
+
+<p align="justify">
+ The HSSF library currently ignores
+ formula cells and identifies them as "UnknownRecord" at the
+ lower level of the API. We must provide a way to read and write
+ formulas. This is now the top requested feature.
+ </p>
+
+<p align="justify">
+ The HSSF library currently does not support
+ charts. This is a key requirement of some users who wish to use HSSF
+ in a reporting engine.
+ </p>
+
+<p align="justify">
+ The HSSF Serializer currently does not
+ provide serialization for cell styling. User's will want stylish
+ spreadsheets to result from their XML.
+ </p>
+
+<p align="justify">
+ There is currently no way to generate
+ the XML from an XLS that is consistent with the format used by the
+ HSSF Serializer.
+ </p>
+
+<p align="justify">
+ There should be a way to read and write
+ the DOC file format using pure Java.
+ </p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>2.4. Alternatives and Competition</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ Alternatives to using HSSF to manipulate Excel files include:
+ </p>
+
+<ol>
+
+<li>Buy the $10,000 Formula 1 library
+ (<a href="http://www.f1j.com/">www.tidestone.com</a>)
+ now owned by Actuate and accept its crude api and limitations.
+ </li>
+
+<li>Give up XML, Java, and operating system independence, and
+ write Visual Basic code in a Microsoft Windows based environment
+ </li>
+
+<li>Try writing output in Microsoft's poorly documented XHTML
+ for Office format.
+ </li>
+
+</ol>
+
+<p align="justify">
+ There is also a decent library for
+ reading Excel documents written by Andy Khan called xlReader
+ (<a href="http://www.sourceforge.net/projects/xlrd">http://www.sourceforge.net/projects/xlrd</a>).
+ It does not provide write ability.
+ </p>
+
+<p align="justify">
+ There are a number of PERL and C alternatives.
+ None are consistent.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>3. Project Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.1. Project Perspective</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The produced code shall be licensed by
+ the Apache License as used by the Cocoon 2 project (APL 1.1) and
+ maintained on at <a href="http://poi.sourceforge.net/">http://poi.sourceforge.net</a>
+ and <a href="http://sourcefoge.net/projects/poi">http://sourcefoge.net/projects/poi</a>.
+ It is our hope to at some point integrate with the various Apache
+ projects (xml.apache.org and jakarta.apache.org), at which point we'd
+ turn the copyright over to them.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.2. Project Position Statement</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ For developers on a Java and/or XML
+ environment this project will provide all the tools necessary for
+ outputting XML data in the Microsoft Excel format. This project seeks
+ to make the use of Microsoft Windows based servers unnecessary for
+ file format considerations and to fully document the OLE 2 Compound
+ Document format. The project aims not only to provide the tools for
+ serializing XML to Excel and Word file formats and the tools for
+ writing to those file formats from Java, but also to provide the
+ tools for later projects to convert other OLE 2 Compound Document
+ formats to pure Java APIs.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.3. Summary of Capabilities</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ HSSF Serializer for Apache Cocoon 2
+ </p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Benefit
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Supporting Features
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Ability to serialize styles from XML spreadsheets.
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ HSSFSerialzier will support styles.
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Ability to read and write formulas in XLS files.
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ HSSF will support reading/writing formulas.
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Ability to output in MS Word on any platform using Java.
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ The project will develop an API that outputs in Word format
+ using pure Java.
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Enhance performance for reading and writing XLS files.
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ HSSF will undergo a number of performance enhancements. HSSF
+ will include a new event-based API for reading XLS files. POIFS
+ will support a new event-based API for reading OLE2 CDF files.
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ Ability to generate XML from XLS files
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ The project will develop an HSSF Generator.
+ </font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ The ability to generate charts
+ </font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+ HSSF will provide low level support for chart records as well
+ as high level API support for generating charts. The ability
+ to read chart information will not initially be provided.
+ </font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>3.4. Assumptions and Dependencies</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>
+ The HSSF Serializer and Generator
+ will support the Gnumeric 1.0 XML tag language.
+ </li>
+
+<li>
+ The HSSF Generator and HSSF
+ Serializer will be mutually validating. It should be possible to
+ have an XLS file created by the Serializer run through the Generator
+ and the output back through the Serializer (via the Cocoon pipeline)
+ and get the same file or a reasonable facimille (no one cares if it
+ differs by the order of the binary records in some minor but
+ non-visually recognizable manner).
+ </li>
+
+<li>
+ The HSSF Generator will run on any
+ Java 2 supporting platform with Apache Cocoon 2 installed along with
+ the HSSF and POIFS APIs.
+ </li>
+
+<li>
+ The HSSF Serializer will run on
+ any Java 2 supporting platform with Apache Cocoon 2 installed along
+ with the HSSF and POIFS APIs.
+ </li>
+
+<li>
+ The HDF API requires a Java 2
+ implementation and the POIFS API.
+ </li>
+
+<li>
+ The HSSF API requires a Java 2
+ implementation and the POIFS API.
+ </li>
+
+<li>
+ The POIFS API requires a Java 2
+ implementation.
+ </li>
+
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>4. Project Features</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ Enhancements to the POIFS API will
+ include:
+ </p>
+
+<ul>
+
+<li>
+ An event driven API for reading
+ POIFS Filesystems.
+ </li>
+
+<li>
+ A low-level API for
+ creating/manipulating POI filesystems.
+ </li>
+
+<li>
+ Code improvements supporting
+ greater separation between read and write structures.
+ </li>
+
+</ul>
+
+<p align="justify">
+ Enhancements to the HSSF API will
+ include:
+ </p>
+
+<ul>
+
+<li>
+ An event driven API for reading
+ XLS files.
+ </li>
+
+<li>
+ Performance improvements.
+ </li>
+
+<li>
+ Formula support (read/write)
+ </li>
+
+<li>
+ Support for user-defined data
+ formats
+ </li>
+
+<li>
+ Better documentation of the file
+ format and structure.
+ </li>
+
+<li>
+ An API for creation of charts.
+ </li>
+
+</ul>
+
+<p align="justify">
+ The HSSF Generator will include:
+ </p>
+
+<ul>
+
+<li>
+ A set of classes supporting the
+ Cocoon 2 Generator interfaces providing a method for reading XLS
+ files and outputting SAX events.
+ </li>
+
+<li>
+ The same tag format used by the
+ HSSFSerializer in any given release.
+ </li>
+
+</ul>
+
+<p align="justify">
+ The HDF API will include:
+ </p>
+
+<ul>
+
+<li>
+ An event driven API for reading
+ DOC files.
+ </li>
+
+<li>
+ A set of high and low level APIs
+ for reading and writing DOC files.
+ </li>
+
+<li>
+ Documentation of the DOC file
+ format or enhancements to existing documentation.
+ </li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>5. Other Product Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.1. Applicable Standards</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ All Java code will be 100% pure Java.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.2. System Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The minimum system requirements for the POIFS API are:
+ </p>
+
+<ul>
+
+<li>64 Mbytes memory</li>
+
+<li>Java 2 environment</li>
+
+<li>Pentium or better processor (or equivalent on other platforms)</li>
+
+</ul>
+
+<p align="justify">
+ The minimum system requirements for the the HSSF API are:
+ </p>
+
+<ul>
+
+<li>64 Mbytes memory</li>
+
+<li>Java 2 environment</li>
+
+<li>Pentium or better processor (or equivalent on other platforms)</li>
+
+<li>POIFS API</li>
+
+</ul>
+
+<p align="justify">
+ The minimum system requirements for the the HDF API are:
+ </p>
+
+<ul>
+
+<li>64 Mbytes memory</li>
+
+<li>Java 2 environment</li>
+
+<li>Pentium or better processor (or equivalent on other platforms)</li>
+
+<li>POIFS API</li>
+
+</ul>
+
+
+<p align="justify">
+ The minimum system requirements for the HSSF Serializer are:
+ </p>
+
+<ul>
+
+<li>64 Mbytes memory</li>
+
+<li>Java 2 environment</li>
+
+<li>Pentium or better processor (or equivalent on other platforms)</li>
+
+<li>Cocoon 2</li>
+
+<li>HSSF API</li>
+
+<li>POI API</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.3. Performance Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ All components must perform well enough
+ to be practical for use in a webserver environment (especially
+ the "killer trio": Cocoon2/Tomcat/Apache combo)
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>5.4. Environmental Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The software will run primarily in
+ developer environments. We should make some allowances for
+ not-highly-technical users to write XML documents for the HSSF
+ Serializer. All other components will assume intermediate Java 2
+ knowledge. No XML knowledge will be required except for using the
+ HSSF Serializer. As much documentation as is practical shall be
+ required for all components as XML is relatively new, and the
+ concepts introduced for writing spreadsheets and to POI filesystems
+ will be brand new to Java and many Java developers.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>6. Documentation Requirements</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.1 POI Filesystem</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The filesystem as read and written by
+ POI shall be fully documented and explained so that the average Java
+ developer can understand it.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.2. POI API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The POI API will be fully documented
+ through Javadoc. A walkthrough of using the high level POI API shall
+ be provided. No documentation outside of the Javadoc shall be
+ provided for the low-level POI APIs.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.3. HSSF File Format</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF File Format as implemented by
+ the HSSF API will be fully documented. No documentation will be
+ provided for features that are not supported by HSSF API that are
+ supported by the Excel 97 File Format. Care will be taken not to
+ infringe on any "legal stuff". Additionally, we are
+ collaborating with the fine folks at OpenOffice.org on
+ *free* documentation of the format.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.4. HSSF API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF API will be documented by
+ javadoc. A walkthrough of using the high level HSSF API shall be
+ provided. No documentation outside of the Javadoc shall be provided
+ for the low level HSSF APIs.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.5 HDF API</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HDF API will be documented by
+ javadoc. A walkthrough of using the high level HDF API shall be
+ provided. No documentation outside of the Javadoc shall be provided
+ for the low level HDF APIs.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.6 HSSF Serializer</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF Serializer will be documented
+ by javadoc.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.7 HSSF Generator</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The HSSF Generator will be documented
+ by javadoc.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>6.8 HSSF Serializer Tag language</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The XML tag language along with
+ function and usage shall be fully documented. Examples will be
+ provided as well.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>7. Terminology</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>7.1 Filesystem</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ filesystem shall refer only to the POI formatted archive.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>7.2 File</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ file shall refer to the embedded data stream within a
+ POI filesystem. This will be the actual embedded document.
+ </p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/plan/images/cocoon2-small.jpg b/build/jakarta-poi/docs/plan/images/cocoon2-small.jpg
new file mode 100644
index 0000000000..e8f6dd8c8c
--- /dev/null
+++ b/build/jakarta-poi/docs/plan/images/cocoon2-small.jpg
Binary files differ
diff --git a/build/jakarta-poi/docs/plan/images/header.gif b/build/jakarta-poi/docs/plan/images/header.gif
new file mode 100644
index 0000000000..b9c2ee1391
--- /dev/null
+++ b/build/jakarta-poi/docs/plan/images/header.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/plan/images/jakarta-logo.gif b/build/jakarta-poi/docs/plan/images/jakarta-logo.gif
new file mode 100644
index 0000000000..82baef3abe
--- /dev/null
+++ b/build/jakarta-poi/docs/plan/images/jakarta-logo.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/poifs/how-to.html b/build/jakarta-poi/docs/poifs/how-to.html
new file mode 100644
index 0000000000..181047fc65
--- /dev/null
+++ b/build/jakarta-poi/docs/poifs/how-to.html
@@ -0,0 +1,997 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title></title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+<li>
+<a href="how-to.html"><font size="-1">How To</font></a>
+</li>
+<li>
+<a href="usecases.html"><font size="-1">Use Cases</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*"><font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>How To Use the POIFS APIs</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">This document describes how to use the POIFS APIs to read, write, and modify files that employ a POIFS-compatible data structure to organize their content.</p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Revision History</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>02.10.2002 - completely rewritten from original documents on <a href="https://sourceforge.net/cvs/?group_id=32701">sourceforge</a>
+</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Target Audience</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">This document is intended for Java developers who need to use the POIFS APIs to read, write, or modify files that employ a POIFS-compatible data structure to organize their content. It is not necessary for developers to understand the POIFS data structures, and an explanation of those data structures is beyond the scope of this document. It is expected that the members of the target audience will understand the rudiments of a hierarchical file system, and familiarity with the event pattern employed by Java APIs such as AWT would be helpful.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Glossary</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">This document attempts to be consistent in its terminology, which is defined here:</p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Term</b></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Definition</b></font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Directory</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">A special file that may contain other directories and documents.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">DirectoryEntry</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Representation of a directory within another directory.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Document</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">A file containing data, such as word processing data or a spreadsheet workbook.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">DocumentEntry</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Representation of a document within a directory.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Entry</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Representation of a file in a directory.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">File</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">A named entity, managed and contained by the file system.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">File System</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The POIFS data structures, plus the contained directories and documents, which are maintained in a hierarchical directory structure.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Root Directory</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The directory at the base of a file system. All file systems have a root directory. The POIFS APIs will not allow the root directory to be removed or renamed, but it can be accessed for the purpose of reading its contents or adding files (directories and documents) to it.</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Reading a File System</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">This section covers reading a file system. There are two ways to read a file system; these techniques are sketched out in the following table, and then explained in greater depth in the sections following the table.</p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Technique</b></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Advantages</b></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Disadvantages</b></font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Conventional Reading</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>Simpler API similar to reading a conventional file system.</li>
+
+<li>Can read documents in any order.</li>
+
+</ul>
+
+</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>All files are resident in memory, whether your application needs them or not.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Event-Driven Reading</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>Reduced footprint -- only the documents you care about are processed.</li>
+
+<li>Improved performance -- no time is wasted reading the documents you're not interested in.</li>
+
+</ul>
+
+</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>More complicated API.</li>
+
+<li>Need to know in advance which documents you want to read.</li>
+
+<li>No control over the order in which the documents are read.</li>
+
+<li>No way to go back and get additional documents except to re-read the file system, which may not be possible, e.g., if the file system is being read from an input stream that lacks random access support.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Conventional Reading</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">In this technique for reading, the entire file system is loaded into memory, and the entire directory tree can be walked by an application, reading specific documents at the application's leisure.</p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Preparation</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Before an application can read a file from the file system, the file system needs to be loaded into memory. This is done by using the <code>org.apache.poi.poifs.filesystem.POIFSFileSystem</code> class. Once the file system has been loaded into memory, the application may need the root directory. The following code fragment will accomplish this preparation stage:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+// need an open InputStream; for a file-based system, this would be appropriate:
+// InputStream stream = new FileInputStream(fileName);
+POIFSFileSystem fs;
+try
+{
+ fs = new POIFSFileSystem(inputStream);
+}
+catch (IOException e)
+{
+ // an I/O error occurred, or the InputStream did not provide a compatible
+ // POIFS data structure
+}
+DirectoryEntry root = fs.getRoot();</pre>
+</td>
+</tr>
+</table>
+</div>
+
+<p align="justify">Assuming no exception was thrown, the file system can then be read.</p>
+
+<p align="justify">Note: loading the file system can take noticeable time, particularly for large file systems.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Reading the Directory Tree</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Once the file system has been loaded into memory and the root directory has been obtained, the root directory can be read. The following code fragment shows how to read the entries in an <code>org.apache.poi.poifs.filesystem.DirectoryEntry</code> instance:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+// dir is an instance of DirectoryEntry ...
+for (Iterator iter = dir.getEntries(); iter.hasNext(); )
+{
+ Entry entry = (Entry)iter.next();
+ System.out.println("found entry: " + entry.getName());
+ if (entry instanceof DirectoryEntry)
+ {
+ // .. recurse into this directory
+ }
+ else if (entry instanceof DocumentEntry)
+ {
+ // entry is a document, which you can read
+ }
+ else
+ {
+ // currently, either an Entry is a DirectoryEntry or a DocumentEntry,
+ // but in the future, there may be other entry subinterfaces. The
+ // internal data structure certainly allows for a lot more entry types.
+ }
+}</pre>
+</td>
+</tr>
+</table>
+</div>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Reading a Specific Document</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">There are a couple of ways to read a document, depending on whether the document resides in the root directory or in another directory. Either way, you will obtain an <code>org.apache.poi.poifs.filesystem.DocumentInputStream</code> instance.</p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>DocumentInputStream</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">The DocumentInputStream class is a simple implementation of InputStream that makes a few guarantees worth noting:</p>
+
+<ul>
+
+<li>
+<code>available()</code> always returns the number of bytes in the document from your current position in the document.</li>
+
+<li>
+<code>markSupported()</code> returns <code>true</code>.</li>
+
+<li>
+<code>mark(int limit)</code> ignores the limit parameter; basically the method marks the current position in the document.</li>
+
+<li>
+<code>reset()</code> takes you back to the position when <code>mark()</code> was last called, or to the beginning of the document if <code>mark()</code> has not been called.</li>
+
+<li>
+<code>skip(long n)</code> will take you to your current position + n (but not past the end of the document).</li>
+
+</ul>
+
+<p align="justify">The behavior of <code>available</code> means you can read in a document in a single read call like this:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+byte[] content = new byte[ stream.available() ];
+stream.read(content);
+stream.close();</pre>
+</td>
+</tr>
+</table>
+</div>
+
+<p align="justify">The combination of <code>mark</code>, <code>reset</code>, and <code>skip</code> provide the basic mechanisms needed for random access of the document contents.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>Reading a Document From the Root Directory</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">If the document resides in the root directory, you can obtain a <code>DocumentInputStream</code> like this:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+// load file system
+try
+{
+ DocumentInputStream stream = filesystem.createDocumentInputStream(documentName);
+ // process data from stream
+}
+catch (IOException e)
+{
+ // no such document, or the Entry represented by documentName is not a
+ // DocumentEntry
+}</pre>
+</td>
+</tr>
+</table>
+</div>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="97%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-2"><font face="Arial,sans-serif"><b>Reading a Document From an Arbitrary Directory</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">A more generic technique for reading a document is to obtain an <code>org.apache.poi.poifs.filesystem.DirectoryEntry</code> instance for the directory containing the desired document (recall that you can use <code>getRoot()</code> to obtain the root directory from its file system). From that DirectoryEntry, you can then obtain a <code>DocumentInputStream</code> like this:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+DocumentEntry document = (DocumentEntry)directory.getEntry(documentName);
+DocumentInputStream stream = new DocumentInputStream(document);
+</pre>
+</td>
+</tr>
+</table>
+</div>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Event-Driven Reading</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">The event-driven API for reading documents is a little more complicated and requires that your application know, in advance, which files it wants to read. The benefit of using this API is that each document is in memory just long enough for your application to read it, and documents that you never read at all are not in memory at all. When you're finished reading the documents you wanted, the file system has no data structures associated with it at all and can be discarded.</p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Preparation</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">The preparation phase involves creating an instance of <code>org.apache.poi.poifs.eventfilesystem.POIFSReader</code> and to then register one or more <code>org.apache.poi.poifs.eventfilesystem.POIFSReaderListener</code> instances with the <code>POIFSReader</code>.</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+POIFSReader reader = new POIFSReader();
+// register for everything
+reader.registerListener(myOmnivorousListener);
+// register for selective files
+reader.registerListener(myPickyListener, "foo");
+reader.registerListener(myPickyListener, "bar");
+// register for selective files
+reader.registerListener(myOtherPickyListener, new POIFSDocumentPath(),
+ "fubar");
+reader.registerListener(myOtherPickyListener, new POIFSDocumentPath(
+ new String[] { "usr", "bin" ), "fubar");</pre>
+</td>
+</tr>
+</table>
+</div>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>POIFSReaderListener</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+<code>org.apache.poi.poifs.eventfilesystem.POIFSReaderListener</code> is an interface used to register for documents. When a matching document is read by the <code>org.apache.poi.poifs.eventfilesystem.POIFSReader</code>, the <code>POIFSReaderListener</code> instance receives an <code>org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent</code> instance, which contains an open <code>DocumentInputStream</code> and information about the document.</p>
+
+<p align="justify">A <code>POIFSReaderListener</code> instance can register for individual documents, or it can register for all documents; once it has registered for all documents, subsequent (and previous!) registration requests for individual documents are ignored. There is no way to unregister a <code>POIFSReaderListener</code>.</p>
+
+<p align="justify">Thus, it is possible to register a single <code>POIFSReaderListener</code> for multiple documents - one, some, or all documents. It is guaranteed that a single <code>POIFSReaderListener</code> will receive exactly one notification per registered document. There is no guarantee as to the order in which it will receive notification of its documents, as future implementations of <code>POIFSReader</code> are free to change the algorithm for walking the file system's directory structure.</p>
+
+<p align="justify">It is also permitted to register more than one <code>POIFSReaderListener</code> for the same document. There is no guarantee of ordering for notification of <code>POIFSReaderListener</code> instances that have registered for the same document when <code>POIFSReader</code> processes that document.</p>
+
+<p align="justify">It is guaranteed that all notifications occur in the same thread. A future enhancement may be made to provide multi-threaded notifications, but such an enhancement would very probably be made in a new reader class, a <code>ThreadedPOIFSReader</code> perhaps.</p>
+
+<p align="justify">The following table describes the three ways to register a <code>POIFSReaderListener</code> for a document or set of documents:</p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Method Signature</b></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>What it does</b></font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registerListener(POIFSReaderListener <b>listener</b>)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registers <b>listener</b> for all documents.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registerListener(POIFSReaderListener <b>listener</b>, String <b>name</b>)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registers <b>listener</b> for a document with the specified <b>name</b> in the root directory.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registerListener(POIFSReaderListener <b>listener</b>, POIFSDocumentPath <b>path</b>, String <b>name</b>)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">registers <b>listener</b> for a document with the specified <b>name</b> in the directory described by <b>path</b></font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>POIFSDocumentPath</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">The <code>org.apache.poi.poifs.filesystem.POIFSDocumentPath</code> class is used to describe a directory in a POIFS file system. Since there are no reserved characters in the name of a file in a POIFS file system, a more traditional string-based solution for describing a directory, with special characters delimiting the components of the directory name, is not feasible. The constructors for the class are used as follows:</p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Constructor example</b></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Directory described</b></font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath()</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The root directory.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(null)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The root directory.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(new String[ 0 ])</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The root directory.</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(new String[ ] { "foo", "bar"} )</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">in Unix terminology, "/foo/bar".</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">new POIFSDocumentPath(new POIFSDocumentPath(new String[] { "foo" }), new String[ ] { "fu", "bar"} )</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">in Unix terminology, "/foo/fu/bar".</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="98%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="-1"><font face="Arial,sans-serif"><b>Processing POIFSReaderEvent Events</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Processing <code>org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent</code> events is relatively easy. After all of the <code>POIFSReaderListener</code> instances have been registered with <code>POIFSReader</code>, the <code>POIFSReader.read(InputStream stream)</code> method is called.</p>
+
+<p align="justify">Assuming that there are no problems with the data, as the <code>POIFSReader</code> processes the documents in the specified <code>InputStream</code>'s data, it calls registered <code>POIFSReaderListener</code> instances' <code>processPOIFSReaderEvent</code> method with a <code>POIFSReaderEvent</code> instance.</p>
+
+<p align="justify">The <code>POIFSReaderEvent</code> instance contains information to identify the document (a <code>POIFSDocumentPath</code> object to identify the directory that the document is in, and the document name), and an open <code>DocumentInputStream</code> instance from which to read the document.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Writing a File System</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Writing a file system is very much like reading a file system in that there are multiple ways to do so. You can load an existing file system into memory and modify it (removing files, renaming files) and/or add new files to it, and write it, or you can start with a new, empty file system:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+POIFSFileSystem fs = new POIFSFileSystem();</pre>
+</td>
+</tr>
+</table>
+</div>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>The Naming of Names</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">There are two restrictions on the names of files in a file system that must be considered when creating files:</p>
+
+<ol>
+
+<li>The name of the file must not exceed 31 characters. If it does, the POIFS API will silently truncate the name to fit.</li>
+
+<li>The name of the file must be unique within its containing directory. This seems pretty obvious, but if it isn't spelled out, there'll be hell to pay, to be sure. Uniqueness, of course, is determined <b>after</b> the name has been truncated, if the original name was too long to begin with.</li>
+
+</ol>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Creating a Document</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">A document can be created by acquiring a <code>DirectoryEntry</code> and calling one of the two <code>createDocument</code> methods:</p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Method Signature</b></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Advantages</b></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><b>Disadvantages</b></font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">CreateDocument(String name, InputStream stream)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>Simple API.</li>
+
+</ul>
+
+</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>Increased memory footprint (document is in memory until file system is written).</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">CreateDocument(String name, int size, POIFSWriterListener writer)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>Decreased memory footprint (only very small documents are held in memory, and then only for a short time).</li>
+
+</ul>
+
+</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>More complex API.</li>
+
+<li>Determining document size in advance may be difficult.</li>
+
+<li>Lose control over when document is to be written.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+<p align="justify">Unlike reading, you don't have to choose between the in-memory and event-driven writing models; both can co-exist in the same file system.</p>
+
+<p align="justify">Writing is initiated when the <code>POIFSFileSystem</code> instance's <code>writeFilesystem()</code> method is called with an <code>OutputStream</code> to write to.</p>
+
+<p align="justify">The event-driven model is quite similar to the event-driven model for reading, in that the file system calls your <code>org.apache.poi.poifs.filesystem.POIFSWriterListener</code> when it's time to write your document, just as the <code>POIFSReader</code> calls your <code>POIFSReaderListener</code> when it's time to read your document. Internally, when <code>writeFilesystem()</code> is called, the final POIFS data structures are created and are written to the specified <code>OutputStream</code>. When the file system needs to write a document out that was created with the event-driven model, it calls the <code>POIFSWriterListener</code> back, calling its <code>processPOIFSWriterEvent()</code> method, passing an <code>org.apache.poi.poifs.filesystem.POIFSWriterEvent</code> instance. This object contains the <code>POIFSDocumentPath</code> and name of the document, its size, and an open <code>org.apache.poi.poifs.filesystem.DocumentOutputStream</code> to which to write. A <code>DocumentOutputStream</code> is a wrapper over the <code>OutputStream</code> that was provided to the <code>POIFSFileSystem</code> to write to, and has the responsibility of making sure that the document your application writes fits within the size you specified for it.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Creating a Directory</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Creating a directory is similar to creating a document, except that there's only one way to do so:</p>
+
+<div align="center">
+<table cellspacing="2" cellpadding="2" border="1">
+<tr>
+<td>
+<pre>
+DirectoryEntry createdDir = existingDir.createDirectory(name);</pre>
+</td>
+</tr>
+</table>
+</div>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Using POIFSFileSystem Directly To Create a Document Or Directory</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">As with reading documents, it is possible to create a new document or directory in the root directory by using convenience methods of POIFSFileSystem.</p>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">DirectoryEntry Method Signature</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFSFileSystem Method Signature</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(String name, InputStream stream)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(InputStream stream, String name)</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(String name, int size, POIFSWriterListener writer)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDocument(String name, int size, POIFSWriterListener writer)</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDirectory(String name)</font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">createDirectory(String name)</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Modifying a File System</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">It is possible to modify an existing POIFS file system, whether it's one your application has loaded into memory, or one which you are creating on the fly.</p>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Removing a Document</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Removing a document is simple: you get the <code>Entry</code> corresponding to the document and call its <code>delete()</code> method. This is a boolean method, but should always return <code>true</code>, indicating that the operation succeeded.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Removing a Directory</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Removing a directory is also simple: you get the <code>Entry</code> corresponding to the directory and call its <code>delete()</code> method. This is a boolean method, but, unlike deleting a document, may not always return <code>true</code>, indicating that the operation succeeded. Here are the reasons why the operation may fail:</p>
+
+<ul>
+
+<li>The directory still has files in it (to check, call <code>isEmpty()</code> on its DirectoryEntry; is the return value <code>false</code>?)</li>
+
+<li>The directory is the root directory. You cannot remove the root directory.</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Renaming a File</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">Regardless of whether the file is a directory or a document, it can be renamed, with one exception - the root directory has a special name that is expected by the components of a major software vendor's office suite, and the POIFS API will not let that name be changed. Renaming is done by acquiring the file's corresponding <code>Entry</code> instance and calling its <code>renameTo</code> method, passing in the new name.</p>
+
+<p align="justify">Like <code>delete</code>, <code>renameTo</code> returns <code>true</code> if the operation succeeded, otherwise <code>false</code>. Reasons for failure include these:</p>
+
+<ul>
+
+<li>The new name is the same as another file in the same directory. And don't forget - if the new name is longer than 31 characters, it <b>will</b> be silently truncated. In its original length, the new name may have been unique, but truncated to 31 characters, it may not be unique any longer.</li>
+
+<li>You tried to rename the root directory.</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/poifs/images/cocoon2-small.jpg b/build/jakarta-poi/docs/poifs/images/cocoon2-small.jpg
new file mode 100644
index 0000000000..e8f6dd8c8c
--- /dev/null
+++ b/build/jakarta-poi/docs/poifs/images/cocoon2-small.jpg
Binary files differ
diff --git a/build/jakarta-poi/docs/poifs/images/header.gif b/build/jakarta-poi/docs/poifs/images/header.gif
new file mode 100644
index 0000000000..b9c2ee1391
--- /dev/null
+++ b/build/jakarta-poi/docs/poifs/images/header.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/poifs/images/jakarta-logo.gif b/build/jakarta-poi/docs/poifs/images/jakarta-logo.gif
new file mode 100644
index 0000000000..82baef3abe
--- /dev/null
+++ b/build/jakarta-poi/docs/poifs/images/jakarta-logo.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/poifs/index.html b/build/jakarta-poi/docs/poifs/index.html
new file mode 100644
index 0000000000..2f6ec3a6bf
--- /dev/null
+++ b/build/jakarta-poi/docs/poifs/index.html
@@ -0,0 +1,119 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>PoiFS</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+<li>
+<a href="how-to.html"><font size="-1">How To</font></a>
+</li>
+<li>
+<a href="usecases.html"><font size="-1">Use Cases</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>PoiFS</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>PoiFS</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">POIFS is a pure Java implementation of the OLE 2 Compound
+ Document format.</p>
+
+<p align="justify">By definition, all APIs developed by the POI project are
+ based somehow on the POIFS API.</p>
+
+<p align="justify">A common confusion is on just what POIFS buys you or what OLE
+ 2 Compound Document format is exactly. POIFS does not buy you
+ DOC, or XLS, but is necessary to generate or read DOC or XLS
+ files. You see, all file formats based on the OLE 2 Compound
+ Document Format have a common structure. The OLE 2 Compound
+ Document Format is essentially a convoluted archive
+ format. Think of POIFS as a "zip" library. Once you can get
+ the data in a zip file you still need to interpret the
+ data. As a general rule, while all of our formats <b>use</b>
+ POIFS, most of them attempt to abstract you from it. There
+ are some circumstances where this is not possible, but as a
+ general rule this is true.</p>
+
+<p align="justify">If you're an end user type just looking to generate XLS
+ files, then you'd be looking for HSSF not POIFS; however, if
+ you have legacy code that uses MFC property sets, POIFS is
+ for you! Regardless, you may or may not need to know how to
+ use POIFS but ultimately if you use technologies that come
+ from the POI project, you're using POIFS underneith. Perhaps
+ we should have a branding campaign "POIFS Inside!". ;-)</p>
+
+<p align="justify">TODO: copy POIFS docs and port to XML (in progress). For now
+ please reference <a href="http://poi.sourceforge.net">old
+ site</a>.</p>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/poifs/usecases.html b/build/jakarta-poi/docs/poifs/usecases.html
new file mode 100644
index 0000000000..cc670434f2
--- /dev/null
+++ b/build/jakarta-poi/docs/poifs/usecases.html
@@ -0,0 +1,1245 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title></title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+<li>
+<a href="how-to.html"><font size="-1">How To</font></a>
+</li>
+<li>
+<a href="usecases.html"><font size="-1">Use Cases</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*"><font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>POIFS Use Cases</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 1: Read existing file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to read content of file
+ system</li>
+
+<li>POIFS - understands POIFS file system</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>POIFS client requests POIFS to read a POIFS file
+ system, providing an <code>InputStream</code>
+ containing POIFS file system in question.</li>
+
+<li>POIFS reads from the <code>InputStream</code> in
+ 512 byte blocks</li>
+
+<li>POIFS verifies that the first block begins with
+ the well known signature
+ (<code>0xE11AB1A1E011CFD0</code>)</li>
+
+<li>POIFS reads the Block Allocation Table from the
+ first block and, if necessary, from the XBAT
+ blocks.</li>
+
+<li>POIFS obtains the start block of the Property
+ Table and reads the Property Table (use case 9,
+ read file)</li>
+
+<li>POIFS reads the individual entries in the Property
+ Table</li>
+
+<li>POIFS obtains the start block of the Small Block
+ Allocation Table and reads the Small Block
+ Allocation Table (use case 9, read file)</li>
+
+<li>POIFS obtains the start block of the Small Block
+ store from the first entry in the Property Table
+ and reads the Small Block Array (use case 9, read
+ file)</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>2a. If the last block read is not a 512 byte
+ block, the <code>InputStream</code> is not that of
+ a POIFS file system, and POIFS throws an
+ appropriate exception.</li>
+
+<li>3a. If the signature is incorrect, the
+ <code>InputStream</code> is not that of a POIFS
+ file system, and POIFS throws an appropriate
+ exception.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 2: Write file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to write file system out.</li>
+
+<li>POIFS - knows how to write file system out.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>File system has been read (use case 1, read
+ existing file system) and subsequently modified
+ (use case 4, replace file in file system; use case
+ 5, delete file from file system; or use case 6,
+ write new file to file system; in any
+ combination)</li>
+
+</ul>
+
+<p align="justify">or</p>
+
+<ul>
+
+<li>File system has been created (use case 3, create
+ new file system)</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>POIFS client provides an <code>OutputStream</code>
+ to write the file system to.</li>
+
+<li>POIFS gets the sizes of the Property Table and
+ each file in the file system.</li>
+
+<li>If any files in the file system requires storage
+ in a Small Block Array, POIFS creates a Small
+ Block Array of sufficient size to hold all of the
+ small files.</li>
+
+<li>POIFS calculates the number of big blocks needed
+ to hold all of the large files, the Property
+ Table, and, if necessary, the Small Block Array
+ and the Small Block Allocation Table.</li>
+
+<li>POIFS creates a set of big blocks sufficient to
+ store the Block Allocation Table</li>
+
+<li>POIFS creates and writes the header block</li>
+
+<li>POIFS writes out the XBAT blocks, if needed.</li>
+
+<li>POIFS writes out the Small Block Array, if
+ needed</li>
+
+<li>POIFS writes out the Small Block Allocation Table,
+ if needed</li>
+
+<li>POIFS writes out the Property Table</li>
+
+<li>POIFS writes out the large files, if needed</li>
+
+<li>POIFS closes the <code>OutputStream</code>.</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>6a. Exceptions writing to the
+ <code>OutputStream</code> will be propagated back
+ to the POIFS client.</li>
+
+<li>7a. Exceptions writing to the
+ <code>OutputStream</code> will be propagated back
+ to the POIFS client.</li>
+
+<li>8a. Exceptions writing to the
+ <code>OutputStream</code> will be propagated back
+ to the POIFS client.</li>
+
+<li>9a. Exceptions writing to the
+ <code>OutputStream</code> will be propagated back
+ to the POIFS client.</li>
+
+<li>10a. Exceptions writing to the
+ <code>OutputStream</code> will be propagated back
+ to the POIFS client.</li>
+
+<li>11a. Exceptions writing to the
+ <code>OutputStream</code> will be propagated back
+ to the POIFS client.</li>
+
+<li>12a. Exceptions closing the
+ <code>OutputStream</code> will be propagated back
+ to the POIFS client.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 3: Create new file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to create a new file
+ system</li>
+
+<li>POIFS - knows how to create a new file system</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>POIFS creates an empty Property Table.</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 4: Replace file in file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to replace an existing file in
+ the file system</li>
+
+<li>POIFS - knows how to manage the file system</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<p align="justify">Either</p>
+
+<ul>
+
+<li>The file system has been read (use case 1, read
+ existing file system) and a file has been
+ extracted from the file system (use case 7, read
+ existing file from file system)</li>
+
+</ul>
+
+<p align="justify">or</p>
+
+<ul>
+
+<li>The file system has been created (use case 3,
+ create new file system) and a file has been
+ written to the file system (use case 6, write new
+ file to file system)</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>POIFS discards storage of the existing file.</li>
+
+<li>POIFS updates the existing file's entry in the
+ Property Table</li>
+
+<li>POIFS stores the new file's data</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>1a. POIFS throws an exception if the file does not
+ exist.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 5: Delete file from file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to remove a file from a file
+ system</li>
+
+<li>POIFS - knows how to manage the file system</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<p align="justify">Either</p>
+
+<ul>
+
+<li>The file system has been read (use case 1, read
+ existing file system) and a file has been
+ extracted from the file system (use case 7, read
+ existing file from file system)</li>
+
+</ul>
+
+<p align="justify">or</p>
+
+<ul>
+
+<li>The file system has been created (use case 3,
+ create new file system) and a file has been
+ written to the file system (use case 6, write new
+ file to file system)</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>POIFS discards the specified file's storage.</li>
+
+<li>POIFS discards the file's Property Table
+ entry.</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>1a. POIFS throws an exception if the file does not
+ exist.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 6: Write new file to file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to add a new file to the file
+ system</li>
+
+<li>POIFS - knows how to manage the file system</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The specified file does not yet exist in the file
+ system</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>The POIFS client provides a file name</li>
+
+<li>POIFS creates a new Property Table entry for the
+ new file</li>
+
+<li>POIFS provides the POIFS client with an
+ <code>OutputStream</code> to write to.</li>
+
+<li>The POIFS client writes data to the provided
+ <code>OutputStream</code>.</li>
+
+<li>The POIFS client closes the provided
+ <code>OutputStream</code>
+</li>
+
+<li>POIFS updates the Property Table entry with the
+ new file's size</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>1a. POIFS throws an exception if a file with the
+ specified name already exists in the file
+ system.</li>
+
+<li>1b. POIFS throws an exception if the file name is
+ too long. The limit on file name length is 31
+ characters.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 7: Read existing file from file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to read a file from the file
+ system</li>
+
+<li>POIFS - knows how to manage the file system</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>The file system has been read (use case 1, read
+ existing file system) or has been created and
+ written to (use case 3, create new file system;
+ use case 6, write new file to file system).</li>
+
+<li>The specified file exists in the file system.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>The POIFS client provides the name of a file to be
+ read</li>
+
+<li>POIFS provides an <code>InputStream</code> to read
+ from.</li>
+
+<li>The POIFS client reads from the
+ <code>InputStream</code>.</li>
+
+<li>The POIFS client closes the
+ <code>InputStream</code>.</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">1a. POIFS throws an exception if no file with the
+ specified name exists.</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 8: Read file system directory</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to know what files exist in
+ the file system</li>
+
+<li>POIFS - knows how to manage the file system</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">The file system has been read (use case 1, read
+ existing file system) or created (use case 3, create
+ new file system)</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>The POIFS client requests the file system
+ directory.</li>
+
+<li>POIFS returns an <code>Iterator</code>. The
+ <code>Iterator</code> will not include the root
+ entry in the Property Table, and may be an
+ <code>Iterator</code> over an empty
+ <code>Collection</code>.</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 9: Read file</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS - POIFS needs to read a file, or something
+ resembling a file (i.e., the Property Table, the
+ Small Block Array, or the Small Block Allocation
+ Table)</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>POIFS begins with a start block, a file size, and
+ a flag indicating whether to use the Big Block
+ Allocation Table or the Small Block Allocation
+ Table</li>
+
+<li>POIFS returns an <code>InputStream</code>.</li>
+
+<li>Reads from the <code>InputStream</code> are
+ performed by walking the specified Block
+ Allocation Table and reading the blocks
+ indicated.</li>
+
+<li>POIFS closes the <code>InputStream</code> when
+ finished reading the file, or its client wants to
+ close the <code>InputStream</code>.</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">3a. An exception will be thrown if the specified Block
+ Allocation Table is corrupt, as evidenced by an index
+ pointing to a non-existent block, or by a chain
+ extending past the known size of the file.</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Use Case 10: Rename existing file in the file system</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<table width="100%" cellspacing="2" cellpadding="2" border="0">
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Primary Actor:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS client</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Scope:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">POIFS</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Level:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">Summary</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Stakeholders and Interests:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>POIFS client- wants to rename an existing file in
+ the file system.</li>
+
+<li>POIFS - knows how to manage the file system.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Precondition:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>The file system is has been read (use case 1, read
+ existing file system) or has been created and
+ written to (use case 3, create new file system;
+ use case 6, write new file to file system.</li>
+
+<li>The specified file exists in the file system.</li>
+
+<li>The new name for the file does not duplicate
+ another file in the file system.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Minimal Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">None</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Main Success Guarantee:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ol>
+
+<li>POIFS updates the Property Table entry for the
+ specified file with its new name.</li>
+
+</ol>
+
+</font></td>
+
+</tr>
+<tr>
+
+<td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000"><B>Extensions:</B></font></td>
+ <td valign="top" bgcolor="#a0ddf0" align="left"><font size="-1" color="#000000">
+
+<ul>
+
+<li>1a. If the old file name is not in the file
+ system, POIFS throws an exception.</li>
+
+<li>1b. If the new file name already exists in the
+ file system, POIFS throws an exception.</li>
+
+<li>1c. If the new file name is too long (the limit is
+ 31 characters), POIFS throws an exception.</li>
+
+</ul>
+
+</font></td>
+
+</tr>
+</table>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/todo.html b/build/jakarta-poi/docs/todo.html
new file mode 100644
index 0000000000..cc5b32f979
--- /dev/null
+++ b/build/jakarta-poi/docs/todo.html
@@ -0,0 +1,192 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Things To Do for Poi</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Things To Do for Poi</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Things To Do for Poi</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>high</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+<sl>
+<li>
+<em>[code]</em>
+ do it
+ </li>
+</sl>
+</td>
+</tr>
+</table>
+</div>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>medium</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+<sl>
+<li>
+<em>[code]</em>
+ do it
+ </li>
+</sl>
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/utils/images/cocoon2-small.jpg b/build/jakarta-poi/docs/utils/images/cocoon2-small.jpg
new file mode 100644
index 0000000000..e8f6dd8c8c
--- /dev/null
+++ b/build/jakarta-poi/docs/utils/images/cocoon2-small.jpg
Binary files differ
diff --git a/build/jakarta-poi/docs/utils/images/header.gif b/build/jakarta-poi/docs/utils/images/header.gif
new file mode 100644
index 0000000000..b9c2ee1391
--- /dev/null
+++ b/build/jakarta-poi/docs/utils/images/header.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/utils/images/jakarta-logo.gif b/build/jakarta-poi/docs/utils/images/jakarta-logo.gif
new file mode 100644
index 0000000000..82baef3abe
--- /dev/null
+++ b/build/jakarta-poi/docs/utils/images/jakarta-logo.gif
Binary files differ
diff --git a/build/jakarta-poi/docs/utils/index.html b/build/jakarta-poi/docs/utils/index.html
new file mode 100644
index 0000000000..481453e3f0
--- /dev/null
+++ b/build/jakarta-poi/docs/utils/index.html
@@ -0,0 +1,101 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Poi Utils</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Navigation</font><font size="-1">
+<ul>
+<li>
+<a href="../index.html"><font size="-1">Main</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Poi Utils</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Poi Utils</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Overview</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+
+<p align="justify">The POI Utils are classes we're looking to donate elsewhere and include.
+ These are usually classes that while are required for our mission,
+ are somehow outside of it. General utilities that could be used in
+ any project are what we would normally put here. If you see one, and you
+ think "gee that would be great as part of X project" then let us know.
+ While we wish to put these in their rightful place, we also don't want to
+ include a 40mb jar file just to process text strings, so that will
+ be a consideraton.
+ </p>
+
+<p align="justify">
+ Currently, we're looking into which subprojects in the Jakarta Commons project
+ to donate these too. The "Poi Utils" package won't go away, as there may
+ be later classes. The idea is that "go ahead and add it, we'll merge it or
+ find an alternative later, just keep pounding out that poi!"
+ </p>
+
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>
diff --git a/build/jakarta-poi/docs/who.html b/build/jakarta-poi/docs/who.html
new file mode 100644
index 0000000000..bc2b2a8d4b
--- /dev/null
+++ b/build/jakarta-poi/docs/who.html
@@ -0,0 +1,260 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Who we are</title>
+</head>
+<body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#023264" vlink="#023264" link="#525D76" text="#000000">
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td align="left" valign="top"><a href="http://jakarta.apache.org/index.html"><img src="images/jakarta-logo.gif" border="0" vspace="0" hspace="0"></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><img src="images/header.gif" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+<tr>
+<td colspan="2" height="2" width="100%">
+<hr size="1" noshade="">
+</td>
+</tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<tr>
+<td valign="top" width="1%"></td><td nowrap="1" valign="top" width="14%">
+<br>
+<font face="arial,helvetica,sanserif">
+<br>
+<font size="+1" color="#000000">Main</font><font size="-1">
+<ul>
+<li>
+<a href="http://jakarta.apache.org"><font size="-1">Jakarta</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">About</font><font size="-1">
+<ul>
+<li>
+<a href="index.html"><font size="-1">Index</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">History</font></a>
+</li>
+<li>
+<a href="historyandfuture.html"><font size="-1">Future</font></a>
+</li>
+<li>
+<a href="http://sourceforge.net/project/showfiles.php?group_id=32701"><font size="-1">Download</font></a>
+</li>
+<li>
+<a href="plan/POI10Vision.html"><font size="-1">1.0 Vision</font></a>
+</li>
+<li>
+<a href="plan/POI20Vision.html"><font size="-1">2.0 Vision</font></a>
+</li>
+<li>
+<a href="who.html"><font size="-1">Who we are</font></a>
+</li>
+<li>
+<a href="changes.html"><font size="-1">Changes</font></a>
+</li>
+<li>
+<a href="todo.html"><font size="-1">Todo</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Sub-Projects</font><font size="-1">
+<ul>
+<li>
+<a href="overview.html"><font size="-1">Overview</font></a>
+</li>
+<li>
+<a href="poifs/index.html"><font size="-1">POIFS</font></a>
+</li>
+<li>
+<a href="hssf/index.html"><font size="-1">HSSF</font></a>
+</li>
+<li>
+<a href="hdf/index.html"><font size="-1">HDF</font></a>
+</li>
+<li>
+<a href="utils/index.html"><font size="-1">POI-Utils</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">References</font><font size="-1">
+<ul>
+<li>
+<a href="livesites.html"><font size="-1">Live Sites</font></a>
+</li>
+<li>
+<a href="building.xml"><font size="-1">Building</font></a>
+</li>
+<li>
+<a href="http://sc.openoffice.org/excelfileformat.pdf"><font size="-1">XLS spec [PDF]</font></a>
+</li>
+<li>
+<a href="http://xml.apache.org/cocoon/"><font size="-1">Apache Cocoon</font></a>
+</li>
+</ul>
+</font>
+<br>
+<font size="+1" color="#000000">Get Involved</font><font size="-1">
+<ul>
+<li>
+<a href="contrib.html"><font size="-1">Contributing</font></a>
+</li>
+<li>
+<a href="https://sourceforge.net/tracker/?atid=406288&group_id=32701&func=browse"><font size="-1">Bug Database</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/cvsindex.html"><font size="-1">CVS</font></a>
+</li>
+<li>
+<a href="http://jakarta.apache.org/site/mail.html"><font size="-1">Mail Lists</font></a>
+</li>
+</ul>
+</font>
+<br>
+<br>
+</font></td><td align="left" valign="top" width="*">
+<title>Who we are</title>
+<center>
+<table width="80%">
+<tr>
+<td bgcolor="#F3DD61"><font face="Arial,sans-serif" size="+1">
+<center>
+<b>Who we are</b>
+</center>
+</font></td>
+</tr>
+</table>
+</center>
+<font size="-2" color="#000000">
+<p>
+<a href="mailto:"></a>
+</p>
+</font>
+<br>
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+1"><font face="Arial,sans-serif"><b>Who we are</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<p align="justify">
+ The Poi Project operates on a meritocracy: the more you do, the more
+ responsibility you will obtain. This page lists all of the people who have
+ gone the extra mile and are Committers. If you would like to get involved,
+ the first step is to join the mailing lists.
+ </p>
+
+
+<p align="justify">
+ We ask that you please do not send us emails privately asking for support.
+ We are non-paid volunteers who help out with the project and we do not
+ necessarily have the time or energy to help people on an individual basis.
+ Instead, we have set up mailing lists which often contain hundreds of
+ individuals who will help answer detailed requests for help. The benefit of
+ using mailing lists over private communication is that it is a shared
+ resource where others can also learn from common mistakes and as a
+ community we all grow together.
+ </p>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Advisors</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>
+<a href="http://jakarta.apache.org/avalon/authors/stefano.html">Stefano Mazzocchi</a> (stefano at apache dot org)
+ </li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Committers</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>
+<a href="http://trilug.org/~acoliver">Andrew C. Oliver</a> (acoliver at apache dot org)</li>
+
+<li>
+<a href="http://www.marcj.com">Marc Johnson</a> (mjohnson at apache dot org)</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+<div align="right">
+<table cellspacing="0" cellpadding="2" border="0" width="99%">
+<tr>
+<td bgcolor="#525D76"><font color="#ffffff" size="+0"><font face="Arial,sans-serif"><b>Developers</b></font></font></td>
+</tr>
+<tr>
+<td>
+<br>
+
+<ul>
+
+<li>Glen Stampoultzis (glens at apache.org)</li>
+
+<li>Nicola Ken Barozzi (barozzi at nicolaken dot com)</li>
+
+</ul>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+
+</td>
+</tr>
+</table>
+</div>
+<br>
+</td>
+</tr>
+</table>
+<br>
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<tr>
+<td>
+<hr size="1" noshade="">
+</td>
+</tr>
+<tr>
+<td align="center"><font color="#525D76" size="-1" face="arial,helvetica,sanserif"><i>
+ Copyright &copy;2002 Apache Software Foundation
+ </i></font></td><td width="5%" align="right"><img src="images/cocoon2-small.jpg" align="right" border="0" vspace="0" hspace="0"></td>
+</tr>
+</table>
+</body>
+</html>