adammurdoch 2003/02/20 21:17:18 Modified: vfs/xdocs api.xml Log: Added details on configuring a FileSystemManager. Revision Changes Path 1.5 +163 -30 jakarta-commons-sandbox/vfs/xdocs/api.xml Index: api.xml =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/vfs/xdocs/api.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- api.xml 17 Feb 2003 08:57:43 -0000 1.4 +++ api.xml 21 Feb 2003 05:17:18 -0000 1.5 @@ -7,49 +7,31 @@ <body> <section name="Using The API"> <p> - The <a href="apidocs/org/apache/commons/vfs/FileSystemManager.html"><code>FileSystemManager</code></a> + The + <a href="apidocs/org/apache/commons/vfs/FileSystemManager.html">FileSystemManager</a> interface provides access to Commons 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: + There are a <a href="#Configuring Commons VFS">number of ways</a> + to obtain a <code>FileSystemManager</code> instance. + The simplest is to use the static + <a href="apidocs/org/apache/commons/vfs/VFS.html#getManager()">VFS.getManager()</a> + method, which returns the default Commons VFS implementation. </p> - <ul> - <li> - Use the static - <a href="apidocs/org/apache/commons/vfs/VFS.html#getManager()"><code>VFS.getManager()</code></a> - method, which returns the default Commons VFS implementation. - </li> - <li> - Create an instance of - <a href="apidocs/org/apache/commons/vfs/impl/DefaultFileSystemManager.html"><code>DefaultFileSystemManager</code></a> - and configure it manually. <code>DefaultFileSystemManager</code> - does not include any providers or other services. You - will have to add these to make it do anything useful. - </li> - <li> - Create an instance of - <a href="apidocs/org/apache/commons/vfs/impl/StandardFileSystemManager.html"><code>StandardFileSystemManager</code></a>, - a useful subclass of <code>DefaultFileSystemManager</code> - that includes all the standard providers and services. - You can add extra providers, or replace the standard - providers with custom implementations. - </li> - </ul> <p> - Once you have a <code>FileSystemManager</code>, you can use one - of its <code>resolveFile()</code> methods to locate a file by name. + Once you have a <code>FileSystemManager</code>, you can use 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" ); +FileObject jarFile = 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> + <a href="apidocs/org/apache/commons/vfs/FileObject.html">FileObject</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: @@ -69,7 +51,158 @@ } ]]></source> - <p>See the Javadocs for <code>FileObject</code> for more detail.</p> + <p> + See the + <a href="apidocs/org/apache/commons/vfs/FileObject.html">FileObject</a> + Javadocs for more detail. + </p> + + <subsection name="Examples"> + <p> + For an example of using the API, take a look at the classes + in the + <a href="xref/org/apache/commons/vfs/example/package-summary.html">example</a> + package. + </p> + </subsection> + + </section> + + <section name="Configuring Commons VFS"> + <p> + Commons VFS is represented using the + <a href="apidocs/org/apache/commons/vfs/FileSystemManager.html">FileSystemManager</a> + interface. There are a number of ways to create and configure a + <code>FileSystemManager</code> instance. + </p> + <p> + The simplest method is to use the static + <a href="apidocs/org/apache/commons/vfs/VFS.html#getManager()">VFS.getManager()</a> + method, which returns the default Commons VFS implementation. + </p> + + <p> + To configure Commons VFS programatically, you can create an + instance of + <a href="apidocs/org/apache/commons/vfs/impl/DefaultFileSystemManager.html">DefaultFileSystemManager</a> + and configure it manually. The default constructor + <code>DefaultFileSystemManager</code> creates a manager that + is completely empty. You will have to add file providers to it + to make it do anything useful. + </p> + <p> + Here are the steps for using <code>DefaultFileSystemManager</code>: + </p> + <ol> + <li>Create an new instance.</li> + <li> + Set the logger for the manager and all its components, + using <code>setLogger()</code>. This step is + optional, and if skipped, the manager will use the default + logger provided by Commons Logging. + </li> + <li> + Add file providers, using <code>addProvider()</code>. + </li> + <li> + Set the default provider, using + <code>setDefaultProvider()</code>. This step is optional. + See + <a href="apidocs/org/apache/commons/vfs/provider/url/UrlFileProvider.html">UrlFileProvider</a> + for a useful default provider. + </li> + <li> + Set the file replicator, using <code>setReplicator()</code>. + This step is optional. + </li> + <li> + Set the temporary file store, using + <code>setTemporaryFileStore()</code>. + This step is optional. + </li> + <li> + Set the base file using <code>setBaseFile()</code>. The + base file is used to resolve relative URI passed to + <code>resolveFile()</code>. This step is optional. + </li> + <li> + Initialise the manager using <code>init()</code>. + </li> + </ol> + <p> + You should make sure that you call <code>close()</code> on the + manager when you are finished with it. + </p> + + <p> + The third method for configuring Commons VFS, is to configure + it from a file. Create an instance of + <a href="apidocs/org/apache/commons/vfs/impl/StandardFileSystemManager.html">StandardFileSystemManager</a>, + and use its <code>setConfiguration()</code> method to set the + location of the configuration file to use. The configuration + file format is described below. + </p> + <p> + <code>StandardFileSystemManager</code> is a subclass of + <code>DefaultFileSystemManager</code>, so you can also + also configure it programmatically, as described above. + </p> + <subsection name="Configuration File"> + <p> + The configuration file is an XML file. The root element + of the configuration file should be a + <code><providers></code> element. + The <code><providers></code> element may contain + zero or more <code><provider></code> elements, and + an optional <code><default-provider></code> element. + </p> + <p> + The <code><provider></code> element defines a file + provider. It must have a <code>class-name</code> attribute, + which specifies the fully-qualified name of the provider + class. The provider class must be public, and must have a + public no-args constructor. + </p> + <p> + The <code><provider></code> element may contain + zero or more <code><scheme></code> elements, + and zero or more <code><if-available></code> elements. + </p> + <p> + The <code><scheme></code> element defines a URI scheme + that the provider will handle. It must have a + <code>name</code> attribute, which specifies the URI scheme. + </p> + <p> + The <code><if-available></code> elements is used to + disable the provider if certain classes are not present in + the class-path. + It must have a <code>class-name</code> attribute, which + specifies the fully qualified name of a class to test for. + If the class cannot be found, the provider is not registered. + </p> + <p> + The <code><default-provider></code> element defines + the default provider. It has the same format as the + <code><provider></code> element. + </p> + + <p> + Below is an example configuration file: + </p> + <source><![CDATA[ +<providers> + <provider class-name="org.apache.commons.vfs.provider.zip.ZipFileProvider"> + <scheme name="zip"/> + </provider> + <provider class-name="org.apache.commons.vfs.provider.ftp.FtpFileProvider"> + <scheme name="ftp"/> + <if-available class-name="org.apache.commons.net.ftp.FTPFile"/> + </provider> + <default-provider class-name="org.apache.commons.vfs.provider.url.UrlFileProvider"/> +</providers> +]]></source> + </subsection> </section> </body> </document>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]