blob: d52085cc1cf4f1ca76c24ffd89836af1cd554c91 [file] [log] [blame]
<?xml version="1.0"?>
<document>
<properties>
<title>TODO</title>
<author email="jstrachan@apache.org">James Strachan</author>
<author email="adammurdoch@apache.org">Adam Murdoch</author>
<author email="imario@apache.org">Mario Ivankovits</author>
</properties>
<body>
<section name="TODO">
<p>
The following is a list of items that need to be completed.
Contributions are welcome!
</p>
<subsection name="Release 1.1">
<ul>
<li>Remove internal caching of states from fileObject and allow it to be decorated with a caching instance</li>
<li>Provide a hook for authentication.</li>
<li>moveTo should handle a directory move if it moves from a different filesystem.</li>
</ul>
</subsection>
<subsection name="Open">
<ul>
<li>More documentation (status, file naming etc).</li>
<li>Fix the
<a href="task-list.html">TODO items</a> in the code.
</li>
<li>Add more providers:
<ul>
<li>rsync</li>
<li>subversion</li>
<li>nfs</li>
<li>cvs</li>
<li>jdbc filesystem</li>
<li>xml filesystem</li>
<li>jndi</li>
<li>imap</li>
<li>local mirror</li>
<li>spidering http</li>
<li>...</li>
</ul>
</li>
<li>JNDI integration.</li>
<li>Formalise the provider API.</li>
<li>WebDAV Provider:
<ul>
<li>Add plain http support, and auto-detect dav resources.</li>
<li>Add set last-modified.</li>
<li>HTTPS</li>
</ul>
</li>
<li>Zip/Jar Provider:
<ul>
<li>Extract an AbstractLayerFileSystem out of ZipFileSystem.</li>
<li>
Track changes to the parent layer. Eg when the
parent layer is deleted, mark all the files in the
fs as 'does-not-exist'.
</li>
<li>Add support for writing to zip/jar files.</li>
</ul>
</li>
<li>URL Provider:
<ul>
<li>Support attributes.</li>
</ul>
</li>
<li>HTTP Provider:
<ul>
<li>Support attributes.</li>
<li>HTTPS support.</li>
</ul>
</li>
<li>
The local disk caching mechanism also needs more work. Needs
to check last-modified time. Replicator needs to be more
configurable.
</li>
<li>Add persistent replicator.</li>
<li>Change the model so that folders may have content.</li>
<li>
Finish support for junctions: Make ancestors of a junction
point visible, fire events when junction is added or removed,
tests.
</li>
<li>
Add support for federation (ie transparently crossing file
system boundaries, such as drilling down into the contents
of a Jar file).
</li>
<li>Add an equivalent of the fileScanner Jelly tag.</li>
<li>
Add an equivalent of Ant path, fileset, dirset, filelist, etc.
Ideally, these can be abstracted into a single data type.
</li>
<li>
Allow selectors, name mappers, and filters to be specified
for the Ant tasks.
</li>
<li>Add capabilities to FileObject.</li>
<li>Attributes and attribute schema.</li>
<li>
Handle file canonicalisation better (for cases like
case-insensitive file systems, symbolic links, name mangling, etc).
</li>
<li>Add more selectors: XPath, Ant style, regular expression.</li>
<li>Add adaptor (NodePointerFactory?) for use with JXpath.</li>
<li>
Add content-changed, attribute-changed, and move events to
FileListener. Maybe split into structure and content
listeners.
</li>
<li>Get/set the file permissions.</li>
<li>Sort out threading model.</li>
<li>Automatically checksum and/or verify remote files.</li>
<li>Add a DefaultFileSystemManager subclass that is an Avalon component.</li>
<li>
Look at adding native code for fine-grained control over
permissions, file monitoring, faster moves, etc. Must be
optional - the thing should still build and run without the
native code.
</li>
</ul>
</subsection>
</section>
<section name="Library upgrades">
<p>
The following describes things I discovered during testing newer dependencies.
</p>
<subsection name="webdavlib 2.1">
<ul>
<li>resource.listWebdavResources() do no longer list directories?<br />Figure out what to do</li>
</ul>
</subsection>
</section>
</body>
</document>