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]

Reply via email to