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>