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 2009/02/03 07:12:02 UTC

svn commit: r740223 - in /camel/trunk/components/camel-ftp: ./ src/main/java/org/apache/camel/component/file/remote/ src/test/java/org/apache/camel/component/file/remote/

Author: davsclaus
Date: Tue Feb  3 06:12:01 2009
New Revision: 740223

URL: http://svn.apache.org/viewvc?rev=740223&view=rev
Log:
CAMEL-1307: Upgraded to FTPServer 1.0.0-RC2. Fixed ftp operations and building directories bug.

Modified:
    camel/trunk/components/camel-ftp/pom.xml
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
    camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
    camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpServerTestSupport.java

Modified: camel/trunk/components/camel-ftp/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/pom.xml?rev=740223&r1=740222&r2=740223&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/pom.xml (original)
+++ camel/trunk/components/camel-ftp/pom.xml Tue Feb  3 06:12:01 2009
@@ -91,22 +91,22 @@
     <dependency>
       <groupId>org.apache.ftpserver</groupId>
       <artifactId>ftpserver-core</artifactId>
-      <version>1.0.0-M3</version>
+      <version>1.0.0-RC2</version>
       <scope>test</scope>
     </dependency>
 
     <dependency>
       <groupId>org.apache.ftpserver</groupId>
       <artifactId>ftplet-api</artifactId>
-      <version>1.0.0-M3</version>
+      <version>1.0.0-RC2</version>
       <scope>test</scope>
     </dependency>
 
-    <!-- ftpserver using mina 2.0.0-M2 -->
+    <!-- ftpserver using mina 2.0.0-M4 -->
     <dependency>
       <groupId>org.apache.mina</groupId>
       <artifactId>mina-core</artifactId>
-      <version>2.0.0-M2</version>
+      <version>2.0.0-M4</version>
       <scope>test</scope>
     </dependency>
 

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java?rev=740223&r1=740222&r2=740223&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java Tue Feb  3 06:12:01 2009
@@ -150,12 +150,14 @@
                     success = client.makeDirectory(directory);
                     if (!success) {
                         // we are here if the server side doesn't create intermediate folders so create the folder one by one
-                        buildDirectoryChunks(directory);
+                        success = buildDirectoryChunks(directory);
                     }
                 }
             } finally {
                 // change back to original directory
-                client.changeWorkingDirectory(originalDirectory);
+                if (originalDirectory != null) {
+                    client.changeWorkingDirectory(originalDirectory);
+                }
             }
 
             return success;
@@ -227,11 +229,15 @@
         for (String dir : dirs) {
             sb.append(dir).append('/');
             String directory = sb.toString();
-            if (LOG.isTraceEnabled()) {
-                LOG.trace("Trying to build remote directory: " + directory);
-            }
 
-            success = client.makeDirectory(directory);
+            // do not try to build root / folder
+            if (!directory.equals("/")) {
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("Trying to build remote directory by chunk: " + directory);
+                }
+
+                success = client.makeDirectory(directory);
+            }
         }
 
         return success;

Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java?rev=740223&r1=740222&r2=740223&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java (original)
+++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java Tue Feb  3 06:12:01 2009
@@ -216,14 +216,17 @@
             sb.append(dir).append('/');
             String directory = sb.toString();
             if (LOG.isTraceEnabled()) {
-                LOG.trace("Trying to build remote directory: " + directory);
+                LOG.trace("Trying to build remote directory by chunk: " + directory);
             }
 
-            try {
-                channel.mkdir(directory);
-                success = true;
-            } catch (SftpException e) {
-                // ignore keep trying to create the rest of the path
+            // do not try to build root / folder
+            if (!directory.equals("/")) {
+                try {
+                    channel.mkdir(directory);
+                    success = true;
+                } catch (SftpException e) {
+                    // ignore keep trying to create the rest of the path
+                }
             }
         }
 

Modified: camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpServerTestSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpServerTestSupport.java?rev=740223&r1=740222&r2=740223&view=diff
==============================================================================
--- camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpServerTestSupport.java (original)
+++ camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpServerTestSupport.java Tue Feb  3 06:12:01 2009
@@ -23,8 +23,12 @@
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.converter.IOConverter;
 import org.apache.ftpserver.FtpServer;
+import org.apache.ftpserver.FtpServerFactory;
+import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
+import org.apache.ftpserver.ftplet.UserManager;
+import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
-import org.apache.ftpserver.usermanager.PropertiesUserManager;
+import org.apache.ftpserver.usermanager.impl.PropertiesUserManager;
 
 /**
  * Base class for unit testing using a FTPServer
@@ -56,20 +60,26 @@
     }
 
     protected void initFtpServer() throws Exception {
-        ftpServer = new FtpServer();
-
-        // setup user management to read our users.properties and use clear text passwords
-        PropertiesUserManager uman = new PropertiesUserManager();
-        uman.setFile(new File("./src/test/resources/users.properties").getAbsoluteFile());
-        uman.setPasswordEncryptor(new ClearTextPasswordEncryptor());
-        uman.setAdminName("admin");
-        uman.configure();
-        ftpServer.setUserManager(uman);
-
         if (port < 21000) {
             throw new IllegalArgumentException("Port number is not initialized in an expected range: " + getPort());
         }
-        ftpServer.getListener("default").setPort(port);
+
+        FtpServerFactory serverFactory = new FtpServerFactory();
+
+        // setup user management to read our users.properties and use clear text passwords
+        File file = new File("./src/test/resources/users.properties").getAbsoluteFile();
+        UserManager uman = new PropertiesUserManager(new ClearTextPasswordEncryptor(), file, "admin");
+        serverFactory.setUserManager(uman);
+
+        NativeFileSystemFactory fsf = new NativeFileSystemFactory();
+        fsf.setCreateHome(true);
+        serverFactory.setFileSystem(fsf);
+
+        ListenerFactory factory = new ListenerFactory();
+        factory.setPort(port);
+        serverFactory.addListener("default", factory.createListener());
+
+        ftpServer = serverFactory.createServer();
     }
 
     protected void initPort() throws Exception {