| <?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> |
| |
| <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>nfs</li> |
| <li>tar</li> |
| <li> |
| <strike>gzip</strike> (done) |
| </li> |
| <li> |
| <strike>bzip2</strike> (done) |
| </li> |
| <li>rsync</li> |
| <li> |
| <strike>ClassLoader resources</strike> (done) |
| </li> |
| <li>cvs</li> |
| <li>subversion</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> |
| <strike>Add proxy support</strike> (done) |
| </li> |
| <li>HTTPS</li> |
| </ul> |
| </li> |
| <li>SFTP Provider: |
| <ul> |
| <li> |
| <strike>Add key-based authentication.</strike> (done) |
| </li> |
| <li> |
| <strike>Support last-modified.</strike> (done) |
| </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>FTP Provider: |
| <ul> |
| <li> |
| <strike>Fix set last-modified.</strike> (done) |
| </li> |
| <li> |
| <strike>Support passive mode.</strike> (done FtpFileSystemConfigBuilder) |
| </li> |
| <li> |
| <strike>Add proxy support.</strike> no ftp-proxy standard available. If you are lucky - you simply could use special formed urls. |
| </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> |
| <strike>The in-memory caching mechanism is pretty rudimentary at |
| this stage. It needs work to make it size capped. In addition, |
| some mechanism needs to be provided to release and refresh |
| cached info.</strike> (done) |
| <br/> |
| <strike>Some mechanism needs to be provided refresh cached info</strike> |
| (FileObject.close() rereads the file informations - this is threadsafe) |
| </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> |
| <strike>Add Filtering file systems, which sit on top of another |
| file system, and alter the contents. For example, gzip or bzip2. |
| </strike> |
| <br/>No longer needet - VFS handles compressed files like a filesystem with only one entry |
| </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>Provide a hook for authentication.</li> |
| <li>Get/set the file permissions.</li> |
| <li>Sort out threading model.</li> |
| <li>Automatically checksum and/or verify remote files.</li> |
| <li> |
| Use remote copies and moves for those file systems that |
| support it. |
| </li> |
| <li>Add a file monitor, that watches for external changes to 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> |
| </section> |
| </body> |
| </document> |