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

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

commit 46a0aa5b5aec5e9954edddb4b454eff77974e9de
Author: Claus Ibsen <[email protected]>
AuthorDate: Sun Feb 8 21:34:17 2026 +0100

    CAMEL-22974: camel-coap - Add option to use a shared existing CoapClient
---
 .../apache/camel/catalog/components/coap+tcp.json  | 24 +++++++++--------
 .../org/apache/camel/catalog/components/coap.json  | 24 +++++++++--------
 .../apache/camel/catalog/components/coaps+tcp.json | 24 +++++++++--------
 .../org/apache/camel/catalog/components/coaps.json | 24 +++++++++--------
 .../apache/camel/coap/CoAPComponentConfigurer.java |  3 +++
 .../apache/camel/coap/CoAPEndpointConfigurer.java  |  3 +++
 .../apache/camel/coap/CoAPEndpointUriFactory.java  |  3 ++-
 .../META-INF/org/apache/camel/coap/coap+tcp.json   | 24 +++++++++--------
 .../META-INF/org/apache/camel/coap/coap.json       | 24 +++++++++--------
 .../META-INF/org/apache/camel/coap/coaps+tcp.json  | 24 +++++++++--------
 .../META-INF/org/apache/camel/coap/coaps.json      | 24 +++++++++--------
 .../java/org/apache/camel/coap/CoAPComponent.java  | 17 +++++++++++-
 .../java/org/apache/camel/coap/CoAPEndpoint.java   | 17 +++++++++++-
 .../java/org/apache/camel/coap/CoAPProducer.java   | 14 ++++++++--
 .../component/dsl/CoapComponentBuilderFactory.java | 18 +++++++++++++
 .../dsl/CoapTcpComponentBuilderFactory.java        | 18 +++++++++++++
 .../dsl/CoapsComponentBuilderFactory.java          | 18 +++++++++++++
 .../dsl/CoapsTcpComponentBuilderFactory.java       | 18 +++++++++++++
 .../endpoint/dsl/CoAPEndpointBuilderFactory.java   | 30 ++++++++++++++++++++++
 19 files changed, 258 insertions(+), 93 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap+tcp.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap+tcp.json
index 15b5e122a0d5..d30748a4e534 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap+tcp.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap+tcp.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap.json
index 170028c7b284..92a667ef297c 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coap.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps+tcp.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps+tcp.json
index 04c3a7c28817..78bd908114c4 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps+tcp.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps+tcp.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps.json
index 00f01105e45e..1c577aec5e6a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/coaps.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPComponentConfigurer.java
 
b/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPComponentConfigurer.java
index e287fbcec854..aa4a8a79789a 100644
--- 
a/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPComponentConfigurer.java
+++ 
b/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPComponentConfigurer.java
@@ -27,6 +27,7 @@ public class CoAPComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "autowiredEnabled": 
target.setAutowiredEnabled(property(camelContext, boolean.class, value)); 
return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": 
target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); 
return true;
+        case "client": target.setClient(property(camelContext, 
org.eclipse.californium.core.CoapClient.class, value)); return true;
         case "configurationfile":
         case "configurationFile": 
target.setConfigurationFile(property(camelContext, java.lang.String.class, 
value)); return true;
         case "lazystartproducer":
@@ -42,6 +43,7 @@ public class CoAPComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "autowiredEnabled": return boolean.class;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return boolean.class;
+        case "client": return org.eclipse.californium.core.CoapClient.class;
         case "configurationfile":
         case "configurationFile": return java.lang.String.class;
         case "lazystartproducer":
@@ -58,6 +60,7 @@ public class CoAPComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "autowiredEnabled": return target.isAutowiredEnabled();
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+        case "client": return target.getClient();
         case "configurationfile":
         case "configurationFile": return target.getConfigurationFile();
         case "lazystartproducer":
diff --git 
a/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointConfigurer.java
 
