Apache Commons logo Commons VFS


The following is a list of items that need to be completed. Contributions are welcome!

Release 1.1

  • moveTo should handle a directory move if it moves from a different filesystem.


  • More documentation (status, file naming etc).
  • Fix the TODO items in the code.
  • Add more providers:
    • rsync
    • subversion
    • nfs
    • cvs
    • jdbc filesystem
    • xml filesystem
    • jndi
    • imap
    • local mirror
    • spidering http
    • ...
  • JNDI integration.
  • Formalise the provider API.
  • WebDAV Provider:
    • Add plain http support, and auto-detect dav resources.
    • Add set last-modified.
    • HTTPS
  • Zip/Jar Provider:
    • Extract an AbstractLayerFileSystem out of ZipFileSystem.
    • Track changes to the parent layer. Eg when the parent layer is deleted, mark all the files in the fs as 'does-not-exist'.
    • Add support for writing to zip/jar files.
  • URL Provider:
    • Support attributes.
  • HTTP Provider:
    • Support attributes.
    • HTTPS support.
  • The local disk caching mechanism also needs more work. Needs to check last-modified time. Replicator needs to be more configurable.
  • Add persistent replicator.
  • Finish support for junctions: Make ancestors of a junction point visible, fire events when junction is added or removed, tests.
  • Add support for federation (ie transparently crossing file system boundaries, such as drilling down into the contents of a Jar file).
  • Add an equivalent of the fileScanner Jelly tag.
  • Add an equivalent of Ant path, fileset, dirset, filelist, etc. Ideally, these can be abstracted into a single data type.
  • Allow selectors, name mappers, and filters to be specified for the Ant tasks.
  • Add capabilities to FileObject.
  • Attributes and attribute schema.
  • Handle file canonicalisation better (for cases like case-insensitive file systems, symbolic links, name mangling, etc).
  • Add more selectors: XPath, Ant style, regular expression.
  • Add adaptor (NodePointerFactory?) for use with JXpath.
  • Add content-changed, attribute-changed, and move events to FileListener. Maybe split into structure and content listeners.
  • Get/set the file permissions.
  • Automatically checksum and/or verify remote files.
  • 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.

Library upgrades

The following describes things I discovered during testing newer dependencies.

webdavlib 2.1

  • resource.listWebdavResources() do no longer list directories?
    Figure out what to do