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 {