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","[email protected],zlib,none");
+ session.setConfig("compression.c2s","[email protected],zlib,none");
+ session.setConfig("compression_level",
Integer.toString(sftpConfig.getCompression()));
+ }
+
// set user information
session.setUserInfo(new ExtendedUserInfo() {
public String getPassphrase() {