imario 2004/05/19 12:34:07
Modified: vfs/src/java/org/apache/commons/vfs/provider
AbstractFileProvider.java FileProvider.java
vfs/src/java/org/apache/commons/vfs/impl
DefaultFileSystemManager.java
VirtualFileProvider.java
vfs/src/java/org/apache/commons/vfs/provider/local
DefaultLocalFileProvider.java LocalFileSystem.java
vfs/src/java/org/apache/commons/vfs FileSystemManager.java
vfs/src/java/org/apache/commons/vfs/provider/ftp
FtpFileProvider.java FtpFileSystem.java
FtpFileSystemConfigBuilder.java
vfs/src/java/org/apache/commons/vfs/provider/http
HttpFileProvider.java HttpFileSystem.java
HttpFileSystemConfigBuilder.java
vfs/src/java/org/apache/commons/vfs/provider/jar
JarFileProvider.java JarFileSystem.java
vfs/src/java/org/apache/commons/vfs/provider/sftp
SftpFileProvider.java SftpFileSystem.java
SftpFileSystemConfigBuilder.java
vfs/src/java/org/apache/commons/vfs/provider/smb
SmbFileProvider.java SmbFileSystem.java
vfs/src/java/org/apache/commons/vfs/provider/temp
TemporaryFileProvider.java
vfs/src/java/org/apache/commons/vfs/provider/url
UrlFileProvider.java UrlFileSystem.java
vfs/src/java/org/apache/commons/vfs/provider/webdav
WebdavFileProvider.java WebDavFileSystem.java
vfs/src/java/org/apache/commons/vfs/provider/zip
ZipFileProvider.java ZipFileSystem.java
Added: vfs/src/java/org/apache/commons/vfs SystemInfo.java
Log:
moved filesystem capabilities to fileprovider (kept old methods for compatibility)
to allow to get them before a filesystem is accessed.
introduced new interface SystemInfo (get an instance from FileSystemManager).
It allows us to get the currently available schemes (depending on the found external
jars (jcifs, jsch, ...)) and to query the capabilities of the filesystem.
Revision Changes Path
1.12 +6 -0
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/AbstractFileProvider.java
Index: AbstractFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/AbstractFileProvider.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- AbstractFileProvider.java 10 May 2004 20:09:42 -0000 1.11
+++ AbstractFileProvider.java 19 May 2004 19:34:06 -0000 1.12
@@ -17,6 +17,7 @@
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
+import org.apache.commons.vfs.FileSystemConfigBuilder;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemOptions;
@@ -88,5 +89,10 @@
FileSystemKey treeKey = new FileSystemKey(key, fileSystemProps);
return (FileSystem) fileSystems.get(treeKey);
+ }
+
+ public FileSystemConfigBuilder getConfigBuilder()
+ {
+ return null;
}
}
1.13 +15 -0
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/FileProvider.java
Index: FileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/FileProvider.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- FileProvider.java 10 May 2004 20:09:43 -0000 1.12
+++ FileProvider.java 19 May 2004 19:34:06 -0000 1.13
@@ -16,9 +16,12 @@
package org.apache.commons.vfs.provider;
import org.apache.commons.vfs.FileObject;
+import org.apache.commons.vfs.FileSystemConfigBuilder;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemOptions;
+import java.util.Collection;
+
/**
* A file provider. Each file provider is responsible for handling files for
@@ -51,4 +54,16 @@
*/
FileObject createFileSystem(String scheme, FileObject file, FileSystemOptions
fileSystemOptions)
throws FileSystemException;
+
+ /**
+ * Gets the configbuilder useable to collect the needet fileSystemOptions.
+ */
+ public FileSystemConfigBuilder getConfigBuilder();
+
+ /**
+ * Get the filesystem capabilities.<br>
+ * These are the same as on the filesystem, but available before the first
filesystem was
+ * instanciated.
+ */
+ public Collection getCapabilities();
}
1.30 +33 -0
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java
Index: DefaultFileSystemManager.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/impl/DefaultFileSystemManager.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- DefaultFileSystemManager.java 17 May 2004 20:13:20 -0000 1.29
+++ DefaultFileSystemManager.java 19 May 2004 19:34:06 -0000 1.30
@@ -22,6 +22,7 @@
import org.apache.commons.vfs.FileSystemOptions;
import org.apache.commons.vfs.FilesCache;
import org.apache.commons.vfs.GlobalConfiguration;
+import org.apache.commons.vfs.SystemInfo;
import org.apache.commons.vfs.provider.DefaultURLStreamHandler;
import org.apache.commons.vfs.provider.FileProvider;
import org.apache.commons.vfs.provider.FileReplicator;
@@ -34,6 +35,7 @@
import java.net.URLStreamHandler;
import java.net.URLStreamHandlerFactory;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -88,6 +90,27 @@
private final DefaultVfsComponentContext context =
new DefaultVfsComponentContext(this);
+ private final SystemInfo vfsSystemInfo = new SystemInfo()
+ {
+ public String[] getSchemes()
+ {
+ String schemes[] = new String[providers.size()];
+ providers.keySet().toArray(schemes);
+ return schemes;
+ }
+
+ public Collection getProviderCapabilities(String scheme) throws
FileSystemException
+ {
+ FileProvider provider = (FileProvider) providers.get(scheme);
+ if (provider == null)
+ {
+ throw new FileSystemException("vfs.impl/unknown-scheme.error", new
Object[]{scheme});
+ }
+
+ return provider.getCapabilities();
+ }
+ };
+
private TemporaryFileStore tempFileStore;
private final FileTypeMap map = new FileTypeMap();
private final VirtualFileProvider vfsProvider = new VirtualFileProvider();
@@ -592,5 +615,15 @@
//Route all other calls to the default URLStreamHandlerFactory
return new URLStreamHandlerProxy();
}
+ }
+
+ /**
+ * get the system info. e.g. schemes, provider
+ *
+ * @return
+ */
+ public SystemInfo getSystemInfo()
+ {
+ return vfsSystemInfo;
}
}
1.13 +1 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/impl/VirtualFileProvider.java
Index: VirtualFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/impl/VirtualFileProvider.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
1.7 +25 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/local/DefaultLocalFileProvider.java
Index: DefaultLocalFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/local/DefaultLocalFileProvider.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DefaultLocalFileProvider.java 10 May 2004 20:09:48 -0000 1.6
+++ DefaultLocalFileProvider.java 19 May 2004 19:34:06 -0000 1.7
@@ -15,6 +15,7 @@
*/
package org.apache.commons.vfs.provider.local;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -25,6 +26,9 @@
import org.apache.commons.vfs.util.Os;
import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
/**
* A file system provider, which uses direct file access.
@@ -36,6 +40,21 @@
extends AbstractOriginatingFileProvider
implements LocalFileProvider
{
+ public final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.CREATE,
+ Capability.DELETE,
+ Capability.RENAME,
+ Capability.GET_TYPE,
+ Capability.GET_LAST_MODIFIED,
+ Capability.SET_LAST_MODIFIED,
+ Capability.LIST_CHILDREN,
+ Capability.READ_CONTENT,
+ Capability.URI,
+ Capability.WRITE_CONTENT,
+ Capability.APPEND_CONTENT
+ }));
+
private final LocalFileNameParser parser;
public DefaultLocalFileProvider()
@@ -99,5 +118,10 @@
// Create the file system
final LocalFileName rootName = (LocalFileName) name;
return new LocalFileSystem(rootName, rootName.getRootFile());
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.23 +1 -12
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/local/LocalFileSystem.java
Index: LocalFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/local/LocalFileSystem.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- LocalFileSystem.java 10 May 2004 20:09:48 -0000 1.22
+++ LocalFileSystem.java 19 May 2004 19:34:06 -0000 1.23
@@ -15,7 +15,6 @@
*/
package org.apache.commons.vfs.provider.local;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSelector;
@@ -60,17 +59,7 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.CREATE);
- caps.add(Capability.DELETE);
- caps.add(Capability.RENAME);
- caps.add(Capability.GET_TYPE);
- caps.add(Capability.GET_LAST_MODIFIED);
- caps.add(Capability.SET_LAST_MODIFIED);
- caps.add(Capability.LIST_CHILDREN);
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.URI);
- caps.add(Capability.WRITE_CONTENT);
- caps.add(Capability.APPEND_CONTENT);
+ caps.addAll(DefaultLocalFileProvider.capabilities);
}
/**
1.18 +5 -0
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/FileSystemManager.java
Index: FileSystemManager.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/FileSystemManager.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- FileSystemManager.java 17 May 2004 17:56:57 -0000 1.17
+++ FileSystemManager.java 19 May 2004 19:34:06 -0000 1.18
@@ -199,4 +199,9 @@
* Get the global configuration
*/
GlobalConfiguration getGlobalConfiguration();
+
+ /**
+ * Gets the system info. e.g. Available schemes, provider configuration
builder, ...
+ */
+ SystemInfo getSystemInfo();
}
1.1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/SystemInfo.java
Index: SystemInfo.java
===================================================================
/*
* Copyright 2002, 2003,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.vfs;
import java.util.Collection;
/**
* Provides some runtime-info about the currently running vfs system
*
* @author <a href="mailto:[EMAIL PROTECTED]">Mario Ivanovits</a>
* @version $Revision: 1.1 $ $Date: 2004/05/19 19:34:06 $
*/
public interface SystemInfo
{
/**
* retrieve the currently available schemes
*/
public String[] getSchemes();
/**
* retrieve the capabilities of the provider responsible for the scheme.<br>
* These are the same as the ones on the filesystem, but available before a
filesystem was instantiated.
*
* @throws FileSystemException if no provider for the given scheme is available
*/
public Collection getProviderCapabilities(String scheme) throws
FileSystemException;
}
1.7 +32 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileProvider.java
Index: FtpFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileProvider.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FtpFileProvider.java 10 May 2004 20:09:49 -0000 1.6
+++ FtpFileProvider.java 19 May 2004 19:34:06 -0000 1.7
@@ -15,13 +15,19 @@
*/
package org.apache.commons.vfs.provider.ftp;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileSystem;
+import org.apache.commons.vfs.FileSystemConfigBuilder;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemOptions;
import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider;
import org.apache.commons.vfs.provider.GenericFileName;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* A provider for FTP file systems.
*
@@ -34,6 +40,21 @@
public final static String ATTR_FILE_ENTRY_PARSER = "FEP";
private static final int DEFAULT_PORT = 21;
+ final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.CREATE,
+ Capability.DELETE,
+ Capability.RENAME,
+ Capability.GET_TYPE,
+ Capability.LIST_CHILDREN,
+ Capability.READ_CONTENT,
+ Capability.SET_LAST_MODIFIED,
+ Capability.GET_LAST_MODIFIED,
+ Capability.URI,
+ Capability.WRITE_CONTENT,
+ Capability.APPEND_CONTENT,
+ }));
+
public FtpFileProvider()
{
super();
@@ -57,5 +78,15 @@
// Create the file system
final GenericFileName rootName = (GenericFileName) name;
return new FtpFileSystem(rootName, fileSystemOptions);
+ }
+
+ public FileSystemConfigBuilder getConfigBuilder()
+ {
+ return FtpFileSystemConfigBuilder.getInstance();
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.28 +1 -12
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystem.java
Index: FtpFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystem.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- FtpFileSystem.java 17 May 2004 20:13:20 -0000 1.27
+++ FtpFileSystem.java 19 May 2004 19:34:06 -0000 1.28
@@ -20,7 +20,6 @@
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemException;
@@ -92,17 +91,7 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.CREATE);
- caps.add(Capability.DELETE);
- caps.add(Capability.RENAME);
- caps.add(Capability.GET_TYPE);
- caps.add(Capability.LIST_CHILDREN);
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.SET_LAST_MODIFIED);
- caps.add(Capability.GET_LAST_MODIFIED);
- caps.add(Capability.URI);
- caps.add(Capability.WRITE_CONTENT);
- caps.add(Capability.APPEND_CONTENT);
+ caps.addAll(FtpFileProvider.capabilities);
}
/**
1.4 +5 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystemConfigBuilder.java
Index: FtpFileSystemConfigBuilder.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystemConfigBuilder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- FtpFileSystemConfigBuilder.java 10 May 2004 20:09:49 -0000 1.3
+++ FtpFileSystemConfigBuilder.java 19 May 2004 19:34:06 -0000 1.4
@@ -32,6 +32,10 @@
return builder;
}
+ private FtpFileSystemConfigBuilder()
+ {
+ }
+
/* as soon as commons-1.2 will be released
public void setFTPFileEntryParserFactory(FileSystemOptions opts,
FTPFileEntryParserFactory factory)
{
1.7 +25 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/http/HttpFileProvider.java
Index: HttpFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/http/HttpFileProvider.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- HttpFileProvider.java 10 May 2004 20:09:49 -0000 1.6
+++ HttpFileProvider.java 19 May 2004 19:34:06 -0000 1.7
@@ -15,13 +15,19 @@
*/
package org.apache.commons.vfs.provider.http;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileSystem;
+import org.apache.commons.vfs.FileSystemConfigBuilder;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemOptions;
import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider;
import org.apache.commons.vfs.provider.GenericFileName;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* An HTTP provider that uses commons-httpclient.
@@ -32,6 +38,14 @@
public class HttpFileProvider
extends AbstractOriginatingFileProvider
{
+ final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.READ_CONTENT,
+ Capability.URI,
+ Capability.GET_LAST_MODIFIED,
+ Capability.ATTRIBUTES
+ }));
+
public HttpFileProvider()
{
super();
@@ -53,5 +67,15 @@
throws FileSystemException
{
return new HttpFileSystem((GenericFileName) rootName, fileSystemOptions);
+ }
+
+ public FileSystemConfigBuilder getConfigBuilder()
+ {
+ return HttpFileSystemConfigBuilder.getInstance();
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.9 +2 -6
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/http/HttpFileSystem.java
Index: HttpFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/http/HttpFileSystem.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- HttpFileSystem.java 14 May 2004 18:38:35 -0000 1.8
+++ HttpFileSystem.java 19 May 2004 19:34:06 -0000 1.9
@@ -19,7 +19,6 @@
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -53,10 +52,7 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.URI);
- caps.add(Capability.GET_LAST_MODIFIED);
- caps.add(Capability.ATTRIBUTES);
+ caps.addAll(HttpFileProvider.capabilities);
}
/**
1.2 +5 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/http/HttpFileSystemConfigBuilder.java
Index: HttpFileSystemConfigBuilder.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/http/HttpFileSystemConfigBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HttpFileSystemConfigBuilder.java 14 May 2004 18:38:35 -0000 1.1
+++ HttpFileSystemConfigBuilder.java 19 May 2004 19:34:06 -0000 1.2
@@ -33,6 +33,10 @@
return builder;
}
+ private HttpFileSystemConfigBuilder()
+ {
+ }
+
/**
* Set the proxy to use for http connection.<br>
* You have to set the ProxyPort too if you would like to have the proxy relly
used.
1.7 +28 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/jar/JarFileProvider.java
Index: JarFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/jar/JarFileProvider.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- JarFileProvider.java 10 May 2004 20:09:50 -0000 1.6
+++ JarFileProvider.java 19 May 2004 19:34:06 -0000 1.7
@@ -15,6 +15,7 @@
*/
package org.apache.commons.vfs.provider.jar;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -23,6 +24,11 @@
import org.apache.commons.vfs.provider.zip.ZipFileName;
import org.apache.commons.vfs.provider.zip.ZipFileProvider;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* A file system provider for Jar files. Provides read-only file
* systems. This provides access to Jar specific features like Signing and
@@ -34,6 +40,22 @@
public class JarFileProvider
extends ZipFileProvider
{
+ final static Collection capabilities;
+
+ static
+ {
+ Collection combined = new ArrayList();
+ combined.addAll(ZipFileProvider.capabilities);
+ combined.addAll(Arrays.asList(new Capability[]
+ {
+ Capability.ATTRIBUTES,
+ Capability.FS_ATTRIBUTES,
+ Capability.SIGNING,
+ Capability.MANIFEST_ATTRIBUTES
+ }));
+ capabilities = Collections.unmodifiableCollection(combined);
+ }
+
public JarFileProvider()
{
super();
@@ -55,5 +77,10 @@
final FileName name =
new ZipFileName(scheme, file.getName().getURI(), FileName.ROOT_PATH);
return new JarFileSystem(name, file, fileSystemOptions);
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.18 +3 -7
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/jar/JarFileSystem.java
Index: JarFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/jar/JarFileSystem.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- JarFileSystem.java 10 May 2004 20:09:50 -0000 1.17
+++ JarFileSystem.java 19 May 2004 19:34:06 -0000 1.18
@@ -15,7 +15,6 @@
*/
package org.apache.commons.vfs.provider.jar;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemException;
@@ -75,11 +74,8 @@
*/
protected void addCapabilities(final Collection caps)
{
- super.addCapabilities(caps);
- caps.add(Capability.ATTRIBUTES);
- caps.add(Capability.FS_ATTRIBUTES);
- caps.add(Capability.SIGNING);
- caps.add(Capability.MANIFEST_ATTRIBUTES);
+ // super.addCapabilities(caps);
+ caps.addAll(JarFileProvider.capabilities);
}
Attributes getAttributes() throws IOException
1.10 +28 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileProvider.java
Index: SftpFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileProvider.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SftpFileProvider.java 10 May 2004 20:09:51 -0000 1.9
+++ SftpFileProvider.java 19 May 2004 19:34:06 -0000 1.10
@@ -17,8 +17,10 @@
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileSystem;
+import org.apache.commons.vfs.FileSystemConfigBuilder;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemOptions;
import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider;
@@ -26,6 +28,9 @@
import org.apache.commons.vfs.util.Os;
import java.io.File;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
/**
* A provider for accessing files over SFTP.
@@ -36,6 +41,18 @@
*/
public class SftpFileProvider extends AbstractOriginatingFileProvider
{
+ protected final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.CREATE,
+ Capability.DELETE,
+ Capability.RENAME,
+ Capability.GET_TYPE,
+ Capability.LIST_CHILDREN,
+ Capability.READ_CONTENT,
+ Capability.URI,
+ Capability.WRITE_CONTENT
+ }));
+
public final static String ATTR_USER_INFO = "UI";
private static final String SSH_DIR_NAME = ".ssh";
@@ -152,5 +169,15 @@
protected FileName parseUri(final String uri) throws FileSystemException
{
return GenericFileName.parseUri(uri, 22);
+ }
+
+ public FileSystemConfigBuilder getConfigBuilder()
+ {
+ return SftpFileSystemConfigBuilder.getInstance();
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.10 +2 -10
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystem.java
Index: SftpFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystem.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- SftpFileSystem.java 10 May 2004 20:09:51 -0000 1.9
+++ SftpFileSystem.java 19 May 2004 19:34:06 -0000 1.10
@@ -20,7 +20,6 @@
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.UserInfo;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -134,14 +133,7 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.CREATE);
- caps.add(Capability.DELETE);
- caps.add(Capability.RENAME);
- caps.add(Capability.GET_TYPE);
- caps.add(Capability.LIST_CHILDREN);
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.URI);
- caps.add(Capability.WRITE_CONTENT);
+ caps.addAll(SftpFileProvider.capabilities);
}
/**
1.4 +5 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java
Index: SftpFileSystemConfigBuilder.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SftpFileSystemConfigBuilder.java 10 May 2004 20:09:51 -0000 1.3
+++ SftpFileSystemConfigBuilder.java 19 May 2004 19:34:06 -0000 1.4
@@ -34,6 +34,10 @@
return builder;
}
+ private SftpFileSystemConfigBuilder()
+ {
+ }
+
/**
* Set the userinfo class to use if e.g. a password or a not known host
* will be contacted
1.7 +25 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/smb/SmbFileProvider.java
Index: SmbFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/smb/SmbFileProvider.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SmbFileProvider.java 10 May 2004 20:09:53 -0000 1.6
+++ SmbFileProvider.java 19 May 2004 19:34:07 -0000 1.7
@@ -15,6 +15,7 @@
*/
package org.apache.commons.vfs.provider.smb;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileSystem;
import org.apache.commons.vfs.FileSystemException;
@@ -22,6 +23,10 @@
import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider;
import org.apache.commons.vfs.provider.FileProvider;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* A provider for SMB (Samba, Windows share) file systems.
*
@@ -32,6 +37,20 @@
extends AbstractOriginatingFileProvider
implements FileProvider
{
+ protected final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.CREATE,
+ Capability.DELETE,
+ Capability.RENAME,
+ Capability.GET_TYPE,
+ Capability.GET_LAST_MODIFIED,
+ Capability.LIST_CHILDREN,
+ Capability.READ_CONTENT,
+ Capability.URI,
+ Capability.WRITE_CONTENT,
+ Capability.APPEND_CONTENT
+ }));
+
public SmbFileProvider()
{
super();
@@ -53,5 +72,10 @@
throws FileSystemException
{
return new SmbFileSystem(name, fileSystemOptions);
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.22 +1 -11
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/smb/SmbFileSystem.java
Index: SmbFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/smb/SmbFileSystem.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- SmbFileSystem.java 10 May 2004 20:09:53 -0000 1.21
+++ SmbFileSystem.java 19 May 2004 19:34:07 -0000 1.22
@@ -15,7 +15,6 @@
*/
package org.apache.commons.vfs.provider.smb;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -52,15 +51,6 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.CREATE);
- caps.add(Capability.DELETE);
- caps.add(Capability.RENAME);
- caps.add(Capability.GET_TYPE);
- caps.add(Capability.GET_LAST_MODIFIED);
- caps.add(Capability.LIST_CHILDREN);
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.URI);
- caps.add(Capability.WRITE_CONTENT);
- caps.add(Capability.APPEND_CONTENT);
+ caps.addAll(SmbFileProvider.capabilities);
}
}
1.14 +8 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/temp/TemporaryFileProvider.java
Index: TemporaryFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/temp/TemporaryFileProvider.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- TemporaryFileProvider.java 10 May 2004 20:09:53 -0000 1.13
+++ TemporaryFileProvider.java 19 May 2004 19:34:07 -0000 1.14
@@ -24,9 +24,11 @@
import org.apache.commons.vfs.provider.BasicFileName;
import org.apache.commons.vfs.provider.FileProvider;
import org.apache.commons.vfs.provider.UriParser;
+import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider;
import org.apache.commons.vfs.provider.local.LocalFileSystem;
import java.io.File;
+import java.util.Collection;
/**
* A provider for temporary files.
@@ -112,5 +114,10 @@
// Find the file
return filesystem.resolveFile(path);
+ }
+
+ public Collection getCapabilities()
+ {
+ return DefaultLocalFileProvider.capabilities;
}
}
1.20 +17 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url/UrlFileProvider.java
Index: UrlFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url/UrlFileProvider.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- UrlFileProvider.java 10 May 2004 20:09:53 -0000 1.19
+++ UrlFileProvider.java 19 May 2004 19:34:07 -0000 1.20
@@ -15,6 +15,7 @@
*/
package org.apache.commons.vfs.provider.url;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -25,6 +26,9 @@
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
/**
* A file provider backed by Java's URL API.
@@ -35,6 +39,13 @@
public class UrlFileProvider
extends AbstractFileProvider
{
+ protected final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.READ_CONTENT,
+ Capability.URI,
+ Capability.GET_LAST_MODIFIED
+ }));
+
public UrlFileProvider()
{
super();
@@ -67,5 +78,10 @@
{
throw new
FileSystemException("vfs.provider.url/badly-formed-uri.error", uri, e);
}
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.19 +2 -5
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url/UrlFileSystem.java
Index: UrlFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/url/UrlFileSystem.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- UrlFileSystem.java 10 May 2004 20:09:53 -0000 1.18
+++ UrlFileSystem.java 19 May 2004 19:34:07 -0000 1.19
@@ -15,7 +15,6 @@
*/
package org.apache.commons.vfs.provider.url;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -52,8 +51,6 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.URI);
- caps.add(Capability.GET_LAST_MODIFIED);
+ caps.addAll(UrlFileProvider.capabilities);
}
}
1.7 +25 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileProvider.java
Index: WebdavFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/webdav/WebdavFileProvider.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- WebdavFileProvider.java 10 May 2004 20:09:54 -0000 1.6
+++ WebdavFileProvider.java 19 May 2004 19:34:07 -0000 1.7
@@ -15,6 +15,7 @@
*/
package org.apache.commons.vfs.provider.webdav;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileSystem;
import org.apache.commons.vfs.FileSystemException;
@@ -22,6 +23,10 @@
import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider;
import org.apache.commons.vfs.provider.GenericFileName;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* A provider for WebDAV.
*
@@ -31,6 +36,20 @@
public class WebdavFileProvider
extends AbstractOriginatingFileProvider
{
+ protected final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.CREATE,
+ Capability.DELETE,
+ Capability.RENAME,
+ Capability.GET_TYPE,
+ Capability.LIST_CHILDREN,
+ Capability.READ_CONTENT,
+ Capability.URI,
+ Capability.WRITE_CONTENT,
+ Capability.GET_LAST_MODIFIED,
+ Capability.ATTRIBUTES
+ }));
+
public WebdavFileProvider()
{
super();
@@ -53,5 +72,10 @@
{
final GenericFileName rootName = (GenericFileName) name;
return new WebDavFileSystem(rootName, fileSystemOptions);
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.14 +2 -12
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/webdav/WebDavFileSystem.java
Index: WebDavFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/webdav/WebDavFileSystem.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- WebDavFileSystem.java 10 May 2004 20:09:54 -0000 1.13
+++ WebDavFileSystem.java 19 May 2004 19:34:07 -0000 1.14
@@ -17,7 +17,6 @@
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpURL;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -52,16 +51,7 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.CREATE);
- caps.add(Capability.DELETE);
- caps.add(Capability.RENAME);
- caps.add(Capability.GET_TYPE);
- caps.add(Capability.LIST_CHILDREN);
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.URI);
- caps.add(Capability.WRITE_CONTENT);
- caps.add(Capability.GET_LAST_MODIFIED);
- caps.add(Capability.ATTRIBUTES);
+ caps.addAll(WebdavFileProvider.capabilities);
}
/**
1.7 +20 -1
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/zip/ZipFileProvider.java
Index: ZipFileProvider.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/zip/ZipFileProvider.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ZipFileProvider.java 10 May 2004 20:09:54 -0000 1.6
+++ ZipFileProvider.java 19 May 2004 19:34:07 -0000 1.7
@@ -15,6 +15,7 @@
*/
package org.apache.commons.vfs.provider.zip;
+import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -23,6 +24,10 @@
import org.apache.commons.vfs.provider.AbstractLayeredFileProvider;
import org.apache.commons.vfs.provider.FileProvider;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* A file system provider for Zip files. Provides read-only file systems.
*
@@ -33,6 +38,15 @@
extends AbstractLayeredFileProvider
implements FileProvider
{
+ protected final static Collection capabilities =
Collections.unmodifiableCollection(Arrays.asList(new Capability[]
+ {
+ Capability.GET_LAST_MODIFIED,
+ Capability.GET_TYPE,
+ Capability.LIST_CHILDREN,
+ Capability.READ_CONTENT,
+ Capability.URI
+ }));
+
public ZipFileProvider()
{
super();
@@ -65,5 +79,10 @@
final FileName rootName =
new ZipFileName(scheme, file.getName().getURI(), FileName.ROOT_PATH);
return new ZipFileSystem(rootName, file, fileSystemOptions);
+ }
+
+ public Collection getCapabilities()
+ {
+ return capabilities;
}
}
1.30 +1 -6
jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/zip/ZipFileSystem.java
Index: ZipFileSystem.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/zip/ZipFileSystem.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- ZipFileSystem.java 17 May 2004 20:13:20 -0000 1.29
+++ ZipFileSystem.java 19 May 2004 19:34:07 -0000 1.30
@@ -17,7 +17,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.commons.vfs.Capability;
import org.apache.commons.vfs.FileName;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystem;
@@ -157,11 +156,7 @@
*/
protected void addCapabilities(final Collection caps)
{
- caps.add(Capability.GET_LAST_MODIFIED);
- caps.add(Capability.GET_TYPE);
- caps.add(Capability.LIST_CHILDREN);
- caps.add(Capability.READ_CONTENT);
- caps.add(Capability.URI);
+ caps.addAll(ZipFileProvider.capabilities);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]