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:u...@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://ad...@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:sc...@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://ad...@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://sc...@localhost/public/reports?password=tiger&binary=true&consumer.delay=" + delay). + from("ftp://tiger:sc...@localhost/public/reports?binary=true&consumer.delay=" + delay). to("file://target/test-reports"); } };