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");
             }
         };