You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/09/28 14:01:09 UTC
svn commit: r1002131 - in /camel/trunk/components/camel-ftp/src:
main/java/org/apache/camel/component/file/remote/
test/java/org/apache/camel/component/file/remote/
Author: davsclaus
Date: Tue Sep 28 12:01:08 2010
New Revision: 1002131
URL: http://svn.apache.org/viewvc?rev=1002131&view=rev
Log:
CAMEL-3170: Fixed problem setting password from userinfo in uri with the ftp endpoint.
Added:
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileScottTigerTest.java
- copied, changed from r1002119, camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java
Modified:
camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinarySampleTest.java
Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java?rev=1002131&r1=1002130&r2=1002131&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java Tue Sep 28 12:01:08 2010
@@ -19,6 +19,7 @@ package org.apache.camel.component.file.
import java.net.URI;
import org.apache.camel.component.file.GenericFileConfiguration;
+import org.apache.camel.util.ObjectHelper;
/**
* Configuration of the FTP server
@@ -54,7 +55,22 @@ public abstract class RemoteFileConfigur
super.configure(uri);
setProtocol(uri.getScheme());
setDefaultPort();
- setUsername(uri.getUserInfo());
+
+ // UserInfo can contain both username and password as: pwd:user@ftpserver
+ // see: http://en.wikipedia.org/wiki/URI_scheme
+ String username = uri.getUserInfo();
+ String pw = null;
+ if (username != null && username.contains(":")) {
+ pw = ObjectHelper.before(username, ":");
+ username = ObjectHelper.after(username, ":");
+ }
+ if (username != null) {
+ setUsername(username);
+ }
+ if (pw != null) {
+ setPassword(pw);
+ }
+
setHost(uri.getHost());
setPort(uri.getPort());
}
Copied: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileScottTigerTest.java (from r1002119, camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileScottTigerTest.java?p2=camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileScottTigerTest.java&p1=camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java&r1=1002119&r2=1002131&rev=1002131&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileScottTigerTest.java Tue Sep 28 12:01:08 2010
@@ -16,71 +16,14 @@
*/
package org.apache.camel.component.file.remote;
-import java.io.File;
-
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.Producer;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Before;
-import org.junit.Test;
-
/**
* Unit test to test delete option.
*/
-public class FromFtpDeleteFileTest extends FtpServerTestSupport {
-
- private String getFtpUrl() {
- return "ftp://admin@localhost:" + getPort() + "/deletefile?password=admin&binary=false&delete=true";
- }
+public class FromFtpDeleteFileScottTigerTest extends FromFtpDeleteFileTest {
@Override
- @Before
- public void setUp() throws Exception {
- super.setUp();
- prepareFtpServer();
- }
-
- @Test
- public void testPollFileAndShouldBeDeleted() throws Exception {
- MockEndpoint mock = getMockEndpoint("mock:result");
- mock.expectedMessageCount(1);
- mock.expectedBodiesReceived("Hello World this file will be deleted");
-
- mock.assertIsSatisfied();
-
- Thread.sleep(500);
-
- // assert the file is deleted
- File file = new File(FTP_ROOT_DIR + "deletefile/hello.txt");
- file = file.getAbsoluteFile();
- assertFalse("The file should have been deleted", file.exists());
- }
-
- private void prepareFtpServer() throws Exception {
- // prepares the FTP Server by creating a file on the server that we want to unit
- // test that we can pool and store as a local file
- Endpoint endpoint = context.getEndpoint(getFtpUrl());
- Exchange exchange = endpoint.createExchange();
- exchange.getIn().setBody("Hello World this file will be deleted");
- exchange.getIn().setHeader(Exchange.FILE_NAME, "hello.txt");
- Producer producer = endpoint.createProducer();
- producer.start();
- producer.process(exchange);
- producer.stop();
-
- // assert file is created
- File file = new File(FTP_ROOT_DIR + "deletefile/hello.txt");
- file = file.getAbsoluteFile();
- assertTrue("The file should exists", file.exists());
+ protected String getFtpUrl() {
+ return "ftp://tiger:scott@localhost:" + getPort() + "/deletefile?binary=false&delete=true";
}
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- public void configure() throws Exception {
- from(getFtpUrl()).to("mock:result");
- }
- };
- }
}
\ No newline at end of file
Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java?rev=1002131&r1=1002130&r2=1002131&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java Tue Sep 28 12:01:08 2010
@@ -31,7 +31,7 @@ import org.junit.Test;
*/
public class FromFtpDeleteFileTest extends FtpServerTestSupport {
- private String getFtpUrl() {
+ protected String getFtpUrl() {
return "ftp://admin@localhost:" + getPort() + "/deletefile?password=admin&binary=false&delete=true";
}
Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinarySampleTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinarySampleTest.java?rev=1002131&r1=1002130&r2=1002131&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinarySampleTest.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpToBinarySampleTest.java Tue Sep 28 12:01:08 2010
@@ -44,7 +44,7 @@ public class FromFtpToBinarySampleTest e
// notice that the FTPConsumer properties must be prefixed with "consumer." in the URL
// the delay parameter is from the FileConsumer component so we should use consumer.delay as
// the URI parameter name. The FTP Component is an extension of the File Component.
- from("ftp://scott@localhost/public/reports?password=tiger&binary=true&consumer.delay=" + delay).
+ from("ftp://tiger:scott@localhost/public/reports?binary=true&consumer.delay=" + delay).
to("file://target/test-reports");
}
};