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

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


The following commit(s) were added to refs/heads/main by this push:
     new 2a7ce3b390b CAMEL-21589: Enable manual acks mqtt5
2a7ce3b390b is described below

commit 2a7ce3b390bf1f3e44565f263541c3c7949406ec
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jan 8 09:31:46 2025 +0100

    CAMEL-21589: Enable manual acks mqtt5
---
 .../springboot/catalog/components/paho-mqtt5.json  | 50 +++++++++++-----------
 .../src/main/docs/paho-mqtt5.json                  |  7 +++
 .../PahoMqtt5ComponentConfiguration.java           | 18 ++++++++
 3 files changed, 51 insertions(+), 24 deletions(-)

diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/paho-mqtt5.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/paho-mqtt5.json
index 5668947f84d..8b1991bc590 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/paho-mqtt5.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/paho-mqtt5.json
@@ -45,17 +45,18 @@
     "willRetained": { "index": 18, "kind": "property", "displayName": "Will 
Retained", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Last Will and 
Testament (LWT) for the connection. In the event that this client u [...]
     "willTopic": { "index": 19, "kind": "property", "displayName": "Will 
Topic", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Last Will and 
Testament (LWT) for the connection. In the event that this client unexpectedly 
loses its [...]
     "bridgeErrorHandler": { "index": 20, "kind": "property", "displayName": 
"Bridge Error Handler", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Allows for bridging the consumer to the Camel routing Error Handler, which 
mean any exceptions (if possible) occurred while the Camel consumer is trying 
to pickup incoming messages, or the lik [...]
-    "lazyStartProducer": { "index": 21, "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 [...]
-    "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  [...]
-    "client": { "index": 23, "kind": "property", "displayName": "Client", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.eclipse.paho.mqttv5.client.MqttClient", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a shared Paho 
client" },
-    "customWebSocketHeaders": { "index": 24, "kind": "property", 
"displayName": "Custom Web Socket Headers", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Custom 
WebSocket Headers for th [...]
-    "executorServiceTimeout": { "index": 25, "kind": "property", 
"displayName": "Executor Service Timeout", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Set the time in seconds 
that the executor service should wait when  [...]
-    "httpsHostnameVerificationEnabled": { "index": 26, "kind": "property", 
"displayName": "Https Hostname Verification Enabled", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Whether SSL 
HostnameVerifier is enabled [...]
-    "password": { "index": 27, "kind": "property", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Password to be used for 
authentication against the MQTT broker" },
-    "socketFactory": { "index": 28, "kind": "property", "displayName": "Socket 
Factory", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "javax.net.SocketFactory", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SocketFactory 
to use. This allows an application to apply its own policies ar [...]
-    "sslClientProps": { "index": 29, "kind": "property", "displayName": "Ssl 
Client Props", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": "java.util.Properties", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SSL properties 
for the connection. Note that these properties are only valid  [...]
-    "sslHostnameVerifier": { "index": 30, "kind": "property", "displayName": 
"Ssl Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the 
HostnameVerifier for the SSL connection. Note that it wil [...]
-    "userName": { "index": 31, "kind": "property", "displayName": "User Name", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Username to be used for 
authentication against the MQTT broker" }
+    "manualAcksEnabled": { "index": 21, "kind": "property", "displayName": 
"Manual Acks Enabled", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets whether to use 
manual acknowledgements for the client. By defaul [...]
+    "lazyStartProducer": { "index": 22, "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 [...]
+    "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  [...]
+    "client": { "index": 24, "kind": "property", "displayName": "Client", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.eclipse.paho.mqttv5.client.MqttClient", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a shared Paho 
client" },
+    "customWebSocketHeaders": { "index": 25, "kind": "property", 
"displayName": "Custom Web Socket Headers", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Custom 
WebSocket Headers for th [...]
+    "executorServiceTimeout": { "index": 26, "kind": "property", 
"displayName": "Executor Service Timeout", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Set the time in seconds 
that the executor service should wait when  [...]
+    "httpsHostnameVerificationEnabled": { "index": 27, "kind": "property", 
"displayName": "Https Hostname Verification Enabled", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Whether SSL 
HostnameVerifier is enabled [...]
+    "password": { "index": 28, "kind": "property", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Password to be used for 
authentication against the MQTT broker" },
+    "socketFactory": { "index": 29, "kind": "property", "displayName": "Socket 
Factory", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "javax.net.SocketFactory", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SocketFactory 
to use. This allows an application to apply its own policies ar [...]
+    "sslClientProps": { "index": 30, "kind": "property", "displayName": "Ssl 
Client Props", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": "java.util.Properties", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SSL properties 
for the connection. Note that these properties are only valid  [...]
+    "sslHostnameVerifier": { "index": 31, "kind": "property", "displayName": 
"Ssl Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the 
HostnameVerifier for the SSL connection. Note that it wil [...]
+    "userName": { "index": 32, "kind": "property", "displayName": "User Name", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Username to be used for 
authentication against the MQTT broker" }
   },
   "headers": {
     "CamelMqttTopic": { "index": 0, "kind": "header", "displayName": "", 
"group": "consumer", "label": "consumer", "required": false, "javaType": 
"String", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "The name of the topic.", "constantName": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Constants#MQTT_TOPIC" },
@@ -86,18 +87,19 @@
     "willQos": { "index": 17, "kind": "parameter", "displayName": "Will Qos", 
"group": "common", "label": "", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Last Will and 
Testament (LWT) for the connection. In the event that this client unexpectedly 
loses [...]
     "willRetained": { "index": 18, "kind": "parameter", "displayName": "Will 
Retained", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Last Will and 
Testament (LWT) for the connection. In the event that this client  [...]
     "willTopic": { "index": 19, "kind": "parameter", "displayName": "Will 
Topic", "group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Last Will and 
Testament (LWT) for the connection. In the event that this client unexpectedly 
loses it [...]
-    "bridgeErrorHandler": { "index": 20, "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": 21, "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": 22, "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." },
-    "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 [...]
-    "client": { "index": 24, "kind": "parameter", "displayName": "Client", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.eclipse.paho.mqttv5.client.MqttClient", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use an existing mqtt 
client" },
-    "customWebSocketHeaders": { "index": 25, "kind": "parameter", 
"displayName": "Custom Web Socket Headers", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Custom 
WebSocket Headers for t [...]
-    "executorServiceTimeout": { "index": 26, "kind": "parameter", 
"displayName": "Executor Service Timeout", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Set the time in seconds 
that the executor service should wait when [...]
-    "httpsHostnameVerificationEnabled": { "index": 27, "kind": "parameter", 
"displayName": "Https Hostname Verification Enabled", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Whether SSL 
HostnameVerifier is enable [...]
-    "password": { "index": 28, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Password to be used for 
authentication against the MQTT broker" },
-    "socketFactory": { "index": 29, "kind": "parameter", "displayName": 
"Socket Factory", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": "javax.net.SocketFactory", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SocketFactory 
to use. This allows an application to apply its own policies a [...]
-    "sslClientProps": { "index": 30, "kind": "parameter", "displayName": "Ssl 
Client Props", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": "java.util.Properties", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SSL properties 
for the connection. Note that these properties are only valid [...]
-    "sslHostnameVerifier": { "index": 31, "kind": "parameter", "displayName": 
"Ssl Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the 
HostnameVerifier for the SSL connection. Note that it wi [...]
-    "userName": { "index": 32, "kind": "parameter", "displayName": "User 
Name", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Username to be used for 
authentication against the MQTT broker" }
+    "manualAcksEnabled": { "index": 20, "kind": "parameter", "displayName": 
"Manual Acks Enabled", "group": "consumer", "label": "consumer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets whether to use 
manual acknowledgements for the client. By defau [...]
+    "bridgeErrorHandler": { "index": 21, "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": 22, "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": 23, "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." },
+    "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 [...]
+    "client": { "index": 25, "kind": "parameter", "displayName": "Client", 
"group": "advanced", "label": "advanced", "required": false, "type": "object", 
"javaType": "org.eclipse.paho.mqttv5.client.MqttClient", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use an existing mqtt 
client" },
+    "customWebSocketHeaders": { "index": 26, "kind": "parameter", 
"displayName": "Custom Web Socket Headers", "group": "advanced", "label": 
"advanced", "required": false, "type": "object", "javaType": 
"java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the Custom 
WebSocket Headers for t [...]
+    "executorServiceTimeout": { "index": 27, "kind": "parameter", 
"displayName": "Executor Service Timeout", "group": "advanced", "label": 
"advanced", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Set the time in seconds 
that the executor service should wait when [...]
+    "httpsHostnameVerificationEnabled": { "index": 28, "kind": "parameter", 
"displayName": "Https Hostname Verification Enabled", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Whether SSL 
HostnameVerifier is enable [...]
+    "password": { "index": 29, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Password to be used for 
authentication against the MQTT broker" },
+    "socketFactory": { "index": 30, "kind": "parameter", "displayName": 
"Socket Factory", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": "javax.net.SocketFactory", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SocketFactory 
to use. This allows an application to apply its own policies a [...]
+    "sslClientProps": { "index": 31, "kind": "parameter", "displayName": "Ssl 
Client Props", "group": "security", "label": "security", "required": false, 
"type": "object", "javaType": "java.util.Properties", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the SSL properties 
for the connection. Note that these properties are only valid [...]
+    "sslHostnameVerifier": { "index": 32, "kind": "parameter", "displayName": 
"Ssl Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Sets the 
HostnameVerifier for the SSL connection. Note that it wi [...]
+    "userName": { "index": 33, "kind": "parameter", "displayName": "User 
Name", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, 
"deprecationNote": "", "autowired": false, "secret": true, 
"configurationClass": 
"org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration", 
"configurationField": "configuration", "description": "Username to be used for 
authentication against the MQTT broker" }
   }
 }
diff --git 
a/components-starter/camel-paho-mqtt5-starter/src/main/docs/paho-mqtt5.json 
b/components-starter/camel-paho-mqtt5-starter/src/main/docs/paho-mqtt5.json
index 301c27fe7ba..c9db6ae36fe 100644
--- a/components-starter/camel-paho-mqtt5-starter/src/main/docs/paho-mqtt5.json
+++ b/components-starter/camel-paho-mqtt5-starter/src/main/docs/paho-mqtt5.json
@@ -124,6 +124,13 @@
       "sourceType": 
"org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
       "defaultValue": false
     },
+    {
+      "name": "camel.component.paho-mqtt5.manual-acks-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to use manual acknowledgements for the 
client. By default, this is false and message will be automatically 
acknowledged upon received by Camel. If set to true, the acknowledgement is 
deferred to be acknowledged by Camel at the end of processing the message. This 
ensures that only successfully processed messages is acknowledged, and allows 
to rollback and retry the message in case of an error during routing in Camel.",
+      "sourceType": 
"org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
     {
       "name": "camel.component.paho-mqtt5.max-reconnect-delay",
       "type": "java.lang.Integer",
diff --git 
a/components-starter/camel-paho-mqtt5-starter/src/main/java/org/apache/camel/component/paho/mqtt5/springboot/PahoMqtt5ComponentConfiguration.java
 
b/components-starter/camel-paho-mqtt5-starter/src/main/java/org/apache/camel/component/paho/mqtt5/springboot/PahoMqtt5ComponentConfiguration.java
index 57e3e4bcff2..f3364970d02 100644
--- 
a/components-starter/camel-paho-mqtt5-starter/src/main/java/org/apache/camel/component/paho/mqtt5/springboot/PahoMqtt5ComponentConfiguration.java
+++ 
b/components-starter/camel-paho-mqtt5-starter/src/main/java/org/apache/camel/component/paho/mqtt5/springboot/PahoMqtt5ComponentConfiguration.java
@@ -217,6 +217,16 @@ public class PahoMqtt5ComponentConfiguration
      * with exceptions, that will be logged at WARN or ERROR level and ignored.
      */
     private Boolean bridgeErrorHandler = false;
+    /**
+     * Sets whether to use manual acknowledgements for the client. By default,
+     * this is false and message will be automatically acknowledged upon
+     * received by Camel. If set to true, the acknowledgement is deferred to be
+     * acknowledged by Camel at the end of processing the message. This ensures
+     * that only successfully processed messages is acknowledged, and allows to
+     * rollback and retry the message in case of an error during routing in
+     * Camel.
+     */
+    private Boolean manualAcksEnabled = false;
     /**
      * Whether the producer should be started lazy (on the first message). By
      * starting lazy you can use this to allow CamelContext and routes to
@@ -490,6 +500,14 @@ public class PahoMqtt5ComponentConfiguration
         this.bridgeErrorHandler = bridgeErrorHandler;
     }
 
+    public Boolean getManualAcksEnabled() {
+        return manualAcksEnabled;
+    }
+
+    public void setManualAcksEnabled(Boolean manualAcksEnabled) {
+        this.manualAcksEnabled = manualAcksEnabled;
+    }
+
     public Boolean getLazyStartProducer() {
         return lazyStartProducer;
     }

Reply via email to