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.git


The following commit(s) were added to refs/heads/main by this push:
     new 02f8914aae5 CAMEL-17986: camel-pulsar - Add option to configure key 
shared policy mode to use. (#10813)
02f8914aae5 is described below

commit 02f8914aae52a848e98ef3d1b4fe082f4a570527
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Jul 25 08:53:48 2023 +0200

    CAMEL-17986: camel-pulsar - Add option to configure key shared policy mode 
to use. (#10813)
---
 .../apache/camel/catalog/components/pulsar.json    | 124 +++++++++++----------
 .../pulsar/PulsarComponentConfigurer.java          |   6 +
 .../component/pulsar/PulsarEndpointConfigurer.java |   6 +
 .../component/pulsar/PulsarEndpointUriFactory.java |   3 +-
 .../org/apache/camel/component/pulsar/pulsar.json  | 124 +++++++++++----------
 .../component/pulsar/PulsarConfiguration.java      |  11 ++
 .../consumers/CommonCreationStrategyImpl.java      |  10 ++
 .../dsl/PulsarComponentBuilderFactory.java         |  16 +++
 .../endpoint/dsl/PulsarEndpointBuilderFactory.java |  15 +++
 9 files changed, 192 insertions(+), 123 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pulsar.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pulsar.json
index 75375ef32d1..4386c84a648 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pulsar.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/pulsar.json
@@ -35,37 +35,38 @@
     "consumerNamePrefix": { "index": 10, "kind": "property", "displayName": 
"Consumer Name Prefix", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "cons", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Prefix to add to 
consumer names when a SHARED or FAILOVER subscri [...]
     "consumerQueueSize": { "index": 11, "kind": "property", "displayName": 
"Consumer Queue Size", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Size of the consumer queue - defaults to 10" },
     "deadLetterTopic": { "index": 12, "kind": "property", "displayName": "Dead 
Letter Topic", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Name of the topic where the messages which 
fail maxRedeliverCount times will be sent. Note: if  [...]
-    "maxRedeliverCount": { "index": 13, "kind": "property", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Maximum number of times that a message will be 
redelivered before being sent to the dead  [...]
-    "messageListener": { "index": 14, "kind": "property", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to use the 
messageListener interface, or to receive messages using a separ [...]
-    "negativeAckRedeliveryBackoff": { "index": 15, "kind": "property", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "RedeliveryBackoff to use for negative  [...]
-    "negativeAckRedeliveryDelayMicros": { "index": 16, "kind": "property", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Set the negative acknowledgement delay" },
-    "numberOfConsumers": { "index": 17, "kind": "property", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Number of consumers - defaults to 1" },
-    "numberOfConsumerThreads": { "index": 18, "kind": "property", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Number of threads to 
receive and handle messages when using a separate  [...]
-    "readCompacted": { "index": 19, "kind": "property", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Enable compacted topic reading." },
-    "subscriptionInitialPosition": { "index": 20, "kind": "property", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "conf [...]
-    "subscriptionName": { "index": 21, "kind": "property", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Name of the subscription 
to use" },
-    "subscriptionTopicsMode": { "index": 22, "kind": "property", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"con [...]
-    "subscriptionType": { "index": 23, "kind": "property", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configur [...]
-    "topicsPattern": { "index": 24, "kind": "property", "displayName": "Topics 
Pattern", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer to subsc [...]
-    "pulsarMessageReceiptFactory": { "index": 25, "kind": "property", 
"displayName": "Pulsar Message Receipt Factory", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.pulsar.PulsarMessageReceiptFactory", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Provide a factory to create an alternate implementation of 
PulsarMessageReceipt." },
-    "batcherBuilder": { "index": 26, "kind": "property", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Control batching method used by the producer." 
},
-    "batchingEnabled": { "index": 27, "kind": "property", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
-    "batchingMaxMessages": { "index": 28, "kind": "property", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The maximum size to batch messages." },
-    "batchingMaxPublishDelayMicros": { "index": 29, "kind": "property", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum time period 
within which the messages sent [...]
-    "blockIfQueueFull": { "index": 30, "kind": "property", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to block the 
producing thread if pending messages queue is full or to [...]
-    "chunkingEnabled": { "index": 31, "kind": "property", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether chunking 
of messages is enabled for the producer." },
-    "compressionType": { "index": 32, "kind": "property", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "descri [...]
-    "initialSequenceId": { "index": 33, "kind": "property", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
-    "lazyStartProducer": { "index": 34, "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 [...]
-    "maxPendingMessages": { "index": 35, "kind": "property", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Size of the pending massages queue. When the 
queue is full, by default, any fur [...]
-    "maxPendingMessagesAcrossPartitions": { "index": 36, "kind": "property", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum number of 
pending messages for pa [...]
-    "messageRouter": { "index": 37, "kind": "property", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Custom Message Router to use" },
-    "messageRoutingMode": { "index": 38, "kind": "property", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
" [...]
-    "producerName": { "index": 39, "kind": "property", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Name of the producer. If unset, lets Pulsar 
select a unique identifier." },
-    "sendTimeoutMs": { "index": 40, "kind": "property", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Send timeout in milliseconds" },
-    "autoConfiguration": { "index": 41, "kind": "property", "displayName": 
"Auto Configuration", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.AutoConfiguration", "deprecated": 
false, "autowired": false, "secret": false, "description": "The pulsar auto 
configuration" },
-    "autowiredEnabled": { "index": 42, "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  [...]
-    "pulsarClient": { "index": 43, "kind": "property", "displayName": "Pulsar 
Client", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "org.apache.pulsar.client.api.PulsarClient", 
"deprecated": false, "autowired": true, "secret": false, "description": "The 
pulsar client" }
+    "keySharedPolicy": { "index": 13, "kind": "property", "displayName": "Key 
Shared Policy", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "AUTO_SPLIT", 
"STICKY" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Policy to use by 
consumer when using key-shared subscriptio [...]
+    "maxRedeliverCount": { "index": 14, "kind": "property", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Maximum number of times that a message will be 
redelivered before being sent to the dead  [...]
+    "messageListener": { "index": 15, "kind": "property", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to use the 
messageListener interface, or to receive messages using a separ [...]
+    "negativeAckRedeliveryBackoff": { "index": 16, "kind": "property", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "RedeliveryBackoff to use for negative  [...]
+    "negativeAckRedeliveryDelayMicros": { "index": 17, "kind": "property", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Set the negative acknowledgement delay" },
+    "numberOfConsumers": { "index": 18, "kind": "property", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Number of consumers - defaults to 1" },
+    "numberOfConsumerThreads": { "index": 19, "kind": "property", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Number of threads to 
receive and handle messages when using a separate  [...]
+    "readCompacted": { "index": 20, "kind": "property", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Enable compacted topic reading." },
+    "subscriptionInitialPosition": { "index": 21, "kind": "property", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "conf [...]
+    "subscriptionName": { "index": 22, "kind": "property", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Name of the subscription 
to use" },
+    "subscriptionTopicsMode": { "index": 23, "kind": "property", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"con [...]
+    "subscriptionType": { "index": 24, "kind": "property", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configur [...]
+    "topicsPattern": { "index": 25, "kind": "property", "displayName": "Topics 
Pattern", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer to subsc [...]
+    "pulsarMessageReceiptFactory": { "index": 26, "kind": "property", 
"displayName": "Pulsar Message Receipt Factory", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.pulsar.PulsarMessageReceiptFactory", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Provide a factory to create an alternate implementation of 
PulsarMessageReceipt." },
+    "batcherBuilder": { "index": 27, "kind": "property", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Control batching method used by the producer." 
},
+    "batchingEnabled": { "index": 28, "kind": "property", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
+    "batchingMaxMessages": { "index": 29, "kind": "property", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The maximum size to batch messages." },
+    "batchingMaxPublishDelayMicros": { "index": 30, "kind": "property", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum time period 
within which the messages sent [...]
+    "blockIfQueueFull": { "index": 31, "kind": "property", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to block the 
producing thread if pending messages queue is full or to [...]
+    "chunkingEnabled": { "index": 32, "kind": "property", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether chunking 
of messages is enabled for the producer." },
+    "compressionType": { "index": 33, "kind": "property", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "descri [...]
+    "initialSequenceId": { "index": 34, "kind": "property", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
+    "lazyStartProducer": { "index": 35, "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 [...]
+    "maxPendingMessages": { "index": 36, "kind": "property", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Size of the pending massages queue. When the 
queue is full, by default, any fur [...]
+    "maxPendingMessagesAcrossPartitions": { "index": 37, "kind": "property", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum number of 
pending messages for pa [...]
+    "messageRouter": { "index": 38, "kind": "property", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Custom Message Router to use" },
+    "messageRoutingMode": { "index": 39, "kind": "property", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
" [...]
+    "producerName": { "index": 40, "kind": "property", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Name of the producer. If unset, lets Pulsar 
select a unique identifier." },
+    "sendTimeoutMs": { "index": 41, "kind": "property", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Send timeout in milliseconds" },
+    "autoConfiguration": { "index": 42, "kind": "property", "displayName": 
"Auto Configuration", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.AutoConfiguration", "deprecated": 
false, "autowired": false, "secret": false, "description": "The pulsar auto 
configuration" },
+    "autowiredEnabled": { "index": 43, "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  [...]
+    "pulsarClient": { "index": 44, "kind": "property", "displayName": "Pulsar 
Client", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "org.apache.pulsar.client.api.PulsarClient", 
"deprecated": false, "autowired": true, "secret": false, "description": "The 
pulsar client" }
   },
   "headers": {
     "properties": { "index": 0, "kind": "header", "displayName": "", "group": 
"consumer", "label": "consumer", "required": false, "javaType": "Map<String, 
String>", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The properties attached to the message.", 
"constantName": 
"org.apache.camel.component.pulsar.utils.message.PulsarMessageHeaders#PROPERTIES"
 },
@@ -100,35 +101,36 @@
     "consumerNamePrefix": { "index": 12, "kind": "parameter", "displayName": 
"Consumer Name Prefix", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "cons", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Prefix to add to 
consumer names when a SHARED or FAILOVER  [...]
     "consumerQueueSize": { "index": 13, "kind": "parameter", "displayName": 
"Consumer Queue Size", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Size of the consumer queue - defaults to 
10" },
     "deadLetterTopic": { "index": 14, "kind": "parameter", "displayName": 
"Dead Letter Topic", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Name of the topic where the messages 
which fail maxRedeliverCount times will be sent. No [...]
-    "maxRedeliverCount": { "index": 15, "kind": "parameter", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Maximum number of times that a message 
will be redelivered before being sent to th [...]
-    "messageListener": { "index": 16, "kind": "parameter", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to use the 
messageListener interface, or to receive messages using  [...]
-    "negativeAckRedeliveryBackoff": { "index": 17, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "RedeliveryBackoff to use for ne [...]
-    "negativeAckRedeliveryDelayMicros": { "index": 18, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Set the negative acknowledgement delay" 
},
-    "numberOfConsumers": { "index": 19, "kind": "parameter", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Number of consumers - defaults to 1" },
-    "numberOfConsumerThreads": { "index": 20, "kind": "parameter", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Number of threads 
to receive and handle messages when using a se [...]
-    "readCompacted": { "index": 21, "kind": "parameter", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Enable compacted topic reading." },
-    "subscriptionInitialPosition": { "index": 22, "kind": "parameter", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "con [...]
-    "subscriptionName": { "index": 23, "kind": "parameter", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Name of the 
subscription to use" },
-    "subscriptionTopicsMode": { "index": 24, "kind": "parameter", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"co [...]
-    "subscriptionType": { "index": 25, "kind": "parameter", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configu [...]
-    "topicsPattern": { "index": 26, "kind": "parameter", "displayName": 
"Topics Pattern", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer t [...]
-    "bridgeErrorHandler": { "index": 27, "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 li [...]
-    "exceptionHandler": { "index": 28, "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 de [...]
-    "exchangePattern": { "index": 29, "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." },
-    "batcherBuilder": { "index": 30, "kind": "parameter", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Control batching method used by the p 
[...]
-    "batchingEnabled": { "index": 31, "kind": "parameter", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
-    "batchingMaxMessages": { "index": 32, "kind": "parameter", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The maximum size to batch messages." },
-    "batchingMaxPublishDelayMicros": { "index": 33, "kind": "parameter", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum time 
period within which the messag [...]
-    "blockIfQueueFull": { "index": 34, "kind": "parameter", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to block 
the producing thread if pending messages queue is ful [...]
-    "chunkingEnabled": { "index": 35, "kind": "parameter", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
chunking of messages is enabled for the producer." },
-    "compressionType": { "index": 36, "kind": "parameter", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration",  [...]
-    "initialSequenceId": { "index": 37, "kind": "parameter", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
-    "maxPendingMessages": { "index": 38, "kind": "parameter", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Size of the pending massages queue. When 
the queue is full, by default,  [...]
-    "maxPendingMessagesAcrossPartitions": { "index": 39, "kind": "parameter", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum number 
of pending messages [...]
-    "messageRouter": { "index": 40, "kind": "parameter", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Custom Message Router to use" },
-    "messageRoutingMode": { "index": 41, "kind": "parameter", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration",  
[...]
-    "producerName": { "index": 42, "kind": "parameter", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Name of the producer. If unset, lets 
Pulsar select a unique identifier." },
-    "sendTimeoutMs": { "index": 43, "kind": "parameter", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Send timeout in milliseconds" },
-    "lazyStartProducer": { "index": 44, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "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 produ [...]
+    "keySharedPolicy": { "index": 15, "kind": "parameter", "displayName": "Key 
Shared Policy", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "AUTO_SPLIT", 
"STICKY" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Policy to use by 
consumer when using key-shared subs [...]
+    "maxRedeliverCount": { "index": 16, "kind": "parameter", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Maximum number of times that a message 
will be redelivered before being sent to th [...]
+    "messageListener": { "index": 17, "kind": "parameter", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to use the 
messageListener interface, or to receive messages using  [...]
+    "negativeAckRedeliveryBackoff": { "index": 18, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "RedeliveryBackoff to use for ne [...]
+    "negativeAckRedeliveryDelayMicros": { "index": 19, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Set the negative acknowledgement delay" 
},
+    "numberOfConsumers": { "index": 20, "kind": "parameter", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Number of consumers - defaults to 1" },
+    "numberOfConsumerThreads": { "index": 21, "kind": "parameter", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Number of threads 
to receive and handle messages when using a se [...]
+    "readCompacted": { "index": 22, "kind": "parameter", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Enable compacted topic reading." },
+    "subscriptionInitialPosition": { "index": 23, "kind": "parameter", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "con [...]
+    "subscriptionName": { "index": 24, "kind": "parameter", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Name of the 
subscription to use" },
+    "subscriptionTopicsMode": { "index": 25, "kind": "parameter", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"co [...]
+    "subscriptionType": { "index": 26, "kind": "parameter", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configu [...]
+    "topicsPattern": { "index": 27, "kind": "parameter", "displayName": 
"Topics Pattern", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer t [...]
+    "bridgeErrorHandler": { "index": 28, "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 li [...]
+    "exceptionHandler": { "index": 29, "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 de [...]
+    "exchangePattern": { "index": 30, "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." },
+    "batcherBuilder": { "index": 31, "kind": "parameter", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Control batching method used by the p 
[...]
+    "batchingEnabled": { "index": 32, "kind": "parameter", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
+    "batchingMaxMessages": { "index": 33, "kind": "parameter", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The maximum size to batch messages." },
+    "batchingMaxPublishDelayMicros": { "index": 34, "kind": "parameter", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum time 
period within which the messag [...]
+    "blockIfQueueFull": { "index": 35, "kind": "parameter", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to block 
the producing thread if pending messages queue is ful [...]
+    "chunkingEnabled": { "index": 36, "kind": "parameter", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
chunking of messages is enabled for the producer." },
+    "compressionType": { "index": 37, "kind": "parameter", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration",  [...]
+    "initialSequenceId": { "index": 38, "kind": "parameter", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
+    "maxPendingMessages": { "index": 39, "kind": "parameter", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Size of the pending massages queue. When 
the queue is full, by default,  [...]
+    "maxPendingMessagesAcrossPartitions": { "index": 40, "kind": "parameter", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum number 
of pending messages [...]
+    "messageRouter": { "index": 41, "kind": "parameter", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Custom Message Router to use" },
+    "messageRoutingMode": { "index": 42, "kind": "parameter", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration",  
[...]
+    "producerName": { "index": 43, "kind": "parameter", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Name of the producer. If unset, lets 
Pulsar select a unique identifier." },
+    "sendTimeoutMs": { "index": 44, "kind": "parameter", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Send timeout in milliseconds" },
+    "lazyStartProducer": { "index": 45, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "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 produ [...]
   }
 }
diff --git 
a/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarComponentConfigurer.java
 
b/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarComponentConfigurer.java
index 05665cb3a67..6227d9354bf 100644
--- 
a/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarComponentConfigurer.java
+++ 
b/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarComponentConfigurer.java
@@ -71,6 +71,8 @@ public class PulsarComponentConfigurer extends 
PropertyConfigurerSupport impleme
         case "deadLetterTopic": 
getOrCreateConfiguration(target).setDeadLetterTopic(property(camelContext, 
java.lang.String.class, value)); return true;
         case "initialsequenceid":
         case "initialSequenceId": 
getOrCreateConfiguration(target).setInitialSequenceId(property(camelContext, 
long.class, value)); return true;
+        case "keysharedpolicy":
+        case "keySharedPolicy": 
getOrCreateConfiguration(target).setKeySharedPolicy(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "maxpendingmessages":
@@ -170,6 +172,8 @@ public class PulsarComponentConfigurer extends 
PropertyConfigurerSupport impleme
         case "deadLetterTopic": return java.lang.String.class;
         case "initialsequenceid":
         case "initialSequenceId": return long.class;
+        case "keysharedpolicy":
+        case "keySharedPolicy": return java.lang.String.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "maxpendingmessages":
@@ -265,6 +269,8 @@ public class PulsarComponentConfigurer extends 
PropertyConfigurerSupport impleme
         case "deadLetterTopic": return 
getOrCreateConfiguration(target).getDeadLetterTopic();
         case "initialsequenceid":
         case "initialSequenceId": return 
getOrCreateConfiguration(target).getInitialSequenceId();
+        case "keysharedpolicy":
+        case "keySharedPolicy": return 
getOrCreateConfiguration(target).getKeySharedPolicy();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "maxpendingmessages":
diff --git 
a/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointConfigurer.java
 
b/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointConfigurer.java
index a35d5b6413a..bb4de56b3ff 100644
--- 
a/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointConfigurer.java
+++ 
b/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointConfigurer.java
@@ -63,6 +63,8 @@ public class PulsarEndpointConfigurer extends 
PropertyConfigurerSupport implemen
         case "exchangePattern": 
target.setExchangePattern(property(camelContext, 
org.apache.camel.ExchangePattern.class, value)); return true;
         case "initialsequenceid":
         case "initialSequenceId": 
target.getPulsarConfiguration().setInitialSequenceId(property(camelContext, 
long.class, value)); return true;
+        case "keysharedpolicy":
+        case "keySharedPolicy": 
target.getPulsarConfiguration().setKeySharedPolicy(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "maxpendingmessages":
@@ -152,6 +154,8 @@ public class PulsarEndpointConfigurer extends 
PropertyConfigurerSupport implemen
         case "exchangePattern": return org.apache.camel.ExchangePattern.class;
         case "initialsequenceid":
         case "initialSequenceId": return long.class;
+        case "keysharedpolicy":
+        case "keySharedPolicy": return java.lang.String.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "maxpendingmessages":
@@ -242,6 +246,8 @@ public class PulsarEndpointConfigurer extends 
PropertyConfigurerSupport implemen
         case "exchangePattern": return target.getExchangePattern();
         case "initialsequenceid":
         case "initialSequenceId": return 
target.getPulsarConfiguration().getInitialSequenceId();
+        case "keysharedpolicy":
+        case "keySharedPolicy": return 
target.getPulsarConfiguration().getKeySharedPolicy();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "maxpendingmessages":
diff --git 
a/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointUriFactory.java
 
b/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointUriFactory.java
index f798f88248a..b84c18f5472 100644
--- 
a/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointUriFactory.java
+++ 
b/components/camel-pulsar/src/generated/java/org/apache/camel/component/pulsar/PulsarEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class PulsarEndpointUriFactory extends 
org.apache.camel.support.component
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(45);
+        Set<String> props = new HashSet<>(46);
         props.add("ackGroupTimeMillis");
         props.add("ackTimeoutMillis");
         props.add("ackTimeoutRedeliveryBackoff");
@@ -43,6 +43,7 @@ public class PulsarEndpointUriFactory extends 
org.apache.camel.support.component
         props.add("exceptionHandler");
         props.add("exchangePattern");
         props.add("initialSequenceId");
+        props.add("keySharedPolicy");
         props.add("lazyStartProducer");
         props.add("maxPendingMessages");
         props.add("maxPendingMessagesAcrossPartitions");
diff --git 
a/components/camel-pulsar/src/generated/resources/org/apache/camel/component/pulsar/pulsar.json
 
b/components/camel-pulsar/src/generated/resources/org/apache/camel/component/pulsar/pulsar.json
index 75375ef32d1..4386c84a648 100644
--- 
a/components/camel-pulsar/src/generated/resources/org/apache/camel/component/pulsar/pulsar.json
+++ 
b/components/camel-pulsar/src/generated/resources/org/apache/camel/component/pulsar/pulsar.json
@@ -35,37 +35,38 @@
     "consumerNamePrefix": { "index": 10, "kind": "property", "displayName": 
"Consumer Name Prefix", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "cons", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Prefix to add to 
consumer names when a SHARED or FAILOVER subscri [...]
     "consumerQueueSize": { "index": 11, "kind": "property", "displayName": 
"Consumer Queue Size", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Size of the consumer queue - defaults to 10" },
     "deadLetterTopic": { "index": 12, "kind": "property", "displayName": "Dead 
Letter Topic", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Name of the topic where the messages which 
fail maxRedeliverCount times will be sent. Note: if  [...]
-    "maxRedeliverCount": { "index": 13, "kind": "property", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Maximum number of times that a message will be 
redelivered before being sent to the dead  [...]
-    "messageListener": { "index": 14, "kind": "property", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to use the 
messageListener interface, or to receive messages using a separ [...]
-    "negativeAckRedeliveryBackoff": { "index": 15, "kind": "property", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "RedeliveryBackoff to use for negative  [...]
-    "negativeAckRedeliveryDelayMicros": { "index": 16, "kind": "property", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Set the negative acknowledgement delay" },
-    "numberOfConsumers": { "index": 17, "kind": "property", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Number of consumers - defaults to 1" },
-    "numberOfConsumerThreads": { "index": 18, "kind": "property", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Number of threads to 
receive and handle messages when using a separate  [...]
-    "readCompacted": { "index": 19, "kind": "property", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Enable compacted topic reading." },
-    "subscriptionInitialPosition": { "index": 20, "kind": "property", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "conf [...]
-    "subscriptionName": { "index": 21, "kind": "property", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Name of the subscription 
to use" },
-    "subscriptionTopicsMode": { "index": 22, "kind": "property", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"con [...]
-    "subscriptionType": { "index": 23, "kind": "property", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configur [...]
-    "topicsPattern": { "index": 24, "kind": "property", "displayName": "Topics 
Pattern", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer to subsc [...]
-    "pulsarMessageReceiptFactory": { "index": 25, "kind": "property", 
"displayName": "Pulsar Message Receipt Factory", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.pulsar.PulsarMessageReceiptFactory", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Provide a factory to create an alternate implementation of 
PulsarMessageReceipt." },
-    "batcherBuilder": { "index": 26, "kind": "property", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Control batching method used by the producer." 
},
-    "batchingEnabled": { "index": 27, "kind": "property", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
-    "batchingMaxMessages": { "index": 28, "kind": "property", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The maximum size to batch messages." },
-    "batchingMaxPublishDelayMicros": { "index": 29, "kind": "property", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum time period 
within which the messages sent [...]
-    "blockIfQueueFull": { "index": 30, "kind": "property", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to block the 
producing thread if pending messages queue is full or to [...]
-    "chunkingEnabled": { "index": 31, "kind": "property", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether chunking 
of messages is enabled for the producer." },
-    "compressionType": { "index": 32, "kind": "property", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "descri [...]
-    "initialSequenceId": { "index": 33, "kind": "property", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
-    "lazyStartProducer": { "index": 34, "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 [...]
-    "maxPendingMessages": { "index": 35, "kind": "property", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Size of the pending massages queue. When the 
queue is full, by default, any fur [...]
-    "maxPendingMessagesAcrossPartitions": { "index": 36, "kind": "property", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum number of 
pending messages for pa [...]
-    "messageRouter": { "index": 37, "kind": "property", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Custom Message Router to use" },
-    "messageRoutingMode": { "index": 38, "kind": "property", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
" [...]
-    "producerName": { "index": 39, "kind": "property", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Name of the producer. If unset, lets Pulsar 
select a unique identifier." },
-    "sendTimeoutMs": { "index": 40, "kind": "property", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Send timeout in milliseconds" },
-    "autoConfiguration": { "index": 41, "kind": "property", "displayName": 
"Auto Configuration", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.AutoConfiguration", "deprecated": 
false, "autowired": false, "secret": false, "description": "The pulsar auto 
configuration" },
-    "autowiredEnabled": { "index": 42, "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  [...]
-    "pulsarClient": { "index": 43, "kind": "property", "displayName": "Pulsar 
Client", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "org.apache.pulsar.client.api.PulsarClient", 
"deprecated": false, "autowired": true, "secret": false, "description": "The 
pulsar client" }
+    "keySharedPolicy": { "index": 13, "kind": "property", "displayName": "Key 
Shared Policy", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "AUTO_SPLIT", 
"STICKY" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Policy to use by 
consumer when using key-shared subscriptio [...]
+    "maxRedeliverCount": { "index": 14, "kind": "property", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Maximum number of times that a message will be 
redelivered before being sent to the dead  [...]
+    "messageListener": { "index": 15, "kind": "property", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to use the 
messageListener interface, or to receive messages using a separ [...]
+    "negativeAckRedeliveryBackoff": { "index": 16, "kind": "property", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "RedeliveryBackoff to use for negative  [...]
+    "negativeAckRedeliveryDelayMicros": { "index": 17, "kind": "property", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Set the negative acknowledgement delay" },
+    "numberOfConsumers": { "index": 18, "kind": "property", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Number of consumers - defaults to 1" },
+    "numberOfConsumerThreads": { "index": 19, "kind": "property", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Number of threads to 
receive and handle messages when using a separate  [...]
+    "readCompacted": { "index": 20, "kind": "property", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Enable compacted topic reading." },
+    "subscriptionInitialPosition": { "index": 21, "kind": "property", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "conf [...]
+    "subscriptionName": { "index": 22, "kind": "property", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Name of the subscription 
to use" },
+    "subscriptionTopicsMode": { "index": 23, "kind": "property", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"con [...]
+    "subscriptionType": { "index": 24, "kind": "property", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configur [...]
+    "topicsPattern": { "index": 25, "kind": "property", "displayName": "Topics 
Pattern", "group": "consumer", "label": "consumer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer to subsc [...]
+    "pulsarMessageReceiptFactory": { "index": 26, "kind": "property", 
"displayName": "Pulsar Message Receipt Factory", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.pulsar.PulsarMessageReceiptFactory", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"Provide a factory to create an alternate implementation of 
PulsarMessageReceipt." },
+    "batcherBuilder": { "index": 27, "kind": "property", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Control batching method used by the producer." 
},
+    "batchingEnabled": { "index": 28, "kind": "property", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
+    "batchingMaxMessages": { "index": 29, "kind": "property", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The maximum size to batch messages." },
+    "batchingMaxPublishDelayMicros": { "index": 30, "kind": "property", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum time period 
within which the messages sent [...]
+    "blockIfQueueFull": { "index": 31, "kind": "property", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Whether to block the 
producing thread if pending messages queue is full or to [...]
+    "chunkingEnabled": { "index": 32, "kind": "property", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "Control whether chunking 
of messages is enabled for the producer." },
+    "compressionType": { "index": 33, "kind": "property", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "descri [...]
+    "initialSequenceId": { "index": 34, "kind": "property", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
+    "lazyStartProducer": { "index": 35, "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 [...]
+    "maxPendingMessages": { "index": 36, "kind": "property", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Size of the pending massages queue. When the 
queue is full, by default, any fur [...]
+    "maxPendingMessagesAcrossPartitions": { "index": 37, "kind": "property", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "configuration", "description": "The maximum number of 
pending messages for pa [...]
+    "messageRouter": { "index": 38, "kind": "property", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Custom Message Router to use" },
+    "messageRoutingMode": { "index": 39, "kind": "property", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
" [...]
+    "producerName": { "index": 40, "kind": "property", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Name of the producer. If unset, lets Pulsar 
select a unique identifier." },
+    "sendTimeoutMs": { "index": 41, "kind": "property", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"configuration", "description": "Send timeout in milliseconds" },
+    "autoConfiguration": { "index": 42, "kind": "property", "displayName": 
"Auto Configuration", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.AutoConfiguration", "deprecated": 
false, "autowired": false, "secret": false, "description": "The pulsar auto 
configuration" },
+    "autowiredEnabled": { "index": 43, "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  [...]
+    "pulsarClient": { "index": 44, "kind": "property", "displayName": "Pulsar 
Client", "group": "advanced", "label": "advanced", "required": false, "type": 
"object", "javaType": "org.apache.pulsar.client.api.PulsarClient", 
"deprecated": false, "autowired": true, "secret": false, "description": "The 
pulsar client" }
   },
   "headers": {
     "properties": { "index": 0, "kind": "header", "displayName": "", "group": 
"consumer", "label": "consumer", "required": false, "javaType": "Map<String, 
String>", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The properties attached to the message.", 
"constantName": 
"org.apache.camel.component.pulsar.utils.message.PulsarMessageHeaders#PROPERTIES"
 },
@@ -100,35 +101,36 @@
     "consumerNamePrefix": { "index": 12, "kind": "parameter", "displayName": 
"Consumer Name Prefix", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "cons", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Prefix to add to 
consumer names when a SHARED or FAILOVER  [...]
     "consumerQueueSize": { "index": 13, "kind": "parameter", "displayName": 
"Consumer Queue Size", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Size of the consumer queue - defaults to 
10" },
     "deadLetterTopic": { "index": 14, "kind": "parameter", "displayName": 
"Dead Letter Topic", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Name of the topic where the messages 
which fail maxRedeliverCount times will be sent. No [...]
-    "maxRedeliverCount": { "index": 15, "kind": "parameter", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Maximum number of times that a message 
will be redelivered before being sent to th [...]
-    "messageListener": { "index": 16, "kind": "parameter", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to use the 
messageListener interface, or to receive messages using  [...]
-    "negativeAckRedeliveryBackoff": { "index": 17, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "RedeliveryBackoff to use for ne [...]
-    "negativeAckRedeliveryDelayMicros": { "index": 18, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Set the negative acknowledgement delay" 
},
-    "numberOfConsumers": { "index": 19, "kind": "parameter", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Number of consumers - defaults to 1" },
-    "numberOfConsumerThreads": { "index": 20, "kind": "parameter", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Number of threads 
to receive and handle messages when using a se [...]
-    "readCompacted": { "index": 21, "kind": "parameter", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Enable compacted topic reading." },
-    "subscriptionInitialPosition": { "index": 22, "kind": "parameter", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "con [...]
-    "subscriptionName": { "index": 23, "kind": "parameter", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Name of the 
subscription to use" },
-    "subscriptionTopicsMode": { "index": 24, "kind": "parameter", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"co [...]
-    "subscriptionType": { "index": 25, "kind": "parameter", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configu [...]
-    "topicsPattern": { "index": 26, "kind": "parameter", "displayName": 
"Topics Pattern", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer t [...]
-    "bridgeErrorHandler": { "index": 27, "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 li [...]
-    "exceptionHandler": { "index": 28, "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 de [...]
-    "exchangePattern": { "index": 29, "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." },
-    "batcherBuilder": { "index": 30, "kind": "parameter", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Control batching method used by the p 
[...]
-    "batchingEnabled": { "index": 31, "kind": "parameter", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
-    "batchingMaxMessages": { "index": 32, "kind": "parameter", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The maximum size to batch messages." },
-    "batchingMaxPublishDelayMicros": { "index": 33, "kind": "parameter", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum time 
period within which the messag [...]
-    "blockIfQueueFull": { "index": 34, "kind": "parameter", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to block 
the producing thread if pending messages queue is ful [...]
-    "chunkingEnabled": { "index": 35, "kind": "parameter", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
chunking of messages is enabled for the producer." },
-    "compressionType": { "index": 36, "kind": "parameter", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration",  [...]
-    "initialSequenceId": { "index": 37, "kind": "parameter", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
-    "maxPendingMessages": { "index": 38, "kind": "parameter", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Size of the pending massages queue. When 
the queue is full, by default,  [...]
-    "maxPendingMessagesAcrossPartitions": { "index": 39, "kind": "parameter", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum number 
of pending messages [...]
-    "messageRouter": { "index": 40, "kind": "parameter", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Custom Message Router to use" },
-    "messageRoutingMode": { "index": 41, "kind": "parameter", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration",  
[...]
-    "producerName": { "index": 42, "kind": "parameter", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Name of the producer. If unset, lets 
Pulsar select a unique identifier." },
-    "sendTimeoutMs": { "index": 43, "kind": "parameter", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Send timeout in milliseconds" },
-    "lazyStartProducer": { "index": 44, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "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 produ [...]
+    "keySharedPolicy": { "index": 15, "kind": "parameter", "displayName": "Key 
Shared Policy", "group": "consumer", "label": "consumer", "required": false, 
"type": "string", "javaType": "java.lang.String", "enum": [ "AUTO_SPLIT", 
"STICKY" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Policy to use by 
consumer when using key-shared subs [...]
+    "maxRedeliverCount": { "index": 16, "kind": "parameter", "displayName": 
"Max Redeliver Count", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Maximum number of times that a message 
will be redelivered before being sent to th [...]
+    "messageListener": { "index": 17, "kind": "parameter", "displayName": 
"Message Listener", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to use the 
messageListener interface, or to receive messages using  [...]
+    "negativeAckRedeliveryBackoff": { "index": 18, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Backoff", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RedeliveryBackoff", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "RedeliveryBackoff to use for ne [...]
+    "negativeAckRedeliveryDelayMicros": { "index": 19, "kind": "parameter", 
"displayName": "Negative Ack Redelivery Delay Micros", "group": "consumer", 
"label": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
60000000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Set the negative acknowledgement delay" 
},
+    "numberOfConsumers": { "index": 20, "kind": "parameter", "displayName": 
"Number Of Consumers", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Number of consumers - defaults to 1" },
+    "numberOfConsumerThreads": { "index": 21, "kind": "parameter", 
"displayName": "Number Of Consumer Threads", "group": "consumer", "label": 
"consumer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Number of threads 
to receive and handle messages when using a se [...]
+    "readCompacted": { "index": 22, "kind": "parameter", "displayName": "Read 
Compacted", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Enable compacted topic reading." },
+    "subscriptionInitialPosition": { "index": 23, "kind": "parameter", 
"displayName": "Subscription Initial Position", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
 "enum": [ "EARLIEST", "LATEST" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "LATEST", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "con [...]
+    "subscriptionName": { "index": 24, "kind": "parameter", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "subs", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Name of the 
subscription to use" },
+    "subscriptionTopicsMode": { "index": 25, "kind": "parameter", 
"displayName": "Subscription Topics Mode", "group": "consumer", "label": 
"consumer", "required": false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.RegexSubscriptionMode", "enum": [ 
"PersistentOnly", "NonPersistentOnly", "AllTopics" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "PersistentOnly", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"co [...]
+    "subscriptionType": { "index": 26, "kind": "parameter", "displayName": 
"Subscription Type", "group": "consumer", "label": "consumer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.pulsar.utils.consumers.SubscriptionType", "enum": [ 
"EXCLUSIVE", "SHARED", "FAILOVER", "KEY_SHARED" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "EXCLUSIVE", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configu [...]
+    "topicsPattern": { "index": 27, "kind": "parameter", "displayName": 
"Topics Pattern", "group": "consumer", "label": "consumer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Whether the topic is a pattern (regular 
expression) that allows the consumer t [...]
+    "bridgeErrorHandler": { "index": 28, "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 li [...]
+    "exceptionHandler": { "index": 29, "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 de [...]
+    "exchangePattern": { "index": 30, "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." },
+    "batcherBuilder": { "index": 31, "kind": "parameter", "displayName": 
"Batcher Builder", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.BatcherBuilder", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"DEFAULT", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Control batching method used by the p 
[...]
+    "batchingEnabled": { "index": 32, "kind": "parameter", "displayName": 
"Batching Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
automatic batching of messages is enabled for the producer." },
+    "batchingMaxMessages": { "index": 33, "kind": "parameter", "displayName": 
"Batching Max Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The maximum size to batch messages." },
+    "batchingMaxPublishDelayMicros": { "index": 34, "kind": "parameter", 
"displayName": "Batching Max Publish Delay Micros", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum time 
period within which the messag [...]
+    "blockIfQueueFull": { "index": 35, "kind": "parameter", "displayName": 
"Block If Queue Full", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Whether to block 
the producing thread if pending messages queue is ful [...]
+    "chunkingEnabled": { "index": 36, "kind": "parameter", "displayName": 
"Chunking Enabled", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "Control whether 
chunking of messages is enabled for the producer." },
+    "compressionType": { "index": 37, "kind": "parameter", "displayName": 
"Compression Type", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.CompressionType", "enum": [ "NONE", "LZ4", 
"ZLIB", "ZSTD", "SNAPPY" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "NONE", "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration",  [...]
+    "initialSequenceId": { "index": 38, "kind": "parameter", "displayName": 
"Initial Sequence Id", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": -1, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "The first message published will have a 
sequence Id of initialSequenceId 1." },
+    "maxPendingMessages": { "index": 39, "kind": "parameter", "displayName": 
"Max Pending Messages", "group": "producer", "label": "producer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": 1000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Size of the pending massages queue. When 
the queue is full, by default,  [...]
+    "maxPendingMessagesAcrossPartitions": { "index": 40, "kind": "parameter", 
"displayName": "Max Pending Messages Across Partitions", "group": "producer", 
"label": "producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": true, "autowired": false, "secret": false, "defaultValue": 50000, 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration", 
"configurationField": "pulsarConfiguration", "description": "The maximum number 
of pending messages [...]
+    "messageRouter": { "index": 41, "kind": "parameter", "displayName": 
"Message Router", "group": "producer", "label": "producer", "required": false, 
"type": "object", "javaType": "org.apache.pulsar.client.api.MessageRouter", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Custom Message Router to use" },
+    "messageRoutingMode": { "index": 42, "kind": "parameter", "displayName": 
"Message Routing Mode", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.pulsar.client.api.MessageRoutingMode", "enum": [ "SinglePartition", 
"RoundRobinPartition", "CustomPartition" ], "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "RoundRobinPartition", 
"configurationClass": "org.apache.camel.component.pulsar.PulsarConfiguration",  
[...]
+    "producerName": { "index": 43, "kind": "parameter", "displayName": 
"Producer Name", "group": "producer", "label": "producer", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Name of the producer. If unset, lets 
Pulsar select a unique identifier." },
+    "sendTimeoutMs": { "index": 44, "kind": "parameter", "displayName": "Send 
Timeout Ms", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 30000, "configurationClass": 
"org.apache.camel.component.pulsar.PulsarConfiguration", "configurationField": 
"pulsarConfiguration", "description": "Send timeout in milliseconds" },
+    "lazyStartProducer": { "index": 45, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "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 produ [...]
   }
 }
diff --git 
a/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/PulsarConfiguration.java
 
b/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/PulsarConfiguration.java
index 4951eff39c1..12ead0c3b3b 100644
--- 
a/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/PulsarConfiguration.java
+++ 
b/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/PulsarConfiguration.java
@@ -25,6 +25,7 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.pulsar.client.api.BatcherBuilder;
 import org.apache.pulsar.client.api.CompressionType;
+import org.apache.pulsar.client.api.KeySharedPolicy;
 import org.apache.pulsar.client.api.MessageRouter;
 import org.apache.pulsar.client.api.MessageRoutingMode;
 import org.apache.pulsar.client.api.RedeliveryBackoff;
@@ -88,6 +89,8 @@ public class PulsarConfiguration implements Cloneable {
     @UriParam(label = "consumer", defaultValue = "1",
               description = "Number of threads to receive and handle messages 
when using a separate thread pool")
     private int numberOfConsumerThreads = 1;
+    @UriParam(label = "consumer", enums = "AUTO_SPLIT,STICKY", description = 
"Policy to use by consumer when using key-shared subscription type.")
+    private String keySharedPolicy;
     @UriParam(label = "producer", description = "Send timeout in 
milliseconds", defaultValue = "30000")
     private int sendTimeoutMs = 30000;
     @UriParam(label = "producer",
@@ -534,6 +537,14 @@ public class PulsarConfiguration implements Cloneable {
         this.numberOfConsumerThreads = numberOfConsumerThreads;
     }
 
+    public String getKeySharedPolicy() {
+        return keySharedPolicy;
+    }
+
+    public void setKeySharedPolicy(String keySharedPolicy) {
+        this.keySharedPolicy = keySharedPolicy;
+    }
+
     public String getServiceUrl() {
         return serviceUrl;
     }
diff --git 
a/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/utils/consumers/CommonCreationStrategyImpl.java
 
b/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/utils/consumers/CommonCreationStrategyImpl.java
index 32446880a28..73a8ca70677 100644
--- 
a/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/utils/consumers/CommonCreationStrategyImpl.java
+++ 
b/components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/utils/consumers/CommonCreationStrategyImpl.java
@@ -26,6 +26,7 @@ import org.apache.camel.util.ObjectHelper;
 import org.apache.pulsar.client.api.ConsumerBuilder;
 import org.apache.pulsar.client.api.DeadLetterPolicy;
 import org.apache.pulsar.client.api.DeadLetterPolicy.DeadLetterPolicyBuilder;
+import org.apache.pulsar.client.api.KeySharedPolicy;
 
 public final class CommonCreationStrategyImpl {
 
@@ -37,6 +38,15 @@ public final class CommonCreationStrategyImpl {
         final PulsarConfiguration endpointConfiguration = 
pulsarEndpoint.getPulsarConfiguration();
 
         ConsumerBuilder<byte[]> builder = 
pulsarEndpoint.getPulsarClient().newConsumer();
+        if (endpointConfiguration.getKeySharedPolicy() != null) {
+            if 
("AUTO_SPLIT".equalsIgnoreCase(endpointConfiguration.getKeySharedPolicy())) {
+                builder.keySharedPolicy(KeySharedPolicy.autoSplitHashRange());
+            } else if 
("STICKY".equalsIgnoreCase(endpointConfiguration.getKeySharedPolicy())) {
+                builder.keySharedPolicy(KeySharedPolicy.stickyHashRange());
+            } else {
+                throw new IllegalArgumentException("Unsupported 
KeySharedPolicy: " + endpointConfiguration.getKeySharedPolicy());
+            }
+        }
         if (endpointConfiguration.isTopicsPattern()) {
             builder.topicsPattern(pulsarEndpoint.getUri());
             if (endpointConfiguration.getSubscriptionTopicsMode() != null) {
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PulsarComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PulsarComponentBuilderFactory.java
index f9bbd6c244d..2eee0c70edb 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PulsarComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/PulsarComponentBuilderFactory.java
@@ -270,6 +270,21 @@ public interface PulsarComponentBuilderFactory {
             doSetProperty("deadLetterTopic", deadLetterTopic);
             return this;
         }
+        /**
+         * Policy to use by consumer when using key-shared subscription type.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param keySharedPolicy the value to set
+         * @return the dsl builder
+         */
+        default PulsarComponentBuilder keySharedPolicy(
+                java.lang.String keySharedPolicy) {
+            doSetProperty("keySharedPolicy", keySharedPolicy);
+            return this;
+        }
         /**
          * Maximum number of times that a message will be redelivered before
          * being sent to the dead letter queue. If this value is not set, no
@@ -833,6 +848,7 @@ public interface PulsarComponentBuilderFactory {
             case "consumerNamePrefix": 
getOrCreateConfiguration((PulsarComponent) 
component).setConsumerNamePrefix((java.lang.String) value); return true;
             case "consumerQueueSize": 
getOrCreateConfiguration((PulsarComponent) 
component).setConsumerQueueSize((int) value); return true;
             case "deadLetterTopic": getOrCreateConfiguration((PulsarComponent) 
component).setDeadLetterTopic((java.lang.String) value); return true;
+            case "keySharedPolicy": getOrCreateConfiguration((PulsarComponent) 
component).setKeySharedPolicy((java.lang.String) value); return true;
             case "maxRedeliverCount": 
getOrCreateConfiguration((PulsarComponent) 
component).setMaxRedeliverCount((java.lang.Integer) value); return true;
             case "messageListener": getOrCreateConfiguration((PulsarComponent) 
component).setMessageListener((boolean) value); return true;
             case "negativeAckRedeliveryBackoff": 
getOrCreateConfiguration((PulsarComponent) 
component).setNegativeAckRedeliveryBackoff((org.apache.pulsar.client.api.RedeliveryBackoff)
 value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PulsarEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PulsarEndpointBuilderFactory.java
index 9e873e0c34f..61874fdfd6a 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PulsarEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/PulsarEndpointBuilderFactory.java
@@ -313,6 +313,21 @@ public interface PulsarEndpointBuilderFactory {
             doSetProperty("deadLetterTopic", deadLetterTopic);
             return this;
         }
+        /**
+         * Policy to use by consumer when using key-shared subscription type.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param keySharedPolicy the value to set
+         * @return the dsl builder
+         */
+        default PulsarEndpointConsumerBuilder keySharedPolicy(
+                String keySharedPolicy) {
+            doSetProperty("keySharedPolicy", keySharedPolicy);
+            return this;
+        }
         /**
          * Maximum number of times that a message will be redelivered before
          * being sent to the dead letter queue. If this value is not set, no


Reply via email to