You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/02/27 21:09:38 UTC
(camel) 01/01: CAMEL-21809: camel-coap - Allow to use configuration file for coap component to make it possible to configure the server with the many options.
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 8c419a31c87c2dbbebaad9d3ceaa505b9efc5c62
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Feb 27 22:05:15 2025 +0100
CAMEL-21809: camel-coap - Allow to use configuration file for coap component to make it possible to configure the server with the many options.
---
.../apache/camel/catalog/components/coap+tcp.json | 7 +-
.../org/apache/camel/catalog/components/coap.json | 7 +-
.../apache/camel/catalog/components/coaps+tcp.json | 7 +-
.../org/apache/camel/catalog/components/coaps.json | 7 +-
.../apache/camel/coap/CoAPComponentConfigurer.java | 6 +
.../META-INF/org/apache/camel/coap/coap+tcp.json | 7 +-
.../META-INF/org/apache/camel/coap/coap.json | 7 +-
.../META-INF/org/apache/camel/coap/coaps+tcp.json | 7 +-
.../META-INF/org/apache/camel/coap/coaps.json | 7 +-
.../camel-coap/src/main/docs/coap-component.adoc | 464 +++++++++++++++++++++
.../java/org/apache/camel/coap/CoAPComponent.java | 52 ++-
.../java/org/apache/camel/coap/CoAPEndpoint.java | 35 +-
.../component/dsl/CoapComponentBuilderFactory.java | 17 +
.../dsl/CoapTcpComponentBuilderFactory.java | 17 +
.../dsl/CoapsComponentBuilderFactory.java | 17 +
.../dsl/CoapsTcpComponentBuilderFactory.java | 17 +
16 files changed, 624 insertions(+), 57 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 56fb2d55227..08940f85c3f 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
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 2ff0f74406d..14c2ace715d 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
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 bc30462f410..c64b0eb8a1f 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
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 45f10bfed6a..deaa1080a3f 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
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 9e4a1d967cd..e287fbcec85 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,8 @@ 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 "configurationfile":
+ case "configurationFile": target.setConfigurationFile(property(camelContext, java.lang.String.class, value)); return true;
case "lazystartproducer":
case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
default: return false;
@@ -40,6 +42,8 @@ public class CoAPComponentConfigurer extends PropertyConfigurerSupport implement
case "autowiredEnabled": return boolean.class;
case "bridgeerrorhandler":
case "bridgeErrorHandler": return boolean.class;
+ case "configurationfile":
+ case "configurationFile": return java.lang.String.class;
case "lazystartproducer":
case "lazyStartProducer": return boolean.class;
default: return null;
@@ -54,6 +58,8 @@ public class CoAPComponentConfigurer extends PropertyConfigurerSupport implement
case "autowiredEnabled": return target.isAutowiredEnabled();
case "bridgeerrorhandler":
case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+ case "configurationfile":
+ case "configurationFile": return target.getConfigurationFile();
case "lazystartproducer":
case "lazyStartProducer": return target.isLazyStartProducer();
default: return null;
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 56fb2d55227..08940f85c3f 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
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 2ff0f74406d..14c2ace715d 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
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 bc30462f410..c64b0eb8a1f 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
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 45f10bfed6a..deaa1080a3f 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
@@ -25,9 +25,10 @@
"remote": true
},
"componentProperties": {
- "bridgeErrorHandler": { "index": 0, "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": 1, "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": 2, "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 [...]
+ "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 [...]
},
"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" },
diff --git a/components/camel-coap/src/main/docs/coap-component.adoc b/components/camel-coap/src/main/docs/coap-component.adoc
index 11c0825df4b..9e3ab2c81b6 100644
--- a/components/camel-coap/src/main/docs/coap-component.adoc
+++ b/components/camel-coap/src/main/docs/coap-component.adoc
@@ -81,3 +81,467 @@ The following rules determine which request method the CoAP producer will use to
include::spring-boot:partial$starter.adoc[]
+
+== Configuring COAP Server
+
+The COAP server has many configuration options, and this can be configured from a properties file such as `Californium3.properties`.
+You can specfiy the location of this configuration file on the Camel CoAPComponent, such as:
+
+[source,java]
+----
+CoAPComponent coap = context.getComponent("coap", CoAPComponent.class);
+coap.setCconfigurationFile("/etc/myapp/Californium3.properties");
+----
+
+The configuration file has many options, here is a sample from CoAP 3.13 release from the
+https://github.com/eclipse-californium/californium/blob/main/demo-apps/cf-simplefile-server/README.md[cf-simplefile-server] example:
+
+[source,properties]
+----
+# Californium CoAP Properties file for Fileserver
+# Thu Feb 27 21:43:28 CET 2025
+#
+# Maximum payload size with coap/UDP using an external network interface.
+# Default: 64
+EXTERNAL_UDP_MAX_MESSAGE_SIZE=64
+# Preferred blocksize for blockwise transfer with coap/UDP using an
+# external network interface.
+# Default: 64
+EXTERNAL_UDP_PREFERRED_BLOCK_SIZE=64
+# Random factor for initial CoAP acknowledge timeout.
+# Default: 1.5
+COAP.ACK_INIT_RANDOM=1.5
+# Initial CoAP acknowledge timeout.
+# Default: 2[s]
+COAP.ACK_TIMEOUT=2[s]
+# Scale factor for CoAP acknowledge backoff-timeout.
+# Default: 2.0
+COAP.ACK_TIMEOUT_SCALE=2.0
+# Enable automatic failover on "entity too large" response.
+# Default: true
+COAP.BLOCKWISE_ENTITY_TOO_LARGE_AUTO_FAILOVER=true
+# Reuse token for blockwise requests. Ease traceability but may introduce
+# vulnerability.
+# Default: false
+COAP.BLOCKWISE_REUSE_TOKEN=false
+# Interval to validate lifetime of blockwise status.
+# Default: 5[s]
+COAP.BLOCKWISE_STATUS_INTERVAL=5[s]
+# Lifetime of blockwise status.
+# Default: 5[min]
+COAP.BLOCKWISE_STATUS_LIFETIME=5[min]
+# Use block1 option strictly, even for error-responses.
+# Default: false
+COAP.BLOCKWISE_STRICT_BLOCK1_OPTION=false
+# Use block2 option strictly, even if block2 is not required.
+# Default: false
+COAP.BLOCKWISE_STRICT_BLOCK2_OPTION=false
+# CoAP port.
+# Default: 5683
+COAP.COAP_PORT=5683
+# CoAP DTLS port.
+# Default: 5684
+COAP.COAP_SECURE_PORT=5684
+# Congestion-Control algorithm (still experimental).
+# [NULL, COCOA, COCOA_STRONG, BASIC_RTO, LINUX_RTO, PEAKHOPPER_RTO].
+# Default: NULL
+COAP.CONGESTION_CONTROL_ALGORITHM=NULL
+# Use inet-address for congestion control, even if an other peer identity
+# is used. Enable, if NAT changes are also changing the quality of the
+# ip-route.
+# Default: false
+COAP.CONGESTION_CONTROL_USE_INET_ADDRESS=false
+# Crop rotation period.
+# Default: 247[s]
+COAP.CROP_ROTATION_PERIOD=247[s]
+# Deduplicator algorithm.
+# [MARK_AND_SWEEP, PEERS_MARK_AND_SWEEP, CROP_ROTATION, NO_DEDUPLICATOR].
+# Default: MARK_AND_SWEEP
+COAP.DEDUPLICATOR=MARK_AND_SWEEP
+# Automatic replace entries in deduplicator.
+# Default: true
+COAP.DEDUPLICATOR_AUTO_REPLACE=true
+# CoAP maximum exchange lifetime for CON requests.
+# Default: 247[s]
+COAP.EXCHANGE_LIFETIME=247[s]
+# Timespan a multicast server may spread the response.
+# Default: 5[s]
+COAP.LEISURE=5[s]
+# Mark and sweep interval.
+# Default: 10[s]
+COAP.MARK_AND_SWEEP_INTERVAL=10[s]
+# Maximum CoAP acknowledge timeout.
+# Default: 1[min]
+COAP.MAX_ACK_TIMEOUT=1[min]
+# Maximum number of active peers.
+# Default: 150000
+COAP.MAX_ACTIVE_PEERS=150000
+# Maximum transmission latency for messages.
+# Default: 100[s]
+COAP.MAX_LATENCY=100[s]
+# Maximum payload size.
+# Default: 1024
+COAP.MAX_MESSAGE_SIZE=512
+# Maximum inactive period of peer.
+# Default: 10[min]
+COAP.MAX_PEER_INACTIVITY_PERIOD=10[min]
+# Maximum size of resource body. 0 to disable transparent blockwise
+# mode.
+# Default: 8192
+COAP.MAX_RESOURCE_BODY_SIZE=2097152
+# Maximum number of CoAP retransmissions.
+# Default: 4
+COAP.MAX_RETRANSMIT=4
+# Maximum number of observes on server-side. 0 to disable this limitation.
+# Default: 50000
+COAP.MAX_SERVER_OBSERVES=50000
+# Maximum server response delay.
+# Default: 250[s]
+COAP.MAX_SERVER_RESPONSE_DELAY=250[s]
+# Maximum time to wait for ACK or RST after the first transmission of
+# a CON message.
+# Default: 93[s]
+COAP.MAX_TRANSMIT_WAIT=93[s]
+# MID tracker.
+# [NULL, GROUPED, MAPBASED].
+# Default: GROUPED
+COAP.MID_TACKER=GROUPED
+# Number of MID tracker groups.
+# Default: 16
+COAP.MID_TRACKER_GROUPS=16
+# Base MID for multicast requests.
+# Default: 65000
+COAP.MULTICAST_BASE_MID=65000
+# CoAP maximum lifetime for NON requests.
+# Default: 145[s]
+COAP.NON_LIFETIME=145[s]
+# Interval time to check notifications receiver using a CON message.
+# Default: 2[min]
+COAP.NOTIFICATION_CHECK_INTERVAL=2[min]
+# Interval counter to check notifications receiver using a CON message.
+# Default: 100
+COAP.NOTIFICATION_CHECK_INTERVAL_COUNT=100
+# Additional time (backoff) to the max-age option
+# for waiting for the next notification before reregister.
+# Default: 2[s]
+COAP.NOTIFICATION_REREGISTRATION_BACKOFF=2[s]
+# Maximum concurrent transmissions.
+# Default: 1
+COAP.NSTART=1
+# Maximum messages kept per peer for PEERS_MARK_AND_SWEEP.
+# Default: 64
+COAP.PEERS_MARK_AND_SWEEP_MESSAGES=64
+# Preferred blocksize for blockwise transfer.
+# Default: 512
+COAP.PREFERRED_BLOCK_SIZE=512
+# Probing rate to peers, which didn't response before. Currently not
+# used.
+# Default: 1.0
+COAP.PROBING_RATE=1.0
+# Protocol stage thread count.
+# Default: 1
+COAP.PROTOCOL_STAGE_THREAD_COUNT=14
+# Response matching mode.
+# [STRICT, RELAXED, PRINCIPAL, PRINCIPAL_IDENTITY].
+# Default: STRICT
+COAP.RESPONSE_MATCHING=STRICT
+# Process empty messages strictly according RFC7252, 4.1 as format error.
+# Disable to ignore additional data as tokens or options.
+# Default: true
+COAP.STRICT_EMPTY_MESSAGE_FORMAT=true
+# Number of block per TCP-blockwise bulk transfer.
+# Default: 1
+COAP.TCP_NUMBER_OF_BULK_BLOCKS=4
+# Limit of token size.
+# Default: 8
+COAP.TOKEN_SIZE_LIMIT=8
+# Use message off-loading, when data is not longer required.
+# Default: false
+COAP.USE_MESSAGE_OFFLOADING=false
+# Use initially a random value for MID.
+# Default: true
+COAP.USE_RANDOM_MID_START=true
+# DTLS additional initial timeout for ECC related flights.
+# Default: 0[ms]
+DTLS.ADDITIONAL_ECC_TIMEOUT=0[ms]
+# DTLS auto-handshake timeout. After that period without exchanging
+# messages, a new message will initiate a handshake. Must not be used
+# with SERVER_ONLY! Common value will be "30[s]" in order to compensate
+# assumed NAT timeouts. <blank>, disabled.
+DTLS.AUTO_HANDSHAKE_TIMEOUT=
+# List of DTLS certificate key algorithms.
+# On the client side used to select the default cipher-suites, on the
+# server side to negotiate the client's certificate.
+# List of [EC, RSA].
+DTLS.CERTIFICATE_KEY_ALGORITHMS=
+# DTLS supported certificate types ordered by preference.
+# List of [RAW_PUBLIC_KEY, X_509].
+# Default: RAW_PUBLIC_KEY, X_509
+DTLS.CERTIFICATE_TYPES=RAW_PUBLIC_KEY, X_509
+# List of DTLS cipher-suites.
+# If not recommended cipher suites are intended to be used, switch off
+# DTLS_RECOMMENDED_CIPHER_SUITES_ONLY.
+# The supported cipher suites are evaluated at runtime and may differ
+# from the ones when creating this properties file.
+# List of [TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256, TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA378,
+# TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256, TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256,
+# TLS_PSK_WITH_AES_128_GCM_SHA256, TLS_PSK_WITH_AES_256_GCM_SHA378,
+# TLS_PSK_WITH_AES_128_CCM_8, TLS_PSK_WITH_AES_256_CCM_8, TLS_PSK_WITH_AES_128_CCM,
+# TLS_PSK_WITH_AES_256_CCM, TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, TLS_PSK_WITH_AES_128_CBC_SHA256,
+# TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
+# TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
+# TLS_ECDHE_ECDSA_WITH_AES_128_CCM, TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
+# TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
+# TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+# TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
+# TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA].
+DTLS.CIPHER_SUITES=
+# DTLS connection ID length. <blank> disabled, 0 enables support without
+# active use of CID.
+DTLS.CONNECTION_ID_LENGTH=
+# DTLS cluster-node ID used for connection ID. <blank> not used.
+DTLS.CONNECTION_ID_NODE_ID=
+# Number of DTLS connector threads.
+# Default: 1
+DTLS.CONNECTOR_THREAD_COUNT=14
+# List of DTLS curves (supported groups).
+# Defaults to all supported curves of the JCE at runtime.
+# List of [secp256r1, secp384r1, secp521r1, X25519, X448].
+DTLS.CURVES=
+# DTLS default handshake mode.
+# [none, auto].
+# Default: auto
+DTLS.DEFAULT_HANDSHAKE_MODE=
+# DTLS extended master secret mode.
+# [NONE, OPTIONAL, ENABLED, REQUIRED].
+# Default: ENABLED
+DTLS.EXTENDED_MASTER_SECRET_MODE=ENABLED
+# Quiet time to reset MAC error filter.
+# The MAC error filter blocks all traffic for an endpoint, if since
+# the last quiet period the number of new MAC errors exceeds a threshold.
+# 0 to disable the MAC error filter.
+# Default: 0[ms]
+DTLS.MAC_ERROR_FILTER_QUIET_TIME=0[ms]
+# Threshold of current MAC errors to block all traffic for an endpoint.
+# 0 to disable the MAC error filter.
+# Default: 0
+DTLS.MAC_ERROR_FILTER_THRESHOLD=0
+# DTLS maximum connections.
+# Default: 150000
+DTLS.MAX_CONNECTIONS=150000
+# DTLS maximum size of all deferred inbound messages.
+# Default: 8192
+DTLS.MAX_DEFERRED_INBOUND_RECORDS=8192
+# DTLS maximum deferred outbound application messages.
+# Default: 10
+DTLS.MAX_DEFERRED_OUTBOUND_APPLICATION_MESSAGES=10
+# DTLS maximum length of reassembled fragmented handshake message.
+# Must be large enough for used certificates.
+# Default: 8192
+DTLS.MAX_FRAGMENTED_HANDSHAKE_MESSAGE_LENGTH=8192
+# DTLS maximum fragment length (RFC 6066).
+# [BYTES_512, BYTES_1024, BYTES_2048, BYTES_4096].
+DTLS.MAX_FRAGMENT_SIZE=
+# Maximum number of jobs for DTLS handshake results.
+# Default: 5000
+DTLS.MAX_PENDING_HANDSHAKE_RESULT_JOBS=5000
+# Maximum number of jobs for inbound DTLS messages.
+# Default: 50000
+DTLS.MAX_PENDING_INBOUND_JOBS=50000
+# Maximum number of jobs for outbound DTLS messages.
+# Default: 50000
+DTLS.MAX_PENDING_OUTBOUND_JOBS=50000
+# DTLS maximum number of flight retransmissions.
+# Default: 4
+DTLS.MAX_RETRANSMISSIONS=4
+# DTLS maximum retransmission timeout.
+# Default: 1[min]
+DTLS.MAX_RETRANSMISSION_TIMEOUT=1[min]
+# DTLS MTU (Maximum Transmission Unit).
+# Must be used, if the MTU of the local network doesn't apply, e.g.
+# if ip-tunnels are used.
+DTLS.MAX_TRANSMISSION_UNIT=
+# DTLS MTU (Maximum Transmission Unit) limit for local auto detection.
+DTLS.MAX_TRANSMISSION_UNIT_LIMIT=1500
+# List of preselected DTLS cipher-suites.
+# If not recommended cipher suites are intended to be used, switch off
+# DTLS_RECOMMENDED_CIPHER_SUITES_ONLY.
+# The supported cipher suites are evaluated at runtime and may differ
+# from the ones when creating this properties file.
+# List of [TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256, TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA378,
+# TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256, TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256,
+# TLS_PSK_WITH_AES_128_GCM_SHA256, TLS_PSK_WITH_AES_256_GCM_SHA378,
+# TLS_PSK_WITH_AES_128_CCM_8, TLS_PSK_WITH_AES_256_CCM_8, TLS_PSK_WITH_AES_128_CCM,
+# TLS_PSK_WITH_AES_256_CCM, TLS_PSK_WITH_ARIA_128_GCM_SHA256, TLS_PSK_WITH_ARIA_256_GCM_SHA384,
+# TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, TLS_PSK_WITH_AES_128_CBC_SHA256,
+# TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256, TLS_PSK_WITH_ARIA_128_CBC_SHA256,
+# TLS_PSK_WITH_ARIA_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
+# TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
+# TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
+# TLS_ECDHE_ECDSA_WITH_AES_256_CCM, TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
+# TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
+# TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+# TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
+# TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
+# TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
+# TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
+# TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384].
+DTLS.PRESELECTED_CIPHER_SUITES=
+# Use read-write-lock connection store.
+# Default: true
+DTLS.READ_WRITE_LOCK_CONNECTION_STORE=true
+# Number of DTLS receiver threads.
+# Default: 1
+DTLS.RECEIVER_THREAD_COUNT=2
+# DTLS receive-buffer size. Empty or 0 to use the OS default.
+DTLS.RECEIVE_BUFFER_SIZE=
+# DTLS recommended cipher-suites only.
+# Default: true
+DTLS.RECOMMENDED_CIPHER_SUITES_ONLY=true
+# DTLS recommended ECC curves/groups only.
+# Default: true
+DTLS.RECOMMENDED_CURVES_ONLY=true
+# DTLS recommended signature- and hash-algorithms only.
+# Default: true
+DTLS.RECOMMENDED_SIGNATURE_AND_HASH_ALGORITHMS_ONLY=true
+# DTLS record size limit (RFC 8449). Between 64 and 16K.
+DTLS.RECORD_SIZE_LIMIT=
+# Remove stale double principals.
+# Requires unique principals and a read-write-lock connection store.
+# Default: false
+DTLS.REMOVE_STALE_DOUBLE_PRINCIPALS=false
+# Number of flight-retransmissions before switching to backoff mode
+# using single handshake messages in single record datagrams.
+DTLS.RETRANSMISSION_BACKOFF=
+# DTLS random factor for initial retransmission timeout.
+# Default: 1.0
+DTLS.RETRANSMISSION_INIT_RANDOM=1.0
+# DTLS initial retransmission timeout.
+# Default: 2[s]
+DTLS.RETRANSMISSION_TIMEOUT=2[s]
+# DTLS scale factor for retransmission backoff-timeout.
+# Default: 2.0
+DTLS.RETRANSMISSION_TIMEOUT_SCALE=2.0
+# DTLS role.
+# [CLIENT_ONLY, SERVER_ONLY, BOTH].
+# Default: BOTH
+DTLS.ROLE=BOTH
+# Use minimal version of RFC5746 to indicate secure renegotiation on
+# initial handshake.
+# Renegotation handshakes are always rejected by Californium.
+# [NONE, WANTED, NEEDED].
+# Default: WANTED
+DTLS.SECURE_RENEGOTIATION_MODE=WANTED
+# DTLS send-buffer size. Empty or 0 to use the OS default.
+DTLS.SEND_BUFFER_SIZE=
+# Enable server to use a session ID in order to support session resumption.
+# Default: true
+DTLS.SERVER_USE_SESSION_ID=true
+# DTLS session timeout. Currently not supported.
+# Default: 1[h]
+DTLS.SESSION_TIMEOUT=1[d]
+# List of DTLS signature- and hash-algorithms.
+# Values e.g SHA256withECDSA or ED25519.
+DTLS.SIGNATURE_AND_HASH_ALGORITHMS=
+# DTLS threshold for stale connections. Connections will only get removed
+# for new ones, if at least for that threshold no messages are exchanged
+# using that connection.
+# Default: 30[min]
+DTLS.STALE_CONNECTION_THRESHOLD=30[min]
+# DTLS support deprecated CID for server (before version 9).
+# Default: false
+DTLS.SUPPORT_DEPRECATED_CID=false
+# Support key material export according RFC5705.
+# Default: false
+DTLS.SUPPORT_KEY_MATERIAL_EXPORT=false
+# DTLS certificate path for validation.
+# Default: true
+DTLS.TRUNCATE_CERTIFICATE_PATH_FOR_VALIDATION=true
+# DTLS truncate client certificate path.
+# Default: true
+DTLS.TRUNCATE_CLIENT_CERTIFICATE_PATH=true
+# DTLS update address using CID on newer records.
+# Default: true
+DTLS.UPDATE_ADDRESS_USING_CID_ON_NEWER_RECORDS=true
+# DTLS use the anti-replay-filter.
+# Default: true
+DTLS.USE_ANTI_REPLAY_FILTER=true
+# Use default DTLS record filter.
+# Default: true
+DTLS.USE_DEFAULT_RECORD_FILTER=true
+# DTLS use deprecated CID extension code point for client (before version
+# 09 of RFC-CID).
+DTLS.USE_DEPRECATED_CID=
+# DTLS use a disabled window for the anti-replay-filter. -1 := extend
+# the disabled window to start of session, 0 := normal window, <n> :=
+# disabled window of size <n>.
+# Default: 0
+DTLS.USE_DISABLED_WINDOW_FOR_ANTI_REPLAY_FILTER=0
+# Stop retransmission on receiving the first message of the next flight,
+# not waiting for the last message.
+# Default: true
+DTLS.USE_EARLY_STOP_RETRANSMISSION=true
+# DTLS use a HELLO_VERIFY_REQUEST to protect against spoofing.
+# Default: true
+DTLS.USE_HELLO_VERIFY_REQUEST=true
+# DTLS use a HELLO_VERIFY_REQUEST for PSK cipher suites to protect against
+# spoofing.
+# Default: true
+DTLS.USE_HELLO_VERIFY_REQUEST_FOR_PSK=true
+# Use multiple handshake messages in DTLS records.
+# Not all libraries may have implemented this!
+DTLS.USE_MULTI_HANDSHAKE_MESSAGE_RECORDS=
+# Use multiple DTLS records in UDP messages.
+DTLS.USE_MULTI_RECORD_MESSAGES=
+# DTLS use newer record filter.
+# Drop reordered records in order to protect from delay attacks,
+# if no other means, maybe on application level, are available.
+# Default: false
+DTLS.USE_NEWER_FILTER=false
+# DTLS use server name indication.
+# Default: false
+DTLS.USE_SERVER_NAME_INDICATION=false
+# DTLS verify peers on resumption threshold in percent.
+# Default: 30
+DTLS.VERIFY_PEERS_ON_RESUMPTION_THRESHOLD=30
+# DTLS verifies the server certificate's subjects.
+# Default: true
+DTLS.VERIFY_SERVER_CERTIFICATES_SUBJECT=true
+# Health status interval. 0 to disable the health status.
+# Default: 0[ms]
+SYS.HEALTH_STATUS_INTERVAL=0[ms]
+# TCP connection idle timeout.
+# Default: 10[s]
+TCP.CONNECTION_IDLE_TIMEOUT=10[s]
+# TCP connect timeout.
+# Default: 10[s]
+TCP.CONNECT_TIMEOUT=10[s]
+# TLS handshake timeout.
+# Default: 10[s]
+TCP.HANDSHAKE_TIMEOUT=10[s]
+# TLS session timeout.
+# Default: 1[h]
+TCP.SESSION_TIMEOUT=1[h]
+# TLS verifies the server certificate's subjects.
+# Default: true
+TCP.VERIFY_SERVER_CERTIFICATES_SUBJECT=true
+# Number of TCP worker threads. 0 to use default of TCP implementation.
+# Default: 0
+TCP.WORKER_THREADS=0
+# Maximum number of pending outgoing messages.
+# Default: 2147483647
+UDP.CONNECTOR_OUT_CAPACITY=2147483647
+# Maxium size of UDP datagram.
+# Default: 2048
+UDP.DATAGRAM_SIZE=2048
+# Number of UDP receiver threads.
+# Default: 1
+UDP.RECEIVER_THREAD_COUNT=2
+# UDP receive-buffer size. Empty or 0 to use the OS default.
+UDP.RECEIVE_BUFFER_SIZE=
+# Number of UDP sender threads.
+# Default: 1
+UDP.SENDER_THREAD_COUNT=2
+# UDP send-buffer size. Empty or 0 to use the OS default.
+UDP.SEND_BUFFER_SIZE=
+----
\ No newline at end of file
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 48971ebc930..3a2f4c014a1 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
@@ -17,6 +17,7 @@
package org.apache.camel.coap;
import java.io.IOException;
+import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.security.GeneralSecurityException;
@@ -31,11 +32,13 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Consumer;
import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
+import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.CamelContextHelper;
import org.apache.camel.support.DefaultComponent;
+import org.apache.camel.support.ResourceHelper;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.HostUtils;
import org.apache.camel.util.ObjectHelper;
@@ -59,6 +62,9 @@ public class CoAPComponent extends DefaultComponent implements RestConsumerFacto
static final int DEFAULT_PORT = 5684;
private static final Logger LOG = LoggerFactory.getLogger(CoAPComponent.class);
+ @Metadata
+ private String configurationFile;
+
final Map<Integer, CoapServer> servers = new ConcurrentHashMap<>();
public CoAPComponent() {
@@ -72,22 +78,22 @@ public class CoAPComponent extends DefaultComponent implements RestConsumerFacto
server = getServer(DEFAULT_PORT, endpoint);
}
if (server == null) {
- CoapEndpoint.Builder coapBuilder = new CoapEndpoint.Builder();
- Configuration config = Configuration.createStandardWithoutFile();
- InetSocketAddress address = new InetSocketAddress(port);
- coapBuilder.setConfiguration(config);
+ CoapEndpoint.Builder builder = new CoapEndpoint.Builder();
+ Configuration config = loadConfiguration();
+ builder.setConfiguration(config);
// Configure TLS and / or TCP
+ InetSocketAddress address = new InetSocketAddress(port);
if (CoAPEndpoint.enableDTLS(endpoint.getUri())) {
- doEnableDTLS(endpoint, address, coapBuilder);
+ doEnableDTLS(endpoint, config, address, builder);
} else if (CoAPEndpoint.enableTCP(endpoint.getUri())) {
- doEnableTCP(endpoint, config, address, coapBuilder);
+ doEnableTCP(endpoint, config, address, builder);
} else {
- coapBuilder.setInetSocketAddress(address);
+ builder.setInetSocketAddress(address);
}
server = new CoapServer();
- server.addEndpoint(coapBuilder.build());
+ server.addEndpoint(builder.build());
servers.put(port, server);
if (this.isStarted()) {
@@ -100,10 +106,21 @@ public class CoAPComponent extends DefaultComponent implements RestConsumerFacto
}
}
+ public Configuration loadConfiguration() throws IOException {
+ Configuration config;
+ if (configurationFile != null) {
+ InputStream is = ResourceHelper.resolveMandatoryResourceAsInputStream(getCamelContext(), configurationFile);
+ config = Configuration.createStandardFromStream(is);
+ } else {
+ config = Configuration.createStandardWithoutFile();
+ }
+ return config;
+ }
+
private void doEnableTCP(
CoAPEndpoint endpoint, Configuration config, InetSocketAddress address, CoapEndpoint.Builder coapBuilder)
throws GeneralSecurityException, IOException {
- TcpServerConnector tcpConnector = null;
+ TcpServerConnector tcpConnector;
// TLS + TCP
if (endpoint.getUri().getScheme().startsWith("coaps")) {
tcpConnector = doEnableTLSTCP(endpoint, config, address);
@@ -129,9 +146,10 @@ public class CoAPComponent extends DefaultComponent implements RestConsumerFacto
return tcpConnector;
}
- private static void doEnableDTLS(CoAPEndpoint endpoint, InetSocketAddress address, CoapEndpoint.Builder coapBuilder)
+ private static void doEnableDTLS(
+ CoAPEndpoint endpoint, Configuration config, InetSocketAddress address, CoapEndpoint.Builder coapBuilder)
throws IOException {
- DTLSConnector connector = endpoint.createDTLSConnector(address, false);
+ DTLSConnector connector = endpoint.createDTLSConnector(address, false, config);
coapBuilder.setConnector(connector);
}
@@ -227,6 +245,18 @@ public class CoAPComponent extends DefaultComponent implements RestConsumerFacto
return host;
}
+ public String getConfigurationFile() {
+ return configurationFile;
+ }
+
+ /**
+ * 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.
+ */
+ public void setConfigurationFile(String configurationFile) {
+ this.configurationFile = configurationFile;
+ }
+
@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 3024d4d4009..f62152ebb92 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
@@ -437,15 +437,9 @@ public class CoAPEndpoint extends DefaultEndpoint implements EndpointServiceLoca
return uri.getScheme().endsWith("+tcp");
}
- public DTLSConnector createDTLSConnector(InetSocketAddress address, boolean client) throws IOException {
- Configuration cfg;
- try {
- cfg = Configuration.getStandard();
- } catch (Exception e) {
- // in case error loading standard file
- cfg = new Configuration();
- }
- DtlsConnectorConfig.Builder builder = new DtlsConnectorConfig.Builder(cfg);
+ public DTLSConnector createDTLSConnector(InetSocketAddress address, boolean client, Configuration config)
+ throws IOException {
+ DtlsConnectorConfig.Builder builder = new DtlsConnectorConfig.Builder(config);
if (client) {
setupCreateDTLSConnectorClient(builder);
} else {
@@ -557,16 +551,16 @@ public class CoAPEndpoint extends DefaultEndpoint implements EndpointServiceLoca
public CoapClient createCoapClient(URI uri) throws IOException, GeneralSecurityException {
CoapClient client = new CoapClient(uri);
+ CoapEndpoint.Builder builder = new CoapEndpoint.Builder();
+ Configuration config = component.loadConfiguration();
+ builder.setConfiguration(config);
+
// Configure TLS and / or TCP
if (CoAPEndpoint.enableDTLS(uri)) {
- DTLSConnector connector = createDTLSConnector(null, true);
- CoapEndpoint.Builder coapBuilder = new CoapEndpoint.Builder();
- coapBuilder.setConnector(connector);
-
- client.setEndpoint(coapBuilder.build());
+ DTLSConnector connector = createDTLSConnector(null, true, config);
+ builder.setConnector(connector);
} else if (CoAPEndpoint.enableTCP(getUri())) {
TcpClientConnector tcpConnector;
-
// TLS + TCP
if (getUri().getScheme().startsWith("coaps")) {
SSLContextParameters params = getSslContextParameters();
@@ -574,16 +568,13 @@ public class CoAPEndpoint extends DefaultEndpoint implements EndpointServiceLoca
params = new SSLContextParameters();
}
SSLContext sslContext = params.createSSLContext(getCamelContext());
- tcpConnector = new TlsClientConnector(sslContext, Configuration.createStandardWithoutFile());
+ tcpConnector = new TlsClientConnector(sslContext, config);
} else {
- tcpConnector = new TcpClientConnector(Configuration.createStandardWithoutFile());
+ tcpConnector = new TcpClientConnector(config);
}
-
- CoapEndpoint.Builder tcpBuilder = new CoapEndpoint.Builder();
- tcpBuilder.setConnector(tcpConnector);
-
- client.setEndpoint(tcpBuilder.build());
+ builder.setConnector(tcpConnector);
}
+ client.setEndpoint(builder.build());
return client;
}
}
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 8fd1902e1b6..17421358439 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
@@ -52,6 +52,22 @@ public interface CoapComponentBuilderFactory {
*/
interface CoapComponentBuilder extends ComponentBuilder<CoAPComponent> {
+ /**
+ * 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.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param configurationFile the value to set
+ * @return the dsl builder
+ */
+ default CoapComponentBuilder configurationFile(java.lang.String configurationFile) {
+ doSetProperty("configurationFile", configurationFile);
+ return this;
+ }
+
/**
* Allows for bridging the consumer to the Camel routing Error Handler,
@@ -141,6 +157,7 @@ public interface CoapComponentBuilderFactory {
String name,
Object value) {
switch (name) {
+ 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 "autowiredEnabled": ((CoAPComponent) component).setAutowiredEnabled((boolean) value); return true;
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 01c311ded81..83caf4a585c 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
@@ -52,6 +52,22 @@ public interface CoapTcpComponentBuilderFactory {
*/
interface CoapTcpComponentBuilder extends ComponentBuilder<CoAPComponent> {
+ /**
+ * 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.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param configurationFile the value to set
+ * @return the dsl builder
+ */
+ default CoapTcpComponentBuilder configurationFile(java.lang.String configurationFile) {
+ doSetProperty("configurationFile", configurationFile);
+ return this;
+ }
+
/**
* Allows for bridging the consumer to the Camel routing Error Handler,
@@ -141,6 +157,7 @@ public interface CoapTcpComponentBuilderFactory {
String name,
Object value) {
switch (name) {
+ 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 "autowiredEnabled": ((CoAPComponent) component).setAutowiredEnabled((boolean) value); return true;
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 c16bda967f6..9849bcfaa5e 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
@@ -52,6 +52,22 @@ public interface CoapsComponentBuilderFactory {
*/
interface CoapsComponentBuilder extends ComponentBuilder<CoAPComponent> {
+ /**
+ * 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.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param configurationFile the value to set
+ * @return the dsl builder
+ */
+ default CoapsComponentBuilder configurationFile(java.lang.String configurationFile) {
+ doSetProperty("configurationFile", configurationFile);
+ return this;
+ }
+
/**
* Allows for bridging the consumer to the Camel routing Error Handler,
@@ -141,6 +157,7 @@ public interface CoapsComponentBuilderFactory {
String name,
Object value) {
switch (name) {
+ 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 "autowiredEnabled": ((CoAPComponent) component).setAutowiredEnabled((boolean) value); return true;
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 fd326e3096d..5a02ba35d0b 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
@@ -52,6 +52,22 @@ public interface CoapsTcpComponentBuilderFactory {
*/
interface CoapsTcpComponentBuilder extends ComponentBuilder<CoAPComponent> {
+ /**
+ * 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.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param configurationFile the value to set
+ * @return the dsl builder
+ */
+ default CoapsTcpComponentBuilder configurationFile(java.lang.String configurationFile) {
+ doSetProperty("configurationFile", configurationFile);
+ return this;
+ }
+
/**
* Allows for bridging the consumer to the Camel routing Error Handler,
@@ -141,6 +157,7 @@ public interface CoapsTcpComponentBuilderFactory {
String name,
Object value) {
switch (name) {
+ 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 "autowiredEnabled": ((CoAPComponent) component).setAutowiredEnabled((boolean) value); return true;