This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 9433dde CAMEL-15863: camel-salesforce: HttpRequestBufferSize (#4666)
9433dde is described below
commit 9433ddec5cc49a891b9fd753a222c0006b49b557
Author: Jeremy Ross <[email protected]>
AuthorDate: Tue Nov 24 08:09:50 2020 -0600
CAMEL-15863: camel-salesforce: HttpRequestBufferSize (#4666)
Added as an option, defaulted to 8192.
---
.../camel/catalog/docs/salesforce-component.adoc | 3 ++-
.../salesforce/SalesforceComponentConfigurer.java | 6 ++++++
.../camel/component/salesforce/salesforce.json | 1 +
.../src/main/docs/salesforce-component.adoc | 3 ++-
.../component/salesforce/SalesforceComponent.java | 25 ++++++++++++++++++++--
.../dsl/SalesforceComponentBuilderFactory.java | 15 +++++++++++++
.../modules/ROOT/pages/salesforce-component.adoc | 3 ++-
7 files changed, 51 insertions(+), 5 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/salesforce-component.adoc
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/salesforce-component.adoc
index 2ba9414..d230d0b 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/salesforce-component.adoc
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/salesforce-component.adoc
@@ -656,7 +656,7 @@ for details on how to generate the DTO.
// component options: START
-The Salesforce component supports 72 options, which are listed below.
+The Salesforce component supports 73 options, which are listed below.
@@ -676,6 +676,7 @@ The Salesforce component supports 72 options, which are
listed below.
| *httpClientConnectionTimeout* (common) | Connection timeout used by the
HttpClient when connecting to the Salesforce server. | 60000 | long
| *httpClientIdleTimeout* (common) | Timeout used by the HttpClient when
waiting for response from the Salesforce server. | 10000 | long
| *httpMaxContentLength* (common) | Max content length of an HTTP response. |
| Integer
+| *httpRequestBufferSize* (common) | HTTP request buffer size. May need to be
increased for large SOQL queries. | 8192 | Integer
| *includeDetails* (common) | Include details in Salesforce1 Analytics report,
defaults to false. | | Boolean
| *initialReplayIdMap* (common) | Replay IDs to start from per channel name. |
| Map
| *instanceId* (common) | Salesforce1 Analytics report execution instance ID |
| String
diff --git
a/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java
b/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java
index ef77553..c912d1d 100644
---
a/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java
+++
b/components/camel-salesforce/camel-salesforce-component/src/generated/java/org/apache/camel/component/salesforce/SalesforceComponentConfigurer.java
@@ -88,6 +88,8 @@ public class SalesforceComponentConfigurer extends
PropertyConfigurerSupport imp
case "httpProxyUseDigestAuth":
target.setHttpProxyUseDigestAuth(property(camelContext, boolean.class, value));
return true;
case "httpproxyusername":
case "httpProxyUsername":
target.setHttpProxyUsername(property(camelContext, java.lang.String.class,
value)); return true;
+ case "httprequestbuffersize":
+ case "httpRequestBufferSize":
target.setHttpRequestBufferSize(property(camelContext, java.lang.Integer.class,
value)); return true;
case "includedetails":
case "includeDetails":
getOrCreateConfig(target).setIncludeDetails(property(camelContext,
java.lang.Boolean.class, value)); return true;
case "initialreplayidmap":
@@ -233,6 +235,8 @@ public class SalesforceComponentConfigurer extends
PropertyConfigurerSupport imp
case "httpProxyUseDigestAuth": return boolean.class;
case "httpproxyusername":
case "httpProxyUsername": return java.lang.String.class;
+ case "httprequestbuffersize":
+ case "httpRequestBufferSize": return java.lang.Integer.class;
case "includedetails":
case "includeDetails": return java.lang.Boolean.class;
case "initialreplayidmap":
@@ -379,6 +383,8 @@ public class SalesforceComponentConfigurer extends
PropertyConfigurerSupport imp
case "httpProxyUseDigestAuth": return
target.isHttpProxyUseDigestAuth();
case "httpproxyusername":
case "httpProxyUsername": return target.getHttpProxyUsername();
+ case "httprequestbuffersize":
+ case "httpRequestBufferSize": return target.getHttpRequestBufferSize();
case "includedetails":
case "includeDetails": return
getOrCreateConfig(target).getIncludeDetails();
case "initialreplayidmap":
diff --git
a/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json
b/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json
index 6af27b1..a9e7ddd 100644
---
a/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json
+++
b/components/camel-salesforce/camel-salesforce-component/src/generated/resources/org/apache/camel/component/salesforce/salesforce.json
@@ -36,6 +36,7 @@
"httpClientConnectionTimeout": { "kind": "property", "displayName": "Http
Client Connection Timeout", "group": "common", "label": "common", "required":
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 60000, "description": "Connection
timeout used by the HttpClient when connecting to the Salesforce server." },
"httpClientIdleTimeout": { "kind": "property", "displayName": "Http Client
Idle Timeout", "group": "common", "label": "common", "required": false, "type":
"integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "description": "Timeout used by the
HttpClient when waiting for response from the Salesforce server." },
"httpMaxContentLength": { "kind": "property", "displayName": "Http Max
Content Length", "group": "common", "label": "common", "required": false,
"type": "integer", "javaType": "java.lang.Integer", "deprecated": false,
"autowired": false, "secret": false, "description": "Max content length of an
HTTP response." },
+ "httpRequestBufferSize": { "kind": "property", "displayName": "Http
Request Buffer Size", "group": "common", "label": "common", "required": false,
"type": "integer", "javaType": "java.lang.Integer", "deprecated": false,
"autowired": false, "secret": false, "defaultValue": "8192", "description":
"HTTP request buffer size. May need to be increased for large SOQL queries." },
"includeDetails": { "kind": "property", "displayName": "Include Details",
"group": "common", "label": "", "required": false, "type": "boolean",
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.salesforce.SalesforceEndpointConfig",
"configurationField": "config", "description": "Include details in Salesforce1
Analytics report, defaults to false." },
"initialReplayIdMap": { "kind": "property", "displayName": "Initial Replay
Id Map", "group": "common", "label": "", "required": false, "type": "object",
"javaType": "java.util.Map<java.lang.String, java.lang.Long>", "deprecated":
false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.salesforce.SalesforceEndpointConfig",
"configurationField": "config", "description": "Replay IDs to start from per
channel name." },
"instanceId": { "kind": "property", "displayName": "Instance Id", "group":
"common", "label": "", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"configurationClass":
"org.apache.camel.component.salesforce.SalesforceEndpointConfig",
"configurationField": "config", "description": "Salesforce1 Analytics report
execution instance ID" },
diff --git
a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
index 2ba9414..d230d0b 100644
---
a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
+++
b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
@@ -656,7 +656,7 @@ for details on how to generate the DTO.
// component options: START
-The Salesforce component supports 72 options, which are listed below.
+The Salesforce component supports 73 options, which are listed below.
@@ -676,6 +676,7 @@ The Salesforce component supports 72 options, which are
listed below.
| *httpClientConnectionTimeout* (common) | Connection timeout used by the
HttpClient when connecting to the Salesforce server. | 60000 | long
| *httpClientIdleTimeout* (common) | Timeout used by the HttpClient when
waiting for response from the Salesforce server. | 10000 | long
| *httpMaxContentLength* (common) | Max content length of an HTTP response. |
| Integer
+| *httpRequestBufferSize* (common) | HTTP request buffer size. May need to be
increased for large SOQL queries. | 8192 | Integer
| *includeDetails* (common) | Include details in Salesforce1 Analytics report,
defaults to false. | | Boolean
| *initialReplayIdMap* (common) | Replay IDs to start from per channel name. |
| Map
| *instanceId* (common) | Salesforce1 Analytics report execution instance ID |
| String
diff --git
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
index 4f5e04b..047b1fd 100644
---
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
+++
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
@@ -82,9 +82,12 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
public static final String HTTP_CONNECTION_TIMEOUT =
"httpConnectionTimeout";
public static final String HTTP_IDLE_TIMEOUT = "httpIdleTimeout";
public static final String HTTP_MAX_CONTENT_LENGTH =
"httpMaxContentLength";
+ public static final String HTTP_REQUEST_BUFFER_SIZE =
"httpRequestBufferSize";
static final int CONNECTION_TIMEOUT = 60000;
static final int IDLE_TIMEOUT = 10000;
+ static final int REQUEST_BUFFER_SIZE = 8192;
+
static final Pattern SOBJECT_NAME_PATTERN =
Pattern.compile("^.*[\\?&]sObjectName=([^&,]+).*$");
static final String APEX_CALL_PREFIX = OperationName.APEX_CALL.value() +
"/";
@@ -168,6 +171,11 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
@Metadata(description = "Max content length of an HTTP response.", label =
"common")
private Integer httpMaxContentLength;
+ @Metadata(description = "HTTP request buffer size. May need to be
increased for large SOQL" +
+ " queries.",
+ label = "common", defaultValue = "" + REQUEST_BUFFER_SIZE)
+ private Integer httpRequestBufferSize;
+
@Metadata(description = "Used to set any properties that can be configured
on the underlying HTTP client. Have a"
+ " look at properties of SalesforceHttpClient and
the Jetty HttpClient for all available options.",
label = "common,advanced")
@@ -251,7 +259,6 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
public SalesforceComponent(CamelContext context) {
super(context);
-
registerExtension(SalesforceComponentVerifierExtension::new);
registerExtension(SalesforceMetaDataExtension::new);
}
@@ -605,6 +612,14 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
this.httpMaxContentLength = httpMaxContentLength;
}
+ public Integer getHttpRequestBufferSize() {
+ return httpRequestBufferSize;
+ }
+
+ public void setHttpRequestBufferSize(Integer httpRequestBufferSize) {
+ this.httpRequestBufferSize = httpRequestBufferSize;
+ }
+
public String getHttpProxyHost() {
return httpProxyHost;
}
@@ -797,6 +812,11 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
final Long httpIdleTimeout = typeConverter.convertTo(Long.class,
httpClientProperties.get(HTTP_IDLE_TIMEOUT));
final Integer maxContentLength
= typeConverter.convertTo(Integer.class,
httpClientProperties.get(HTTP_MAX_CONTENT_LENGTH));
+ Integer requestBufferSize
+ = typeConverter.convertTo(Integer.class,
httpClientProperties.get(HTTP_REQUEST_BUFFER_SIZE));
+ if (requestBufferSize == null) {
+ requestBufferSize = REQUEST_BUFFER_SIZE;
+ }
final String httpProxyHost = typeConverter.convertTo(String.class,
httpClientProperties.get(HTTP_PROXY_HOST));
final Integer httpProxyPort = typeConverter.convertTo(Integer.class,
httpClientProperties.get(HTTP_PROXY_PORT));
@@ -825,6 +845,7 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
if (maxContentLength != null) {
httpClient.setMaxContentLength(maxContentLength);
}
+ httpClient.setRequestBufferSize(requestBufferSize);
// set HTTP proxy settings
if (httpProxyHost != null && httpProxyPort != null) {
@@ -857,7 +878,6 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
}
httpClient.getAuthenticationStore().addAuthentication(authentication);
}
-
return httpClient;
}
@@ -875,6 +895,7 @@ public class SalesforceComponent extends DefaultComponent
implements SSLContextP
putValueIfGivenTo(httpClientProperties, HTTP_PROXY_REALM,
salesforce::getHttpProxyRealm);
putValueIfGivenTo(httpClientProperties, HTTP_PROXY_AUTH_URI,
salesforce::getHttpProxyAuthUri);
putValueIfGivenTo(httpClientProperties, HTTP_MAX_CONTENT_LENGTH,
salesforce::getHttpMaxContentLength);
+ putValueIfGivenTo(httpClientProperties, HTTP_REQUEST_BUFFER_SIZE,
salesforce::getHttpRequestBufferSize);
if (ObjectHelper.isNotEmpty(salesforce.getHttpProxyHost())) {
// let's not put `false` values in client properties if no proxy is
diff --git
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
index 8aa9f33..7b2d469 100644
---
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
+++
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
@@ -215,6 +215,20 @@ public interface SalesforceComponentBuilderFactory {
return this;
}
/**
+ * HTTP request buffer size. May need to be increased for large SOQL
+ * queries.
+ *
+ * The option is a: <code>java.lang.Integer</code> type.
+ *
+ * Default: 8192
+ * Group: common
+ */
+ default SalesforceComponentBuilder httpRequestBufferSize(
+ java.lang.Integer httpRequestBufferSize) {
+ doSetProperty("httpRequestBufferSize", httpRequestBufferSize);
+ return this;
+ }
+ /**
* Include details in Salesforce1 Analytics report, defaults to false.
*
* The option is a: <code>java.lang.Boolean</code> type.
@@ -1047,6 +1061,7 @@ public interface SalesforceComponentBuilderFactory {
case "httpClientConnectionTimeout": ((SalesforceComponent)
component).setHttpClientConnectionTimeout((long) value); return true;
case "httpClientIdleTimeout": ((SalesforceComponent)
component).setHttpClientIdleTimeout((long) value); return true;
case "httpMaxContentLength": ((SalesforceComponent)
component).setHttpMaxContentLength((java.lang.Integer) value); return true;
+ case "httpRequestBufferSize": ((SalesforceComponent)
component).setHttpRequestBufferSize((java.lang.Integer) value); return true;
case "includeDetails":
getOrCreateConfiguration((SalesforceComponent)
component).setIncludeDetails((java.lang.Boolean) value); return true;
case "initialReplayIdMap":
getOrCreateConfiguration((SalesforceComponent)
component).setInitialReplayIdMap((java.util.Map) value); return true;
case "instanceId": getOrCreateConfiguration((SalesforceComponent)
component).setInstanceId((java.lang.String) value); return true;
diff --git a/docs/components/modules/ROOT/pages/salesforce-component.adoc
b/docs/components/modules/ROOT/pages/salesforce-component.adoc
index 1e57335..984fdb1 100644
--- a/docs/components/modules/ROOT/pages/salesforce-component.adoc
+++ b/docs/components/modules/ROOT/pages/salesforce-component.adoc
@@ -658,7 +658,7 @@ for details on how to generate the DTO.
// component options: START
-The Salesforce component supports 72 options, which are listed below.
+The Salesforce component supports 73 options, which are listed below.
@@ -678,6 +678,7 @@ The Salesforce component supports 72 options, which are
listed below.
| *httpClientConnectionTimeout* (common) | Connection timeout used by the
HttpClient when connecting to the Salesforce server. | 60000 | long
| *httpClientIdleTimeout* (common) | Timeout used by the HttpClient when
waiting for response from the Salesforce server. | 10000 | long
| *httpMaxContentLength* (common) | Max content length of an HTTP response. |
| Integer
+| *httpRequestBufferSize* (common) | HTTP request buffer size. May need to be
increased for large SOQL queries. | 8192 | Integer
| *includeDetails* (common) | Include details in Salesforce1 Analytics report,
defaults to false. | | Boolean
| *initialReplayIdMap* (common) | Replay IDs to start from per channel name. |
| Map
| *instanceId* (common) | Salesforce1 Analytics report execution instance ID |
| String