VFS - Next

done - 1. apply http://issues.apache.org/bugzilla/show_bug.cgi?id=33795

ram filesystem

partially done. 2. apply http://issues.apache.org/jira/browse/VFS-43

services & svn filesystem (we have to setup an external space to provide the svn filesystem as the used library JavaSVN is LGPL)

we need a discussion about a new name instead of "services" (maybe).

The idea is to have calls like

Commit commitFile = FileObject.getService(Commit.class)
commitFile.process();


TumbnailImage thumb = FileObject.getService(TumbnailImage.class)
thumb.process();
Image bi = thumb.getImage();


ExifData exif = FileObject.getService(ExifData.class)
exif.process();
String camera = exif.getCameraModel();

You get the idea?

Finally I decided to use the wording "operation" (idea from: http://people.tryphon.org/~alban/io-operations/docs/api/index.html) instead of "service".

3. user api

a way to avoid to put username/password into the url.

Using a callback mechanism to get this data when needed.

4. progress, pause and cancellation api

callbacks to be informed about ongoing operations (copy, move, rename, delete, copy-progress, move-progress (if between filesystems)) Ability to pause or cancel the operation.

5. browse roots

e.g. smb or local partitions (windows - c:, d:, ...)

done - 6. caching review - allow to configure fileObjects internal state cache

see VfsCacheStrategy

This is to avoid the .close() calling to get fresh data.

Sure, this might slow down alot, but if one would like have it, it should be possible.

Also try to find a way to avoid refreshing the internal children chache, or at least avoid successive refresh as good as possible.

7. xpath

allow xpath style filesystem browsing

done - 8. review virtual filesystem

see what happend to the virtual filesystem

9. file permissions (non-native)

(with non native code only)

figure out a way to represent file permissions and a way to modify then

10. native parts (if possible through jdic)

11. write support for archives

this would require it to

  1. copy the archive locally
  2. apply the change
  3. repack the archive
  4. copy the archive back to its place

We should stay in state 2. until one sends a signal to finish with the archive.


new filesystems

Consider this url:

zip:mime:imap://user@mailserver/INBOX/folders/newMail.mime!/attachment1.zip!/zipentry.txt

Cool, isnt it?


Todos

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

Release 1.1

Open

Library upgrades

The following describes changes in upgrades dependencies which need to be considered:

webdavlib 2.1

wishes

The best chance to get those added is by contribute them (wink)

Eclipse enabled VFS JARs

In addition to the current plugin model, use the OSGi plugin model to allow configuration of e.g. additional filesystem providers.


non confimed

Attribute API. This is useful for things like storing attributes of XML element in the XML filesystem (I did it but it is not standard), JNDI VFS (if I do it), or more simply, to retrieve infos like access rights (rwx) or file ownership in (ext2) filesystems. Such an API would allow an WebDAV server to be implemented on-top of a commons VFS.

a VFS on top of apache's configuration package

Spring-friendly

A Spring-friendly configuration interface, that allows file system managers to be fully configured as Spring beans. Such an interface would allow also junctions to be specified.

Support For Writing ISO-9660 and Joliet images

It'd be nice to be able to construct a CD or DVD layout using file system operations and then "burn" the resulting layout to an image file.

Support For Hierarchical Storage Management

It'd be nice to be able to add hierarchical storage management capabilities to the VFS.

(add your wishes here)

x. filesystem xyz

blablabla