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 02cb7cac217 CAMEL-19262: camel-azure-eventbus - Apache Camel wrapper 
for Service … (#12510)
02cb7cac217 is described below

commit 02cb7cac2176480c574c957ac9b1a3f5f04fc321
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Dec 20 20:22:01 2023 +0100

    CAMEL-19262: camel-azure-eventbus - Apache Camel wrapper for Service … 
(#12510)
    
    * CAMEL-19262: camel-azure-eventbus - Apache Camel wrapper for Service Bus 
stops receiving message
    
    * CAMEL-19262: camel-azure-eventbus - Apache Camel wrapper for Service Bus 
stops receiving message
---
 .../camel/catalog/components/azure-servicebus.json | 44 +++++++++++-----------
 .../servicebus/ServiceBusComponentConfigurer.java  |  6 +++
 .../servicebus/ServiceBusEndpointConfigurer.java   |  6 +++
 .../servicebus/ServiceBusEndpointUriFactory.java   |  3 +-
 .../azure/servicebus/azure-servicebus.json         | 44 +++++++++++-----------
 .../azure/servicebus/ServiceBusConfiguration.java  | 15 +++++++-
 .../azure/servicebus/ServiceBusConsumer.java       | 41 +++++++++++++-------
 .../AzureServicebusComponentBuilderFactory.java    | 18 +++++++++
 .../dsl/ServiceBusEndpointBuilderFactory.java      | 34 +++++++++++++++++
 9 files changed, 153 insertions(+), 58 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json
index 94ff5262488..7491984503e 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/azure-servicebus.json
@@ -38,17 +38,18 @@
     "serviceBusReceiveMode": { "index": 13, "kind": "property", "displayName": 
"Service Bus Receive Mode", "group": "consumer", "label": "consumer", 
"required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.models.ServiceBusReceiveMode", "enum": [ 
"PEEK_LOCK", "RECEIVE_AND_DELETE" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "PEEK_LOCK", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", "con 
[...]
     "subQueue": { "index": 14, "kind": "property", "displayName": "Sub Queue", 
"group": "consumer", "label": "consumer", "required": false, "type": "object", 
"javaType": "com.azure.messaging.servicebus.models.SubQueue", "enum": [ "NONE", 
"DEAD_LETTER_QUEUE", "TRANSFER_DEAD_LETTER_QUEUE" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "descriptio [...]
     "subscriptionName": { "index": 15, "kind": "property", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the name of the 
subscription in the topic to listen to. topicOrQueueName an [...]
-    "binary": { "index": 16, "kind": "property", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
-    "lazyStartProducer": { "index": 17, "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 [...]
-    "producerOperation": { "index": 18, "kind": "property", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
-    "scheduledEnqueueTime": { "index": 19, "kind": "property", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the S [...]
-    "senderAsyncClient": { "index": 20, "kind": "property", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderAs [...]
-    "serviceBusTransactionContext": { "index": 21, "kind": "property", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents  [...]
-    "autowiredEnabled": { "index": 22, "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  [...]
-    "connectionString": { "index": 23, "kind": "property", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus  [...]
-    "credentialType": { "index": 24, "kind": "property", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfi [...]
-    "fullyQualifiedNamespace": { "index": 25, "kind": "property", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
-    "tokenCredential": { "index": 26, "kind": "property", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
+    "reconnectDelay": { "index": 16, "kind": "property", "displayName": 
"Reconnect Delay", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "If the consumer has 
connection failure to Azure Servic [...]
+    "binary": { "index": 17, "kind": "property", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
+    "lazyStartProducer": { "index": 18, "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 [...]
+    "producerOperation": { "index": 19, "kind": "property", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
+    "scheduledEnqueueTime": { "index": 20, "kind": "property", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the S [...]
+    "senderAsyncClient": { "index": 21, "kind": "property", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderAs [...]
+    "serviceBusTransactionContext": { "index": 22, "kind": "property", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents  [...]
+    "autowiredEnabled": { "index": 23, "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  [...]
+    "connectionString": { "index": 24, "kind": "property", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus  [...]
+    "credentialType": { "index": 25, "kind": "property", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfi [...]
+    "fullyQualifiedNamespace": { "index": 26, "kind": "property", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
+    "tokenCredential": { "index": 27, "kind": "property", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
   },
   "headers": {
     "CamelAzureServiceBusApplicationProperties": { "index": 0, "kind": 
"header", "displayName": "", "group": "common", "label": "common", "required": 
false, "javaType": "Map<String, Object>", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
application properties (also known as custom properties) on messages sent and 
received by the producer and consumer, respectively.", "constantName": 
"org.apache.camel.component.azure.servicebus.Servi [...]
@@ -96,15 +97,16 @@
     "bridgeErrorHandler": { "index": 15, "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 (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
     "exceptionHandler": { "index": 16, "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": 17, "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." },
-    "binary": { "index": 18, "kind": "parameter", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
-    "producerOperation": { "index": 19, "kind": "parameter", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusCon [...]
-    "scheduledEnqueueTime": { "index": 20, "kind": "parameter", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the  [...]
-    "senderAsyncClient": { "index": 21, "kind": "parameter", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderA [...]
-    "serviceBusTransactionContext": { "index": 22, "kind": "parameter", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents [...]
-    "lazyStartProducer": { "index": 23, "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 [...]
-    "connectionString": { "index": 24, "kind": "parameter", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus [...]
-    "credentialType": { "index": 25, "kind": "parameter", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
-    "fullyQualifiedNamespace": { "index": 26, "kind": "parameter", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
-    "tokenCredential": { "index": 27, "kind": "parameter", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
+    "reconnectDelay": { "index": 18, "kind": "parameter", "displayName": 
"Reconnect Delay", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "If the consumer has 
connection failure to Azure Servi [...]
+    "binary": { "index": 19, "kind": "parameter", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
+    "producerOperation": { "index": 20, "kind": "parameter", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusCon [...]
+    "scheduledEnqueueTime": { "index": 21, "kind": "parameter", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the  [...]
+    "senderAsyncClient": { "index": 22, "kind": "parameter", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderA [...]
+    "serviceBusTransactionContext": { "index": 23, "kind": "parameter", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents [...]
+    "lazyStartProducer": { "index": 24, "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 [...]
+    "connectionString": { "index": 25, "kind": "parameter", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus [...]
+    "credentialType": { "index": 26, "kind": "parameter", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
+    "fullyQualifiedNamespace": { "index": 27, "kind": "parameter", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
+    "tokenCredential": { "index": 28, "kind": "parameter", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
   }
 }
diff --git 
a/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusComponentConfigurer.java
 
b/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusComponentConfigurer.java
index 1a46e268be3..c322856c874 100644
--- 
a/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusComponentConfigurer.java
+++ 
b/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusComponentConfigurer.java
@@ -64,6 +64,8 @@ public class ServiceBusComponentConfigurer extends 
PropertyConfigurerSupport imp
         case "proxyOptions": 
getOrCreateConfiguration(target).setProxyOptions(property(camelContext, 
com.azure.core.amqp.ProxyOptions.class, value)); return true;
         case "receiverasyncclient":
         case "receiverAsyncClient": 
getOrCreateConfiguration(target).setReceiverAsyncClient(property(camelContext, 
com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient.class, value)); 
return true;
+        case "reconnectdelay":
+        case "reconnectDelay": 
getOrCreateConfiguration(target).setReconnectDelay(property(camelContext, 
int.class, value)); return true;
         case "scheduledenqueuetime":
         case "scheduledEnqueueTime": 
getOrCreateConfiguration(target).setScheduledEnqueueTime(property(camelContext, 
java.time.OffsetDateTime.class, value)); return true;
         case "senderasyncclient":
@@ -128,6 +130,8 @@ public class ServiceBusComponentConfigurer extends 
PropertyConfigurerSupport imp
         case "proxyOptions": return com.azure.core.amqp.ProxyOptions.class;
         case "receiverasyncclient":
         case "receiverAsyncClient": return 
com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient.class;
+        case "reconnectdelay":
+        case "reconnectDelay": return int.class;
         case "scheduledenqueuetime":
         case "scheduledEnqueueTime": return java.time.OffsetDateTime.class;
         case "senderasyncclient":
@@ -188,6 +192,8 @@ public class ServiceBusComponentConfigurer extends 
PropertyConfigurerSupport imp
         case "proxyOptions": return 
getOrCreateConfiguration(target).getProxyOptions();
         case "receiverasyncclient":
         case "receiverAsyncClient": return 
getOrCreateConfiguration(target).getReceiverAsyncClient();
+        case "reconnectdelay":
+        case "reconnectDelay": return 
getOrCreateConfiguration(target).getReconnectDelay();
         case "scheduledenqueuetime":
         case "scheduledEnqueueTime": return 
getOrCreateConfiguration(target).getScheduledEnqueueTime();
         case "senderasyncclient":
diff --git 
a/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointConfigurer.java
 
b/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointConfigurer.java
index cc0f831106b..d2501cd900b 100644
--- 
a/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointConfigurer.java
+++ 
b/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointConfigurer.java
@@ -58,6 +58,8 @@ public class ServiceBusEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "proxyOptions": 
target.getConfiguration().setProxyOptions(property(camelContext, 
com.azure.core.amqp.ProxyOptions.class, value)); return true;
         case "receiverasyncclient":
         case "receiverAsyncClient": 
target.getConfiguration().setReceiverAsyncClient(property(camelContext, 
com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient.class, value)); 
return true;
+        case "reconnectdelay":
+        case "reconnectDelay": 
target.getConfiguration().setReconnectDelay(property(camelContext, int.class, 
value)); return true;
         case "scheduledenqueuetime":
         case "scheduledEnqueueTime": 
target.getConfiguration().setScheduledEnqueueTime(property(camelContext, 
java.time.OffsetDateTime.class, value)); return true;
         case "senderasyncclient":
@@ -123,6 +125,8 @@ public class ServiceBusEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "proxyOptions": return com.azure.core.amqp.ProxyOptions.class;
         case "receiverasyncclient":
         case "receiverAsyncClient": return 
com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient.class;
+        case "reconnectdelay":
+        case "reconnectDelay": return int.class;
         case "scheduledenqueuetime":
         case "scheduledEnqueueTime": return java.time.OffsetDateTime.class;
         case "senderasyncclient":
@@ -184,6 +188,8 @@ public class ServiceBusEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "proxyOptions": return 
target.getConfiguration().getProxyOptions();
         case "receiverasyncclient":
         case "receiverAsyncClient": return 
target.getConfiguration().getReceiverAsyncClient();
+        case "reconnectdelay":
+        case "reconnectDelay": return 
target.getConfiguration().getReconnectDelay();
         case "scheduledenqueuetime":
         case "scheduledEnqueueTime": return 
target.getConfiguration().getScheduledEnqueueTime();
         case "senderasyncclient":
diff --git 
a/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointUriFactory.java
 
b/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointUriFactory.java
index d9c5ae7807b..e83b2e872d2 100644
--- 
a/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointUriFactory.java
+++ 
b/components/camel-azure/camel-azure-servicebus/src/generated/java/org/apache/camel/component/azure/servicebus/ServiceBusEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class ServiceBusEndpointUriFactory extends 
org.apache.camel.support.compo
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(28);
+        Set<String> props = new HashSet<>(29);
         props.add("amqpRetryOptions");
         props.add("amqpTransportType");
         props.add("binary");
@@ -41,6 +41,7 @@ public class ServiceBusEndpointUriFactory extends 
org.apache.camel.support.compo
         props.add("producerOperation");
         props.add("proxyOptions");
         props.add("receiverAsyncClient");
+        props.add("reconnectDelay");
         props.add("scheduledEnqueueTime");
         props.add("senderAsyncClient");
         props.add("serviceBusReceiveMode");
diff --git 
a/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json
 
b/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json
index 94ff5262488..7491984503e 100644
--- 
a/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json
+++ 
b/components/camel-azure/camel-azure-servicebus/src/generated/resources/org/apache/camel/component/azure/servicebus/azure-servicebus.json
@@ -38,17 +38,18 @@
     "serviceBusReceiveMode": { "index": 13, "kind": "property", "displayName": 
"Service Bus Receive Mode", "group": "consumer", "label": "consumer", 
"required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.models.ServiceBusReceiveMode", "enum": [ 
"PEEK_LOCK", "RECEIVE_AND_DELETE" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "PEEK_LOCK", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", "con 
[...]
     "subQueue": { "index": 14, "kind": "property", "displayName": "Sub Queue", 
"group": "consumer", "label": "consumer", "required": false, "type": "object", 
"javaType": "com.azure.messaging.servicebus.models.SubQueue", "enum": [ "NONE", 
"DEAD_LETTER_QUEUE", "TRANSFER_DEAD_LETTER_QUEUE" ], "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "descriptio [...]
     "subscriptionName": { "index": 15, "kind": "property", "displayName": 
"Subscription Name", "group": "consumer", "label": "consumer", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the name of the 
subscription in the topic to listen to. topicOrQueueName an [...]
-    "binary": { "index": 16, "kind": "property", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
-    "lazyStartProducer": { "index": 17, "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 [...]
-    "producerOperation": { "index": 18, "kind": "property", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
-    "scheduledEnqueueTime": { "index": 19, "kind": "property", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the S [...]
-    "senderAsyncClient": { "index": 20, "kind": "property", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderAs [...]
-    "serviceBusTransactionContext": { "index": 21, "kind": "property", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents  [...]
-    "autowiredEnabled": { "index": 22, "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  [...]
-    "connectionString": { "index": 23, "kind": "property", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus  [...]
-    "credentialType": { "index": 24, "kind": "property", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfi [...]
-    "fullyQualifiedNamespace": { "index": 25, "kind": "property", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
-    "tokenCredential": { "index": 26, "kind": "property", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
+    "reconnectDelay": { "index": 16, "kind": "property", "displayName": 
"Reconnect Delay", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "If the consumer has 
connection failure to Azure Servic [...]
+    "binary": { "index": 17, "kind": "property", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
+    "lazyStartProducer": { "index": 18, "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 [...]
+    "producerOperation": { "index": 19, "kind": "property", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
+    "scheduledEnqueueTime": { "index": 20, "kind": "property", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the S [...]
+    "senderAsyncClient": { "index": 21, "kind": "property", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderAs [...]
+    "serviceBusTransactionContext": { "index": 22, "kind": "property", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents  [...]
+    "autowiredEnabled": { "index": 23, "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  [...]
+    "connectionString": { "index": 24, "kind": "property", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus  [...]
+    "credentialType": { "index": 25, "kind": "property", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfi [...]
+    "fullyQualifiedNamespace": { "index": 26, "kind": "property", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
+    "tokenCredential": { "index": 27, "kind": "property", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
   },
   "headers": {
     "CamelAzureServiceBusApplicationProperties": { "index": 0, "kind": 
"header", "displayName": "", "group": "common", "label": "common", "required": 
false, "javaType": "Map<String, Object>", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": false, "description": "The 
application properties (also known as custom properties) on messages sent and 
received by the producer and consumer, respectively.", "constantName": 
"org.apache.camel.component.azure.servicebus.Servi [...]
@@ -96,15 +97,16 @@
     "bridgeErrorHandler": { "index": 15, "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 (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
     "exceptionHandler": { "index": 16, "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": 17, "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." },
-    "binary": { "index": 18, "kind": "parameter", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
-    "producerOperation": { "index": 19, "kind": "parameter", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusCon [...]
-    "scheduledEnqueueTime": { "index": 20, "kind": "parameter", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the  [...]
-    "senderAsyncClient": { "index": 21, "kind": "parameter", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderA [...]
-    "serviceBusTransactionContext": { "index": 22, "kind": "parameter", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents [...]
-    "lazyStartProducer": { "index": 23, "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 [...]
-    "connectionString": { "index": 24, "kind": "parameter", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus [...]
-    "credentialType": { "index": 25, "kind": "parameter", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
-    "fullyQualifiedNamespace": { "index": 26, "kind": "parameter", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
-    "tokenCredential": { "index": 27, "kind": "parameter", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
+    "reconnectDelay": { "index": 18, "kind": "parameter", "displayName": 
"Reconnect Delay", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "If the consumer has 
connection failure to Azure Servi [...]
+    "binary": { "index": 19, "kind": "parameter", "displayName": "Binary", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Set binary mode. If 
true, message body will be sent as byte. By default, it is false." },
+    "producerOperation": { "index": 20, "kind": "parameter", "displayName": 
"Producer Operation", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
 "enum": [ "sendMessages", "scheduleMessages" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "sendMessages", 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusCon [...]
+    "scheduledEnqueueTime": { "index": 21, "kind": "parameter", "displayName": 
"Scheduled Enqueue Time", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets OffsetDateTime at 
which the message should appear in the  [...]
+    "senderAsyncClient": { "index": 22, "kind": "parameter", "displayName": 
"Sender Async Client", "group": "producer", "label": "producer", "required": 
false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusSenderAsyncClient", "deprecated": 
false, "deprecationNote": "", "autowired": true, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets SenderA [...]
+    "serviceBusTransactionContext": { "index": 23, "kind": "parameter", 
"displayName": "Service Bus Transaction Context", "group": "producer", "label": 
"producer", "required": false, "type": "object", "javaType": 
"com.azure.messaging.servicebus.ServiceBusTransactionContext", "deprecated": 
false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Represents [...]
+    "lazyStartProducer": { "index": 24, "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 [...]
+    "connectionString": { "index": 25, "kind": "parameter", "displayName": 
"Connection String", "group": "security", "label": "security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Sets the connection 
string for a Service Bus namespace or a specific Service Bus [...]
+    "credentialType": { "index": 26, "kind": "parameter", "displayName": 
"Credential Type", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": 
"org.apache.camel.component.azure.servicebus.CredentialType", "enum": [ 
"AZURE_IDENTITY", "CONNECTION_STRING", "TOKEN_CREDENTIAL" ], "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": 
"CONNECTION_STRING", "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConf [...]
+    "fullyQualifiedNamespace": { "index": 27, "kind": "parameter", 
"displayName": "Fully Qualified Namespace", "group": "security", "label": 
"security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "Fully Qualified 
Namespace of the service bus" },
+    "tokenCredential": { "index": 28, "kind": "parameter", "displayName": 
"Token Credential", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"com.azure.core.credential.TokenCredential", "deprecated": false, "autowired": 
false, "secret": true, "configurationClass": 
"org.apache.camel.component.azure.servicebus.ServiceBusConfiguration", 
"configurationField": "configuration", "description": "A TokenCredential for 
Azure AD authentication." }
   }
 }
diff --git 
a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java
 
b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java
index 4350cd83c4b..07bbb044eca 100644
--- 
a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java
+++ 
b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConfiguration.java
@@ -87,11 +87,13 @@ public class ServiceBusConfiguration implements Cloneable {
     private ServiceBusTransactionContext serviceBusTransactionContext;
     @UriParam(label = "producer")
     private OffsetDateTime scheduledEnqueueTime;
-    @UriParam(label = "producer", defaultValue = "false")
+    @UriParam(label = "producer")
     private boolean binary;
     @UriParam(label = "security", enums = 
"AZURE_IDENTITY,CONNECTION_STRING,TOKEN_CREDENTIAL",
               defaultValue = "CONNECTION_STRING")
     private CredentialType credentialType = CONNECTION_STRING;
+    @UriParam(label = "consumer,advanced", defaultValue = "5000")
+    private int reconnectDelay = 5000;
 
     /**
      * Selected topic name or the queue name, that is depending on 
serviceBusType config. For example if
@@ -369,6 +371,17 @@ public class ServiceBusConfiguration implements Cloneable {
         this.credentialType = credentialType;
     }
 
+    public int getReconnectDelay() {
+        return reconnectDelay;
+    }
+
+    /**
+     * If the consumer has connection failure to Azure ServiceBus, then delay 
(millis) some time before re-connecting.
+     */
+    public void setReconnectDelay(int reconnectDelay) {
+        this.reconnectDelay = reconnectDelay;
+    }
+
     // *************************************************
     //
     // *************************************************
diff --git 
a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConsumer.java
 
b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConsumer.java
index 5359ab99f28..9756ca91e7c 100644
--- 
a/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConsumer.java
+++ 
b/components/camel-azure/camel-azure-servicebus/src/main/java/org/apache/camel/component/azure/servicebus/ServiceBusConsumer.java
@@ -32,10 +32,14 @@ import 
org.apache.camel.component.azure.servicebus.operations.ServiceBusReceiver
 import org.apache.camel.support.DefaultConsumer;
 import org.apache.camel.support.SynchronizationAdapter;
 import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import reactor.core.scheduler.Schedulers;
 
 public class ServiceBusConsumer extends DefaultConsumer {
 
+    private static final Logger LOG = 
LoggerFactory.getLogger(ServiceBusConsumer.class);
+
     private ServiceBusReceiverAsyncClientWrapper clientWrapper;
     private ServiceBusReceiverOperations operations;
 
@@ -55,6 +59,12 @@ public class ServiceBusConsumer extends DefaultConsumer {
     protected void doStart() throws Exception {
         super.doStart();
 
+        createAndConnectClient();
+    }
+
+    protected void createAndConnectClient() {
+        LOG.debug("Creating connection to Azure ServiceBus");
+
         // create the client
         final ServiceBusReceiverAsyncClient client = 
getConfiguration().getReceiverAsyncClient() != null
                 ? getConfiguration().getReceiverAsyncClient()
@@ -176,22 +186,25 @@ public class ServiceBusConsumer extends DefaultConsumer {
     }
 
     private void onErrorListener(final Throwable errorContext) {
-        final Exchange exchange = createServiceBusExchange(errorContext);
-
-        // log exception if an exception occurred and was not handled
-        if (exchange.getException() != null) {
-            getExceptionHandler().handleException("Error processing exchange", 
exchange,
-                    exchange.getException());
+        LOG.warn("Error from Azure ServiceBus due to {} - Reconnecting in {} 
seconds", errorContext.getMessage(),
+                getConfiguration().getReconnectDelay());
+        if (LOG.isDebugEnabled()) {
+            LOG.warn("Error from Azure ServiceBus (incl stacktrace)", 
errorContext);
+        }
+        if (getConfiguration().getReconnectDelay() > 0) {
+            try {
+                Thread.sleep(getConfiguration().getReconnectDelay());
+            } catch (InterruptedException e) {
+                // ignore
+            }
         }
-    }
-
-    private Exchange createServiceBusExchange(final Throwable errorContext) {
-        final Exchange exchange = createExchange(true);
-
-        // set exception
-        exchange.setException(errorContext);
 
-        return exchange;
+        try {
+            clientWrapper.close();
+        } catch (Exception e) {
+            // ignore
+        }
+        createAndConnectClient();
     }
 
     private class ConsumerOnCompletion extends SynchronizationAdapter {
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AzureServicebusComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AzureServicebusComponentBuilderFactory.java
index 58c0c733b38..4146ed9bc09 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AzureServicebusComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AzureServicebusComponentBuilderFactory.java
@@ -339,6 +339,23 @@ public interface AzureServicebusComponentBuilderFactory {
             doSetProperty("subscriptionName", subscriptionName);
             return this;
         }
+        /**
+         * If the consumer has connection failure to Azure ServiceBus, then
+         * delay (millis) some time before re-connecting.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 5000
+         * Group: consumer (advanced)
+         * 
+         * @param reconnectDelay the value to set
+         * @return the dsl builder
+         */
+        default AzureServicebusComponentBuilder reconnectDelay(
+                int reconnectDelay) {
+            doSetProperty("reconnectDelay", reconnectDelay);
+            return this;
+        }
         /**
          * Set binary mode. If true, message body will be sent as byte. By
          * default, it is false.
@@ -572,6 +589,7 @@ public interface AzureServicebusComponentBuilderFactory {
             case "serviceBusReceiveMode": 
getOrCreateConfiguration((ServiceBusComponent) 
component).setServiceBusReceiveMode((com.azure.messaging.servicebus.models.ServiceBusReceiveMode)
 value); return true;
             case "subQueue": getOrCreateConfiguration((ServiceBusComponent) 
component).setSubQueue((com.azure.messaging.servicebus.models.SubQueue) value); 
return true;
             case "subscriptionName": 
getOrCreateConfiguration((ServiceBusComponent) 
component).setSubscriptionName((java.lang.String) value); return true;
+            case "reconnectDelay": 
getOrCreateConfiguration((ServiceBusComponent) 
component).setReconnectDelay((int) value); return true;
             case "binary": getOrCreateConfiguration((ServiceBusComponent) 
component).setBinary((boolean) value); return true;
             case "lazyStartProducer": ((ServiceBusComponent) 
component).setLazyStartProducer((boolean) value); return true;
             case "producerOperation": 
getOrCreateConfiguration((ServiceBusComponent) 
component).setProducerOperation((org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition)
 value); return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java
index 4115181a615..dd7862f3967 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ServiceBusEndpointBuilderFactory.java
@@ -759,6 +759,40 @@ public interface ServiceBusEndpointBuilderFactory {
             doSetProperty("exchangePattern", exchangePattern);
             return this;
         }
+        /**
+         * If the consumer has connection failure to Azure ServiceBus, then
+         * delay (millis) some time before re-connecting.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 5000
+         * Group: consumer (advanced)
+         * 
+         * @param reconnectDelay the value to set
+         * @return the dsl builder
+         */
+        default AdvancedServiceBusEndpointConsumerBuilder reconnectDelay(
+                int reconnectDelay) {
+            doSetProperty("reconnectDelay", reconnectDelay);
+            return this;
+        }
+        /**
+         * If the consumer has connection failure to Azure ServiceBus, then
+         * delay (millis) some time before re-connecting.
+         * 
+         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 5000
+         * Group: consumer (advanced)
+         * 
+         * @param reconnectDelay the value to set
+         * @return the dsl builder
+         */
+        default AdvancedServiceBusEndpointConsumerBuilder reconnectDelay(
+                String reconnectDelay) {
+            doSetProperty("reconnectDelay", reconnectDelay);
+            return this;
+        }
     }
 
     /**

Reply via email to