From: "Adam Murdoch" <adammurdoch_ml@yahoo.com>
Subject: RE: Virtual FileSystem Layer
Date: Sat, 22 Dec 2001 12:06:37 +1000

Hi,

I've also been doing a bit of work on the VFS.  No code yet - instead, I've
done a survey of the Ant 1 code, to help get a better idea of what we need
the VFS to actually do.

I've put together a rough list of the sort of features the current tasks
require from the file system.  This list is entirely from the task writer's
POV.  I've ignored the build file writer completely - though, the action
list is a good summary of the build file writer's concerns.  I've tried to
steer clear of assumptions about what is actually going to provide each
feature to the tasks, or what the API will look like to the tasks.

The goal for doing up this list, was to help identify the features we want
to support, and the API that the tasks will use to get at them.  This should
be largely independent of how we decide to represent the file system in the
build files.  In addition, it doesn't matter too much whether the list below
is complete (I'm sure it isn't), or that the VFS provide every single one of
the features.  Whatever it doesn't provide, can stay up in the tasks, and be
refactored down later.

The assumption here is that we do actually want to put together a file
system API.  I think it's a good idea to at least put together some
interfaces, even if the implementation is stolen from somewhere else.
Without a doubt, the file system is the most widely used "service" in the
current crop of tasks.  The API that we choose has to have a good semantic
match with what the tasks need to do, so that writing the tasks is easy.
The API also has to be general enough to deal with stuff we haven't thought
of yet.  On that note, I personally think that JNDI might be a touch too
general for what we need.

So, the features.  Note that many of these will be optional - not every
feature will be available for every node in the file system.  I've used the
term "node" to mean both directories and files.  I'm not suggesting we
actually call them "nodes" in the API.  I've used the term "root node" to
mean the root of a file system.

* Naming

- Locate a node by absolute name.
- Get the absolute name for a node.
- Resolve a name to a node, relative to some base node - like
FileUtils.resolveFile().
- Get the relative name of a node, relative to some base node.
- Determine the base name (with and without the extension), and extension of
the node.
- Deal with file systems that are case sensitive, and case insentitive.

* Properties

- Determine what properties are available on the node.
- Determine if the node exists.
- Determine the type of node (file vs. directory, could be "has-content" vs
"has-children").
- Determine if the node is readable.
- Determine if the node is writeable.
- Get/set the permissions on the node.  This covers things like chmod &
chown, making read-only, making executable, etc.

* Content

- Determine if the node can/does have content.
- Get the size of the node.
- Get/set the last-modified time of the node.
- Get/set the mime-type of the node.
- Get/set the encoding of the node.
- Get a checksum of the node.
- Get content as InputStream.
- Get content as Reader.
- Set content as an OutputStream.
- Set content as a Writer.
- Implicit creation of node and its ancestors when content is written.
- Compare nodes for equality (last modified timestamp, checksum, bytewise
compare).

* Hierarchy

- Get the parent node of a node.
- Get the child nodes of a node.
- Iterate over (or visit) the descendants of a node.
  - With or without a selector.
  - In various orders - depthwise, etc.
  - Be able to modify the nodes during traversal.

* Modification

- Create a new node of a particular type.  Create all missing ancestors.
- Move, copy, delete a node.
  - All descendants.
  - Optional selector. E.g. ignore empty dirs, ignore default excludes, etc.
  - Optional filter.

* Conversion

- Convert the node to a java.net.URL.
- Make the node content available as a local file (to hand off to external
commands).
- Get the OS specific *filename* for a node.
- Resolve an OS specific *filename* to a node.

* File System Types

- Local file.
- HTTP.
- FTP.
- Classloader, uses Classloader.getResource().
- Temporary files.
- etc ...

- Compound file system.  Made up of a bunch of mount points.  The VFS
itself.

- Layered file systems (that sit on top of another file system or node):
  - zip, bzip, jar, tar
  - filtering - token replacement, etc

- Factories for creating and configuring file system root nodes.
- Ability to easily add new file system implementations.

* Task Container

- A mechanism for a task to get hold of the project's root node.

- A mechanism that allows a task to create its own private root nodes,
without letting it mess with the project's file system, or the file systems
of other tasks.

- A mechanism for cleaning up all the node InputStream, OutputStream, Reader
and Writers opened by a task during its execute() method.  Cleaning up files
is one thing the current tasks don't do very well at all.  Something like
this would take care of anything the task did not explictly close.  Would
include root nodes it created.

* Other things

- Maybe some way to explicitly close a node and release all resources used
by it.

- Maybe detection of concurrent updates, in the case of parallel tasks.

- Netbeans has an event model in its VFS.  Something like this might be
useful in dependency management.

- nodesets.  The replacement for, or generalisation of, FileSet, Path,
FileList, etc
  - A nodeset that contains the descendents of a node that match a selector
(like the current FileSet implementation).
  - A nodeset that contains arbitrary nodes.
  - An aggregating nodeset.
  - Custom nodeset implementations.

- Reimplement the Ant 1 Fileset, Path and Filelist as adaptors sitting on
top of the VFS.

- A classloader that can load classes from a node.

- etc ..

What's missing?  What shouldn't be on the list?


Adam

> -----Original Message-----
> From: Magesh Umasankar [mailto:umagesh@apache.org]
> Sent: Saturday, 22 December 2001 10:44 AM
> To: ant-dev@jakarta.apache.org
> Subject: Virtual FileSystem Layer
>
>
> I have been spending some time now on the VFS
> layer...  Nothing major to report yet, but I just wanted
> to sound off so that if I am going down the wrong
> route, I correct it right away.
>
> I evaluated at WebNFS, NetBeansFS (NBFS) and
> JNDI.
>
> 1.  WebNFS seems to be going nowhere.  It has
> been dormant for quite sometime now.  Licensing
> is rigid.  Technically, it doesn't look so bad as it
> closely replicates java.io.File's API.  But then,
> that really gives us very little.
>
> 2.  NBFS looks OK.  It has got a few filesystems
> already built.  There may be some licensing issues,
> I don't know, but that shouldn't concern us too
> much as, according to Peter, it is Mozilla (I haven't
> really check the license out, sorry).  But, as far as I
> can see, it seems to lack in sophisticated API features
> like searching based on attributes, etc., which
> we will definitely be needing for the Selector APIs.
>
> 3.  JNDI, by far, beats the above to, in my
> evaluation.  It is generic enough.  We don't have
> any licensing issues.  It has also become part of
> the core JRE (1.4 onwards).  Technically, it fits to a T
> what we are looking for - virtual file system that
> provides search controls, access attributes,
> url mounting, etc.  Furthermore, there's been
> some ground work already done for us at Jakarta/Apache
> (Catalina).  I have written a SPI for a FTPFileSystem
> - though it is in a real crude stage right now.  I believe
> this is the way to go because Ant's code would be
> operating at the (Dir)Context level and we can keep
> adding SPIs as we need them.  Furthermore,
> JNDI has been stable for quite sometime now and
> we can depend on a widely used API.
>
> I don't think JNDI is a heavyweight API for our needs.
> It seems to be the only one, so far, which encompasses
> at the APIP level, all the new functionalities that we
> desire to introduce.
>
> Let me know if my approach, so far, to go the JNDI
> route seems reasonable.
>
> Cheers,
> Magesh
>
>
>
>
> --
> To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


