Ok, I am trying StandardFileSystemManager :
Q: With this line in the providers.xml ... if HttpClient isn't available,
will I still get JDK HTTP?
<provider
class-name="org.apache.commons.vfs.provider.http.HttpFileProvider">
<scheme name="http"/>
<if-available
class-name="org.apache.commons.httpclient.HttpClient"/>
</provider>
Here is what I have (below) w/ lots of old (DefaultFSM) stuff commented out.
Does what I have left make sense, or is it redundant?
Thanks in advance.
regards
Adam
public static FileSystemManager createFSM(String name, String base)
throws FileSystemException {
//
// Note: Was w/ manual configuration
//
DefaultFileSystemManager fsm = new StandardFileSystemManager();
fsm.setLogger(LogFactory.getLog(name));
fsm.init();
//
// Done automatically by Standard
//
// FileProvider fileProvider = new DefaultLocalFileProvider();
// fsm.addProvider("file", fileProvider);
//
// FileProvider tmpProvider = new TemporaryFileProvider();
// fsm.addProvider("tmp", tmpProvider);
// ZipFileProvider zipProvider = new ZipFileProvider();
// fsm.addProvider(new String[] { "jar", "zip" }, zipProvider);
// fsm.addExtensionMap("zip", "zip");
// fsm.addExtensionMap("jar", "jar");
// fsm.addExtensionMap("application/zip", "zip");
fsm.setReplicator(new DefaultFileReplicator());
// When we used Default We hand coded... w/ Standard it reads these from a
file
//
// //
// // Load FTP only if in the environment, and loadable
// //
// try {
// if (null
// == RelativelySafe.thrownIfLoaded(
// "org.apache.commons.net.ftp.FTPFile")) {
// fsm.addProvider(
// "ftp",
// new
org.apache.commons.vfs.provider.ftp.FtpFileProvider());
// }
// }
// catch (Exception e) {
// }
//
// FileProvider httpProvider = new UrlFileProvider();
// fsm.addProvider("http", httpProvider);
// fsm.setDefaultProvider(httpProvider);
// Set Base Directory for Resolveing Relative To...
fsm.setBaseFile(new java.io.File(base));
return fsm;
}
-----Original Message-----
From: Adam Jack [mailto:[EMAIL PROTECTED]
Sent: Saturday, August 02, 2003 7:20 AM
To: [EMAIL PROTECTED]
Subject: [VFS] Dynamic FSM Configuration
Hi,
With the (very recent) FTP failures on Gump I notice that my FSM
configuration is more static than I'd like. VFS is now (nicely) much more
dynamic w.r.t providers (with optional compilations) however my
configuration seems pretty tied to the existence of some.
I don't know if what I currently have (attached below) is historical or not,
but I have some issues. I can't go directly to the file configuration
approach because I don't know what working directory I will be run in. Also,
how would I keep my file (there only to be dynamic) in synch with the VFS
one. [I really don't want to limit my users to certain providers, I just
want to be dynamic.]
Here are a few question:
1) Could I load a file from a resource (in my jar, say) and somehow pass
that in to VFS FSM, then do my "final tweaks" w/ Replicator/Base? Is this
the best option?
2) Is there a way I can pass in a provider "ID" and have VFS do the
environment check (against it's own compiled base) and register, or not.
3) Is there a better approach than I have listed here? We just want to be
good VFS users w/ some requirements (tmp/replicator/etc.)
All input appreciated. Thanks in advance/
regards
Adam
--
<http://www.try.sybase.com>
Experience Sybase Technology ...
import org.apache.commons.vfs.AllFileSelector;
import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSelector;
import org.apache.commons.vfs.FileSystem;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.FileType;
import org.apache.commons.vfs.impl.DefaultFileReplicator;
import org.apache.commons.vfs.impl.DefaultFileSystemManager;
import org.apache.commons.vfs.provider.FileProvider;
import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider;
import org.apache.commons.vfs.provider.temp.TemporaryFileProvider;
import org.apache.commons.vfs.provider.url.UrlFileProvider;
import org.apache.commons.vfs.provider.zip.ZipFileProvider;
public static FileSystemManager createFSM(String name, String base)
throws FileSystemException {
DefaultFileSystemManager fsm = new DefaultFileSystemManager();
fsm.setLogger(LogFactory.getLog(name));
FileProvider fileProvider = new DefaultLocalFileProvider();
fsm.addProvider("file", fileProvider);
FileProvider tmpProvider = new TemporaryFileProvider();
fsm.addProvider("tmp", tmpProvider);
ZipFileProvider zipProvider = new ZipFileProvider();
fsm.addProvider(new String[] { "jar", "zip" }, zipProvider);
fsm.addExtensionMap("zip", "zip");
fsm.addExtensionMap("jar", "jar");
fsm.addExtensionMap("application/zip", "zip");
fsm.setReplicator(new DefaultFileReplicator());
//
// Load FTP only if in the environment, and loadable
//
try {
if (null
== RelativelySafe.thrownIfLoaded(
"org.apache.commons.net.ftp.FTPFile")) {
fsm.addProvider(
"ftp",
new
org.apache.commons.vfs.provider.ftp.FtpFileProvider());
}
}
catch (Exception e) {
}
FileProvider httpProvider = new UrlFileProvider();
fsm.addProvider("http", httpProvider);
fsm.setDefaultProvider(httpProvider);
// Set Base Directory for Resolveing Relative To...
fsm.setBaseFile(new java.io.File(base));
fsm.init();
return fsm;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]