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 2016/04/04 15:47:26 UTC

[2/6] camel git commit: CAMEL-9808: Enable configuration of bulk requests

CAMEL-9808: Enable configuration of bulk requests

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f6586d03
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f6586d03
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f6586d03

Branch: refs/heads/master
Commit: f6586d0390598ee82567c5da4ca9b37ccc8bc381
Parents: 08e8d26
Author: Thomas Küstermann <th...@outlook.com>
Authored: Mon Apr 4 13:05:36 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Apr 4 15:16:35 2016 +0200

----------------------------------------------------------------------
 .../file/remote/SftpConfiguration.java          | 14 ++++++++++++++
 .../component/file/remote/SftpOperations.java   | 20 ++++++++++++++++++++
 2 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f6586d03/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java
index 737ee10..7e740ae 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConfiguration.java
@@ -65,6 +65,8 @@ public class SftpConfiguration extends RemoteFileConfiguration {
     private String preferredAuthentications;
     @UriParam(defaultValue = "WARN")
     private LoggingLevel jschLoggingLevel = LoggingLevel.WARN;
+    @UriParam(label="advanced", description="Specifies how many requests may be outstanding at any one time.")
+    private Integer bulkRequests;
 
     public SftpConfiguration() {
         setProtocol("sftp");
@@ -269,4 +271,16 @@ public class SftpConfiguration extends RemoteFileConfiguration {
     public void setJschLoggingLevel(LoggingLevel jschLoggingLevel) {
         this.jschLoggingLevel = jschLoggingLevel;
     }
+    
+    /**
+     * Specifies how many requests may be outstanding at any one time. Increasing this value may
+     * slightly improve file transfer speed but will increase memory usage.
+     */
+    public void setBulkRequests(Integer bulkRequests) {
+		this.bulkRequests = bulkRequests;
+	}
+    
+    public Integer getBulkRequests() {
+		return bulkRequests;
+	}
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/f6586d03/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
index bd25fb0..ea17aeb 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
@@ -161,8 +161,28 @@ public class SftpOperations implements RemoteFileOperations<ChannelSftp.LsEntry>
             }
         }
 
+        configureBulkRequests();
+        
         return true;
     }
+    
+    private void configureBulkRequests() {
+    	try {
+    		tryConfigureBulkRequests();
+    	} catch (JSchException e) {
+    		throw new GenericFileOperationFailedException("Failed to configure number of bulk requests", e);
+    	}
+    }
+    
+    private void tryConfigureBulkRequests() throws JSchException {
+    	Integer bulkRequests = endpoint.getConfiguration().getBulkRequests();
+    	
+    	if (bulkRequests != null) {
+    		LOG.trace("configuring channel to use up to {} bulk request(s)", bulkRequests);
+    		
+    		channel.setBulkRequests(bulkRequests);
+    	}
+    }
 
     protected Session createSession(final RemoteFileConfiguration configuration) throws JSchException {
         final JSch jsch = new JSch();