You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2009/02/19 06:15:52 UTC

svn commit: r745730 - in /maven/wagon/trunk: wagon-provider-test/src/main/java/org/apache/maven/wagon/ wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/ wagon-providers/wagon-ftp/ wagon-providers/wagon-ftp/src/main/java/or...

Author: brett
Date: Thu Feb 19 05:15:51 2009
New Revision: 745730

URL: http://svn.apache.org/viewvc?rev=745730&view=rev
Log:
[WAGON-250] make getFileList consistent across wagons for "", hidden files, directories, and "."/".."
Submitted by: Dan Tran (fix for "" only)

Modified:
    maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
    maven/wagon/trunk/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java
    maven/wagon/trunk/wagon-providers/wagon-ftp/pom.xml
    maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
    maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
    maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
    maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java
    maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java

Modified: maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java (original)
+++ maven/wagon/trunk/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java Thu Feb 19 05:15:51 2009
@@ -24,6 +24,7 @@
 import java.security.NoSuchAlgorithmException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
@@ -725,7 +726,8 @@
         String dirName = "file-list";
 
         String filenames[] =
-            new String[] { "test-resource.txt", "test-resource.pom", "test-resource b.txt", "more-resources.dat" };
+            new String[] { "test-resource.txt", "test-resource.pom", "test-resource b.txt", "more-resources.dat",
+                ".index.txt" };
 
         for ( int i = 0; i < filenames.length; i++ )
         {
@@ -738,13 +740,24 @@
 
         List list = wagon.getFileList( dirName );
         assertNotNull( "file list should not be null.", list );
-        assertTrue( "file list should contain 4 or more items (actually contains " + list.size() + " elements).",
-                    list.size() >= 4 );
+        assertTrue( "file list should contain more items (actually contains '" + list + "').",
+                    list.size() >= filenames.length );
 
         for ( int i = 0; i < filenames.length; i++ )
         {
             assertTrue( "Filename '" + filenames[i] + "' should be in list.", list.contains( filenames[i] ) );
         }
+        
+        // WAGON-250
+        list = wagon.getFileList( "" );
+        assertNotNull( "file list should not be null.", list );
+        assertTrue( "file list should contain items (actually contains '" + list + "').", !list.isEmpty() );
+        assertTrue( list.contains( "file-list/" ) );
+        assertFalse( list.contains( "file-list" ) );
+        assertFalse( list.contains( "." ) );
+        assertFalse( list.contains( ".." ) );
+        assertFalse( list.contains( "./" ) );
+        assertFalse( list.contains( "../" ) );
 
         wagon.disconnect();
 

Modified: maven/wagon/trunk/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-file/src/main/java/org/apache/maven/wagon/providers/file/FileWagon.java Thu Feb 19 05:15:51 2009
@@ -27,6 +27,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -239,9 +240,19 @@
             throw new ResourceDoesNotExistException( "Path is not a directory: " + destinationDirectory );
         }
 
-        String files[] = path.list();
+        File[] files = path.listFiles();
 
-        return Arrays.asList( files );
+        List list = new ArrayList( files.length );
+        for ( int i = 0; i < files.length; i++ )
+        {
+            String name = files[i].getName();
+            if ( files[i].isDirectory() && !name.endsWith( "/" ) )
+            {
+                name += "/";
+            }
+            list.add( name );
+        }
+        return list;
     }
 
     public boolean resourceExists( String resourceName )

Modified: maven/wagon/trunk/wagon-providers/wagon-ftp/pom.xml
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ftp/pom.xml?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ftp/pom.xml (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ftp/pom.xml Thu Feb 19 05:15:51 2009
@@ -37,7 +37,7 @@
     <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
-      <version>1.4.1</version>
+      <version>2.0</version>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -52,4 +52,4 @@
       </exclusions>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>

Modified: maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java Thu Feb 19 05:15:51 2009
@@ -164,6 +164,7 @@
 
             // Set to binary mode.
             ftp.setFileType( FTP.BINARY_FILE_TYPE );
+            ftp.setListHiddenFiles( true );
 
             // Use passive mode as default because most of us are
             // behind firewalls these days.
@@ -439,7 +440,14 @@
             List ret = new ArrayList();
             for( int i=0; i < ftpFiles.length; i++ )
             {
-                ret.add( ftpFiles[i].getName() );
+                String name = ftpFiles[i].getName();
+                
+                if ( ftpFiles[i].isDirectory() && !name.endsWith( "/" ) )
+                {
+                    name += "/";
+                }
+                
+                ret.add( name );
             }
             
             return ret;

Modified: maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-lightweight/src/main/java/org/apache/maven/wagon/providers/http/LightweightHttpWagon.java Thu Feb 19 05:15:51 2009
@@ -319,7 +319,7 @@
     {
         InputData inputData = new InputData();
 
-        if ( !destinationDirectory.endsWith( "/" ) )
+        if ( destinationDirectory.length() > 0 && !destinationDirectory.endsWith( "/" ) )
         {
             destinationDirectory += "/";
         }

Modified: maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http/src/main/java/org/apache/maven/wagon/providers/http/HttpWagon.java Thu Feb 19 05:15:51 2009
@@ -41,7 +41,7 @@
     public List getFileList( String destinationDirectory )
         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException 
     {
-        if ( !destinationDirectory.endsWith( "/" ) )
+        if ( destinationDirectory.length() > 0 && !destinationDirectory.endsWith( "/" ) )
         {
             destinationDirectory += "/";
         }

Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/ScpHelper.java Thu Feb 19 05:15:51 2009
@@ -279,7 +279,7 @@
         try
         {
             String path = getPath( repository.getBasedir(), destinationDirectory );
-            Streams streams = executor.executeCommand( "ls -la " + path, false );
+            Streams streams = executor.executeCommand( "ls -FlA " + path, false );
             
             return new LSParser().parseFiles( streams.getOut() );
         }

Modified: maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java?rev=745730&r1=745729&r2=745730&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh/src/main/java/org/apache/maven/wagon/providers/ssh/jsch/SftpWagon.java Thu Feb 19 05:15:51 2009
@@ -231,6 +231,11 @@
                 channel.cd( dir );
             }
 
+            if ( filename.length() == 0 )
+            {
+                filename = ".";
+            }
+            
             attrs = channel.stat( filename );
         }
         catch ( SftpException e )
@@ -239,6 +244,10 @@
             {
                 throw new ResourceDoesNotExistException( e.toString(), e );
             }
+            else if( e.toString().trim().indexOf( "Can't change directory" ) != -1  )
+            {
+                throw new ResourceDoesNotExistException( e.toString(), e );
+            }   
             else
             {
                 throw e;
@@ -340,6 +349,11 @@
     public List getFileList( String destinationDirectory )
         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
     {
+        if ( destinationDirectory.length() == 0 )
+        {
+            destinationDirectory = ".";
+        }
+        
         String filename = ScpHelper.getResourceFilename( destinationDirectory );
 
         String dir = ScpHelper.getResourceDirectory( destinationDirectory );
@@ -364,7 +378,22 @@
             {
                 ChannelSftp.LsEntry entry = (ChannelSftp.LsEntry) i.next();
                 
-                files.add( entry.getFilename() );
+                String name = entry.getFilename();
+                if ( entry.getAttrs().isDir() )
+                {
+                    if ( !name.equals( "." ) && !name.equals( ".." ) )
+                    {
+                        if ( !name.endsWith( "/" ) )
+                        {
+                            name += "/";
+                        }
+                        files.add( name );
+                    }
+                }
+                else
+                {
+                    files.add( name );
+                }
             }
             return files;
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-commits-help@maven.apache.org