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 =