You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ad...@apache.org on 2002/10/28 03:05:30 UTC
cvs commit: jakarta-commons-sandbox/vfs/xdocs anttasks.xml download.xml filesystems.xml getstarted.xml index.xml navigation.xml todo.xml
adammurdoch 2002/10/27 18:05:30
Modified: vfs/xdocs index.xml navigation.xml todo.xml
Added: vfs/xdocs anttasks.xml download.xml filesystems.xml
getstarted.xml
Log:
Doc-o-rama.
Revision Changes Path
1.2 +26 -22 jakarta-commons-sandbox/vfs/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/vfs/xdocs/index.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- index.xml 16 Jul 2002 17:19:05 -0000 1.1
+++ index.xml 28 Oct 2002 02:05:30 -0000 1.2
@@ -1,27 +1,31 @@
<?xml version="1.0"?>
<document>
-
- <properties>
- <title>VFS : Virtual File System component</title>
- <author email="jstrachan@apache.org">James Strachan</author>
- </properties>
-
-<body>
-
-<section name="VFS : Virtual File System component">
-
-<p><em>VFS</em> implements a Virtual File System abstraction on top of a number of different
-providers such as files, FTP, SMB, ZIP etc.
-</p>
-
-<p>
-VFS can be used inside a number of projects such as Ant, Anteater, Jelly, Latka, Maven etc.
-</p>
-
-</section>
-
-
-</body>
+ <properties>
+ <title>VFS : Virtual File System</title>
+ <author email="jstrachan@apache.org">James Strachan</author>
+ </properties>
+
+ <body>
+ <section name="VFS : Virtual File System">
+
+ <p>
+ The VFS component provides a common API for accessing
+ various different file systems. It presents a uniform view of
+ the files from various different sources, such as the files on
+ local disk, on an HTTP server, or inside a Zip archive.
+ </p>
+
+ <p>Some of the features of the VFS component are:</p>
+ <ul>
+ <li>A consistent API for accessing files of different types.</li>
+ <li>Support for numerous <a href="filesystems.html">file system types</a>.</li>
+ <li>Utilities like a VFS ClassLoader and URLStreamHandlerFactory.</li>
+ <li>A set of VFS <a href="anttasks.html">Ant tasks</a>.</li>
+ <li>More coming soon ...</li>
+ </ul>
+
+ </section>
+ </body>
</document>
1.3 +4 -0 jakarta-commons-sandbox/vfs/xdocs/navigation.xml
Index: navigation.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/vfs/xdocs/navigation.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- navigation.xml 18 Jul 2002 16:47:24 -0000 1.2
+++ navigation.xml 28 Oct 2002 02:05:30 -0000 1.3
@@ -7,6 +7,10 @@
<body>
<menu name="VFS">
<item name="Overview" href="/index.html"/>
+ <item name="Download" href="/download.html"/>
+ <item name="Getting Started" href="/getstarted.html"/>
+ <item name="File Systems" href="/filesystems.html"/>
+ <item name="Ant Tasks" href="/anttasks.html"/>
<item name="To Do List" href="/todo.html"/>
</menu>
</body>
1.2 +53 -18 jakarta-commons-sandbox/vfs/xdocs/todo.xml
Index: todo.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/vfs/xdocs/todo.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- todo.xml 16 Jul 2002 17:19:07 -0000 1.1
+++ todo.xml 28 Oct 2002 02:05:30 -0000 1.2
@@ -1,24 +1,59 @@
<?xml version="1.0"?>
<document>
- <properties>
- <title>TODO</title>
- <author email="jstrachan@apache.org">James Strachan</author>
- </properties>
+ <properties>
+ <title>TODO</title>
+ <author email="jstrachan@apache.org">James Strachan</author>
+ </properties>
- <body>
- <section name="TODO">
- <p>
- The following is a list of items that need to be completed in
- Jelly. Contributions are welcome!.
- </p>
-
- <ul>
- <li>fix compile errors!</li>
- <li>use the FTP client from the 'net' component in the sandbox?</li>
- <li>document!</li>
- </ul>
- </section>
- </body>
+ <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</li>
+ <li>Add more providers: http, webdav, resources, tar, gzip, cvs, jndi, etc</li>
+ <li>Formalise the provider API.</li>
+ <li>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.</li>
+ <li>The on-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>Add local mirroring.</li>
+ <li>Change AbstractLayeredFileSystem to track changes to
+ the parent file object. Eg when the parent file is deleted,
+ mark all the files in the fs as 'does-not-exist'.</li>
+ <li>Change AbstractLayeredFileSystem to support writeable
+ layered fs.</li>
+ <li>Make StandardFileSystemManager configurable from an XML descriptor.</li>
+ <li>Change the model so that folders may have content.</li>
+ <li>Add support for junctions (ie links).</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 Filtering file systems, which sit on top of another
+ file system, and alter the contents. For example, gzip or bzip2.</li>
+ <li>Add an equivalent of the fileScanner Jelly tag.</li>
+ <li>Add an equivalent of Ant fileset.</li>
+ <li>Allow selectors, name mappers, and filters to be specified
+ for the Ant tasks.</li>
+ <li>Capabilities discovery.</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 for use with JXpath.</li>
+ <li>Add contentChanged event to FileListener.</li>
+ <li>Provide a hook for authentication.</li>
+ <li>Sort out threading model.</li>
+ </ul>
+ </section>
+ </body>
</document>
1.1 jakarta-commons-sandbox/vfs/xdocs/anttasks.xml
Index: anttasks.xml
===================================================================
<document>
<properties>
<title>Ant Tasks</title>
<author email="adammurdoch@apache.org">Adam Murdoch</author>
</properties>
<body>
<section name="Ant Tasks">
<p>
To use the Ant tasks, copy commons-jar.jar and its dependencies
into the <code>$ANT_HOME/lib</code> directory,
and use the following in your Ant scipt to define the tasks:
</p>
<source><![CDATA[
<taskdef resource="/org/apache/commons/vfs/tasks/tasks.properties"/>
]]></source>
<p>
Alternatively, you can provide an explicit classpath when
you define the tasks:
</p>
<source><![CDATA[
<taskdef resource="/org/apache/commons/vfs/tasks/tasks.properties">
<classpath> ... </classpath>
</taskdef>
]]></source>
</section>
<section name="Copy">
<p>Copies a set of files to a destination folder.</p>
</section>
<section name="Move">
<p>Moves a set of files to a destination folder.</p>
</section>
<section name="Sync">
<p>Synchronises a destination folder with a set of source files.</p>
</section>
<section name="Delete">
<p>Deletes a file or folder.</p>
</section>
<section name="Mkdir">
<p>Creates a folder.</p>
</section>
</body>
</document>
1.1 jakarta-commons-sandbox/vfs/xdocs/download.xml
Index: download.xml
===================================================================
<document>
<properties>
<title>Download</title>
<author email="adammurdoch@apache.org">Adam Murdoch</author>
</properties>
<body>
<section name="Download">
<p>Coming soon.</p>
</section>
</body>
</document>
1.1 jakarta-commons-sandbox/vfs/xdocs/filesystems.xml
Index: filesystems.xml
===================================================================
<document>
<properties>
<title>Supported File Systems</title>
<author email="adammurdoch@apache.org">Adam Murdoch</author>
</properties>
<body>
<section name="Supported File Systems">
<p>Listed below are the supported file systems:</p>
<ul>
<li><a href="#Local Files">Local Files</a></li>
<li><a href="#Zip and Jar Files">Zip and Jar Files</a></li>
<li><a href="#HTTP and HTTPS">HTTP and HTTPS</a></li>
<li><a href="#FTP">FTP</a></li>
<li><a href="#CIFS">CIFS</a></li>
<li><a href="#Temporary Files">Temporary Files</a></li>
</ul>
</section>
<section name="Local Files">
<p>Provides access to the files on the local physical file system.</p>
<p><b>URI Format</b></p>
<p><code>[file://]<i>absolute-path</i></code></p>
<p>
Where <code><i>absolute-path</i></code> is a valid absolute
file name for the local platform. UNC names are supported
under Windows.
</p>
<p><b>Examples</b></p>
<ul>
<li><code>file://home/someuser/somedir</code></li>
<li><code>c:\program files\some dir</code></li>
<li><code>c:/program files/some dir</code></li>
<li><code>file:////somehost/someshare/afile.txt</code></li>
</ul>
</section>
<section name="Zip and Jar Files">
<p>Provides read-only access to the contents of Zip and Jar files.</p>
<p><b>URI Format</b></p>
<p><code>zip://<i>zip-file-uri</i>[!<i>absolute-path</i>]</code></p>
<p><code>jar://<i>zip-file-uri</i>[!<i>absolute-path</i>]</code></p>
<p>
Where <code>zip-file-uri</code> refers to a file of any
supported type, including other zip files. Note that any
! characters in <code><i>zip-file-uri</i></code> must be escaped
using <code>%21</code>.
</p>
<p><b>Examples</b></p>
<ul>
<li><code>jar:../lib/classes.jar!/META-INF/manifest.mf</code></li>
<li><code>zip:http://somehost/downloads/somefile.zip</code></li>
<li><code>jar:zip:outer.zip%21/nested.jar!/somedir</code></li>
</ul>
</section>
<section name="HTTP and HTTPS">
<p>Provides access to files on an HTTP server.</p>
<p><b>URI Format</b></p>
<p><code>http://<i>hostname</i>[:<i>port</i>][<i>absolute-path</i>]</code></p>
<p><code>https://<i>hostname</i>[:<i>port</i>][<i>absolute-path</i>]</code></p>
<p><b>Examples</b></p>
<ul>
<li><code>http://somehost:8080/downloads/somefile.jar</code></li>
</ul>
</section>
<section name="FTP">
<p>Provides access to the files on an FTP server.</p>
<p><b>URI Format</b></p>
<p><code>ftp://[[<i>password</i>:]<i>username</i>@]<i>hostname</i>[:<i>port</i>][<i>absolute-path</i>]</code></p>
<p><b>Examples</b></p>
<ul>
<li><code>ftp://mypassword:myusername@somehost/pub/downloads/somefile.tgz</code></li>
</ul>
</section>
<section name="CIFS">
<p>
Provides access to the files on a CIFS server, such as
a Samba server, or a Windows share.
</p>
<p><b>URI Format</b></p>
<p><code>smb://[[<i>password</i>:]<i>username</i>@]<i>hostname</i>[:<i>port</i>][<i>absolute-path</i>]</code></p>
<p><b>Examples</b></p>
<ul>
<li><code>smb://somehost/home</code></li>
</ul>
</section>
<section name="Temporary Files">
<p>
Provides access to a temporary file system, or scratchpad,
that gets deleted when the VFS is closed. The temporary file
system is, by default, backed by local files.
</p>
<p><b>URI Format</b></p>
<p><code>tmp://[<i>absolute-path</i>]</code></p>
<p><b>Examples</b></p>
<ul>
<li><code>tmp://dir/somefile.txt</code></li>
</ul>
</section>
</body>
</document>
1.1 jakarta-commons-sandbox/vfs/xdocs/getstarted.xml
Index: getstarted.xml
===================================================================
<document>
<properties>
<title>Getting Started</title>
<author email="adammurdoch@apache.org">Adam Murdoch</author>
</properties>
<body>
<section name="Getting Started">
<p>
The <a href="apidocs/org/apache/commons/vfs/FileSystemManager.html"><code>FileSystemManager</code></a>
interface provides access to the VFS. Using this interface
you can locate files and create file systems.
There are a number of ways to obtain a <code>FileSystemManager</code>
instance. The simplest way is to use the static
<a href="apidocs/org/apache/commons/vfs/VFS.html#getManager()"><code>VFS.getManager()</code></a>
method. Alternatively, you can create an instance of
<a href="apidocs/org/apache/commons/vfs/impl/DefaultFileSystemManager.html"><code>DefaultFileSystemManager</code></a>
and configure it manually.
</p>
<p>
Once you have a <code>FileSystemManager</code>, you can use one
of its <code>resolveFile()</code> methods to locate a file by name.
For example:
</p>
<source><![CDATA[
FileSystemManager fsManager = VFS.getManager();
FileObject aJarFile = fsManager.resolveFile( "jar:lib/aJarFile.jar" );
]]></source>
<p>
Each file is represented by a
<a href="apidocs/org/apache/commons/vfs/FileObject.html"><code>FileObject</code></a>
instance. Using this interface you can create or delete the
file, list its children, read or write its content, and so on.
For example:
</p>
<source><![CDATA[
// Locate the Jar file
FileSystemManager fsManager = VFS.getManager();
FileObject aJarFile = fsManager.resolveFile( "jar:lib/aJarFile.jar" );
// List the children of the Jar file
FileObject[] children = fsManager.getChildren();
System.println( "Children of " + aJarFile.getName().getURI() );
for ( int i = 0; i < children.length; i++ )
{
System.println( children[ i ].getName().getBaseName() );
}
]]></source>
</section>
</body>
</document>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>