This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 1975e38a2ccc CAMEL-25939: camel-milo - the retry of refused monitored
items follows reconnectTimeout in its docs and tests (#28254)
1975e38a2ccc is described below
commit 1975e38a2ccc2ec85a529fc62d06c632af6cb034
Author: Serdar Gökay <[email protected]>
AuthorDate: Thu Oct 22 23:48:45 2026 +0300
CAMEL-25939: camel-milo - the retry of refused monitored items follows
reconnectTimeout in its docs and tests (#28254)
Co-authored-by: Claude Opus 5.5 <[email protected]>
---
.../camel/catalog/components/milo-browse.json | 4 +--
.../camel/catalog/components/milo-client.json | 4 +--
.../camel/catalog/docs/milo-client-component.adoc | 10 ++++----
.../camel/component/milo/browse/milo-browse.json | 4 +--
.../camel/component/milo/client/milo-client.json | 4 +--
.../src/main/docs/milo-client-component.adoc | 10 ++++----
.../component/milo/client/MiloClientComponent.java | 3 ++-
.../milo/client/MiloClientConfiguration.java | 5 ++--
.../component/milo/CommunicationLossTest.java | 24 +++++++++--------
.../component/milo/MonitoredItemRetryTest.java | 20 ++++++++-------
.../ROOT/pages/camel-4x-upgrade-guide-4_24.adoc | 19 ++++++++------
.../dsl/MiloBrowseComponentBuilderFactory.java | 5 ++--
.../dsl/MiloClientComponentBuilderFactory.java | 5 ++--
.../dsl/MiloBrowseEndpointBuilderFactory.java | 10 +++++---
.../dsl/MiloClientEndpointBuilderFactory.java | 30 +++++++++++++---------
15 files changed, 88 insertions(+), 69 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
index 3978dcb93935..cf30f028dc51 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-browse.json
@@ -45,7 +45,7 @@
"overrideHost": { "index": 18, "kind": "property", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 19, "kind": "property", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 20, "kind": "property", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 21, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
+ "reconnectTimeout": { "index": 21, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
"requestedPublishingInterval": { "index": 22, "kind": "property",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in mi [...]
"requestTimeout": { "index": 23, "kind": "property", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 24, "kind": "property", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
@@ -87,7 +87,7 @@
"overrideHost": { "index": 24, "kind": "parameter", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 25, "kind": "parameter", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 26, "kind": "parameter", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
+ "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
"requestedPublishingInterval": { "index": 28, "kind": "parameter",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in m [...]
"requestTimeout": { "index": 29, "kind": "parameter", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 30, "kind": "parameter", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
index a8d6bb84cf4a..a4ecb41eb45e 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/milo-client.json
@@ -46,7 +46,7 @@
"overrideHost": { "index": 19, "kind": "property", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 20, "kind": "property", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 21, "kind": "property", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 22, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
+ "reconnectTimeout": { "index": 22, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
"requestedPublishingInterval": { "index": 23, "kind": "property",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in mi [...]
"requestTimeout": { "index": 24, "kind": "property", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 25, "kind": "property", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
@@ -96,7 +96,7 @@
"overrideHost": { "index": 30, "kind": "parameter", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 31, "kind": "parameter", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 32, "kind": "parameter", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
+ "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
"requestedPublishingInterval": { "index": 34, "kind": "parameter",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in m [...]
"requestTimeout": { "index": 35, "kind": "parameter", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 36, "kind": "parameter", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
index 2620d3733dc2..9164dfc23803 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/milo-client-component.adoc
@@ -192,11 +192,11 @@ monitor filter (`monitorFilterType`,
`dataChangeFilter*`). Tags that need a diff
need a consumer of their own.
A node that does not exist on the server does not affect the other nodes. A
node that cannot be monitored is
-reported once with its status code, and Camel tries to create its monitored
item again every 10 seconds while the
-connection lasts, for all such nodes of the connection in one request. A
failed attempt delivers nothing; once the item
-is created, the node delivers its current value as its first value. This
covers a node that is added to the server
-later, for example with a new PLC program, and a server that refused the item
because it had too many. A rebuilt
-connection creates the monitored items of all nodes again, and a stopped
consumer is not retried.
+reported once with its status code, and Camel tries to create its monitored
item again every `reconnectTimeout` (10
+seconds by default) while the connection lasts, for all such nodes of the
connection in one request. A failed attempt
+delivers nothing; once the item is created, the node delivers its current
value as its first value. This covers a node
+that is added to the server later, for example with a new PLC program, and a
server that refused the item because it had
+too many. A rebuilt connection creates the monitored items of all nodes again,
and a stopped consumer is not retried.
A node whose namespace URI (`nsu=`) is not in the namespace table of the
server is reported and retried in the same
way, so a namespace that the server adds later is found.
The consumer delivers one exchange with the bad status code for such a node,
and the `CamelMiloNodeId` header names it.
diff --git
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
index 3978dcb93935..cf30f028dc51 100644
---
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
+++
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/browse/milo-browse.json
@@ -45,7 +45,7 @@
"overrideHost": { "index": 18, "kind": "property", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 19, "kind": "property", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 20, "kind": "property", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 21, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
+ "reconnectTimeout": { "index": 21, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
"requestedPublishingInterval": { "index": 22, "kind": "property",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in mi [...]
"requestTimeout": { "index": 23, "kind": "property", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 24, "kind": "property", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
@@ -87,7 +87,7 @@
"overrideHost": { "index": 24, "kind": "parameter", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 25, "kind": "parameter", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 26, "kind": "parameter", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
+ "reconnectTimeout": { "index": 27, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
"requestedPublishingInterval": { "index": 28, "kind": "parameter",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in m [...]
"requestTimeout": { "index": 29, "kind": "parameter", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 30, "kind": "parameter", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
diff --git
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
index a8d6bb84cf4a..a4ecb41eb45e 100644
---
a/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
+++
b/components/camel-milo/src/generated/resources/META-INF/org/apache/camel/component/milo/client/milo-client.json
@@ -46,7 +46,7 @@
"overrideHost": { "index": 19, "kind": "property", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 20, "kind": "property", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 21, "kind": "property", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 22, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
+ "reconnectTimeout": { "index": 22, "kind": "property", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the ser [...]
"requestedPublishingInterval": { "index": 23, "kind": "property",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in mi [...]
"requestTimeout": { "index": 24, "kind": "property", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 25, "kind": "property", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
@@ -96,7 +96,7 @@
"overrideHost": { "index": 30, "kind": "parameter", "displayName":
"Override Host", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint host with the host from the endpoint URI." },
"overridePort": { "index": 31, "kind": "parameter", "displayName":
"Override Port", "group": "client", "label": "client", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Override the server
reported endpoint port with the port from the endpoint URI." },
"productUri": { "index": 32, "kind": "parameter", "displayName": "Product
Uri", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "defaultValue":
"http:\/\/camel.apache.org\/EclipseMilo", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The product URI" },
- "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
+ "reconnectTimeout": { "index": 33, "kind": "parameter", "displayName":
"Reconnect Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": 10000, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The delay in
milliseconds before the client tries again to connect to the se [...]
"requestedPublishingInterval": { "index": 34, "kind": "parameter",
"displayName": "Requested Publishing Interval", "group": "client", "label":
"client", "required": false, "type": "number", "javaType": "java.lang.Double",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"1_000.0", "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "The requested publishing
interval in m [...]
"requestTimeout": { "index": 35, "kind": "parameter", "displayName":
"Request Timeout", "group": "client", "label": "client", "required": false,
"type": "integer", "javaType": "java.lang.Long", "deprecated": false,
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Request timeout in
milliseconds" },
"sessionName": { "index": 36, "kind": "parameter", "displayName": "Session
Name", "group": "client", "label": "client", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "configurationClass":
"org.apache.camel.component.milo.client.MiloClientConfiguration",
"configurationField": "configuration", "description": "Session name" },
diff --git a/components/camel-milo/src/main/docs/milo-client-component.adoc
b/components/camel-milo/src/main/docs/milo-client-component.adoc
index 2620d3733dc2..9164dfc23803 100644
--- a/components/camel-milo/src/main/docs/milo-client-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-client-component.adoc
@@ -192,11 +192,11 @@ monitor filter (`monitorFilterType`,
`dataChangeFilter*`). Tags that need a diff
need a consumer of their own.
A node that does not exist on the server does not affect the other nodes. A
node that cannot be monitored is
-reported once with its status code, and Camel tries to create its monitored
item again every 10 seconds while the
-connection lasts, for all such nodes of the connection in one request. A
failed attempt delivers nothing; once the item
-is created, the node delivers its current value as its first value. This
covers a node that is added to the server
-later, for example with a new PLC program, and a server that refused the item
because it had too many. A rebuilt
-connection creates the monitored items of all nodes again, and a stopped
consumer is not retried.
+reported once with its status code, and Camel tries to create its monitored
item again every `reconnectTimeout` (10
+seconds by default) while the connection lasts, for all such nodes of the
connection in one request. A failed attempt
+delivers nothing; once the item is created, the node delivers its current
value as its first value. This covers a node
+that is added to the server later, for example with a new PLC program, and a
server that refused the item because it had
+too many. A rebuilt connection creates the monitored items of all nodes again,
and a stopped consumer is not retried.
A node whose namespace URI (`nsu=`) is not in the namespace table of the
server is reported and retried in the same
way, so a namespace that the server adds later is found.
The consumer delivers one exchange with the bad status code for such a node,
and the `CamelMiloNodeId` header names it.
diff --git
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
index 952ed9b5627a..883c17a3b4cd 100644
---
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
+++
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientComponent.java
@@ -80,7 +80,8 @@ public class MiloClientComponent extends DefaultComponent {
}
/**
- * Default delay in milliseconds between two attempts to connect to the
server
+ * Default delay in milliseconds between two attempts to connect to the
server, and between two attempts to create
+ * the monitored items that the server refused
*/
public void setReconnectTimeout(final Long reconnectTimeout) {
this.configuration.setReconnectTimeout(reconnectTimeout);
diff --git
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
index 4d6914000b89..e9f8c1e309f3 100644
---
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
+++
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConfiguration.java
@@ -255,8 +255,9 @@ public class MiloClientConfiguration implements Cloneable {
}
/**
- * The delay in milliseconds before the client tries again to connect to
the server after an attempt failed. It is
- * not used while the OPC UA client recovers a lost session on its own.
+ * The delay in milliseconds before the client tries again to connect to
the server after an attempt failed, and
+ * between two attempts to create the monitored items that the server
refused. Neither attempt is made while the OPC
+ * UA client recovers a lost session on its own.
*/
public void setReconnectTimeout(final long reconnectTimeout) {
if (reconnectTimeout <= 0) {
diff --git
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
index 0fda3a88b4f8..d311681e54e5 100644
---
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
+++
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/CommunicationLossTest.java
@@ -113,12 +113,10 @@ public class CommunicationLossTest extends
AbstractMiloServerTest {
from(DIRECT_START_1).to(MILO_SERVER_ITEM_1);
// the consumers deliver the current values while they start,
so the tests start these routes
- from(resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@",
Integer.toString(relayPort.getPort())))
- .routeId("item1").autoStartup(false).to(MOCK_ITEM_1);
+
from(throughRelay(MILO_CLIENT_ITEM_1)).routeId("item1").autoStartup(false).to(MOCK_ITEM_1);
// a node the server refuses, on the same connection
- from(resolve(MILO_CLIENT_UNKNOWN).replace("@@relay@@",
Integer.toString(relayPort.getPort())))
-
.routeId("unknown").autoStartup(false).to(MOCK_UNKNOWN);
+
from(throughRelay(MILO_CLIENT_UNKNOWN)).routeId("unknown").autoStartup(false).to(MOCK_UNKNOWN);
// its own relay, so its own connection, which the test starts
while the relay is down
from(resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@",
Integer.toString(lateRelayPort.getPort())))
@@ -132,6 +130,14 @@ public class CommunicationLossTest extends
AbstractMiloServerTest {
};
}
+ /**
+ * The URI of a consumer that reaches the server through the relay. These
consumers share one connection, which
+ * creates the refused node again every second.
+ */
+ private String throughRelay(final String uri) {
+ return resolve(uri).replace("@@relay@@",
Integer.toString(relayPort.getPort())) + "&reconnectTimeout=1000";
+ }
+
@Override
protected void doPostSetup() throws Exception {
relay.start(relayPort.getPort(), getServerPort());
@@ -164,9 +170,7 @@ public class CommunicationLossTest extends
AbstractMiloServerTest {
unknownEndpoint.expectedMessageCount(0);
unknownEndpoint.setSleepForEmptyTest(500);
- final MiloClientEndpoint endpoint = context.getEndpoint(
- resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@",
Integer.toString(relayPort.getPort())),
- MiloClientEndpoint.class);
+ final MiloClientEndpoint endpoint =
context.getEndpoint(throughRelay(MILO_CLIENT_ITEM_1), MiloClientEndpoint.class);
final MiloClientConnection connection = endpoint.createConnection();
try {
final OpcUaClient client = connection.getOpcUaClient();
@@ -229,9 +233,7 @@ public class CommunicationLossTest extends
AbstractMiloServerTest {
context.getRouteController().startRoute("unknown");
unknownEndpoint.assertIsSatisfied();
- final MiloClientEndpoint endpoint = context.getEndpoint(
- resolve(MILO_CLIENT_ITEM_1).replace("@@relay@@",
Integer.toString(relayPort.getPort())),
- MiloClientEndpoint.class);
+ final MiloClientEndpoint endpoint =
context.getEndpoint(throughRelay(MILO_CLIENT_ITEM_1), MiloClientEndpoint.class);
final MiloClientConnection connection = endpoint.createConnection();
try {
final OpcUaClient client = connection.getOpcUaClient();
@@ -253,7 +255,7 @@ public class CommunicationLossTest extends
AbstractMiloServerTest {
// the server stays unreachable for longer than the retry interval
of the refused node
relay.stop();
await().atMost(10, TimeUnit.SECONDS).until(() ->
item1Endpoint.getReceivedCounter() >= 1);
- await().during(12, TimeUnit.SECONDS).atMost(15, TimeUnit.SECONDS)
+ await().during(3, TimeUnit.SECONDS).atMost(5, TimeUnit.SECONDS)
.until(() -> unknownEndpoint.getReceivedCounter() == 0);
// an attempt while the session is lost is skipped: it does not
hold the connection until the session is back
assertSame(client,
CompletableFuture.supplyAsync(connection::getOpcUaClient).get(2,
TimeUnit.SECONDS));
diff --git
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
index 468d4b918042..a9fa8af816c3 100644
---
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
+++
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitoredItemRetryTest.java
@@ -43,8 +43,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertSame;
/**
- * A node that the server refuses to monitor is reported once and created
again on the same connection, every 10
- * seconds, until the server has it or its consumer stops
+ * A node that the server refuses to monitor is reported once and created
again on the same connection, every
+ * {@code reconnectTimeout} milliseconds, until the server has it or its
consumer stops
*/
public class MonitoredItemRetryTest extends AbstractMiloServerTest {
@@ -55,10 +55,12 @@ public class MonitoredItemRetryTest extends
AbstractMiloServerTest {
// a namespace that the server does not have until a test adds it
private static final String LATE_NAMESPACE_URI =
"urn:org:apache:camel:late";
- // the client endpoints only differ in their nodes, so they share one
connection
+ // the client endpoints only differ in their nodes, so they share one
connection, which creates the refused nodes
+ // again every second
private static final String MILO_CLIENT_BASE =
"milo-client:opc.tcp://foo:bar@localhost:@@port@@"
+
"?allowedSecurityPolicies=None&overrideHost=true"
- +
"&samplingInterval=50&requestedPublishingInterval=100";
+ +
"&samplingInterval=50&requestedPublishingInterval=100"
+ + "&reconnectTimeout=1000";
private static final String MILO_CLIENT = MILO_CLIENT_BASE + "&node=";
@@ -138,7 +140,7 @@ public class MonitoredItemRetryTest extends
AbstractMiloServerTest {
// the node is created on the server: its first value follows the
refusal, without another bad status
lateItemEndpoint.reset();
lateItemEndpoint.expectedMessageCount(1);
- lateItemEndpoint.setResultWaitTime(30_000);
+ lateItemEndpoint.setResultWaitTime(10_000);
lateItemEndpoint.setAssertPeriod(2_000);
testBody(lateItemEndpoint.message(0), assertGoodValue("Foo"));
template.sendBody("milo-server:lateItem", "Foo");
@@ -169,7 +171,7 @@ public class MonitoredItemRetryTest extends
AbstractMiloServerTest {
lateNamespaceItemEndpoint.reset();
lateNamespaceItemEndpoint.expectedMessageCount(1);
- lateNamespaceItemEndpoint.setResultWaitTime(30_000);
+ lateNamespaceItemEndpoint.setResultWaitTime(10_000);
lateNamespaceItemEndpoint.setAssertPeriod(2_000);
testBody(lateNamespaceItemEndpoint.message(0),
assertGoodValue("Foo"));
namespace.startup();
@@ -208,8 +210,8 @@ public class MonitoredItemRetryTest extends
AbstractMiloServerTest {
stoppedItemEndpoint.expectedMessageCount(0);
template.sendBody("milo-server:stoppedItem", "Foo");
- // the next attempt would have created it by now
- await().during(15, TimeUnit.SECONDS).atMost(20, TimeUnit.SECONDS)
+ // the next attempts would have created it by now
+ await().during(3, TimeUnit.SECONDS).atMost(5, TimeUnit.SECONDS)
.until(() ->
client.getSubscriptions().get(0).getMonitoredItems().stream()
.noneMatch(item -> "stoppedItem"
.equals(item.getReadValueId().getNodeId().getIdentifier())));
@@ -254,7 +256,7 @@ public class MonitoredItemRetryTest extends
AbstractMiloServerTest {
private void holdRefusalOfMissingNode(final Exchange exchange) throws
InterruptedException {
if
(MISSING_NODE.equals(exchange.getMessage().getHeader(MiloConstants.HEADER_NODE_ID)))
{
template.sendBody("milo-server:overtakenItem", "Foo");
- overtakenCreated.await(30, TimeUnit.SECONDS);
+ overtakenCreated.await(10, TimeUnit.SECONDS);
} else if
(exchange.getMessage().getBody(DataValue.class).getStatusCode().isGood()) {
overtakenCreated.countDown();
}
diff --git
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc
index 58d674bd440e..72132ccb57ed 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_24.adoc
@@ -1262,10 +1262,11 @@ the CA (an empty one is enough) to `trusted/crl` or
`issuer/crl`. A custom valid
With neither option, the client does not connect to such an endpoint. It logs
a `WARN` message
`Failed to connect: The certificate of the OPC UA server cannot be validated`,
followed by the endpoint and its
-security policy, and tries again every 10 seconds. A producer fails with
`IllegalStateException: No connected`, caused
-by the same message. A server certificate refused by the trust list or by a
`certificateValidator` is logged at `WARN`
-as `Failed to connect, because a certificate or security check failed`. To
restore the previous behaviour, set the new
-`trustAllCertificates` option to `true`. This is insecure: the client then
does not authenticate the server.
+security policy, and tries again after `reconnectTimeout` (10 seconds by
default). A producer fails with
+`IllegalStateException: No connected`, caused by the same message. A server
certificate refused by the trust list or by
+a `certificateValidator` is logged at `WARN` as `Failed to connect, because a
certificate or security check failed`. To
+restore the previous behaviour, set the new `trustAllCertificates` option to
`true`. This is insecure: the client then
+does not authenticate the server.
The certificate that the user name and password are encrypted with is checked
by the same validator. Endpoints that
use the security policy `None` are not affected.
@@ -2237,9 +2238,9 @@ Bad status of a failed sensor.
Since 4.16, a `milo-client` consumer whose monitored item could not be
created, for example because the node does not
exist, received nothing. Now it receives one `DataValue` with the bad status
code. The
-monitored item is then created again every 10 seconds on the same connection,
without delivering anything for a failed
-attempt, until the server accepts it; its first value is the current value of
the node. A route restart or a
-connection that Camel rebuilds creates it again too.
+monitored item is then created again every `reconnectTimeout` (10 seconds by
default) on the same connection, without
+delivering anything for a failed attempt, until the server accepts it; its
first value is the current value of the node.
+A route restart or a connection that Camel rebuilds creates it again too.
A node ID with a namespace URI (`nsu=`) that is not in the namespace table of
the server no longer takes the whole
client connection down, including the consumers of other nodes. Its consumer
receives one `DataValue` with
@@ -2292,7 +2293,9 @@ node, and the current values delivered after an outage
still arrive.
`setReconnectTimeout` on the `milo-client` and `milo-browse` components set
the request timeout of every service call,
and the delay between two connection attempts stayed 10 seconds. It now sets
that delay, which the new
`reconnectTimeout` option of both endpoints and components sets too; its
default of 10000 milliseconds is the previous
-delay, and a value of 0 or less is rejected. To set the request timeout, use
the `requestTimeout` option instead
+delay, and a value of 0 or less is rejected. The option also sets how often
the monitored items that the server
+refused are created again: a lower value repeats the `CreateMonitoredItems`
request for them, for example for a node ID
+with a typo, more often while the connection lasts. To set the request
timeout, use the `requestTimeout` option instead
(for example `camel.component.milo-client.requestTimeout`, or
`getConfiguration().setRequestTimeout(...)` in Java).
=== camel-milo - the sessionTimeout of the components reaches their endpoints
diff --git
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
index a62b8f20e278..4dd135ff7289 100644
---
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
+++
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloBrowseComponentBuilderFactory.java
@@ -403,8 +403,9 @@ public interface MiloBrowseComponentBuilderFactory {
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option is a: <code>long</code> type.
*
diff --git
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
index 93bc2728c8bc..f3335268ecb8 100644
---
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
+++
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/MiloClientComponentBuilderFactory.java
@@ -431,8 +431,9 @@ public interface MiloClientComponentBuilderFactory {
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option is a: <code>long</code> type.
*
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
index 0a70112a1778..78abfecdc6ba 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloBrowseEndpointBuilderFactory.java
@@ -587,8 +587,9 @@ public interface MiloBrowseEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option is a: <code>long</code> type.
*
@@ -604,8 +605,9 @@ public interface MiloBrowseEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option will be converted to a <code>long</code> type.
*
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
index 87b75cfe4fc6..3d5c8123525c 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/MiloClientEndpointBuilderFactory.java
@@ -658,8 +658,9 @@ public interface MiloClientEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option is a: <code>long</code> type.
*
@@ -675,8 +676,9 @@ public interface MiloClientEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option will be converted to a <code>long</code> type.
*
@@ -1658,8 +1660,9 @@ public interface MiloClientEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option is a: <code>long</code> type.
*
@@ -1675,8 +1678,9 @@ public interface MiloClientEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option will be converted to a <code>long</code> type.
*
@@ -2587,8 +2591,9 @@ public interface MiloClientEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option is a: <code>long</code> type.
*
@@ -2604,8 +2609,9 @@ public interface MiloClientEndpointBuilderFactory {
}
/**
* The delay in milliseconds before the client tries again to connect
to
- * the server after an attempt failed. It is not used while the OPC UA
- * client recovers a lost session on its own.
+ * the server after an attempt failed, and between two attempts to
+ * create the monitored items that the server refused. Neither attempt
+ * is made while the OPC UA client recovers a lost session on its own.
*
* The option will be converted to a <code>long</code> type.
*