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() {


Reply via email to