Author: davsclaus
Date: Tue Jan 13 02:37:54 2009
New Revision: 734095

URL: http://svn.apache.org/viewvc?rev=734095&view=rev
Log:
CAMEL-1247: Fixed ftp polling if no starting directory was given

Added:
    
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
   (contents, props changed)
      - copied, changed from r734072, 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
Modified:
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpRemoteFileOperations.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpRemoteFileOperations.java

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java?rev=734095&r1=734094&r2=734095&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
 Tue Jan 13 02:37:54 2009
@@ -19,6 +19,7 @@
 import java.util.List;
 
 import org.apache.camel.Processor;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.net.ftp.FTPFile;
 
 /**
@@ -35,6 +36,7 @@
             return;
         }
 
+        // fix filename
         if (fileName.endsWith("/")) {
             fileName = fileName.substring(0, fileName.length() - 1);
         }
@@ -89,7 +91,7 @@
             remote.setLastModified(file.getTimestamp().getTimeInMillis());
         }
         remote.setHostname(endpoint.getConfiguration().getHost());
-        String absoluteFileName = directory + "/" + file.getName();
+        String absoluteFileName = (ObjectHelper.isNotEmpty(directory) ? 
directory + "/" : "") + file.getName();
         remote.setAbsolutelFileName(absoluteFileName);
 
         // the relative filename

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpRemoteFileOperations.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpRemoteFileOperations.java?rev=734095&r1=734094&r2=734095&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpRemoteFileOperations.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpRemoteFileOperations.java
 Tue Jan 13 02:37:54 2009
@@ -22,6 +22,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.net.ftp.FTPClient;
@@ -189,6 +190,11 @@
     }
 
     public List listFiles(String path) throws 
RemoteFileOperationFailedException {
+        // use current directory if path not given
+        if (ObjectHelper.isEmpty(path)) {
+            path = ".";
+        }
+
         try {
             final List list = new ArrayList();
             FTPFile[] files = client.listFiles(path);

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java?rev=734095&r1=734094&r2=734095&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
 Tue Jan 13 02:37:54 2009
@@ -20,6 +20,7 @@
 
 import com.jcraft.jsch.ChannelSftp;
 import org.apache.camel.Processor;
+import org.apache.camel.util.ObjectHelper;
 
 /**
  * SFTP consumer
@@ -35,9 +36,13 @@
             return;
         }
 
+        // fix filename
         if (fileName.endsWith("/")) {
             fileName = fileName.substring(0, fileName.length() - 1);
         }
+        if (ObjectHelper.isEmpty(fileName)) {
+            fileName = ".";
+        }
 
         if (log.isTraceEnabled()) {
             log.trace("Polling directory: " + fileName);
@@ -92,7 +97,7 @@
         remote.setFileLength(file.getAttrs().getSize());
         remote.setLastModified(file.getAttrs().getMTime() * 1000L);
         remote.setHostname(endpoint.getConfiguration().getHost());
-        String absoluteFileName = directory + "/" + file.getFilename();
+        String absoluteFileName = (ObjectHelper.isNotEmpty(directory) ? 
directory + "/" : "") + file.getFilename();
         remote.setAbsolutelFileName(absoluteFileName);
 
         // the relative filename

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpRemoteFileOperations.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpRemoteFileOperations.java?rev=734095&r1=734094&r2=734095&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpRemoteFileOperations.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpRemoteFileOperations.java
 Tue Jan 13 02:37:54 2009
@@ -29,6 +29,7 @@
 import com.jcraft.jsch.Session;
 import com.jcraft.jsch.SftpException;
 import com.jcraft.jsch.UserInfo;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import static org.apache.camel.util.ObjectHelper.isNotEmpty;
@@ -253,6 +254,11 @@
     }
 
     public List listFiles(String path) throws 
RemoteFileOperationFailedException {
+        if (ObjectHelper.isEmpty(path)) {
+            // list current dirctory if file path is not given
+            path = ".";
+        }
+        
         try {
             final List list = new ArrayList();
             Vector files = channel.ls(path);

Copied: 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
 (from r734072, 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java)
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java?p2=activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java&p1=activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java&r1=734072&r2=734095&rev=734095&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerMultipleDirectoriesTest.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
 Tue Jan 13 02:37:54 2009
@@ -21,12 +21,14 @@
 import org.apache.camel.component.mock.MockEndpoint;
 
 /**
+ * Unit test CAMEL-1247
+ *
  * @version $Revision$
  */
-public class FtpConsumerMultipleDirectoriesTest extends FtpServerTestSupport {
+public class FtpConsumerWithNoFileOptionTest extends FtpServerTestSupport {
 
-    private int port = 20044;
-    private String ftpUrl = "ftp://ad...@localhost:"; + port + 
"/multidir/?password=admin&recursive=true&consumer.delay=5000&sortBy=file:path";
+    private int port = 20045;
+    private String ftpUrl = "ftp://ad...@localhost:"; + port + 
"?password=admin&consumer.delay=5000";
 
     public int getPort() {
         return port;
@@ -35,39 +37,26 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        deleteDirectory("./res/home/multidir");
+        deleteDirectory("./res/home/");
+        createDirectory("./res/home/");
         prepareFtpServer();
     }
 
     private void prepareFtpServer() throws Exception {
-        template.sendBodyAndHeader(ftpUrl, "Bye World", 
FileComponent.HEADER_FILE_NAME, "bye.txt");
-        template.sendBodyAndHeader(ftpUrl, "Hello World", 
FileComponent.HEADER_FILE_NAME, "sub/hello.txt");
-        template.sendBodyAndHeader(ftpUrl, "Godday World", 
FileComponent.HEADER_FILE_NAME, "sub/sub2/godday.txt");
+        template.sendBodyAndHeader(ftpUrl, "Hello World", 
FileComponent.HEADER_FILE_NAME, "hello.txt");
     }
 
-    public void testMultiDir() throws Exception {
+    public void testWithNoFileInOption() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
-        mock.expectedBodiesReceived("Bye World", "Hello World", "Godday 
World");
+        mock.expectedBodiesReceived("Hello World");
 
         assertMockEndpointsSatisfied();
 
         RemoteFileExchange exchange = (RemoteFileExchange) 
mock.getExchanges().get(0);
         RemoteFile file = exchange.getRemoteFile();
-        assertEquals("multidir/bye.txt", file.getAbsolutelFileName());
-        assertEquals("bye.txt", file.getRelativeFileName());
-        assertEquals("bye.txt", file.getFileName());
-
-        exchange = (RemoteFileExchange) mock.getExchanges().get(1);
-        file = exchange.getRemoteFile();
-        assertEquals("multidir/sub/hello.txt", file.getAbsolutelFileName());
-        assertEquals("sub/hello.txt", file.getRelativeFileName());
+        assertEquals("hello.txt", file.getAbsolutelFileName());
+        assertEquals("hello.txt", file.getRelativeFileName());
         assertEquals("hello.txt", file.getFileName());
-
-        exchange = (RemoteFileExchange) mock.getExchanges().get(2);
-        file = exchange.getRemoteFile();
-        assertEquals("multidir/sub/sub2/godday.txt", 
file.getAbsolutelFileName());
-        assertEquals("sub/sub2/godday.txt", file.getRelativeFileName());
-        assertEquals("godday.txt", file.getFileName());
     }
 
     protected RouteBuilder createRouteBuilder() throws Exception {

Propchange: 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
activemq/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerWithNoFileOptionTest.java
------------------------------------------------------------------------------
    svn:mergeinfo = 


Reply via email to