b/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointConfigurer.java
index 7e25f85d6206..cce9f88d3e7a 100644
--- 
a/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointConfigurer.java
+++ 
b/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointConfigurer.java
@@ -32,6 +32,7 @@ public class CoAPEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "bridgeErrorHandler": 
target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); 
return true;
         case "ciphersuites":
         case "cipherSuites": target.setCipherSuites(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "client": target.setClient(property(camelContext, 
org.eclipse.californium.core.CoapClient.class, value)); return true;
         case "clientauthentication":
         case "clientAuthentication": 
target.setClientAuthentication(property(camelContext, 
org.eclipse.californium.elements.config.CertificateAuthenticationMode.class, 
value)); return true;
         case "coapmethodrestrict":
@@ -69,6 +70,7 @@ public class CoAPEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "bridgeErrorHandler": return boolean.class;
         case "ciphersuites":
         case "cipherSuites": return java.lang.String.class;
+        case "client": return org.eclipse.californium.core.CoapClient.class;
         case "clientauthentication":
         case "clientAuthentication": return 
org.eclipse.californium.elements.config.CertificateAuthenticationMode.class;
         case "coapmethodrestrict":
@@ -107,6 +109,7 @@ public class CoAPEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "ciphersuites":
         case "cipherSuites": return target.getCipherSuites();
+        case "client": return target.getClient();
         case "clientauthentication":
         case "clientAuthentication": return target.getClientAuthentication();
         case "coapmethodrestrict":
diff --git 
a/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointUriFactory.java
 
b/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointUriFactory.java
index ee581973e197..38524be0f1f4 100644
--- 
a/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointUriFactory.java
+++ 
b/components/camel-coap/src/generated/java/org/apache/camel/coap/CoAPEndpointUriFactory.java
@@ -24,12 +24,13 @@ public class CoAPEndpointUriFactory extends 
org.apache.camel.support.component.E
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(18);
+        Set<String> props = new HashSet<>(19);
         props.add("advancedCertificateVerifier");
         props.add("advancedPskStore");
         props.add("alias");
         props.add("bridgeErrorHandler");
         props.add("cipherSuites");
+        props.add("client");
         props.add("clientAuthentication");
         props.add("coapMethodRestrict");
         props.add("exceptionHandler");
diff --git 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap+tcp.json
 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap+tcp.json
index 15b5e122a0d5..d30748a4e534 100644
--- 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap+tcp.json
+++ 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap+tcp.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap.json
 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap.json
index 170028c7b284..92a667ef297c 100644
--- 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap.json
+++ 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coap.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps+tcp.json
 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps+tcp.json
index 04c3a7c28817..78bd908114c4 100644
--- 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps+tcp.json
+++ 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps+tcp.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps.json
 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps.json
index 00f01105e45e..1c577aec5e6a 100644
--- 
a/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps.json
+++ 
b/components/camel-coap/src/generated/resources/META-INF/org/apache/camel/coap/coaps.json
@@ -28,7 +28,8 @@
     "configurationFile": { "index": 0, "kind": "property", "displayName": 
"Configuration File", "group": "common", "label": "", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "Name of COAP configuration 
file to load and use. Will by default load from classpath, so use file: as 
prefix to load from file system." },
     "bridgeErrorHandler": { "index": 1, "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 like [...]
     "lazyStartProducer": { "index": 2, "kind": "property", "displayName": 
"Lazy Start Producer", "group": "producer", "label": "producer", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the producer should be started lazy (on the first message). By 
starting lazy you can use this to allow CamelContext and routes to startup in 
situations where a producer may otherwise fail [...]
-    "autowiredEnabled": { "index": 3, "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 t [...]
+    "client": { "index": 3, "kind": "property", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "autowiredEnabled": { "index": 4, "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 t [...]
   },
   "headers": {
     "CamelCoapETag": { "index": 0, "kind": "header", "displayName": "", 
"group": "common", "label": "", "required": false, "javaType": "byte[]", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The CoAP ETag for the response.", "constantName": 
"org.apache.camel.coap.CoAPConstants#COAP_ETAG" },
@@ -46,15 +47,16 @@
     "exceptionHandler": { "index": 5, "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 def [...]
     "exchangePattern": { "index": 6, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "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." },
     "notify": { "index": 7, "kind": "parameter", "displayName": "Notify", 
"group": "producer", "label": "producer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "description": "Notify observers that the 
resource of this URI has changed, based on RFC 7641. Use this flag on a 
destination endpoint, with a URI that matches an existing source endpoint URI." 
},
-    "lazyStartProducer": { "index": 8, "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 produc [...]
-    "advancedCertificateVerifier": { "index": 9, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
-    "advancedPskStore": { "index": 10, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
-    "alias": { "index": 11, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
-    "cipherSuites": { "index": 12, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
-    "clientAuthentication": { "index": 13, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
-    "privateKey": { "index": 14, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
-    "publicKey": { "index": 15, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
-    "recommendedCipherSuitesOnly": { "index": 16, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
-    "sslContextParameters": { "index": 17, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
+    "client": { "index": 8, "kind": "parameter", "displayName": "Client", 
"group": "producer (advanced)", "label": "producer,advanced", "required": 
false, "type": "object", "javaType": "org.eclipse.californium.core.CoapClient", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a shared client for the producers" },
+    "lazyStartProducer": { "index": 9, "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 produc [...]
+    "advancedCertificateVerifier": { "index": 10, "kind": "parameter", 
"displayName": "Advanced Certificate Verifier", "group": "security", "label": 
"security", "required": false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedCertificateVerifier to use to determine trust in raw public keys." 
},
+    "advancedPskStore": { "index": 11, "kind": "parameter", "displayName": 
"Advanced Psk Store", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.eclipse.californium.scandium.dtls.pskstore.AdvancedPskStore", 
"deprecated": false, "autowired": false, "secret": false, "description": "Set 
the AdvancedPskStore to use for pre-shared key." },
+    "alias": { "index": 12, "kind": "parameter", "displayName": "Alias", 
"group": "security", "label": "security", "required": false, "type": "enum", 
"javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the alias used to query the KeyStore for the private key and certificate. This 
parameter is used when we are enabling TLS with certificates on the service 
side, and similarly on the client sid [...]
+    "cipherSuites": { "index": 13, "kind": "parameter", "displayName": "Cipher 
Suites", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the cipherSuites String. This is a 
comma separated String of ciphersuites to configure. If it is not specified, 
then it falls back to getting the ciphersuites from the sslContextParameters 
object." },
+    "clientAuthentication": { "index": 14, "kind": "parameter", "displayName": 
"Client Authentication", "group": "security", "label": "security", "required": 
false, "type": "enum", "javaType": 
"org.eclipse.californium.elements.config.CertificateAuthenticationMode", 
"enum": [ "NONE", "WANTED", "NEEDED" ], "deprecated": false, "autowired": 
false, "secret": false, "description": "Sets the configuration options for 
server-side client-authentication requirements. The value must be one of NONE 
[...]
+    "privateKey": { "index": 15, "kind": "parameter", "displayName": "Private 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PrivateKey", "deprecated": false, 
"autowired": false, "secret": true, "description": "Set the configured private 
key for use with Raw Public Key." },
+    "publicKey": { "index": 16, "kind": "parameter", "displayName": "Public 
Key", "group": "security", "label": "security", "required": false, "type": 
"object", "javaType": "java.security.PublicKey", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the configured public 
key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "index": 17, "kind": "parameter", 
"displayName": "Recommended Cipher Suites Only", "group": "security", "label": 
"security", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "The CBC cipher suites are not recommended. If you want to use 
them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "index": 18, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "Set the 
SSLContextParameters object for setting up TLS. This is required for coapstcp, 
and for coaps when we are using certificates for TLS (as opposed to RPK or 
PKS)." }
   }
 }
diff --git 
a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java 
b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java
index 3a2f4c014a1c..4b0b19cd9d68 100644
--- 
a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java
+++ 
b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPComponent.java
@@ -43,6 +43,7 @@ import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.HostUtils;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
+import org.eclipse.californium.core.CoapClient;
 import org.eclipse.californium.core.CoapServer;
 import org.eclipse.californium.core.network.CoapEndpoint;
 import org.eclipse.californium.elements.config.CertificateAuthenticationMode;
@@ -64,6 +65,8 @@ public class CoAPComponent extends DefaultComponent 
implements RestConsumerFacto
 
     @Metadata
     private String configurationFile;
+    @Metadata(label = "producer,advanced")
+    private CoapClient client;
 
     final Map<Integer, CoapServer> servers = new ConcurrentHashMap<>();
 
@@ -155,7 +158,8 @@ public class CoAPComponent extends DefaultComponent 
implements RestConsumerFacto
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, 
Map<String, Object> parameters) throws Exception {
-        Endpoint endpoint = new CoAPEndpoint(uri, this);
+        CoAPEndpoint endpoint = new CoAPEndpoint(uri, this);
+        endpoint.setClient(client);
         setProperties(endpoint, parameters);
         return endpoint;
     }
@@ -257,6 +261,17 @@ public class CoAPComponent extends DefaultComponent 
implements RestConsumerFacto
         this.configurationFile = configurationFile;
     }
 
+    public CoapClient getClient() {
+        return client;
+    }
+
+    /**
+     * To use a shared client for the producers
+     */
+    public void setClient(CoapClient client) {
+        this.client = client;
+    }
+
     @Override
     protected void doStart() throws Exception {
         super.doStart();
diff --git 
a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPEndpoint.java 
b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPEndpoint.java
index f62152ebb922..929d2694fb92 100644
--- 
a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPEndpoint.java
+++ 
b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPEndpoint.java
@@ -107,6 +107,8 @@ public class CoAPEndpoint extends DefaultEndpoint 
implements EndpointServiceLoca
     private boolean observable;
     @UriParam(label = "producer", defaultValue = "false")
     private boolean notify;
+    @UriParam(label = "producer,advanced")
+    private CoapClient client;
 
     private CoAPComponent component;
 
@@ -153,7 +155,9 @@ public class CoAPEndpoint extends DefaultEndpoint 
implements EndpointServiceLoca
         if (isNotify()) {
             return new CoAPNotifier(this);
         } else {
-            return new CoAPProducer(this);
+            CoAPProducer answer = new CoAPProducer(this);
+            answer.setClient(client);
+            return answer;
         }
     }
 
@@ -257,6 +261,17 @@ public class CoAPEndpoint extends DefaultEndpoint 
implements EndpointServiceLoca
         this.notify = notify;
     }
 
+    public CoapClient getClient() {
+        return client;
+    }
+
+    /**
+     * To use a shared client for the producers
+     */
+    public void setClient(CoapClient client) {
+        this.client = client;
+    }
+
     /**
      * Get the SSLContextParameters object for setting up TLS. This is 
required for coaps+tcp, and for coaps when we are
      * using certificates for TLS (as opposed to RPK or PKS).
diff --git 
a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPProducer.java 
b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPProducer.java
index 1c51a23c3f6b..21cea49926a3 100644
--- 
a/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPProducer.java
+++ 
b/components/camel-coap/src/main/java/org/apache/camel/coap/CoAPProducer.java
@@ -28,13 +28,22 @@ import org.eclipse.californium.core.coap.MediaTypeRegistry;
  */
 public class CoAPProducer extends DefaultProducer {
     private final CoAPEndpoint endpoint;
-    private volatile CoapClient client;
+    private CoapClient client;
+    private boolean shutdownClient;
 
     public CoAPProducer(CoAPEndpoint endpoint) {
         super(endpoint);
         this.endpoint = endpoint;
     }
 
+    public CoapClient getClient() {
+        return client;
+    }
+
+    public void setClient(CoapClient client) {
+        this.client = client;
+    }
+
     @Override
     public void process(Exchange exchange) throws Exception {
         initClient();
@@ -85,6 +94,7 @@ public class CoAPProducer extends DefaultProducer {
         try {
             if (client == null) {
                 client = endpoint.createCoapClient(endpoint.getUri());
+                shutdownClient = true;
             }
         } finally {
             lock.unlock();
@@ -93,7 +103,7 @@ public class CoAPProducer extends DefaultProducer {
 
     @Override
     protected void doStop() throws Exception {
-        if (client != null) {
+        if (shutdownClient && client != null) {
             client.shutdown();
             client = null;
         }
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapComponentBuilderFactory.java
index 17421358439f..33a6989c2182 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapComponentBuilderFactory.java
@@ -121,6 +121,23 @@ public interface CoapComponentBuilderFactory {
             return this;
         }
     
+        /**
+         * To use a shared client for the producers.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.eclipse.californium.core.CoapClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default CoapComponentBuilder 
client(org.eclipse.californium.core.CoapClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+    
         
         /**
          * Whether autowiring is enabled. This is used for automatic autowiring
@@ -160,6 +177,7 @@ public interface CoapComponentBuilderFactory {
             case "configurationFile": ((CoAPComponent) 
component).setConfigurationFile((java.lang.String) value); return true;
             case "bridgeErrorHandler": ((CoAPComponent) 
component).setBridgeErrorHandler((boolean) value); return true;
             case "lazyStartProducer": ((CoAPComponent) 
component).setLazyStartProducer((boolean) value); return true;
+            case "client": ((CoAPComponent) 
component).setClient((org.eclipse.californium.core.CoapClient) value); return 
true;
             case "autowiredEnabled": ((CoAPComponent) 
component).setAutowiredEnabled((boolean) value); return true;
             default: return false;
             }
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapTcpComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapTcpComponentBuilderFactory.java
index 83caf4a585cb..edcd2ae2f46d 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapTcpComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapTcpComponentBuilderFactory.java
@@ -121,6 +121,23 @@ public interface CoapTcpComponentBuilderFactory {
             return this;
         }
     
+        /**
+         * To use a shared client for the producers.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.eclipse.californium.core.CoapClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default CoapTcpComponentBuilder 
client(org.eclipse.californium.core.CoapClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+    
         
         /**
          * Whether autowiring is enabled. This is used for automatic autowiring
@@ -160,6 +177,7 @@ public interface CoapTcpComponentBuilderFactory {
             case "configurationFile": ((CoAPComponent) 
component).setConfigurationFile((java.lang.String) value); return true;
             case "bridgeErrorHandler": ((CoAPComponent) 
component).setBridgeErrorHandler((boolean) value); return true;
             case "lazyStartProducer": ((CoAPComponent) 
component).setLazyStartProducer((boolean) value); return true;
+            case "client": ((CoAPComponent) 
component).setClient((org.eclipse.californium.core.CoapClient) value); return 
true;
             case "autowiredEnabled": ((CoAPComponent) 
component).setAutowiredEnabled((boolean) value); return true;
             default: return false;
             }
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsComponentBuilderFactory.java
index 9849bcfaa5e9..507814d2fd12 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsComponentBuilderFactory.java
@@ -121,6 +121,23 @@ public interface CoapsComponentBuilderFactory {
             return this;
         }
     
+        /**
+         * To use a shared client for the producers.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.eclipse.californium.core.CoapClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default CoapsComponentBuilder 
client(org.eclipse.californium.core.CoapClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+    
         
         /**
          * Whether autowiring is enabled. This is used for automatic autowiring
@@ -160,6 +177,7 @@ public interface CoapsComponentBuilderFactory {
             case "configurationFile": ((CoAPComponent) 
component).setConfigurationFile((java.lang.String) value); return true;
             case "bridgeErrorHandler": ((CoAPComponent) 
component).setBridgeErrorHandler((boolean) value); return true;
             case "lazyStartProducer": ((CoAPComponent) 
component).setLazyStartProducer((boolean) value); return true;
+            case "client": ((CoAPComponent) 
component).setClient((org.eclipse.californium.core.CoapClient) value); return 
true;
             case "autowiredEnabled": ((CoAPComponent) 
component).setAutowiredEnabled((boolean) value); return true;
             default: return false;
             }
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsTcpComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsTcpComponentBuilderFactory.java
index 5a02ba35d0bd..d947183a0613 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsTcpComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/CoapsTcpComponentBuilderFactory.java
@@ -121,6 +121,23 @@ public interface CoapsTcpComponentBuilderFactory {
             return this;
         }
     
+        /**
+         * To use a shared client for the producers.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.eclipse.californium.core.CoapClient&lt;/code&gt;
+         * type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default CoapsTcpComponentBuilder 
client(org.eclipse.californium.core.CoapClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+    
         
         /**
          * Whether autowiring is enabled. This is used for automatic autowiring
@@ -160,6 +177,7 @@ public interface CoapsTcpComponentBuilderFactory {
             case "configurationFile": ((CoAPComponent) 
component).setConfigurationFile((java.lang.String) value); return true;
             case "bridgeErrorHandler": ((CoAPComponent) 
component).setBridgeErrorHandler((boolean) value); return true;
             case "lazyStartProducer": ((CoAPComponent) 
component).setLazyStartProducer((boolean) value); return true;
+            case "client": ((CoAPComponent) 
component).setClient((org.eclipse.californium.core.CoapClient) value); return 
true;
             case "autowiredEnabled": ((CoAPComponent) 
component).setAutowiredEnabled((boolean) value); return true;
             default: return false;
             }
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CoAPEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CoAPEndpointBuilderFactory.java
index 722636996c7d..b2a8ef0d6d19 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CoAPEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/CoAPEndpointBuilderFactory.java
@@ -829,6 +829,36 @@ public interface CoAPEndpointBuilderFactory {
             return (CoAPEndpointProducerBuilder) this;
         }
 
+        /**
+         * To use a shared client for the producers.
+         * 
+         * The option is a: 
<code>org.eclipse.californium.core.CoapClient</code>
+         * type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCoAPEndpointProducerBuilder 
client(org.eclipse.californium.core.CoapClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * To use a shared client for the producers.
+         * 
+         * The option will be converted to a
+         * <code>org.eclipse.californium.core.CoapClient</code> type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param client the value to set
+         * @return the dsl builder
+         */
+        default AdvancedCoAPEndpointProducerBuilder client(String client) {
+            doSetProperty("client", client);
+            return this;
+        }
         /**
          * Whether the producer should be started lazy (on the first message).
          * By starting lazy you can use this to allow CamelContext and routes 
to

Reply via email to