This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-4.10.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-4.10.x by this push:
     new 358a070dff1 CAMEL-21853: camel-salesforce: Increase timeout to 30 sec 
for checking custom replyId setting. Add option to configure timeout value on 
component level. (#17403)
358a070dff1 is described below

commit 358a070dff1f848ca5c71b5cf768d7e8ada8c704
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Mar 10 15:34:09 2025 +0000

    CAMEL-21853: camel-salesforce: Increase timeout to 30 sec for checking 
custom replyId setting. Add option to configure timeout value on component 
level. (#17403)
---
 .../camel/catalog/components/salesforce.json       | 81 +++++++++++-----------
 .../salesforce/SalesforceComponentConfigurer.java  |  6 ++
 .../camel/component/salesforce/salesforce.json     | 81 +++++++++++-----------
 .../component/salesforce/PubSubApiConsumer.java    |  4 +-
 .../component/salesforce/SalesforceComponent.java  | 12 ++++
 .../internal/client/PubSubApiClient.java           | 24 ++++---
 .../camel/component/salesforce/PubSubApiTest.java  | 16 ++---
 .../dsl/SalesforceComponentBuilderFactory.java     | 19 +++++
 8 files changed, 143 insertions(+), 100 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/salesforce.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/salesforce.json
index 49bbbbdd6f5..05b8d8fc05f 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/salesforce.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/salesforce.json
@@ -87,46 +87,47 @@
     "pubSubDeserializeType": { "index": 59, "kind": "property", "displayName": 
"Pub Sub Deserialize Type", "group": "consumer", "label": "consumer", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.PubSubDeserializeType", "enum": [ 
"AVRO", "SPECIFIC_RECORD", "GENERIC_RECORD", "POJO", "JSON" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": "AVRO", 
"configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpo 
[...]
     "pubSubPojoClass": { "index": 60, "kind": "property", "displayName": "Pub 
Sub Pojo Class", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Fully qualified class name to 
deserialize Pub\/Sub API event to." },
     "replayPreset": { "index": 61, "kind": "property", "displayName": "Replay 
Preset", "group": "consumer", "label": "consumer", "required": false, "type": 
"object", "javaType": "com.salesforce.eventbus.protobuf.ReplayPreset", "enum": 
[ "LATEST", "EARLIEST", "CUSTOM" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "R [...]
-    "allOrNone": { "index": 62, "kind": "property", "displayName": "All Or 
None", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite API option to 
indicate to rollback all records if any are not successful." },
-    "apexUrl": { "index": 63, "kind": "property", "displayName": "Apex Url", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "APEX method URL" },
-    "compositeMethod": { "index": 64, "kind": "property", "displayName": 
"Composite Method", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite (raw) method." },
-    "eventName": { "index": 65, "kind": "property", "displayName": "Event 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Name of Platform Event, Change 
Data Capture Event, custom event, etc." },
-    "eventSchemaFormat": { "index": 66, "kind": "property", "displayName": 
"Event Schema Format", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.internal.dto.EventSchemaFormatEnum", 
"enum": [ "EXPANDED", "COMPACT" ], "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": [...]
-    "eventSchemaId": { "index": 67, "kind": "property", "displayName": "Event 
Schema Id", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The ID of the event schema." },
-    "lazyStartProducer": { "index": 68, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fai [...]
-    "rawHttpHeaders": { "index": 69, "kind": "property", "displayName": "Raw 
Http Headers", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as HTTP parameters for Raw operation." },
-    "rawMethod": { "index": 70, "kind": "property", "displayName": "Raw 
Method", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "HTTP method to use for the Raw 
operation" },
-    "rawPath": { "index": 71, "kind": "property", "displayName": "Raw Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The portion of the endpoint URL 
after the domain name. E.g., '\/services\/data\/v52.0\/sobjects\/Account\/'" },
-    "rawQueryParameters": { "index": 72, "kind": "property", "displayName": 
"Raw Query Parameters", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as query parameters for Raw operatio [...]
-    "autowiredEnabled": { "index": 73, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
-    "httpProxyExcludedAddresses": { "index": 74, "kind": "property", 
"displayName": "Http Proxy Excluded Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should not be used." },
-    "httpProxyHost": { "index": 75, "kind": "property", "displayName": "Http 
Proxy Host", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Hostname of the HTTP proxy 
server to use." },
-    "httpProxyIncludedAddresses": { "index": 76, "kind": "property", 
"displayName": "Http Proxy Included Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should be used." },
-    "httpProxyPort": { "index": 77, "kind": "property", "displayName": "Http 
Proxy Port", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "description": "Port number of the HTTP 
proxy server to use." },
-    "httpProxySocks4": { "index": 78, "kind": "property", "displayName": "Http 
Proxy Socks4", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
the configures the HTTP proxy to use as a SOCKS4 proxy." },
-    "pubsubAllowUseSystemProxy": { "index": 79, "kind": "property", 
"displayName": "Pubsub Allow Use System Proxy", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Allow the Pub\/Sub API client to use the proxy detected by 
java.net.ProxySelector. If false then no proxy server will be used." },
-    "authenticationType": { "index": 80, "kind": "property", "displayName": 
"Authentication Type", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.AuthenticationType", "enum": [ 
"USERNAME_PASSWORD", "REFRESH_TOKEN", "CLIENT_CREDENTIALS", "JWT" ], 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Explicit authentication method to be used, one of USERNAME_PASSWORD, 
REFRESH_TOKEN [...]
-    "clientId": { "index": 81, "kind": "property", "displayName": "Client Id", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "OAuth Consumer Key of the connected app 
configured in the Salesforce instance setup. Typically a connected app needs to 
be configured but one can be provided by installing a package." },
-    "clientSecret": { "index": 82, "kind": "property", "displayName": "Client 
Secret", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "OAuth Consumer Secret of 
the connected app configured in the Salesforce instance setup." },
-    "httpProxyAuthUri": { "index": 83, "kind": "property", "displayName": 
"Http Proxy Auth Uri", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Used 
in authentication against the HTTP proxy server, needs to match the URI of the 
proxy server in order for the httpProxyUsername and httpProxyPassword to be 
used for authentication." },
-    "httpProxyPassword": { "index": 84, "kind": "property", "displayName": 
"Http Proxy Password", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "description": 
"Password to use to authenticate against the HTTP proxy server." },
-    "httpProxyRealm": { "index": 85, "kind": "property", "displayName": "Http 
Proxy Realm", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Realm 
of the proxy server, used in preemptive Basic\/Digest authentication methods 
against the HTTP proxy server." },
-    "httpProxySecure": { "index": 86, "kind": "property", "displayName": "Http 
Proxy Secure", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "If set to false disables the use of TLS when accessing the HTTP 
proxy." },
-    "httpProxyUseDigestAuth": { "index": 87, "kind": "property", 
"displayName": "Http Proxy Use Digest Auth", "group": "security", "label": 
"common,proxy,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "If set to true Digest authentication 
will be used when authenticating to the HTTP proxy, otherwise Basic 
authorization method will be used" },
-    "httpProxyUsername": { "index": 88, "kind": "property", "displayName": 
"Http Proxy Username", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Username to use to authenticate against the HTTP proxy server." },
-    "instanceUrl": { "index": 89, "kind": "property", "displayName": "Instance 
Url", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "URL of the Salesforce 
instance used after authentication, by default received from Salesforce on 
successful authentication" },
-    "jwtAudience": { "index": 90, "kind": "property", "displayName": "Jwt 
Audience", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Value to use for the 
Audience claim (aud) when using OAuth JWT flow. If not set, the login URL will 
be used, which is appropriate in most cases." },
-    "keystore": { "index": 91, "kind": "property", "displayName": "Keystore", 
"group": "security", "label": "common,security", "required": false, "type": 
"object", "javaType": "org.apache.camel.support.jsse.KeyStoreParameters", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"KeyStore parameters to use in OAuth JWT flow. The KeyStore should contain only 
one entry with private key and certificate. Salesforce does not verify the 
certificate chain, so this can easil [...]
-    "lazyLogin": { "index": 92, "kind": "property", "displayName": "Lazy 
Login", "group": "security", "label": "common,security", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
prevents the component from authenticating to Salesforce with the start of the 
component. You would generally set this to the (default) false and authenticate 
early and be immediately aware [...]
-    "loginConfig": { "index": 93, "kind": "property", "displayName": "Login 
Config", "group": "security", "label": "common,security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.salesforce.SalesforceLoginConfig", "deprecated": 
false, "autowired": false, "secret": false, "description": "All authentication 
configuration in one nested bean, all properties set there can be set directly 
on the component as well" },
-    "loginUrl": { "index": 94, "kind": "property", "displayName": "Login Url", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "https:\/\/login.salesforce.com", 
"description": "URL of the Salesforce instance used for authentication, by 
default set to https:\/\/login.salesforce.com" },
-    "password": { "index": 95, "kind": "property", "displayName": "Password", 
"group": "security", "label": "common,security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "description": "Password used in OAuth flow to gain 
access to access token. It's easy to get started with password OAuth flow, but 
in general one should avoid it as it is deemed less secure than other flows. 
Make sure that you append secur [...]
-    "pubSubHost": { "index": 96, "kind": "property", "displayName": "Pub Sub 
Host", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"api.pubsub.salesforce.com", "description": "Pub\/Sub host" },
-    "pubSubPort": { "index": 97, "kind": "property", "displayName": "Pub Sub 
Port", "group": "security", "label": "common,security", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 7443, "description": "Pub\/Sub port" },
-    "refreshToken": { "index": 98, "kind": "property", "displayName": "Refresh 
Token", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "Refresh token already 
obtained in the refresh token OAuth flow. One needs to setup a web application 
and configure a callback URL to receive the refresh token, or configure using 
the builtin callback at https:\/\/l [...]
-    "sslContextParameters": { "index": 99, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "SSL parameters to use, see 
SSLContextParameters class for all available options." },
-    "useGlobalSslContextParameters": { "index": 100, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters" },
-    "userName": { "index": 101, "kind": "property", "displayName": "User 
Name", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Username used in OAuth 
flow to gain access to access token. It's easy to get started with password 
OAuth flow, but in general one should avoid it as it is deemed less secure than 
other flows." }
+    "initialReplyIdTimeout": { "index": 62, "kind": "property", "displayName": 
"Initial Reply Id Timeout", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 30, 
"description": "Timeout in seconds to validate when a custom pubSubReplayId has 
been configured, when starting the Camel Salesforce consumer." },
+    "allOrNone": { "index": 63, "kind": "property", "displayName": "All Or 
None", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite API option to 
indicate to rollback all records if any are not successful." },
+    "apexUrl": { "index": 64, "kind": "property", "displayName": "Apex Url", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "APEX method URL" },
+    "compositeMethod": { "index": 65, "kind": "property", "displayName": 
"Composite Method", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite (raw) method." },
+    "eventName": { "index": 66, "kind": "property", "displayName": "Event 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Name of Platform Event, Change 
Data Capture Event, custom event, etc." },
+    "eventSchemaFormat": { "index": 67, "kind": "property", "displayName": 
"Event Schema Format", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.internal.dto.EventSchemaFormatEnum", 
"enum": [ "EXPANDED", "COMPACT" ], "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": [...]
+    "eventSchemaId": { "index": 68, "kind": "property", "displayName": "Event 
Schema Id", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The ID of the event schema." },
+    "lazyStartProducer": { "index": 69, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fai [...]
+    "rawHttpHeaders": { "index": 70, "kind": "property", "displayName": "Raw 
Http Headers", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as HTTP parameters for Raw operation." },
+    "rawMethod": { "index": 71, "kind": "property", "displayName": "Raw 
Method", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "HTTP method to use for the Raw 
operation" },
+    "rawPath": { "index": 72, "kind": "property", "displayName": "Raw Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The portion of the endpoint URL 
after the domain name. E.g., '\/services\/data\/v52.0\/sobjects\/Account\/'" },
+    "rawQueryParameters": { "index": 73, "kind": "property", "displayName": 
"Raw Query Parameters", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as query parameters for Raw operatio [...]
+    "autowiredEnabled": { "index": 74, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
+    "httpProxyExcludedAddresses": { "index": 75, "kind": "property", 
"displayName": "Http Proxy Excluded Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should not be used." },
+    "httpProxyHost": { "index": 76, "kind": "property", "displayName": "Http 
Proxy Host", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Hostname of the HTTP proxy 
server to use." },
+    "httpProxyIncludedAddresses": { "index": 77, "kind": "property", 
"displayName": "Http Proxy Included Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should be used." },
+    "httpProxyPort": { "index": 78, "kind": "property", "displayName": "Http 
Proxy Port", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "description": "Port number of the HTTP 
proxy server to use." },
+    "httpProxySocks4": { "index": 79, "kind": "property", "displayName": "Http 
Proxy Socks4", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
the configures the HTTP proxy to use as a SOCKS4 proxy." },
+    "pubsubAllowUseSystemProxy": { "index": 80, "kind": "property", 
"displayName": "Pubsub Allow Use System Proxy", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Allow the Pub\/Sub API client to use the proxy detected by 
java.net.ProxySelector. If false then no proxy server will be used." },
+    "authenticationType": { "index": 81, "kind": "property", "displayName": 
"Authentication Type", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.AuthenticationType", "enum": [ 
"USERNAME_PASSWORD", "REFRESH_TOKEN", "CLIENT_CREDENTIALS", "JWT" ], 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Explicit authentication method to be used, one of USERNAME_PASSWORD, 
REFRESH_TOKEN [...]
+    "clientId": { "index": 82, "kind": "property", "displayName": "Client Id", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "OAuth Consumer Key of the connected app 
configured in the Salesforce instance setup. Typically a connected app needs to 
be configured but one can be provided by installing a package." },
+    "clientSecret": { "index": 83, "kind": "property", "displayName": "Client 
Secret", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "OAuth Consumer Secret of 
the connected app configured in the Salesforce instance setup." },
+    "httpProxyAuthUri": { "index": 84, "kind": "property", "displayName": 
"Http Proxy Auth Uri", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Used 
in authentication against the HTTP proxy server, needs to match the URI of the 
proxy server in order for the httpProxyUsername and httpProxyPassword to be 
used for authentication." },
+    "httpProxyPassword": { "index": 85, "kind": "property", "displayName": 
"Http Proxy Password", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "description": 
"Password to use to authenticate against the HTTP proxy server." },
+    "httpProxyRealm": { "index": 86, "kind": "property", "displayName": "Http 
Proxy Realm", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Realm 
of the proxy server, used in preemptive Basic\/Digest authentication methods 
against the HTTP proxy server." },
+    "httpProxySecure": { "index": 87, "kind": "property", "displayName": "Http 
Proxy Secure", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "If set to false disables the use of TLS when accessing the HTTP 
proxy." },
+    "httpProxyUseDigestAuth": { "index": 88, "kind": "property", 
"displayName": "Http Proxy Use Digest Auth", "group": "security", "label": 
"common,proxy,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "If set to true Digest authentication 
will be used when authenticating to the HTTP proxy, otherwise Basic 
authorization method will be used" },
+    "httpProxyUsername": { "index": 89, "kind": "property", "displayName": 
"Http Proxy Username", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Username to use to authenticate against the HTTP proxy server." },
+    "instanceUrl": { "index": 90, "kind": "property", "displayName": "Instance 
Url", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "URL of the Salesforce 
instance used after authentication, by default received from Salesforce on 
successful authentication" },
+    "jwtAudience": { "index": 91, "kind": "property", "displayName": "Jwt 
Audience", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Value to use for the 
Audience claim (aud) when using OAuth JWT flow. If not set, the login URL will 
be used, which is appropriate in most cases." },
+    "keystore": { "index": 92, "kind": "property", "displayName": "Keystore", 
"group": "security", "label": "common,security", "required": false, "type": 
"object", "javaType": "org.apache.camel.support.jsse.KeyStoreParameters", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"KeyStore parameters to use in OAuth JWT flow. The KeyStore should contain only 
one entry with private key and certificate. Salesforce does not verify the 
certificate chain, so this can easil [...]
+    "lazyLogin": { "index": 93, "kind": "property", "displayName": "Lazy 
Login", "group": "security", "label": "common,security", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
prevents the component from authenticating to Salesforce with the start of the 
component. You would generally set this to the (default) false and authenticate 
early and be immediately aware [...]
+    "loginConfig": { "index": 94, "kind": "property", "displayName": "Login 
Config", "group": "security", "label": "common,security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.salesforce.SalesforceLoginConfig", "deprecated": 
false, "autowired": false, "secret": false, "description": "All authentication 
configuration in one nested bean, all properties set there can be set directly 
on the component as well" },
+    "loginUrl": { "index": 95, "kind": "property", "displayName": "Login Url", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "https:\/\/login.salesforce.com", 
"description": "URL of the Salesforce instance used for authentication, by 
default set to https:\/\/login.salesforce.com" },
+    "password": { "index": 96, "kind": "property", "displayName": "Password", 
"group": "security", "label": "common,security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "description": "Password used in OAuth flow to gain 
access to access token. It's easy to get started with password OAuth flow, but 
in general one should avoid it as it is deemed less secure than other flows. 
Make sure that you append secur [...]
+    "pubSubHost": { "index": 97, "kind": "property", "displayName": "Pub Sub 
Host", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"api.pubsub.salesforce.com", "description": "Pub\/Sub host" },
+    "pubSubPort": { "index": 98, "kind": "property", "displayName": "Pub Sub 
Port", "group": "security", "label": "common,security", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 7443, "description": "Pub\/Sub port" },
+    "refreshToken": { "index": 99, "kind": "property", "displayName": "Refresh 
Token", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "Refresh token already 
obtained in the refresh token OAuth flow. One needs to setup a web application 
and configure a callback URL to receive the refresh token, or configure using 
the builtin callback at https:\/\/l [...]
+    "sslContextParameters": { "index": 100, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "SSL parameters to use, see 
SSLContextParameters class for all available options." },
+    "useGlobalSslContextParameters": { "index": 101, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters" },
+    "userName": { "index": 102, "kind": "property", "displayName": "User 
Name", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Username used in OAuth 
flow to gain access to access token. It's easy to get started with password 
OAuth flow, but in general one should avoid it as it is deemed less secure than 
other flows." }
   },
   "headers": {
     "CamelSalesforceReplayId": { "index": 0, "kind": "header", "displayName": 
"", "group": "consumer", "label": "consumer", "required": false, "javaType": 
"Object", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The Streaming API replayId.", "constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_REPLAY_ID"
 },
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 18ecad5c231..57395a98960 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
@@ -110,6 +110,8 @@ public class SalesforceComponentConfigurer extends 
PropertyConfigurerSupport imp
         case "includeDetails": 
getOrCreateConfig(target).setIncludeDetails(property(camelContext, 
java.lang.Boolean.class, value)); return true;
         case "initialreplayidmap":
         case "initialReplayIdMap": 
getOrCreateConfig(target).setInitialReplayIdMap(property(camelContext, 
java.util.Map.class, value)); return true;
+        case "initialreplyidtimeout":
+        case "initialReplyIdTimeout": 
target.setInitialReplyIdTimeout(property(camelContext, int.class, value)); 
return true;
         case "instanceid":
         case "instanceId": 
getOrCreateConfig(target).setInstanceId(property(camelContext, 
java.lang.String.class, value)); return true;
         case "instanceurl":
@@ -314,6 +316,8 @@ public class SalesforceComponentConfigurer extends 
PropertyConfigurerSupport imp
         case "includeDetails": return java.lang.Boolean.class;
         case "initialreplayidmap":
         case "initialReplayIdMap": return java.util.Map.class;
+        case "initialreplyidtimeout":
+        case "initialReplyIdTimeout": return int.class;
         case "instanceid":
         case "instanceId": return java.lang.String.class;
         case "instanceurl":
@@ -519,6 +523,8 @@ public class SalesforceComponentConfigurer extends 
PropertyConfigurerSupport imp
         case "includeDetails": return 
getOrCreateConfig(target).getIncludeDetails();
         case "initialreplayidmap":
         case "initialReplayIdMap": return 
getOrCreateConfig(target).getInitialReplayIdMap();
+        case "initialreplyidtimeout":
+        case "initialReplyIdTimeout": return target.getInitialReplyIdTimeout();
         case "instanceid":
         case "instanceId": return getOrCreateConfig(target).getInstanceId();
         case "instanceurl":
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/generated/resources/META-INF/org/apache/camel/component/salesforce/salesforce.json
 
b/components/camel-salesforce/camel-salesforce-component/src/generated/resources/META-INF/org/apache/camel/component/salesforce/salesforce.json
index 49bbbbdd6f5..05b8d8fc05f 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/generated/resources/META-INF/org/apache/camel/component/salesforce/salesforce.json
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/generated/resources/META-INF/org/apache/camel/component/salesforce/salesforce.json
@@ -87,46 +87,47 @@
     "pubSubDeserializeType": { "index": 59, "kind": "property", "displayName": 
"Pub Sub Deserialize Type", "group": "consumer", "label": "consumer", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.PubSubDeserializeType", "enum": [ 
"AVRO", "SPECIFIC_RECORD", "GENERIC_RECORD", "POJO", "JSON" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": "AVRO", 
"configurationClass": "org.apache.camel.component.salesforce.SalesforceEndpo 
[...]
     "pubSubPojoClass": { "index": 60, "kind": "property", "displayName": "Pub 
Sub Pojo Class", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Fully qualified class name to 
deserialize Pub\/Sub API event to." },
     "replayPreset": { "index": 61, "kind": "property", "displayName": "Replay 
Preset", "group": "consumer", "label": "consumer", "required": false, "type": 
"object", "javaType": "com.salesforce.eventbus.protobuf.ReplayPreset", "enum": 
[ "LATEST", "EARLIEST", "CUSTOM" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "R [...]
-    "allOrNone": { "index": 62, "kind": "property", "displayName": "All Or 
None", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite API option to 
indicate to rollback all records if any are not successful." },
-    "apexUrl": { "index": 63, "kind": "property", "displayName": "Apex Url", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "APEX method URL" },
-    "compositeMethod": { "index": 64, "kind": "property", "displayName": 
"Composite Method", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite (raw) method." },
-    "eventName": { "index": 65, "kind": "property", "displayName": "Event 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Name of Platform Event, Change 
Data Capture Event, custom event, etc." },
-    "eventSchemaFormat": { "index": 66, "kind": "property", "displayName": 
"Event Schema Format", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.internal.dto.EventSchemaFormatEnum", 
"enum": [ "EXPANDED", "COMPACT" ], "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": [...]
-    "eventSchemaId": { "index": 67, "kind": "property", "displayName": "Event 
Schema Id", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The ID of the event schema." },
-    "lazyStartProducer": { "index": 68, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fai [...]
-    "rawHttpHeaders": { "index": 69, "kind": "property", "displayName": "Raw 
Http Headers", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as HTTP parameters for Raw operation." },
-    "rawMethod": { "index": 70, "kind": "property", "displayName": "Raw 
Method", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "HTTP method to use for the Raw 
operation" },
-    "rawPath": { "index": 71, "kind": "property", "displayName": "Raw Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The portion of the endpoint URL 
after the domain name. E.g., '\/services\/data\/v52.0\/sobjects\/Account\/'" },
-    "rawQueryParameters": { "index": 72, "kind": "property", "displayName": 
"Raw Query Parameters", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as query parameters for Raw operatio [...]
-    "autowiredEnabled": { "index": 73, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
-    "httpProxyExcludedAddresses": { "index": 74, "kind": "property", 
"displayName": "Http Proxy Excluded Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should not be used." },
-    "httpProxyHost": { "index": 75, "kind": "property", "displayName": "Http 
Proxy Host", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Hostname of the HTTP proxy 
server to use." },
-    "httpProxyIncludedAddresses": { "index": 76, "kind": "property", 
"displayName": "Http Proxy Included Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should be used." },
-    "httpProxyPort": { "index": 77, "kind": "property", "displayName": "Http 
Proxy Port", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "description": "Port number of the HTTP 
proxy server to use." },
-    "httpProxySocks4": { "index": 78, "kind": "property", "displayName": "Http 
Proxy Socks4", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
the configures the HTTP proxy to use as a SOCKS4 proxy." },
-    "pubsubAllowUseSystemProxy": { "index": 79, "kind": "property", 
"displayName": "Pubsub Allow Use System Proxy", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Allow the Pub\/Sub API client to use the proxy detected by 
java.net.ProxySelector. If false then no proxy server will be used." },
-    "authenticationType": { "index": 80, "kind": "property", "displayName": 
"Authentication Type", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.AuthenticationType", "enum": [ 
"USERNAME_PASSWORD", "REFRESH_TOKEN", "CLIENT_CREDENTIALS", "JWT" ], 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Explicit authentication method to be used, one of USERNAME_PASSWORD, 
REFRESH_TOKEN [...]
-    "clientId": { "index": 81, "kind": "property", "displayName": "Client Id", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "OAuth Consumer Key of the connected app 
configured in the Salesforce instance setup. Typically a connected app needs to 
be configured but one can be provided by installing a package." },
-    "clientSecret": { "index": 82, "kind": "property", "displayName": "Client 
Secret", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "OAuth Consumer Secret of 
the connected app configured in the Salesforce instance setup." },
-    "httpProxyAuthUri": { "index": 83, "kind": "property", "displayName": 
"Http Proxy Auth Uri", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Used 
in authentication against the HTTP proxy server, needs to match the URI of the 
proxy server in order for the httpProxyUsername and httpProxyPassword to be 
used for authentication." },
-    "httpProxyPassword": { "index": 84, "kind": "property", "displayName": 
"Http Proxy Password", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "description": 
"Password to use to authenticate against the HTTP proxy server." },
-    "httpProxyRealm": { "index": 85, "kind": "property", "displayName": "Http 
Proxy Realm", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Realm 
of the proxy server, used in preemptive Basic\/Digest authentication methods 
against the HTTP proxy server." },
-    "httpProxySecure": { "index": 86, "kind": "property", "displayName": "Http 
Proxy Secure", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "If set to false disables the use of TLS when accessing the HTTP 
proxy." },
-    "httpProxyUseDigestAuth": { "index": 87, "kind": "property", 
"displayName": "Http Proxy Use Digest Auth", "group": "security", "label": 
"common,proxy,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "If set to true Digest authentication 
will be used when authenticating to the HTTP proxy, otherwise Basic 
authorization method will be used" },
-    "httpProxyUsername": { "index": 88, "kind": "property", "displayName": 
"Http Proxy Username", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Username to use to authenticate against the HTTP proxy server." },
-    "instanceUrl": { "index": 89, "kind": "property", "displayName": "Instance 
Url", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "URL of the Salesforce 
instance used after authentication, by default received from Salesforce on 
successful authentication" },
-    "jwtAudience": { "index": 90, "kind": "property", "displayName": "Jwt 
Audience", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Value to use for the 
Audience claim (aud) when using OAuth JWT flow. If not set, the login URL will 
be used, which is appropriate in most cases." },
-    "keystore": { "index": 91, "kind": "property", "displayName": "Keystore", 
"group": "security", "label": "common,security", "required": false, "type": 
"object", "javaType": "org.apache.camel.support.jsse.KeyStoreParameters", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"KeyStore parameters to use in OAuth JWT flow. The KeyStore should contain only 
one entry with private key and certificate. Salesforce does not verify the 
certificate chain, so this can easil [...]
-    "lazyLogin": { "index": 92, "kind": "property", "displayName": "Lazy 
Login", "group": "security", "label": "common,security", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
prevents the component from authenticating to Salesforce with the start of the 
component. You would generally set this to the (default) false and authenticate 
early and be immediately aware [...]
-    "loginConfig": { "index": 93, "kind": "property", "displayName": "Login 
Config", "group": "security", "label": "common,security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.salesforce.SalesforceLoginConfig", "deprecated": 
false, "autowired": false, "secret": false, "description": "All authentication 
configuration in one nested bean, all properties set there can be set directly 
on the component as well" },
-    "loginUrl": { "index": 94, "kind": "property", "displayName": "Login Url", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "https:\/\/login.salesforce.com", 
"description": "URL of the Salesforce instance used for authentication, by 
default set to https:\/\/login.salesforce.com" },
-    "password": { "index": 95, "kind": "property", "displayName": "Password", 
"group": "security", "label": "common,security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "description": "Password used in OAuth flow to gain 
access to access token. It's easy to get started with password OAuth flow, but 
in general one should avoid it as it is deemed less secure than other flows. 
Make sure that you append secur [...]
-    "pubSubHost": { "index": 96, "kind": "property", "displayName": "Pub Sub 
Host", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"api.pubsub.salesforce.com", "description": "Pub\/Sub host" },
-    "pubSubPort": { "index": 97, "kind": "property", "displayName": "Pub Sub 
Port", "group": "security", "label": "common,security", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 7443, "description": "Pub\/Sub port" },
-    "refreshToken": { "index": 98, "kind": "property", "displayName": "Refresh 
Token", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "Refresh token already 
obtained in the refresh token OAuth flow. One needs to setup a web application 
and configure a callback URL to receive the refresh token, or configure using 
the builtin callback at https:\/\/l [...]
-    "sslContextParameters": { "index": 99, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "SSL parameters to use, see 
SSLContextParameters class for all available options." },
-    "useGlobalSslContextParameters": { "index": 100, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters" },
-    "userName": { "index": 101, "kind": "property", "displayName": "User 
Name", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Username used in OAuth 
flow to gain access to access token. It's easy to get started with password 
OAuth flow, but in general one should avoid it as it is deemed less secure than 
other flows." }
+    "initialReplyIdTimeout": { "index": 62, "kind": "property", "displayName": 
"Initial Reply Id Timeout", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 30, 
"description": "Timeout in seconds to validate when a custom pubSubReplayId has 
been configured, when starting the Camel Salesforce consumer." },
+    "allOrNone": { "index": 63, "kind": "property", "displayName": "All Or 
None", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite API option to 
indicate to rollback all records if any are not successful." },
+    "apexUrl": { "index": 64, "kind": "property", "displayName": "Apex Url", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "APEX method URL" },
+    "compositeMethod": { "index": 65, "kind": "property", "displayName": 
"Composite Method", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Composite (raw) method." },
+    "eventName": { "index": 66, "kind": "property", "displayName": "Event 
Name", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Name of Platform Event, Change 
Data Capture Event, custom event, etc." },
+    "eventSchemaFormat": { "index": 67, "kind": "property", "displayName": 
"Event Schema Format", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.internal.dto.EventSchemaFormatEnum", 
"enum": [ "EXPANDED", "COMPACT" ], "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": [...]
+    "eventSchemaId": { "index": 68, "kind": "property", "displayName": "Event 
Schema Id", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The ID of the event schema." },
+    "lazyStartProducer": { "index": 69, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fai [...]
+    "rawHttpHeaders": { "index": 70, "kind": "property", "displayName": "Raw 
Http Headers", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as HTTP parameters for Raw operation." },
+    "rawMethod": { "index": 71, "kind": "property", "displayName": "Raw 
Method", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "HTTP method to use for the Raw 
operation" },
+    "rawPath": { "index": 72, "kind": "property", "displayName": "Raw Path", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "The portion of the endpoint URL 
after the domain name. E.g., '\/services\/data\/v52.0\/sobjects\/Account\/'" },
+    "rawQueryParameters": { "index": 73, "kind": "property", "displayName": 
"Raw Query Parameters", "group": "producer", "label": "producer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Comma separated list of message 
headers to include as query parameters for Raw operatio [...]
+    "autowiredEnabled": { "index": 74, "kind": "property", "displayName": 
"Autowired Enabled", "group": "advanced", "label": "advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": 
"Whether autowiring is enabled. This is used for automatic autowiring options 
(the option must be marked as autowired) by looking up in the registry to find 
if there is a single instance of matching  [...]
+    "httpProxyExcludedAddresses": { "index": 75, "kind": "property", 
"displayName": "Http Proxy Excluded Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should not be used." },
+    "httpProxyHost": { "index": 76, "kind": "property", "displayName": "Http 
Proxy Host", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Hostname of the HTTP proxy 
server to use." },
+    "httpProxyIncludedAddresses": { "index": 77, "kind": "property", 
"displayName": "Http Proxy Included Addresses", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "object", "javaType": 
"java.util.Set<java.lang.String>", "deprecated": false, "autowired": false, 
"secret": false, "description": "A list of addresses for which HTTP proxy 
server should be used." },
+    "httpProxyPort": { "index": 78, "kind": "property", "displayName": "Http 
Proxy Port", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "description": "Port number of the HTTP 
proxy server to use." },
+    "httpProxySocks4": { "index": 79, "kind": "property", "displayName": "Http 
Proxy Socks4", "group": "proxy", "label": "common,proxy", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
the configures the HTTP proxy to use as a SOCKS4 proxy." },
+    "pubsubAllowUseSystemProxy": { "index": 80, "kind": "property", 
"displayName": "Pubsub Allow Use System Proxy", "group": "proxy", "label": 
"common,proxy", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Allow the Pub\/Sub API client to use the proxy detected by 
java.net.ProxySelector. If false then no proxy server will be used." },
+    "authenticationType": { "index": 81, "kind": "property", "displayName": 
"Authentication Type", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.component.salesforce.AuthenticationType", "enum": [ 
"USERNAME_PASSWORD", "REFRESH_TOKEN", "CLIENT_CREDENTIALS", "JWT" ], 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Explicit authentication method to be used, one of USERNAME_PASSWORD, 
REFRESH_TOKEN [...]
+    "clientId": { "index": 82, "kind": "property", "displayName": "Client Id", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "OAuth Consumer Key of the connected app 
configured in the Salesforce instance setup. Typically a connected app needs to 
be configured but one can be provided by installing a package." },
+    "clientSecret": { "index": 83, "kind": "property", "displayName": "Client 
Secret", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "OAuth Consumer Secret of 
the connected app configured in the Salesforce instance setup." },
+    "httpProxyAuthUri": { "index": 84, "kind": "property", "displayName": 
"Http Proxy Auth Uri", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Used 
in authentication against the HTTP proxy server, needs to match the URI of the 
proxy server in order for the httpProxyUsername and httpProxyPassword to be 
used for authentication." },
+    "httpProxyPassword": { "index": 85, "kind": "property", "displayName": 
"Http Proxy Password", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "description": 
"Password to use to authenticate against the HTTP proxy server." },
+    "httpProxyRealm": { "index": 86, "kind": "property", "displayName": "Http 
Proxy Realm", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": "Realm 
of the proxy server, used in preemptive Basic\/Digest authentication methods 
against the HTTP proxy server." },
+    "httpProxySecure": { "index": 87, "kind": "property", "displayName": "Http 
Proxy Secure", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "If set to false disables the use of TLS when accessing the HTTP 
proxy." },
+    "httpProxyUseDigestAuth": { "index": 88, "kind": "property", 
"displayName": "Http Proxy Use Digest Auth", "group": "security", "label": 
"common,proxy,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "If set to true Digest authentication 
will be used when authenticating to the HTTP proxy, otherwise Basic 
authorization method will be used" },
+    "httpProxyUsername": { "index": 89, "kind": "property", "displayName": 
"Http Proxy Username", "group": "security", "label": "common,proxy,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Username to use to authenticate against the HTTP proxy server." },
+    "instanceUrl": { "index": 90, "kind": "property", "displayName": "Instance 
Url", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "URL of the Salesforce 
instance used after authentication, by default received from Salesforce on 
successful authentication" },
+    "jwtAudience": { "index": 91, "kind": "property", "displayName": "Jwt 
Audience", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Value to use for the 
Audience claim (aud) when using OAuth JWT flow. If not set, the login URL will 
be used, which is appropriate in most cases." },
+    "keystore": { "index": 92, "kind": "property", "displayName": "Keystore", 
"group": "security", "label": "common,security", "required": false, "type": 
"object", "javaType": "org.apache.camel.support.jsse.KeyStoreParameters", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"KeyStore parameters to use in OAuth JWT flow. The KeyStore should contain only 
one entry with private key and certificate. Salesforce does not verify the 
certificate chain, so this can easil [...]
+    "lazyLogin": { "index": 93, "kind": "property", "displayName": "Lazy 
Login", "group": "security", "label": "common,security", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "If set to true 
prevents the component from authenticating to Salesforce with the start of the 
component. You would generally set this to the (default) false and authenticate 
early and be immediately aware [...]
+    "loginConfig": { "index": 94, "kind": "property", "displayName": "Login 
Config", "group": "security", "label": "common,security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.salesforce.SalesforceLoginConfig", "deprecated": 
false, "autowired": false, "secret": false, "description": "All authentication 
configuration in one nested bean, all properties set there can be set directly 
on the component as well" },
+    "loginUrl": { "index": 95, "kind": "property", "displayName": "Login Url", 
"group": "security", "label": "common,security", "required": true, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "https:\/\/login.salesforce.com", 
"description": "URL of the Salesforce instance used for authentication, by 
default set to https:\/\/login.salesforce.com" },
+    "password": { "index": 96, "kind": "property", "displayName": "Password", 
"group": "security", "label": "common,security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "description": "Password used in OAuth flow to gain 
access to access token. It's easy to get started with password OAuth flow, but 
in general one should avoid it as it is deemed less secure than other flows. 
Make sure that you append secur [...]
+    "pubSubHost": { "index": 97, "kind": "property", "displayName": "Pub Sub 
Host", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": 
"api.pubsub.salesforce.com", "description": "Pub\/Sub host" },
+    "pubSubPort": { "index": 98, "kind": "property", "displayName": "Pub Sub 
Port", "group": "security", "label": "common,security", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 7443, "description": "Pub\/Sub port" },
+    "refreshToken": { "index": 99, "kind": "property", "displayName": "Refresh 
Token", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "description": "Refresh token already 
obtained in the refresh token OAuth flow. One needs to setup a web application 
and configure a callback URL to receive the refresh token, or configure using 
the builtin callback at https:\/\/l [...]
+    "sslContextParameters": { "index": 100, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "SSL parameters to use, see 
SSLContextParameters class for all available options." },
+    "useGlobalSslContextParameters": { "index": 101, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters" },
+    "userName": { "index": 102, "kind": "property", "displayName": "User 
Name", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Username used in OAuth 
flow to gain access to access token. It's easy to get started with password 
OAuth flow, but in general one should avoid it as it is deemed less secure than 
other flows." }
   },
   "headers": {
     "CamelSalesforceReplayId": { "index": 0, "kind": "header", "displayName": 
"", "group": "consumer", "label": "consumer", "required": false, "javaType": 
"Object", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The Streaming API replayId.", "constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_REPLAY_ID"
 },
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/PubSubApiConsumer.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/PubSubApiConsumer.java
index ab7310e3eec..759f0bf0978 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/PubSubApiConsumer.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/PubSubApiConsumer.java
@@ -35,6 +35,7 @@ public class PubSubApiConsumer extends DefaultConsumer {
     private final String topic;
     private final ReplayPreset initialReplayPreset;
     private String initialReplayId;
+    private int initialReplayIdTimeout;
     private final SalesforceEndpoint endpoint;
 
     private final int batchSize;
@@ -51,6 +52,7 @@ public class PubSubApiConsumer extends DefaultConsumer {
         this.topic = endpoint.getTopicName();
         this.initialReplayPreset = 
endpoint.getConfiguration().getReplayPreset();
         this.initialReplayId = endpoint.getPubSubReplayId();
+        this.initialReplayIdTimeout = 
endpoint.getComponent().getInitialReplyIdTimeout();
         if (initialReplayPreset == ReplayPreset.CUSTOM && initialReplayId == 
null) {
             throw new IllegalArgumentException("pubSubReplayId option is 
required if ReplayPreset is CUSTOM.");
         }
@@ -88,7 +90,7 @@ public class PubSubApiConsumer extends DefaultConsumer {
         
this.pubSubClient.setUsePlainTextConnection(this.usePlainTextConnection);
 
         ServiceHelper.startService(pubSubClient);
-        pubSubClient.subscribe(this, initialReplayPreset, initialReplayId, 
true);
+        pubSubClient.subscribe(this, initialReplayPreset, initialReplayId, 
initialReplayIdTimeout, true);
     }
 
     @Override
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 09491f03cf7..9e2173b0532 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
@@ -276,6 +276,10 @@ public class SalesforceComponent extends DefaultComponent 
implements SSLContextP
               javaType = "java.lang.String", label = "common")
     private String packages;
 
+    @Metadata(description = "Timeout in seconds to validate when a custom 
pubSubReplayId has been configured, when starting the Camel Salesforce 
consumer.",
+              defaultValue = "30", label = "consumer,advanced")
+    private int initialReplyIdTimeout = 30;
+
     // component state
     private SalesforceHttpClient httpClient;
 
@@ -831,6 +835,14 @@ public class SalesforceComponent extends DefaultComponent 
implements SSLContextP
         }
     }
 
+    public int getInitialReplyIdTimeout() {
+        return initialReplyIdTimeout;
+    }
+
+    public void setInitialReplyIdTimeout(int initialReplyIdTimeout) {
+        this.initialReplyIdTimeout = initialReplyIdTimeout;
+    }
+
     public SalesforceSession getSession() {
         return session;
     }
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/PubSubApiClient.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/PubSubApiClient.java
index ef16d7ecf4f..d0a66eb06fd 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/PubSubApiClient.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/PubSubApiClient.java
@@ -104,6 +104,7 @@ public class PubSubApiClient extends ServiceSupport {
 
     private ReplayPreset initialReplayPreset;
     private String initialReplayId;
+    private int initialReplayIdTimeout;
 
     public PubSubApiClient(SalesforceSession session, SalesforceLoginConfig 
loginConfig, String pubSubHost,
                            int pubSubPort, long backoffIncrement, long 
maxBackoff, boolean allowUseProxyServer) {
@@ -149,10 +150,12 @@ public class PubSubApiClient extends ServiceSupport {
     }
 
     public void subscribe(
-            PubSubApiConsumer consumer, ReplayPreset replayPreset, String 
initialReplayId, boolean initialSubscribe) {
+            PubSubApiConsumer consumer, ReplayPreset replayPreset, String 
initialReplayId, int initialReplayIdTimeout,
+            boolean initialSubscribe) {
         LOG.debug("Starting subscribe {}", consumer.getTopic());
         this.initialReplayPreset = replayPreset;
         this.initialReplayId = initialReplayId;
+        this.initialReplayIdTimeout = initialReplayIdTimeout;
         if (replayPreset == ReplayPreset.CUSTOM && initialReplayId == null) {
             throw new RuntimeException("initialReplayId is required for 
ReplayPreset.CUSTOM");
         }
@@ -162,7 +165,7 @@ public class PubSubApiClient extends ServiceSupport {
         if (initialReplayId != null) {
             replayId = base64DecodeToByteString(initialReplayId);
             if (initialSubscribe) {
-                checkInitialReplayIdValidity(topic, replayId);
+                checkInitialReplayIdValidity(topic, replayId, 
initialReplayIdTimeout);
             }
         }
         LOG.info("Subscribing to topic: {}.", topic);
@@ -181,10 +184,9 @@ public class PubSubApiClient extends ServiceSupport {
         serverStream.onNext(fetchRequestBuilder.build());
     }
 
-    public void checkInitialReplayIdValidity(String topic, ByteString 
replayId) {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Checking initialReplayId {} for topic {}", 
base64EncodeByteString(replayId), topic);
-        }
+    public void checkInitialReplayIdValidity(String topic, ByteString 
replayId, int initialReplayIdTimeout) {
+        LOG.info("Checking initialReplayId: {} for topic: {}", 
base64EncodeByteString(replayId), topic);
+
         final AtomicReference<Throwable> error = new AtomicReference<>();
         final CountDownLatch latch = new CountDownLatch(1);
         final StreamObserver<FetchResponse> responseObserver = new 
StreamObserver<>() {
@@ -219,8 +221,8 @@ public class PubSubApiClient extends ServiceSupport {
         serverStream.onNext(fetchRequestBuilder.build());
 
         try {
-            if (!Uninterruptibles.awaitUninterruptibly(latch, 10, 
TimeUnit.SECONDS)) {
-                throw new RuntimeException("timeout while checking 
initialReplayId.");
+            if (!Uninterruptibles.awaitUninterruptibly(latch, 
initialReplayIdTimeout, TimeUnit.SECONDS)) {
+                throw new RuntimeException("Timeout while checking 
initialReplayId.");
             }
         } finally {
             serverStream.onCompleted();
@@ -428,12 +430,12 @@ public class PubSubApiClient extends ServiceSupport {
                 throw new RuntimeException(e);
             }
             if (replayId != null) {
-                subscribe(consumer, ReplayPreset.CUSTOM, replayId, false);
+                subscribe(consumer, ReplayPreset.CUSTOM, replayId, 
initialReplayIdTimeout, false);
             } else {
                 if (initialReplayPreset == ReplayPreset.CUSTOM) {
-                    subscribe(consumer, initialReplayPreset, initialReplayId, 
false);
+                    subscribe(consumer, initialReplayPreset, initialReplayId, 
initialReplayIdTimeout, false);
                 } else {
-                    subscribe(consumer, initialReplayPreset, null, false);
+                    subscribe(consumer, initialReplayPreset, null, 
initialReplayIdTimeout, false);
                 }
             }
         }
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PubSubApiTest.java
 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PubSubApiTest.java
index 8dbd1adb09f..0b71c079712 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PubSubApiTest.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/PubSubApiTest.java
@@ -64,11 +64,11 @@ public class PubSubApiTest {
                 port, 1000, 10000, true));
         client.setUsePlainTextConnection(true);
         client.start();
-        client.subscribe(consumer, ReplayPreset.LATEST, null, true);
+        client.subscribe(consumer, ReplayPreset.LATEST, null, 0, true);
 
         verify(session, timeout(5000)).attemptLoginUntilSuccessful(anyLong(), 
anyLong());
-        verify(client, timeout(5000).times(1)).subscribe(consumer, 
ReplayPreset.LATEST, null, true);
-        verify(client, timeout(5000).times(1)).subscribe(consumer, 
ReplayPreset.CUSTOM, "MTIz", false);
+        verify(client, timeout(5000).times(1)).subscribe(consumer, 
ReplayPreset.LATEST, null, 0, true);
+        verify(client, timeout(5000).times(1)).subscribe(consumer, 
ReplayPreset.CUSTOM, "MTIz", 0, false);
     }
 
     @Test
@@ -94,10 +94,10 @@ public class PubSubApiTest {
                 port, 1000, 10000, true));
         client.setUsePlainTextConnection(true);
         client.start();
-        client.subscribe(consumer, ReplayPreset.CUSTOM, "initial", false);
+        client.subscribe(consumer, ReplayPreset.CUSTOM, "initial", 0, false);
 
         verify(session, timeout(5000)).attemptLoginUntilSuccessful(anyLong(), 
anyLong());
-        verify(client, timeout(5000).times(2)).subscribe(consumer, 
ReplayPreset.CUSTOM, "initial", false);
+        verify(client, timeout(5000).times(2)).subscribe(consumer, 
ReplayPreset.CUSTOM, "initial", 0, false);
     }
 
     @Test
@@ -123,12 +123,12 @@ public class PubSubApiTest {
                 port, 1000, 10000, true));
         client.setUsePlainTextConnection(true);
         client.start();
-        client.subscribe(consumer, ReplayPreset.LATEST, null, false);
+        client.subscribe(consumer, ReplayPreset.LATEST, null, 0, false);
 
         Thread.sleep(1000);
 
         verify(session, timeout(5000)).attemptLoginUntilSuccessful(anyLong(), 
anyLong());
-        verify(client, timeout(5000).times(2)).subscribe(consumer, 
ReplayPreset.LATEST, null, false);
+        verify(client, timeout(5000).times(2)).subscribe(consumer, 
ReplayPreset.LATEST, null, 0, false);
     }
 
     @Test
@@ -154,7 +154,7 @@ public class PubSubApiTest {
                 port, 1000, 10000, true);
         client.setUsePlainTextConnection(true);
         client.start();
-        client.subscribe(consumer, ReplayPreset.LATEST, null, true);
+        client.subscribe(consumer, ReplayPreset.LATEST, null, 0, true);
 
         verify(session, timeout(5000)).attemptLoginUntilSuccessful(anyLong(), 
anyLong());
     }
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
index 39569d4b890..ba0e169f11b 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/SalesforceComponentBuilderFactory.java
@@ -1097,6 +1097,24 @@ public interface SalesforceComponentBuilderFactory {
         }
     
         
+        /**
+         * Timeout in seconds to validate when a custom pubSubReplayId has been
+         * configured, when starting the Camel Salesforce consumer.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 30
+         * Group: consumer (advanced)
+         * 
+         * @param initialReplyIdTimeout the value to set
+         * @return the dsl builder
+         */
+        default SalesforceComponentBuilder initialReplyIdTimeout(int 
initialReplyIdTimeout) {
+            doSetProperty("initialReplyIdTimeout", initialReplyIdTimeout);
+            return this;
+        }
+    
+        
         /**
          * Composite API option to indicate to rollback all records if any are
          * not successful.
@@ -1869,6 +1887,7 @@ public interface SalesforceComponentBuilderFactory {
             case "pubSubDeserializeType": 
getOrCreateConfiguration((SalesforceComponent) 
component).setPubSubDeserializeType((org.apache.camel.component.salesforce.PubSubDeserializeType)
 value); return true;
             case "pubSubPojoClass": 
getOrCreateConfiguration((SalesforceComponent) 
component).setPubSubPojoClass((java.lang.String) value); return true;
             case "replayPreset": 
getOrCreateConfiguration((SalesforceComponent) 
component).setReplayPreset((com.salesforce.eventbus.protobuf.ReplayPreset) 
value); return true;
+            case "initialReplyIdTimeout": ((SalesforceComponent) 
component).setInitialReplyIdTimeout((int) value); return true;
             case "allOrNone": getOrCreateConfiguration((SalesforceComponent) 
component).setAllOrNone((boolean) value); return true;
             case "apexUrl": getOrCreateConfiguration((SalesforceComponent) 
component).setApexUrl((java.lang.String) value); return true;
             case "compositeMethod": 
getOrCreateConfiguration((SalesforceComponent) 
component).setCompositeMethod((java.lang.String) value); return true;


Reply via email to