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

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


The following commit(s) were added to refs/heads/main by this push:
     new 632caa6590d [create-pull-request] automated change (#803)
632caa6590d is described below

commit 632caa6590dd883e5feb56fc9d836c0b7134d825
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Mar 28 06:30:22 2023 +0200

    [create-pull-request] automated change (#803)
    
    Co-authored-by: oscerd <osc...@users.noreply.github.com>
---
 .../springboot/catalog/components/graphql.json     |  2 +-
 .../springboot/catalog/components/salesforce.json  | 20 ++++--
 .../src/main/docs/salesforce.json                  | 39 +++++++++++
 .../SalesforceComponentConfiguration.java          | 76 ++++++++++++++++++++++
 4 files changed, 132 insertions(+), 5 deletions(-)

diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/graphql.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/graphql.json
index 92317a55d63..68b073fdb57 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/graphql.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/graphql.json
@@ -19,7 +19,7 @@
     "api": false,
     "consumerOnly": false,
     "producerOnly": true,
-    "lenientProperties": false
+    "lenientProperties": true
   },
   "componentProperties": {
     "lazyStartProducer": { "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 fail during star [...]
diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/salesforce.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/salesforce.json
index d120261049b..623af167d45 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/salesforce.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/salesforce.json
@@ -81,6 +81,10 @@
     "workerPoolMaxSize": { "kind": "property", "displayName": "Worker Pool Max 
Size", "group": "common (advanced)", "label": "common,advanced", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 20, "description": "Maximum size of the 
thread pool used to handle HTTP responses." },
     "workerPoolSize": { "kind": "property", "displayName": "Worker Pool Size", 
"group": "common (advanced)", "label": "common,advanced", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "description": "Size of the thread pool 
used to handle HTTP responses." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error 
Handler", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "Allows for bridging the 
consumer to the Camel routing Error Handler, which mean any exceptions occurred 
while the consumer is trying to pickup incoming messages, or the likes, will 
now be processed as a me [...]
+    "pubSubBatchSize": { "kind": "property", "displayName": "Pub Sub Batch 
Size", "group": "consumer", "label": "consumer", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 100, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "config", "description": "Max number of events to receive 
in a batch from the Pub\/Sub API." },
+    "pubSubDeserializeType": { "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.SalesforceEndpointConfig", " [...]
+    "pubSubPojoClass": { "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": { "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": "Replay preset  [...]
     "allOrNone": { "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": { "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": { "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." },
@@ -111,13 +115,16 @@
     "loginConfig": { "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": { "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": { "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 security token to  [...]
+    "pubSubHost": { "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": { "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": { "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:\/\/login.salesfor [...]
     "sslContextParameters": { "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": { "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": { "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": { "kind": "header", "displayName": "", "group": 
"consumer", "label": "consumer", "required": false, "javaType": "Object", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The replay id.", "constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_REPLAY_ID"
 },
+    "CamelSalesforceReplayId": { "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"
 },
+    "CamelSalesforcePubSubReplayId": { "kind": "header", "displayName": "", 
"group": "consumer", "label": "consumer", "required": false, "javaType": 
"Object", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The Pub\/Sub API replayId.", "constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_PUBSUB_REPLAY_ID"
 },
     "CamelSalesforceChangeEventSchema": { "kind": "header", "displayName": "", 
"group": "consumer", "label": "consumer", "required": false, "javaType": 
"Object", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The change event schema.", "constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_CHANGE_EVENT_SCHEMA"
 },
     "CamelSalesforceEventType": { "kind": "header", "displayName": "", 
"group": "consumer", "label": "consumer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The event type.", "constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_EVENT_TYPE"
 },
     "CamelSalesforceCommitTimestamp": { "kind": "header", "displayName": "", 
"group": "consumer", "label": "consumer", "required": false, "javaType": 
"Object", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The commit timestamp.", "constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_COMMIT_TIMESTAMP"
 },
@@ -138,8 +145,8 @@
     "CamelSalesforceQueryResultTotalSize": { "kind": "header", "displayName": 
"", "group": "producer", "label": "producer", "required": false, "javaType": 
"int", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Total number of records matching a query.", 
"constantName": 
"org.apache.camel.component.salesforce.SalesforceConstants#HEADER_SALESFORCE_QUERY_RESULT_TOTAL_SIZE"
 }
   },
   "properties": {
-    "operationName": { "kind": "path", "displayName": "Operation Name", 
"group": "common", "label": "common", "required": true, "type": "object", 
"javaType": "org.apache.camel.component.salesforce.internal.OperationName", 
"enum": [ "getVersions", "getResources", "getGlobalObjects", "getBasicInfo", 
"getDescription", "getSObject", "createSObject", "updateSObject", 
"deleteSObject", "getSObjectWithId", "upsertSObject", "deleteSObjectWithId", 
"getBlobField", "query", "queryMore", "queryAll",  [...]
-    "topicName": { "kind": "path", "displayName": "Topic Name", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "The name of the topic\/channel to use" },
+    "operationName": { "kind": "path", "displayName": "Operation Name", 
"group": "common", "label": "common", "required": true, "type": "object", 
"javaType": "org.apache.camel.component.salesforce.internal.OperationName", 
"enum": [ "getVersions", "getResources", "getGlobalObjects", "getBasicInfo", 
"getDescription", "getSObject", "createSObject", "updateSObject", 
"deleteSObject", "getSObjectWithId", "upsertSObject", "deleteSObjectWithId", 
"getBlobField", "query", "queryMore", "queryAll",  [...]
+    "topicName": { "kind": "path", "displayName": "Topic Name", "group": 
"producer", "label": "consumer,producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "The name of the topic\/channel to use" },
     "apexMethod": { "kind": "parameter", "displayName": "Apex Method", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "configuration", "description": "APEX method name" },
     "apexQueryParams": { "kind": "parameter", "displayName": "Apex Query 
Params", "group": "common", "label": "", "required": false, "type": "object", 
"javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "configuration", "description": "Query params for APEX 
method" },
     "apiVersion": { "kind": "parameter", "displayName": "Api Version", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "56.0", "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "configuration", "description": "Salesforce API version." 
},
@@ -186,7 +193,12 @@
     "sObjectSearch": { "kind": "parameter", "displayName": "SObject Search", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "configuration", "description": "Salesforce SOSL search 
string" },
     "streamQueryResult": { "kind": "parameter", "displayName": "Stream query 
result", "group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "false", "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "configuration", "description": "If true, streams SOQL 
query result and transparently handles subsequent reque [...]
     "updateTopic": { "kind": "parameter", "displayName": "Update Topic", 
"group": "common", "label": "", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "configuration", "description": "Whether to update an 
existing Push Topic when using the Streaming API, defaults to false" },
-    "replayId": { "kind": "parameter", "displayName": "Replay Id", "group": 
"consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "java.lang.Long", "deprecated": false, "autowired": false, 
"secret": false, "description": "The replayId value to use when subscribing" },
+    "pubSubBatchSize": { "kind": "parameter", "displayName": "Pub Sub Batch 
Size", "group": "consumer", "label": "consumer", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 100, "configurationClass": 
"org.apache.camel.component.salesforce.SalesforceEndpointConfig", 
"configurationField": "configuration", "description": "Max number of events to 
receive in a batch from the Pub\/Sub API." },
+    "pubSubDeserializeType": { "kind": "parameter", "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.SalesforceEndpointConfig",  [...]
+    "pubSubPojoClass": { "kind": "parameter", "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": "configuration", "description": "Fully qualified class 
name to deserialize Pub\/Sub API event to." },
+    "pubSubReplayId": { "kind": "parameter", "displayName": "Pub Sub Replay 
Id", "group": "consumer", "label": "consumer", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "The replayId value to use when 
subscribing to the Pub\/Sub API." },
+    "replayId": { "kind": "parameter", "displayName": "Replay Id", "group": 
"consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "java.lang.Long", "deprecated": false, "autowired": false, 
"secret": false, "description": "The replayId value to use when subscribing to 
the Streaming API." },
+    "replayPreset": { "kind": "parameter", "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": "configuration", "description": "Replay [...]
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Allows for bridging the consumer to the Camel routing Error 
Handler, which mean any exceptions occurred while the consumer is trying to 
pickup incoming messages, or the likes, will now [...]
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By default the 
con [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
diff --git 
a/components-starter/camel-salesforce-starter/src/main/docs/salesforce.json 
b/components-starter/camel-salesforce-starter/src/main/docs/salesforce.json
index 1efc3e45c8c..816b0d7f605 100644
--- a/components-starter/camel-salesforce-starter/src/main/docs/salesforce.json
+++ b/components-starter/camel-salesforce-starter/src/main/docs/salesforce.json
@@ -438,6 +438,39 @@
       "description": "Specifies the 15-character or 18-character record ID to 
be used as the lower boundary for the first chunk. Use this parameter to 
specify a starting ID when restarting a job that failed between batches.",
       "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
     },
+    {
+      "name": "camel.component.salesforce.pub-sub-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Max number of events to receive in a batch from the 
Pub\/Sub API.",
+      "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.salesforce.pub-sub-deserialize-type",
+      "type": "org.apache.camel.component.salesforce.PubSubDeserializeType",
+      "description": "How to deserialize events consume from the Pub\/Sub API. 
AVRO will try a SpecificRecord subclass if found, otherwise GenericRecord.",
+      "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pub-sub-host",
+      "type": "java.lang.String",
+      "description": "Pub\/Sub host",
+      "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": "api.pubsub.salesforce.com"
+    },
+    {
+      "name": "camel.component.salesforce.pub-sub-pojo-class",
+      "type": "java.lang.String",
+      "description": "Fully qualified class name to deserialize Pub\/Sub API 
event to.",
+      "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pub-sub-port",
+      "type": "java.lang.Integer",
+      "description": "Pub\/Sub port",
+      "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 7443
+    },
     {
       "name": "camel.component.salesforce.query-locator",
       "type": "java.lang.String",
@@ -481,6 +514,12 @@
       "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:\/\/login.salesforce.com\/services\/oauth2\/success or 
https:\/\/test.salesforce.com\/services\/oauth2\/success and then retrive the 
refresh_token from the URL at the end of the flow. Note that in development 
organizations Salesforce allows hosting the callback [...]
       "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
     },
+    {
+      "name": "camel.component.salesforce.replay-preset",
+      "type": "com.salesforce.eventbus.protobuf.ReplayPreset",
+      "description": "Replay preset for Pub\/Sub API.",
+      "sourceType": 
"org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
     {
       "name": "camel.component.salesforce.report-id",
       "type": "java.lang.String",
diff --git 
a/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
 
b/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
index 76c19eb093c..5a73a7e0909 100644
--- 
a/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
+++ 
b/components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConfiguration.java
@@ -19,8 +19,10 @@ package org.apache.camel.component.salesforce.springboot;
 import java.util.Map;
 import java.util.Set;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.salesforce.eventbus.protobuf.ReplayPreset;
 import org.apache.camel.component.salesforce.AuthenticationType;
 import org.apache.camel.component.salesforce.NotFoundBehaviour;
+import org.apache.camel.component.salesforce.PubSubDeserializeType;
 import org.apache.camel.component.salesforce.SalesforceComponent;
 import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
 import org.apache.camel.component.salesforce.SalesforceHttpClient;
@@ -335,6 +337,23 @@ public class SalesforceComponentConfiguration
      * will be logged at WARN or ERROR level and ignored.
      */
     private Boolean bridgeErrorHandler = false;
+    /**
+     * Max number of events to receive in a batch from the Pub/Sub API.
+     */
+    private Integer pubSubBatchSize = 100;
+    /**
+     * How to deserialize events consume from the Pub/Sub API. AVRO will try a
+     * SpecificRecord subclass if found, otherwise GenericRecord.
+     */
+    private PubSubDeserializeType pubSubDeserializeType = 
PubSubDeserializeType.AVRO;
+    /**
+     * Fully qualified class name to deserialize Pub/Sub API event to.
+     */
+    private String pubSubPojoClass;
+    /**
+     * Replay preset for Pub/Sub API.
+     */
+    private ReplayPreset replayPreset = ReplayPreset.LATEST;
     /**
      * Composite API option to indicate to rollback all records if any are not
      * successful.
@@ -498,6 +517,14 @@ public class SalesforceComponentConfiguration
      * security token to the end of the password if using one.
      */
     private String password;
+    /**
+     * Pub/Sub host
+     */
+    private String pubSubHost = "api.pubsub.salesforce.com";
+    /**
+     * Pub/Sub port
+     */
+    private Integer pubSubPort = 7443;
     /**
      * 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
@@ -992,6 +1019,39 @@ public class SalesforceComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
+    public Integer getPubSubBatchSize() {
+        return pubSubBatchSize;
+    }
+
+    public void setPubSubBatchSize(Integer pubSubBatchSize) {
+        this.pubSubBatchSize = pubSubBatchSize;
+    }
+
+    public PubSubDeserializeType getPubSubDeserializeType() {
+        return pubSubDeserializeType;
+    }
+
+    public void setPubSubDeserializeType(
+            PubSubDeserializeType pubSubDeserializeType) {
+        this.pubSubDeserializeType = pubSubDeserializeType;
+    }
+
+    public String getPubSubPojoClass() {
+        return pubSubPojoClass;
+    }
+
+    public void setPubSubPojoClass(String pubSubPojoClass) {
+        this.pubSubPojoClass = pubSubPojoClass;
+    }
+
+    public ReplayPreset getReplayPreset() {
+        return replayPreset;
+    }
+
+    public void setReplayPreset(ReplayPreset replayPreset) {
+        this.replayPreset = replayPreset;
+    }
+
     public Boolean getAllOrNone() {
         return allOrNone;
     }
@@ -1234,6 +1294,22 @@ public class SalesforceComponentConfiguration
         this.password = password;
     }
 
+    public String getPubSubHost() {
+        return pubSubHost;
+    }
+
+    public void setPubSubHost(String pubSubHost) {
+        this.pubSubHost = pubSubHost;
+    }
+
+    public Integer getPubSubPort() {
+        return pubSubPort;
+    }
+
+    public void setPubSubPort(Integer pubSubPort) {
+        this.pubSubPort = pubSubPort;
+    }
+
     public String getRefreshToken() {
         return refreshToken;
     }

Reply via email to