Author: davsclaus Date: Sun Oct 30 10:20:43 2011 New Revision: 1195143 URL: http://svn.apache.org/viewvc?rev=1195143&view=rev Log: CAMEL-4522: Added compression option to SFTP. Thanks to Eugene for patch.
Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java Modified: camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java?rev=1195143&r1=1195142&r2=1195143&view=diff ============================================================================== --- camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java (original) +++ camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java Sun Oct 30 10:20:43 2011 @@ -33,7 +33,8 @@ public class SftpConfiguration extends R private String chmod; // comma separated list of ciphers. // null means default jsch list will be used - private String ciphers; + private String ciphers; + private int compression; public SftpConfiguration() { setProtocol("sftp"); @@ -112,4 +113,11 @@ public class SftpConfiguration extends R return ciphers; } + public int getCompression() { + return compression; + } + + public void setCompression(int compression) { + this.compression = compression; + } } 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=1195143&r1=1195142&r2=1195143&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 Sun Oct 30 10:20:43 2011 @@ -146,17 +146,15 @@ public class SftpOperations implements R SftpConfiguration sftpConfig = (SftpConfiguration) configuration; if (isNotEmpty(sftpConfig.getCiphers())) { - LOG.debug("Using ciphers: " + sftpConfig.getCiphers()); + LOG.debug("Using ciphers: {}", sftpConfig.getCiphers()); Hashtable<String, String> ciphers = new Hashtable<String, String>(); - ciphers.put("cipher.s2c", sftpConfig.getCiphers()); ciphers.put("cipher.c2s", sftpConfig.getCiphers()); - JSch.setConfig(ciphers); } if (isNotEmpty(sftpConfig.getPrivateKeyFile())) { - LOG.debug("Using private keyfile: " + sftpConfig.getPrivateKeyFile()); + LOG.debug("Using private keyfile: {}", sftpConfig.getPrivateKeyFile()); if (isNotEmpty(sftpConfig.getPrivateKeyFilePassphrase())) { jsch.addIdentity(sftpConfig.getPrivateKeyFile(), sftpConfig.getPrivateKeyFilePassphrase()); } else { @@ -165,20 +163,28 @@ public class SftpOperations implements R } if (isNotEmpty(sftpConfig.getKnownHostsFile())) { - LOG.debug("Using knownhosts file: " + sftpConfig.getKnownHostsFile()); + LOG.debug("Using knownhosts file: {}", sftpConfig.getKnownHostsFile()); jsch.setKnownHosts(sftpConfig.getKnownHostsFile()); } final Session session = jsch.getSession(configuration.getUsername(), configuration.getHost(), configuration.getPort()); if (isNotEmpty(sftpConfig.getStrictHostKeyChecking())) { - LOG.debug("Using StrickHostKeyChecking: " + sftpConfig.getStrictHostKeyChecking()); + LOG.debug("Using StrickHostKeyChecking: {}", sftpConfig.getStrictHostKeyChecking()); session.setConfig("StrictHostKeyChecking", sftpConfig.getStrictHostKeyChecking()); } session.setServerAliveInterval(sftpConfig.getServerAliveInterval()); session.setServerAliveCountMax(sftpConfig.getServerAliveCountMax()); + // compression + if (sftpConfig.getCompression() > 0) { + LOG.debug("Using compression: {}", sftpConfig.getCompression()); + session.setConfig("compression.s2c","z...@openssh.com,zlib,none"); + session.setConfig("compression.c2s","z...@openssh.com,zlib,none"); + session.setConfig("compression_level", Integer.toString(sftpConfig.getCompression())); + } + // set user information session.setUserInfo(new ExtendedUserInfo() { public String getPassphrase() {