Author: imario
Date: Fri Nov 10 14:40:04 2006
New Revision: 473548
URL: http://svn.apache.org/viewvc?view=rev&rev=473548
Log:
Minor bugfix in sftp provider. Enhancement to allow to have "files with
children" and "folder with content" - FileType.FILE_OR_FOLDER
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileType.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/DefaultFileMonitor.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileName.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileData.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileSystem.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/tar/TarFileSystem.java
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/RunTest.java
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/provider/ram/test/CustomRamProviderTest.java
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileType.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileType.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileType.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileType.java
Fri Nov 10 14:40:04 2006
@@ -35,7 +35,13 @@
*/
public static final FileType FILE = new FileType("file", false, true,
true);
- /**
+ /**
+ * A file or folder. May have data content and attributes, and can
+ * contain other files.
+ */
+ public static final FileType FILE_OR_FOLDER = new
FileType("fileOrFolder", true, true, true);
+
+ /**
* A file that does not exist. May not have data content, attributes,
* or contain other files.
*/
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/DefaultFileMonitor.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/DefaultFileMonitor.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/DefaultFileMonitor.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/impl/DefaultFileMonitor.java
Fri Nov 10 14:40:04 2006
@@ -455,7 +455,7 @@
{
try
{
- if (this.file.getType() == FileType.FOLDER)
+ if (this.file.getType().hasChildren())
{
this.children = new HashMap();
FileObject[] childrenList = this.file.getChildren();
@@ -522,7 +522,7 @@
if (this.fm.isRecursive())
{
- if (child.getType() == FileType.FOLDER)
+ if (child.getType().hasChildren())
{
FileObject[] newChildren = child.getChildren();
for (int i = 0; i < newChildren.length; i++)
@@ -547,7 +547,7 @@
{
try
{
- if (this.file.getType() == FileType.FOLDER)
+ if (this.file.getType().hasChildren())
{
FileObject[] newChildren = this.file.getChildren();
if (this.children != null)
@@ -645,7 +645,7 @@
// Don't fire if it's a folder because new file
children
// and deleted files in a folder have their own event
triggered.
- if (this.file.getType() != FileType.FOLDER)
+ if (!this.file.getType().hasChildren())
{
((AbstractFileSystem)
this.file.getFileSystem()).fireFileChanged(this.file);
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileName.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileName.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileName.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileName.java
Fri Nov 10 14:40:04 2006
@@ -162,7 +162,7 @@
protected String getUriTrailer()
{
- return getType() == FileType.FOLDER ? "/" : "";
+ return getType().hasChildren() ? "/" : "";
}
public String getPathDecoded() throws FileSystemException
@@ -419,7 +419,7 @@
*/
void setType(FileType type) throws FileSystemException
{
- if (type != FileType.FOLDER && type != FileType.FILE)
+ if (type != FileType.FOLDER && type != FileType.FILE && type !=
FileType.FILE_OR_FOLDER)
{
throw new FileSystemException("vfs.provider/filename-type.error");
}
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
Fri Nov 10 14:40:04 2006
@@ -749,7 +749,7 @@
// file.attach();
// If the file is a folder, make sure all its children have been
deleted
- if (file.getType() == FileType.FOLDER && file.getChildren().length
!= 0)
+ if (file.getType().hasChildren() && file.getChildren().length != 0)
{
// Skip - as the selector forced us not to delete all files
continue;
@@ -805,7 +805,7 @@
{
synchronized (fs)
{
- if (getType() == FileType.FOLDER)
+ if (getType().hasChildren())
{
// Already exists as correct type
return;
@@ -961,8 +961,8 @@
destFile.copyFrom(this, Selectors.SELECT_SELF);
- if (((destFile.getType() == FileType.FILE &&
destFile.getFileSystem().hasCapability(Capability.SET_LAST_MODIFIED_FILE)) ||
- (destFile.getType() == FileType.FOLDER &&
destFile.getFileSystem().hasCapability(Capability.SET_LAST_MODIFIED_FOLDER))) &&
+ if (((destFile.getType().hasContent() &&
destFile.getFileSystem().hasCapability(Capability.SET_LAST_MODIFIED_FILE)) ||
+ (destFile.getType().hasChildren() &&
destFile.getFileSystem().hasCapability(Capability.SET_LAST_MODIFIED_FOLDER))) &&
getFileSystem().hasCapability(Capability.GET_LAST_MODIFIED))
{
destFile.getContent().setLastModifiedTime(this.getContent().getLastModifiedTime());
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
Fri Nov 10 14:40:04 2006
@@ -234,7 +234,11 @@
throws FileSystemException
{
getAttributes();
- return attrs.get(attrName.toLowerCase());
+ if (attrs.containsKey(attrName))
+ {
+ return attrs.get(attrName);
+ }
+ return attrs.get(attrName.toLowerCase());
}
/**
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileData.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileData.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileData.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileData.java
Fri Nov 10 14:40:04 2006
@@ -161,7 +161,7 @@
*/
void addChild(RamFileData data) throws FileSystemException
{
- if (!this.getType().equals(FileType.FOLDER))
+ if (!this.getType().hasChildren())
{
throw new FileSystemException(
"A child can only be added in a
folder");
@@ -189,7 +189,7 @@
*/
void removeChild(RamFileData data) throws FileSystemException
{
- if (!this.getType().equals(FileType.FOLDER))
+ if (!this.getType().hasChildren())
{
throw new FileSystemException(
"A child can only be removed from a
folder");
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileSystem.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileSystem.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileSystem.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileSystem.java
Fri Nov 10 14:40:04 2006
@@ -225,7 +225,7 @@
{
RamFileObject memFo = (RamFileObject)
this.resolveFile(fo.getName()
.getPath().substring(root.getName().getPath().length()));
- if (fo.getType().equals(FileType.FOLDER))
+ if (fo.getType().hasChildren())
{
// Create Folder
memFo.createFolder();
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java
Fri Nov 10 14:40:04 2006
@@ -30,6 +30,7 @@
import org.apache.commons.vfs.provider.UriParser;
import org.apache.commons.vfs.util.MonitorOutputStream;
import org.apache.commons.vfs.util.RandomAccessMode;
+import org.apache.commons.vfs.util.FileObjectUtils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -290,17 +291,19 @@
continue;
}
- SftpFileObject fo = (SftpFileObject) getFileSystem()
+ FileObject fo =
+ getFileSystem()
.resolveFile(
getFileSystem().getFileSystemManager().resolveName(
getName(), UriParser.encode(name),
NameScope.CHILD));
- fo.setStat(stat.getAttrs());
+
+ ((SftpFileObject)
FileObjectUtils.getAbstractFileObject(fo)).setStat(stat.getAttrs());
children.add(fo);
}
- return (SftpFileObject[]) children.toArray(new
SftpFileObject[children
+ return (FileObject[]) children.toArray(new FileObject[children
.size()]);
}
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/tar/TarFileSystem.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/tar/TarFileSystem.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
(empty)
Modified:
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/RunTest.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/RunTest.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/RunTest.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/RunTest.java
Fri Nov 10 14:40:04 2006
@@ -7,15 +7,12 @@
import org.apache.commons.vfs.provider.jar.test.JarProviderTestCase;
import org.apache.commons.vfs.provider.jar.test.NestedJarTestCase;
import org.apache.commons.vfs.provider.sftp.test.SftpProviderTestCase;
-import org.apache.commons.vfs.provider.smb.test.SmbProviderTestCase;
-import org.apache.commons.vfs.provider.smb.test.FileNameTestCase;
import org.apache.commons.vfs.provider.tar.test.NestedTarTestCase;
import org.apache.commons.vfs.provider.tar.test.NestedTbz2TestCase;
import org.apache.commons.vfs.provider.tar.test.NestedTgzTestCase;
import org.apache.commons.vfs.provider.tar.test.TarProviderTestCase;
import org.apache.commons.vfs.provider.tar.test.Tbz2ProviderTestCase;
import org.apache.commons.vfs.provider.tar.test.TgzProviderTestCase;
-import org.apache.commons.vfs.provider.webdav.test.WebdavProviderTestCase;
import org.apache.commons.vfs.provider.zip.test.NestedZipTestCase;
import org.apache.commons.vfs.provider.zip.test.ZipProviderTestCase;
import org.apache.commons.vfs.provider.ftp.test.FtpProviderTestCase;
@@ -39,14 +36,14 @@
props.setProperty("test.policy", "src/test-data/test.policy");
props.setProperty("test.secure", "false");
props.setProperty("test.smb.uri",
- "smb://HOME\\vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfsusr/vfstest");
+ "smb://HOME\\vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfsusr/vfstest");
props.setProperty("test.ftp.uri",
- "ftp://vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfstest");
- props.setProperty("test.http.uri", "http://10.0.1.54/vfstest");
+ "ftp://vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfstest");
+ props.setProperty("test.http.uri",
"http://172.26.2.126/vfstest");
props.setProperty("test.webdav.uri",
- "webdav://vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfstest");
+ "webdav://vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfstest");
props.setProperty("test.sftp.uri",
- "sftp://vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfstest");
+ "sftp://vfsusr:vfs%2f%25\\te:[EMAIL
PROTECTED]/vfstest");
Test tests[] = new Test[]
{
Modified:
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/provider/ram/test/CustomRamProviderTest.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/provider/ram/test/CustomRamProviderTest.java?view=diff&rev=473548&r1=473547&r2=473548
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/provider/ram/test/CustomRamProviderTest.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs/provider/ram/test/CustomRamProviderTest.java
Fri Nov 10 14:40:04 2006
@@ -115,7 +115,7 @@
*/
public void testRootFolderExists() throws FileSystemException {
FileObject root = manager.resolveFile("ram:///", defaultRamFs);
- assertTrue(root.getType().equals(FileType.FOLDER));
+ assertTrue(root.getType().hasChildren());
try {
root.delete();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]