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 1dda2b175d7b CAMEL-25145: camel-milo - apply subscription parameters, 
add queueSize
1dda2b175d7b is described below

commit 1dda2b175d7bb5fa19b42e3a573cd036a42a3221
Author: robMate <[email protected]>
AuthorDate: Fri Oct 9 09:04:00 2026 +0200

    CAMEL-25145: camel-milo - apply subscription parameters, add queueSize
    
    The OPC UA monitored item parameters configured on a milo-client endpoint
    were not applied to the subscription. The consumer now applies them per
    endpoint, taking the monitor filter (data change trigger, deadband type and
    value) from the endpoint rather than from the shared connection.
    
    A new queueSize option sets the queue size of the monitored items (a queue
    size of 1 is requested when it is not set). requestedPublishingInterval is
    now part of the cache id of shared connections. The samplingInterval
    default is 1000.0, which keeps the sampling interval that has been in
    effect since 4.16. The data change filter options changed from UInteger to
    Integer, which the 4.23 upgrade guide documents.
    
    Closes #27201
    
    Co-authored-by: schnloth <[email protected]>
    Co-authored-by: Guillaume Nodet - AI Bot <[email protected]>
    Co-authored-by: Claus Ibsen <[email protected]>
---
 .../camel/catalog/components/milo-client.json      |  53 ++++----
 .../camel/catalog/docs/milo-client-component.adoc  |   9 +-
 .../milo/client/MiloClientEndpointConfigurer.java  |  10 +-
 .../milo/client/MiloClientEndpointUriFactory.java  |   3 +-
 .../camel/component/milo/client/milo-client.json   |  53 ++++----
 .../src/main/docs/milo-client-component.adoc       |   9 +-
 .../client/MiloClientCachingConnectionManager.java |  12 +-
 .../milo/client/MiloClientConfiguration.java       |   4 +-
 .../milo/client/MiloClientConnection.java          |  11 +-
 .../component/milo/client/MiloClientConsumer.java  |   5 +-
 .../component/milo/client/MiloClientEndpoint.java  |  21 ++-
 .../milo/client/MonitorFilterConfiguration.java    |  14 +-
 .../milo/client/internal/SubscriptionManager.java  |  31 ++++-
 .../camel/component/milo/MonitorItemTest.java      | 142 ++++++++++++++++++++-
 .../ROOT/pages/camel-4x-upgrade-guide-4_23.adoc    |  13 ++
 .../dsl/MiloClientEndpointBuilderFactory.java      | 132 ++++++++++++++++---
 16 files changed, 403 insertions(+), 119 deletions(-)

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 79fb3e73d9bb..58b851de167e 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
@@ -60,7 +60,7 @@
   "properties": {
     "endpointUri": { "index": 0, "kind": "path", "displayName": "Endpoint 
Uri", "group": "common", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The OPC UA server 
endpoint" },
     "clientId": { "index": 1, "kind": "parameter", "displayName": "Client Id", 
"group": "common", "label": "", "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": "A virtual client id to 
force the creation of a new connection instance" },
-    "dataChangeFilterDeadbandType": { "index": 2, "kind": "parameter", 
"displayName": "Data Change Filter Deadband Type", "group": "common", "label": 
"", "required": false, "type": "object", "javaType": 
"org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", 
"configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration" [...]
+    "dataChangeFilterDeadbandType": { "index": 2, "kind": "parameter", 
"displayName": "Data Change Filter Deadband Type", "group": "common", "label": 
"", "required": false, "type": "integer", "javaType": "java.lang.Integer", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, 
"configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration", "description": "Deadband 
type for MonitorFilter [...]
     "dataChangeFilterDeadbandValue": { "index": 3, "kind": "parameter", 
"displayName": "Data Change Filter Deadband Value", "group": "common", "label": 
"", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"0.0", "configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration", "description": "Deadband 
value for MonitorF [...]
     "dataChangeFilterTrigger": { "index": 4, "kind": "parameter", 
"displayName": "Data Change Filter Trigger", "group": "common", "label": "", 
"required": false, "type": "enum", "javaType": 
"org.eclipse.milo.opcua.stack.core.types.enumerated.DataChangeTrigger", "enum": 
[ "Status", "StatusValue", "StatusValueTimestamp" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "StatusValueTimestamp", 
"configurationClass": "org.apache.camel.component.milo.client.MonitorFi [...]
     "defaultAwaitWrites": { "index": 5, "kind": "parameter", "displayName": 
"Default Await Writes", "group": "common", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "Default await 
setting for writes" },
@@ -70,30 +70,31 @@
     "monitorFilterType": { "index": 9, "kind": "parameter", "displayName": 
"Monitor Filter Type", "group": "common", "label": "", "required": false, 
"type": "enum", "javaType": 
"org.apache.camel.component.milo.client.MonitorFilterType", "enum": [ 
"dataChangeFilter" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration", "description": "Monito [...]
     "node": { "index": 10, "kind": "parameter", "displayName": "Node", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "The node definition (see Node ID)" },
     "omitNullValues": { "index": 11, "kind": "parameter", "displayName": "Omit 
Null Values", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Omit notifications in 
case of null values" },
-    "samplingInterval": { "index": 12, "kind": "parameter", "displayName": 
"Sampling Interval", "group": "common", "label": "", "required": false, "type": 
"number", "javaType": "java.lang.Double", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "0.0", "description": "The sampling 
interval in milliseconds" },
-    "bridgeErrorHandler": { "index": 13, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
-    "exceptionHandler": { "index": 14, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
-    "exchangePattern": { "index": 15, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
-    "lazyStartProducer": { "index": 16, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
-    "allowedSecurityPolicies": { "index": 17, "kind": "parameter", 
"displayName": "Allowed Security Policies", "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": "A set of allowed 
security policy URIs. Default is to accept all and use t [...]
-    "applicationName": { "index": 18, "kind": "parameter", "displayName": 
"Application Name", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "Apache Camel adapter for 
Eclipse Milo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application name" },
-    "applicationUri": { "index": 19, "kind": "parameter", "displayName": 
"Application 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\/Client", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application URI" },
-    "channelLifetime": { "index": 20, "kind": "parameter", "displayName": 
"Channel Lifetime", "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": "Channel lifetime in 
milliseconds" },
-    "keyAlias": { "index": 21, "kind": "parameter", "displayName": "Key 
Alias", "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": "The name of the key in 
the keystore file" },
-    "keyPassword": { "index": 22, "kind": "parameter", "displayName": "Key 
Password", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The key password" },
-    "keyStorePassword": { "index": 23, "kind": "parameter", "displayName": 
"Key Store Password", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The keystore password" },
-    "keyStoreType": { "index": 24, "kind": "parameter", "displayName": "Key 
Store Type", "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": "The key store type" },
-    "keyStoreUrl": { "index": 25, "kind": "parameter", "displayName": "Key 
Store Url", "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": "The URL where the key 
should be loaded from" },
-    "maxPendingPublishRequests": { "index": 26, "kind": "parameter", 
"displayName": "Max Pending Publish Requests", "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": "The maximum number of 
pending publish requests" },
-    "maxResponseMessageSize": { "index": 27, "kind": "parameter", 
"displayName": "Max Response Message Size", "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": "The maximum number of 
bytes a response message may have" },
-    "overrideHost": { "index": 28, "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": 29, "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": 30, "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" },
-    "requestedPublishingInterval": { "index": 31, "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": 32, "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": 33, "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" },
-    "sessionTimeout": { "index": 34, "kind": "parameter", "displayName": 
"Session 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": "Session timeout in 
milliseconds" },
-    "password": { "index": 35, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication. Use this instead of embedding credentials in th [...]
-    "username": { "index": 36, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "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": "The username for 
authentication. Use this instead of embedding credentials in the endpoint URI 
when t [...]
+    "queueSize": { "index": 12, "kind": "parameter", "displayName": "Queue 
Size", "group": "common", "label": "", "required": false, "type": "integer", 
"javaType": "java.lang.Integer", "deprecated": false, "autowired": false, 
"secret": false, "description": "The queue size used for OPC UA subscriptions. 
If not set, a queue size of 1 is requested." },
+    "samplingInterval": { "index": 13, "kind": "parameter", "displayName": 
"Sampling Interval", "group": "common", "label": "", "required": false, "type": 
"number", "javaType": "java.lang.Double", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "1000.0", "description": "The sampling 
interval in milliseconds" },
+    "bridgeErrorHandler": { "index": 14, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
+    "exceptionHandler": { "index": 15, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
+    "exchangePattern": { "index": 16, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "index": 17, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
+    "allowedSecurityPolicies": { "index": 18, "kind": "parameter", 
"displayName": "Allowed Security Policies", "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": "A set of allowed 
security policy URIs. Default is to accept all and use t [...]
+    "applicationName": { "index": 19, "kind": "parameter", "displayName": 
"Application Name", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "Apache Camel adapter for 
Eclipse Milo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application name" },
+    "applicationUri": { "index": 20, "kind": "parameter", "displayName": 
"Application 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\/Client", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application URI" },
+    "channelLifetime": { "index": 21, "kind": "parameter", "displayName": 
"Channel Lifetime", "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": "Channel lifetime in 
milliseconds" },
+    "keyAlias": { "index": 22, "kind": "parameter", "displayName": "Key 
Alias", "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": "The name of the key in 
the keystore file" },
+    "keyPassword": { "index": 23, "kind": "parameter", "displayName": "Key 
Password", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The key password" },
+    "keyStorePassword": { "index": 24, "kind": "parameter", "displayName": 
"Key Store Password", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The keystore password" },
+    "keyStoreType": { "index": 25, "kind": "parameter", "displayName": "Key 
Store Type", "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": "The key store type" },
+    "keyStoreUrl": { "index": 26, "kind": "parameter", "displayName": "Key 
Store Url", "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": "The URL where the key 
should be loaded from" },
+    "maxPendingPublishRequests": { "index": 27, "kind": "parameter", 
"displayName": "Max Pending Publish Requests", "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": "The maximum number of 
pending publish requests" },
+    "maxResponseMessageSize": { "index": 28, "kind": "parameter", 
"displayName": "Max Response Message Size", "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": "The maximum number of 
bytes a response message may have" },
+    "overrideHost": { "index": 29, "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": 30, "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": 31, "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" },
+    "requestedPublishingInterval": { "index": 32, "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": 33, "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": 34, "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" },
+    "sessionTimeout": { "index": 35, "kind": "parameter", "displayName": 
"Session 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": "Session timeout in 
milliseconds" },
+    "password": { "index": 36, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication. Use this instead of embedding credentials in th [...]
+    "username": { "index": 37, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "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": "The username for 
authentication. Use this instead of embedding credentials in the endpoint URI 
when t [...]
   }
 }
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 90ff4f0cb343..3c5b1aecdb95 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
@@ -65,12 +65,13 @@ When both styles are provided, the explicit 
`username`/`password` parameters tak
 precedence over credentials embedded in the URI.
 
 All configuration options in the group +client+ are applicable to the shared 
client instance. Endpoints
-will share client instances for each endpoint URI. So the first time a request 
for that endpoint URI is
-made, the options of the +client+ group are applied. All further instances 
will be ignored.
+will share client instances for each endpoint URI plus 
`requestedPublishingInterval`.
+So the first time a request for that endpoint URI (plus 
`requestedPublishingInterval`) is made, the options of
+the +client+ group are applied. All further instances will be ignored.
 
 If you need alternate options for the same endpoint URI it is possible though 
to set the +clientId+ option
-which will by added internally to the endpoint URI in order to select a 
different shared connection instance.
-In other words, shared connections located by the combination of endpoint URI 
and client id.
+which will be added internally to the endpoint URI in order to select a 
different shared connection instance.
+In other words, shared connections located by the combination of endpoint URI, 
`requestedPublishingInterval` and client id.
 
 
 // component options: START
diff --git 
a/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointConfigurer.java
 
b/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointConfigurer.java
index 971853e1a8e6..c415e53a4812 100644
--- 
a/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointConfigurer.java
+++ 
b/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointConfigurer.java
@@ -36,7 +36,7 @@ public class MiloClientEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "clientid":
         case "clientId": 
target.getConfiguration().setClientId(property(camelContext, 
java.lang.String.class, value)); return true;
         case "datachangefilterdeadbandtype":
-        case "dataChangeFilterDeadbandType": 
target.getMonitorFilterConfiguration().setDataChangeFilterDeadbandType(property(camelContext,
 org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger.class, 
value)); return true;
+        case "dataChangeFilterDeadbandType": 
target.getMonitorFilterConfiguration().setDataChangeFilterDeadbandType(property(camelContext,
 java.lang.Integer.class, value)); return true;
         case "datachangefilterdeadbandvalue":
         case "dataChangeFilterDeadbandValue": 
target.getMonitorFilterConfiguration().setDataChangeFilterDeadbandValue(property(camelContext,
 java.lang.Double.class, value)); return true;
         case "datachangefiltertrigger":
@@ -80,6 +80,8 @@ public class MiloClientEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "password": 
target.getConfiguration().setPassword(property(camelContext, 
java.lang.String.class, value)); return true;
         case "producturi":
         case "productUri": 
target.getConfiguration().setProductUri(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "queuesize":
+        case "queueSize": target.setQueueSize(property(camelContext, 
java.lang.Integer.class, value)); return true;
         case "requesttimeout":
         case "requestTimeout": 
target.getConfiguration().setRequestTimeout(property(camelContext, 
java.lang.Long.class, value)); return true;
         case "requestedpublishinginterval":
@@ -111,7 +113,7 @@ public class MiloClientEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "clientid":
         case "clientId": return java.lang.String.class;
         case "datachangefilterdeadbandtype":
-        case "dataChangeFilterDeadbandType": return 
org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger.class;
+        case "dataChangeFilterDeadbandType": return java.lang.Integer.class;
         case "datachangefilterdeadbandvalue":
         case "dataChangeFilterDeadbandValue": return java.lang.Double.class;
         case "datachangefiltertrigger":
@@ -155,6 +157,8 @@ public class MiloClientEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "password": return java.lang.String.class;
         case "producturi":
         case "productUri": return java.lang.String.class;
+        case "queuesize":
+        case "queueSize": return java.lang.Integer.class;
         case "requesttimeout":
         case "requestTimeout": return java.lang.Long.class;
         case "requestedpublishinginterval":
@@ -231,6 +235,8 @@ public class MiloClientEndpointConfigurer extends 
PropertyConfigurerSupport impl
         case "password": return target.getConfiguration().getPassword();
         case "producturi":
         case "productUri": return target.getConfiguration().getProductUri();
+        case "queuesize":
+        case "queueSize": return target.getQueueSize();
         case "requesttimeout":
         case "requestTimeout": return 
target.getConfiguration().getRequestTimeout();
         case "requestedpublishinginterval":
diff --git 
a/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointUriFactory.java
 
b/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointUriFactory.java
index 0f31567d1193..15e5b54e0ab5 100644
--- 
a/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointUriFactory.java
+++ 
b/components/camel-milo/src/generated/java/org/apache/camel/component/milo/client/MiloClientEndpointUriFactory.java
@@ -24,7 +24,7 @@ public class MiloClientEndpointUriFactory extends 
org.apache.camel.support.compo
     private static final Set<String> ENDPOINT_IDENTITY_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(37);
+        Set<String> props = new HashSet<>(38);
         props.add("allowedSecurityPolicies");
         props.add("applicationName");
         props.add("applicationUri");
@@ -56,6 +56,7 @@ public class MiloClientEndpointUriFactory extends 
org.apache.camel.support.compo
         props.add("overridePort");
         props.add("password");
         props.add("productUri");
+        props.add("queueSize");
         props.add("requestTimeout");
         props.add("requestedPublishingInterval");
         props.add("samplingInterval");
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 79fb3e73d9bb..58b851de167e 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
@@ -60,7 +60,7 @@
   "properties": {
     "endpointUri": { "index": 0, "kind": "path", "displayName": "Endpoint 
Uri", "group": "common", "label": "", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "description": "The OPC UA server 
endpoint" },
     "clientId": { "index": 1, "kind": "parameter", "displayName": "Client Id", 
"group": "common", "label": "", "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": "A virtual client id to 
force the creation of a new connection instance" },
-    "dataChangeFilterDeadbandType": { "index": 2, "kind": "parameter", 
"displayName": "Data Change Filter Deadband Type", "group": "common", "label": 
"", "required": false, "type": "object", "javaType": 
"org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", 
"configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration" [...]
+    "dataChangeFilterDeadbandType": { "index": 2, "kind": "parameter", 
"displayName": "Data Change Filter Deadband Type", "group": "common", "label": 
"", "required": false, "type": "integer", "javaType": "java.lang.Integer", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, 
"configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration", "description": "Deadband 
type for MonitorFilter [...]
     "dataChangeFilterDeadbandValue": { "index": 3, "kind": "parameter", 
"displayName": "Data Change Filter Deadband Value", "group": "common", "label": 
"", "required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"0.0", "configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration", "description": "Deadband 
value for MonitorF [...]
     "dataChangeFilterTrigger": { "index": 4, "kind": "parameter", 
"displayName": "Data Change Filter Trigger", "group": "common", "label": "", 
"required": false, "type": "enum", "javaType": 
"org.eclipse.milo.opcua.stack.core.types.enumerated.DataChangeTrigger", "enum": 
[ "Status", "StatusValue", "StatusValueTimestamp" ], "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "StatusValueTimestamp", 
"configurationClass": "org.apache.camel.component.milo.client.MonitorFi [...]
     "defaultAwaitWrites": { "index": 5, "kind": "parameter", "displayName": 
"Default Await Writes", "group": "common", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "description": "Default await 
setting for writes" },
@@ -70,30 +70,31 @@
     "monitorFilterType": { "index": 9, "kind": "parameter", "displayName": 
"Monitor Filter Type", "group": "common", "label": "", "required": false, 
"type": "enum", "javaType": 
"org.apache.camel.component.milo.client.MonitorFilterType", "enum": [ 
"dataChangeFilter" ], "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.milo.client.MonitorFilterConfiguration", 
"configurationField": "monitorFilterConfiguration", "description": "Monito [...]
     "node": { "index": 10, "kind": "parameter", "displayName": "Node", 
"group": "common", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "description": "The node definition (see Node ID)" },
     "omitNullValues": { "index": 11, "kind": "parameter", "displayName": "Omit 
Null Values", "group": "common", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Omit notifications in 
case of null values" },
-    "samplingInterval": { "index": 12, "kind": "parameter", "displayName": 
"Sampling Interval", "group": "common", "label": "", "required": false, "type": 
"number", "javaType": "java.lang.Double", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "0.0", "description": "The sampling 
interval in milliseconds" },
-    "bridgeErrorHandler": { "index": 13, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
-    "exceptionHandler": { "index": 14, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
-    "exchangePattern": { "index": 15, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
-    "lazyStartProducer": { "index": 16, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
-    "allowedSecurityPolicies": { "index": 17, "kind": "parameter", 
"displayName": "Allowed Security Policies", "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": "A set of allowed 
security policy URIs. Default is to accept all and use t [...]
-    "applicationName": { "index": 18, "kind": "parameter", "displayName": 
"Application Name", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "Apache Camel adapter for 
Eclipse Milo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application name" },
-    "applicationUri": { "index": 19, "kind": "parameter", "displayName": 
"Application 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\/Client", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application URI" },
-    "channelLifetime": { "index": 20, "kind": "parameter", "displayName": 
"Channel Lifetime", "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": "Channel lifetime in 
milliseconds" },
-    "keyAlias": { "index": 21, "kind": "parameter", "displayName": "Key 
Alias", "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": "The name of the key in 
the keystore file" },
-    "keyPassword": { "index": 22, "kind": "parameter", "displayName": "Key 
Password", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The key password" },
-    "keyStorePassword": { "index": 23, "kind": "parameter", "displayName": 
"Key Store Password", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The keystore password" },
-    "keyStoreType": { "index": 24, "kind": "parameter", "displayName": "Key 
Store Type", "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": "The key store type" },
-    "keyStoreUrl": { "index": 25, "kind": "parameter", "displayName": "Key 
Store Url", "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": "The URL where the key 
should be loaded from" },
-    "maxPendingPublishRequests": { "index": 26, "kind": "parameter", 
"displayName": "Max Pending Publish Requests", "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": "The maximum number of 
pending publish requests" },
-    "maxResponseMessageSize": { "index": 27, "kind": "parameter", 
"displayName": "Max Response Message Size", "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": "The maximum number of 
bytes a response message may have" },
-    "overrideHost": { "index": 28, "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": 29, "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": 30, "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" },
-    "requestedPublishingInterval": { "index": 31, "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": 32, "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": 33, "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" },
-    "sessionTimeout": { "index": 34, "kind": "parameter", "displayName": 
"Session 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": "Session timeout in 
milliseconds" },
-    "password": { "index": 35, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication. Use this instead of embedding credentials in th [...]
-    "username": { "index": 36, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "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": "The username for 
authentication. Use this instead of embedding credentials in the endpoint URI 
when t [...]
+    "queueSize": { "index": 12, "kind": "parameter", "displayName": "Queue 
Size", "group": "common", "label": "", "required": false, "type": "integer", 
"javaType": "java.lang.Integer", "deprecated": false, "autowired": false, 
"secret": false, "description": "The queue size used for OPC UA subscriptions. 
If not set, a queue size of 1 is requested." },
+    "samplingInterval": { "index": 13, "kind": "parameter", "displayName": 
"Sampling Interval", "group": "common", "label": "", "required": false, "type": 
"number", "javaType": "java.lang.Double", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "1000.0", "description": "The sampling 
interval in milliseconds" },
+    "bridgeErrorHandler": { "index": 14, "kind": "parameter", "displayName": 
"Bridge Error Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Allows for bridging the consumer to the 
Camel routing Error Handler, which mean any exceptions (if possible) occurred 
while the Camel consumer is trying to pickup incoming [...]
+    "exceptionHandler": { "index": 15, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
+    "exchangePattern": { "index": 16, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "enum", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "index": 17, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produ [...]
+    "allowedSecurityPolicies": { "index": 18, "kind": "parameter", 
"displayName": "Allowed Security Policies", "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": "A set of allowed 
security policy URIs. Default is to accept all and use t [...]
+    "applicationName": { "index": 19, "kind": "parameter", "displayName": 
"Application Name", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "Apache Camel adapter for 
Eclipse Milo", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application name" },
+    "applicationUri": { "index": 20, "kind": "parameter", "displayName": 
"Application 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\/Client", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The application URI" },
+    "channelLifetime": { "index": 21, "kind": "parameter", "displayName": 
"Channel Lifetime", "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": "Channel lifetime in 
milliseconds" },
+    "keyAlias": { "index": 22, "kind": "parameter", "displayName": "Key 
Alias", "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": "The name of the key in 
the keystore file" },
+    "keyPassword": { "index": 23, "kind": "parameter", "displayName": "Key 
Password", "group": "client", "label": "client", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The key password" },
+    "keyStorePassword": { "index": 24, "kind": "parameter", "displayName": 
"Key Store Password", "group": "client", "label": "client", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The keystore password" },
+    "keyStoreType": { "index": 25, "kind": "parameter", "displayName": "Key 
Store Type", "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": "The key store type" },
+    "keyStoreUrl": { "index": 26, "kind": "parameter", "displayName": "Key 
Store Url", "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": "The URL where the key 
should be loaded from" },
+    "maxPendingPublishRequests": { "index": 27, "kind": "parameter", 
"displayName": "Max Pending Publish Requests", "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": "The maximum number of 
pending publish requests" },
+    "maxResponseMessageSize": { "index": 28, "kind": "parameter", 
"displayName": "Max Response Message Size", "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": "The maximum number of 
bytes a response message may have" },
+    "overrideHost": { "index": 29, "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": 30, "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": 31, "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" },
+    "requestedPublishingInterval": { "index": 32, "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": 33, "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": 34, "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" },
+    "sessionTimeout": { "index": 35, "kind": "parameter", "displayName": 
"Session 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": "Session timeout in 
milliseconds" },
+    "password": { "index": 36, "kind": "parameter", "displayName": "Password", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": true, "security": "secret", "configurationClass": 
"org.apache.camel.component.milo.client.MiloClientConfiguration", 
"configurationField": "configuration", "description": "The password for 
authentication. Use this instead of embedding credentials in th [...]
+    "username": { "index": 37, "kind": "parameter", "displayName": "Username", 
"group": "security", "label": "security", "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": "The username for 
authentication. Use this instead of embedding credentials in the endpoint URI 
when t [...]
   }
 }
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 90ff4f0cb343..3c5b1aecdb95 100644
--- a/components/camel-milo/src/main/docs/milo-client-component.adoc
+++ b/components/camel-milo/src/main/docs/milo-client-component.adoc
@@ -65,12 +65,13 @@ When both styles are provided, the explicit 
`username`/`password` parameters tak
 precedence over credentials embedded in the URI.
 
 All configuration options in the group +client+ are applicable to the shared 
client instance. Endpoints
-will share client instances for each endpoint URI. So the first time a request 
for that endpoint URI is
-made, the options of the +client+ group are applied. All further instances 
will be ignored.
+will share client instances for each endpoint URI plus 
`requestedPublishingInterval`.
+So the first time a request for that endpoint URI (plus 
`requestedPublishingInterval`) is made, the options of
+the +client+ group are applied. All further instances will be ignored.
 
 If you need alternate options for the same endpoint URI it is possible though 
to set the +clientId+ option
-which will by added internally to the endpoint URI in order to select a 
different shared connection instance.
-In other words, shared connections located by the combination of endpoint URI 
and client id.
+which will be added internally to the endpoint URI in order to select a 
different shared connection instance.
+In other words, shared connections located by the combination of endpoint URI, 
`requestedPublishingInterval` and client id.
 
 
 // component options: START
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientCachingConnectionManager.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientCachingConnectionManager.java
index 2d8ad23434e8..51e98d63324b 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientCachingConnectionManager.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientCachingConnectionManager.java
@@ -61,7 +61,7 @@ public class MiloClientCachingConnectionManager implements 
MiloClientConnectionM
         try {
             final String identifier = configuration.toCacheId();
             final ManagedConnection managedConnection
-                    = cache.computeIfAbsent(identifier, k -> 
managedConnection(configuration, monitorFilterConfiguration));
+                    = cache.computeIfAbsent(identifier, k -> 
managedConnection(configuration));
             managedConnection.increment();
             return managedConnection.connection;
         } finally {
@@ -94,14 +94,12 @@ public class MiloClientCachingConnectionManager implements 
MiloClientConnectionM
     }
 
     private ManagedConnection managedConnection(
-            MiloClientConfiguration configuration,
-            MonitorFilterConfiguration monitorFilterConfiguration) {
-        return new ManagedConnection(miloClientConnection(configuration, 
monitorFilterConfiguration));
+            MiloClientConfiguration configuration) {
+        return new ManagedConnection(miloClientConnection(configuration));
     }
 
     private MiloClientConnection miloClientConnection(
-            MiloClientConfiguration configuration,
-            MonitorFilterConfiguration monitorFilterConfiguration) {
-        return new MiloClientConnection(configuration, 
monitorFilterConfiguration);
+            MiloClientConfiguration configuration) {
+        return new MiloClientConnection(configuration);
     }
 }
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 6859b9fd896a..93f292aaef79 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
@@ -465,9 +465,9 @@ public class MiloClientConfiguration implements Cloneable {
 
     public String toCacheId() {
         if (this.clientId != null && !this.clientId.isEmpty()) {
-            return this.endpointUri + "|" + this.clientId;
+            return this.endpointUri + "|" + this.clientId + "|" + 
this.requestedPublishingInterval;
         } else {
-            return this.endpointUri;
+            return this.endpointUri + "|" + this.requestedPublishingInterval;
         }
     }
 
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConnection.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConnection.java
index 146158217690..b8222164a8f6 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConnection.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConnection.java
@@ -44,15 +44,12 @@ public class MiloClientConnection implements AutoCloseable {
     private final MiloClientConfiguration configuration;
     private SubscriptionManager manager;
     private volatile boolean initialized;
-    private MonitorFilterConfiguration monitorFilterConfiguration;
 
-    public MiloClientConnection(final MiloClientConfiguration configuration,
-                                final MonitorFilterConfiguration 
monitorFilterConfiguration) {
+    public MiloClientConnection(final MiloClientConfiguration configuration) {
         requireNonNull(configuration);
 
         // make a copy since the configuration is mutable
         this.configuration = configuration.clone();
-        this.monitorFilterConfiguration = monitorFilterConfiguration;
     }
 
     public MiloClientConfiguration getConfiguration() {
@@ -118,7 +115,8 @@ public class MiloClientConnection implements AutoCloseable {
     }
 
     public MonitorHandle monitorValue(
-            final ExpandedNodeId nodeId, Double samplingInterval, final 
Consumer<DataValue> valueConsumer) {
+            final ExpandedNodeId nodeId, Double samplingInterval, Integer 
queueSize,
+            MonitorFilterConfiguration monitorFilterConfiguration, 
Consumer<DataValue> valueConsumer) {
 
         requireNonNull(configuration);
         requireNonNull(valueConsumer);
@@ -126,7 +124,8 @@ public class MiloClientConnection implements AutoCloseable {
         checkInit();
 
         final UInteger handle
-                = this.manager.registerItem(nodeId, samplingInterval, 
valueConsumer, this.monitorFilterConfiguration);
+                = this.manager.registerItem(nodeId, samplingInterval, 
queueSize, valueConsumer,
+                        monitorFilterConfiguration);
 
         return () -> MiloClientConnection.this.manager.unregisterItem(handle);
     }
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java
index c71d87fd30dd..5f66a3a823fa 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java
@@ -35,12 +35,14 @@ public class MiloClientConsumer extends DefaultConsumer {
     private MonitorHandle handle;
     private ExpandedNodeId node;
     private Double samplingInterval;
+    private Integer queueSize;
     private boolean omitNullValues;
 
     public MiloClientConsumer(final MiloClientEndpoint endpoint, final 
Processor processor) {
         super(endpoint, processor);
         this.node = endpoint.getNodeId();
         this.samplingInterval = endpoint.getSamplingInterval();
+        this.queueSize = endpoint.getQueueSize();
         this.omitNullValues = endpoint.isOmitNullValues();
     }
 
@@ -53,7 +55,8 @@ public class MiloClientConsumer extends DefaultConsumer {
     protected void doStart() throws Exception {
         super.doStart();
         this.connection = getEndpoint().createConnection();
-        this.handle = this.connection.monitorValue(this.node, 
this.samplingInterval, this::handleValueUpdate);
+        this.handle = this.connection.monitorValue(this.node, 
this.samplingInterval, this.queueSize,
+                getEndpoint().getMonitorFilterConfiguration(), 
this::handleValueUpdate);
     }
 
     @Override
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
index ae796c746d6c..50e32811074a 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
@@ -63,8 +63,14 @@ public class MiloClientEndpoint extends DefaultEndpoint {
     /**
      * The sampling interval in milliseconds
      */
-    @UriParam(defaultValue = "0.0")
-    private Double samplingInterval = 0.0;
+    @UriParam(defaultValue = "1000.0")
+    private Double samplingInterval = 1000.0;
+
+    /**
+     * The queue size used for OPC UA subscriptions. If not set, a queue size 
of 1 is requested.
+     */
+    @UriParam
+    private Integer queueSize;
 
     /**
      * The client configuration
@@ -180,6 +186,17 @@ public class MiloClientEndpoint extends DefaultEndpoint {
         this.samplingInterval = samplingInterval;
     }
 
+    public Integer getQueueSize() {
+        return this.queueSize;
+    }
+
+    public void setQueueSize(final Integer queueSize) {
+        if (queueSize != null && queueSize < 0) {
+            throw new IllegalArgumentException("queueSize must be >= 0, got: " 
+ queueSize);
+        }
+        this.queueSize = queueSize;
+    }
+
     public boolean isDefaultAwaitWrites() {
         return this.defaultAwaitWrites;
     }
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MonitorFilterConfiguration.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MonitorFilterConfiguration.java
index 66feb1d33dbe..d9408506f517 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MonitorFilterConfiguration.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MonitorFilterConfiguration.java
@@ -32,7 +32,7 @@ public class MonitorFilterConfiguration implements Cloneable {
     private MonitorFilterType monitorFilterType;
 
     @UriParam(defaultValue = "0", description = "Deadband type for 
MonitorFilterType DataChangeFilter.")
-    private UInteger dataChangeFilterDeadbandType = UInteger.valueOf(0);
+    private Integer dataChangeFilterDeadbandType = Integer.valueOf(0);
 
     @UriParam(defaultValue = "0.0", description = "Deadband value for 
MonitorFilterType DataChangeFilter.")
     private Double dataChangeFilterDeadbandValue = 0.0;
@@ -48,11 +48,14 @@ public class MonitorFilterConfiguration implements 
Cloneable {
         this.monitorFilterType = monitorFilterType;
     }
 
-    public UInteger getDataChangeFilterDeadbandType() {
+    public Integer getDataChangeFilterDeadbandType() {
         return dataChangeFilterDeadbandType;
     }
 
-    public void setDataChangeFilterDeadbandType(UInteger 
dataChangeFilterDeadbandType) {
+    public void setDataChangeFilterDeadbandType(Integer 
dataChangeFilterDeadbandType) {
+        if (dataChangeFilterDeadbandType == null) {
+            throw new IllegalArgumentException("dataChangeFilterDeadbandType 
must not be null");
+        }
         this.dataChangeFilterDeadbandType = dataChangeFilterDeadbandType;
     }
 
@@ -76,12 +79,15 @@ public class MonitorFilterConfiguration implements 
Cloneable {
         if (Objects.isNull(this.monitorFilterType)) {
             throw new IllegalStateException("No filter type configured.");
         }
+        if (this.dataChangeFilterDeadbandType == null) {
+            throw new IllegalStateException("dataChangeFilterDeadbandType must 
not be null");
+        }
 
         switch (monitorFilterType) {
             default:
                 return new DataChangeFilter(
                         this.getDataChangeFilterTrigger(),
-                        this.getDataChangeFilterDeadbandType(),
+                        
UInteger.valueOf(this.getDataChangeFilterDeadbandType()),
                         this.getDataChangeFilterDeadbandValue());
         }
     }
diff --git 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java
 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java
index e0063b00b0a1..65bd86614470 100644
--- 
a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java
+++ 
b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java
@@ -60,7 +60,6 @@ import org.eclipse.milo.opcua.stack.core.UaException;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ByteString;
 import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
 import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
-import org.eclipse.milo.opcua.stack.core.types.builtin.ExtensionObject;
 import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
 import org.eclipse.milo.opcua.stack.core.types.builtin.QualifiedName;
 import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode;
@@ -123,11 +122,14 @@ public class SubscriptionManager {
 
         private final Consumer<DataValue> valueConsumer;
         private MonitorFilterConfiguration monitorFilterConfiguration;
+        private final Integer queueSize;
 
-        Subscription(ExpandedNodeId nodeId, final Double samplingInterval, 
final Consumer<DataValue> valueConsumer,
+        Subscription(ExpandedNodeId nodeId, final Double samplingInterval, 
Integer queueSize,
+                     final Consumer<DataValue> valueConsumer,
                      final MonitorFilterConfiguration 
monitorFilterConfiguration) {
             this.nodeId = nodeId;
             this.samplingInterval = samplingInterval;
+            this.queueSize = queueSize;
             this.valueConsumer = valueConsumer;
             this.monitorFilterConfiguration = monitorFilterConfiguration;
         }
@@ -140,17 +142,21 @@ public class SubscriptionManager {
             return this.samplingInterval;
         }
 
+        public Integer getQueueSize() {
+            return this.queueSize;
+        }
+
         public Consumer<DataValue> getValueConsumer() {
             return this.valueConsumer;
         }
 
-        public ExtensionObject createMonitoringFilter(OpcUaClient client) {
+        public MonitoringFilter createMonitoringFilter() {
             if (Objects.isNull(this.monitorFilterConfiguration)
                     || 
Objects.isNull(this.monitorFilterConfiguration.getMonitorFilterType())) {
                 return null;
             }
             final MonitoringFilter monitorFilter = 
this.monitorFilterConfiguration.createMonitoringFilter();
-            return ExtensionObject.encode(client.getStaticEncodingContext(), 
monitorFilter);
+            return monitorFilter;
         }
     }
 
@@ -191,6 +197,16 @@ public class SubscriptionManager {
                 } else {
                     final ReadValueId itemId = new ReadValueId(node, 
AttributeId.Value.uid(), null, QualifiedName.NULL_VALUE);
                     final OpcUaMonitoredItem item = new 
OpcUaMonitoredItem(itemId, MonitoringMode.Reporting);
+                    if (null != s.getSamplingInterval()) {
+                        item.setSamplingInterval(s.getSamplingInterval());
+                    }
+                    if (null != s.getQueueSize()) {
+                        item.setQueueSize(UInteger.valueOf(s.getQueueSize()));
+                    }
+                    MonitoringFilter filter = s.createMonitoringFilter();
+                    if (filter != null) {
+                        item.setFilter(filter);
+                    }
                     items.add(item);
                     // Keep track of which subscription this item belongs to
                     itemToClientHandle.put(item, entry.getKey());
@@ -768,6 +784,7 @@ public class SubscriptionManager {
 
             // Create subscription synchronously - the create() method blocks 
until complete
             OpcUaSubscription subscription = new OpcUaSubscription(client);
+            
subscription.setPublishingInterval(this.configuration.getRequestedPublishingInterval());
             subscription.setSubscriptionListener(new 
SubscriptionListenerImpl());
             subscription.create();
 
@@ -939,11 +956,13 @@ public class SubscriptionManager {
     }
 
     public UInteger registerItem(
-            final ExpandedNodeId nodeId, final Double samplingInterval, final 
Consumer<DataValue> valueConsumer,
+            final ExpandedNodeId nodeId, final Double samplingInterval, 
Integer queueSize,
+            final Consumer<DataValue> valueConsumer,
             final MonitorFilterConfiguration monitorFilterConfiguration) {
 
         final UInteger clientHandle = 
Unsigned.uint(this.clientHandleCounter.incrementAndGet());
-        final Subscription subscription = new Subscription(nodeId, 
samplingInterval, valueConsumer, monitorFilterConfiguration);
+        final Subscription subscription
+                = new Subscription(nodeId, samplingInterval, queueSize, 
valueConsumer, monitorFilterConfiguration);
 
         lock.lock();
         try {
diff --git 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java
 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java
index 5b85288a789a..07509dea2348 100644
--- 
a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java
+++ 
b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java
@@ -16,15 +16,18 @@
  */
 package org.apache.camel.component.milo;
 
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.EndpointInject;
+import org.apache.camel.Exchange;
 import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.milo.server.MiloServerComponent;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInfo;
@@ -32,6 +35,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.awaitility.Awaitility.await;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Testing the monitor functionality for item
@@ -45,15 +49,55 @@ public class MonitorItemTest extends AbstractMiloServerTest 
{
     private static final String MILO_CLIENT_ITEM_C1_1 = 
"milo-client:opc.tcp://foo:bar@localhost:@@port@@?node="
                                                         + 
NodeIds.nodeValue(MiloServerComponent.DEFAULT_NAMESPACE_URI,
                                                                 "myitem1")
+                                                        + 
"&monitorFilterType=dataChangeFilter&dataChangeFilterTrigger=StatusValue&dataChangeFilterDeadbandType=0"
+                                                        + 
"&requestedPublishingInterval=2000&samplingInterval=100&queueSize=4"
+                                                        + 
"&allowedSecurityPolicies=None&overrideHost=true";
+
+    // second client endpoint with modified dataChangeFilterTrigger to verify 
that they are independent on same client
+    private static final String MILO_CLIENT_ITEM_C1_2 = 
"milo-client:opc.tcp://foo:bar@localhost:@@port@@?node="
+                                                        + 
NodeIds.nodeValue(MiloServerComponent.DEFAULT_NAMESPACE_URI,
+                                                                "myitem1")
+                                                        + 
"&monitorFilterType=dataChangeFilter&dataChangeFilterTrigger=StatusValueTimestamp&dataChangeFilterDeadbandType=0"
+                                                        + 
"&requestedPublishingInterval=2000&samplingInterval=100&queueSize=4"
+                                                        + 
"&allowedSecurityPolicies=None&overrideHost=true";
+
+    // third client endpoint to check for changed default samplingInterval, 
sharing client for MILO_CLIENT_ITEM_C1_1.
+    private static final String MILO_CLIENT_ITEM_C1_3 = 
"milo-client:opc.tcp://foo:bar@localhost:@@port@@?node="
+                                                        + 
NodeIds.nodeValue(MiloServerComponent.DEFAULT_NAMESPACE_URI,
+                                                                "myitem1")
+                                                        + 
"&requestedPublishingInterval=2000&queueSize=4"
+                                                        + 
"&allowedSecurityPolicies=None&overrideHost=true";
+
+    // another client endpoint to check for independent 
requestedPublishingInterval,
+    // will create a second client because requestedPublishingInterval is part 
of toCacheId.
+    private static final String MILO_CLIENT_ITEM_C2_1 = 
"milo-client:opc.tcp://foo:bar@localhost:@@port@@?node="
+                                                        + 
NodeIds.nodeValue(MiloServerComponent.DEFAULT_NAMESPACE_URI,
+                                                                "myitem1")
+                                                        + 
"&requestedPublishingInterval=1000&samplingInterval=100&queueSize=3"
                                                         + 
"&allowedSecurityPolicies=None&overrideHost=true";
 
     private static final String MOCK_TEST_1 = "mock:test1";
 
+    private static final String MOCK_TEST_2 = "mock:test2";
+
+    private static final String MOCK_TEST_3 = "mock:test3";
+
+    private static final String MOCK_TEST_4 = "mock:test4";
+
     private static final Logger LOG = 
LoggerFactory.getLogger(MonitorItemTest.class);
 
     @EndpointInject(MOCK_TEST_1)
     protected MockEndpoint test1Endpoint;
 
+    @EndpointInject(MOCK_TEST_2)
+    protected MockEndpoint test2Endpoint;
+
+    @EndpointInject(MOCK_TEST_3)
+    protected MockEndpoint test3Endpoint;
+
+    @EndpointInject(MOCK_TEST_4)
+    protected MockEndpoint test4Endpoint;
+
     @Produce(DIRECT_START_1)
     protected ProducerTemplate producer1;
 
@@ -65,6 +109,9 @@ public class MonitorItemTest extends AbstractMiloServerTest {
                 from(DIRECT_START_1).to(MILO_SERVER_ITEM_1);
 
                 from(resolve(MILO_CLIENT_ITEM_C1_1)).to(MOCK_TEST_1);
+                from(resolve(MILO_CLIENT_ITEM_C1_2)).to(MOCK_TEST_2);
+                from(resolve(MILO_CLIENT_ITEM_C1_3)).to(MOCK_TEST_3);
+                from(resolve(MILO_CLIENT_ITEM_C2_1)).to(MOCK_TEST_4);
             }
         };
     }
@@ -78,20 +125,63 @@ public class MonitorItemTest extends 
AbstractMiloServerTest {
     }
 
     /**
-     * Monitor multiple events
+     * Monitor multiple events With explicit parameters for 
requestedPublishingInterval, samplingInterval, and queueSize
      */
     @Test
     public void testMonitorItem1() throws Exception {
         /*
-         * we will wait 2 * 1_000 milliseconds between server updates since the
-         * default server update rate is 1_000 milliseconds
+         * we will wait 2 * 100 milliseconds between server updates since the
+         * explicitly set update rate is 100 milliseconds (samplingInterval) 
in most clients.
+         * With 2000ms requestedPublishingInterval and bigger queueSize of 4 
we should get all updates which change the value (in client 1).
+         * The test relies on milo's default discardOldest=true so the newest 
value ("Done") survives a queue overflow,
+         * there is currently no parameter to change this.
+         * Extra clients have been added to test independence of parameters 
set. See description on test endpoints
+         *
          */
-        final var time = 2 * 1_000;
+        final var time = 2 * 100;
         final var timeout = 10 * 1_000; // 10 seconds timeout for assertions
 
-        // item 1 ... only this one receives
+        /*
+         * test1Endpoint is related to client C1_1 with: 
requestedPublishingInterval=2000, samplingInterval=100,
+         * queueSize=4. It should get the 3 of the first 4 messages (with 
changes) because of samplingInterval less
+         * than update rate and queueSize over 3 and an update pause of 2 
seconds after they are sent.
+         * From the rest 16 messages, sent in about 3 seconds, some should be 
dropped because of queueSize. They should
+         * fall into 2 (or 3 depending on exact timing) publishing periods, so 
there should be at least 8 and at most 12 extra messages.
+         */
         test1Endpoint.reset();
-        test1Endpoint.setExpectedCount(3);
+        test1Endpoint.setMinimumExpectedMessageCount(11);    // the first 3, 
plus at least 8 more from rest (if they fall to 2 periods)
+        test1Endpoint.setAssertPeriod(3000);
+
+        /*
+         * test2Endpoint is related to client C1_2 which differs from C1_1 
only in dataChangeFilterTrigger=StatusValueTimestamp,
+         * so it will get the 3rd update from the first set of 4 which does 
not change the value.
+         */
+        test2Endpoint.reset();
+        test2Endpoint.setMinimumExpectedMessageCount(12);    // the first 4, 
plus at least 8 more from rest (if they fall to 2 periods)
+        test2Endpoint.setAssertPeriod(3000);
+
+        /*
+         * test3Endpoint is related to client C1_3 with: 
requestedPublishingInterval=2000, samplingInterval=1000 from
+         * default, queueSize=4. It should get 1 (or 2 depending on exact 
timing) of the first 3 messages because of
+         * samplingInterval and an update pause of 2 seconds after they are 
sent. From the rest 16 messages, sent in
+         * about 3 seconds, only 3 or 4 should be sampled. So minimum is 4, 
maximum is
+         * 6 messages
+         */
+        test3Endpoint.reset();
+        test3Endpoint.setMinimumExpectedMessageCount(4);    // One or 2 of the 
first 3, plus 3 or 4 of the remaining 16
+        test3Endpoint.setAssertPeriod(3000);
+
+        /*
+         * test4Endpoint is related to client C2_1 with: 
requestedPublishingInterval=1000, samplingInterval=100,
+         * queueSize=3, It should get the first 3 messages because of 
samplingInterval less than update rate and
+         * queueSize over 3 and an update pause of 2 seconds after they are 
sent. From the rest 16 messages, sent in
+         * about 3 seconds, some should be dropped because of queueSize. They 
should fall into 4 (or 5 depending on
+         * exact timing) publishing periods, so there should be at least 9 and 
at most 11 extra messages (12 to 14 in
+         * total; the assertion below allows one more because the timing is 
sensitive).
+         */
+        test4Endpoint.reset();
+        test4Endpoint.setMinimumExpectedMessageCount(12);    // the first 3, 
plus at least 3*3 more from rest (if they fall to 3 periods)
+        test4Endpoint.setAssertPeriod(3000);
 
         // Allow time for OPC UA client-server connection to establish
         await().pollDelay(1, TimeUnit.SECONDS).untilAsserted(() -> {
@@ -102,23 +192,61 @@ public class MonitorItemTest extends 
AbstractMiloServerTest {
         LOG.info("Server Port: {}", this.getServerPort());
         LOG.info("Client URI resolved: {}", resolve(MILO_CLIENT_ITEM_C1_1));
 
-        // set server values
+        // set server values sent faster than requestedPublishingInterval so 
they must be put to queue
         this.producer1.sendBody("Foo");
         await().pollDelay(time, TimeUnit.MILLISECONDS).untilAsserted(() -> {
         });
         this.producer1.sendBody("Bar");
         await().pollDelay(time, TimeUnit.MILLISECONDS).untilAsserted(() -> {
         });
+        // This update will only be caught on MILO_CLIENT_ITEM_C1_2 because of 
dataChangeFilterTrigger=StatusValueTimestamp
+        this.producer1.sendBody("Bar");
+        await().pollDelay(time, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+        });
         this.producer1.sendBody("Baz");
         await().pollDelay(time, TimeUnit.MILLISECONDS).untilAsserted(() -> {
         });
 
+        // now wait for requestedPublishingInterval so we are sure the 3 
values are passed
+        await().pollDelay(10 * time, TimeUnit.MILLISECONDS).untilAsserted(() 
-> {
+        });
+        for (int i = 1; i <= 15; i++) {
+            this.producer1.sendBody("Message " + i);
+            await().pollDelay(time, TimeUnit.MILLISECONDS).untilAsserted(() -> 
{
+            });
+        }
+        this.producer1.sendBody("Done");
+
         // tests
         testBody(this.test1Endpoint.message(0), assertGoodValue("Foo"));
         testBody(this.test1Endpoint.message(1), assertGoodValue("Bar"));
         testBody(this.test1Endpoint.message(2), assertGoodValue("Baz"));
 
+        testBody(this.test2Endpoint.message(0), assertGoodValue("Foo"));
+        testBody(this.test2Endpoint.message(1), assertGoodValue("Bar"));
+        // this client should get the extra message without value change
+        testBody(this.test2Endpoint.message(2), assertGoodValue("Bar"));
+        testBody(this.test2Endpoint.message(3), assertGoodValue("Baz"));
+
         // assert
         MockEndpoint.assertIsSatisfied(context, timeout, 
TimeUnit.MILLISECONDS);
+
+        // The number of messages must be less than the number sent, because 
from the 15 messages sent at last part,
+        // about 10 should be in one requestedPublishingInterval, everything 
over 4 should be dropped
+        int count1 = this.test1Endpoint.getReceivedCounter();
+        assertTrue(count1 < 18, "No messages have been dropped, but should 
because of queueSize");
+
+        // get the last exchange, this must be the last one, if messages are 
dropped it must be some in between
+        List<Exchange> receivedExchanges = 
this.test1Endpoint.getReceivedExchanges();
+        Exchange last = receivedExchanges.get(receivedExchanges.size() - 1);
+        assertGoodValue("Done").accept((DataValue) last.getIn().getBody());
+
+        // The third client should get no more than 6 messages
+        int count3 = this.test3Endpoint.getReceivedCounter();
+        assertTrue(count3 <= 6, "Not enough messages have been dropped, but 
should because of queueSize");
+
+        // The fourth client should get no more than 14 messages, because it 
is very sensitive on the timing we allow 1 more
+        int count4 = this.test4Endpoint.getReceivedCounter();
+        assertTrue(count4 <= 15, "Not enough messages have been dropped, but 
should because of queueSize");
     }
 }
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc
index 0754870bfa4d..c57fe1b0eac5 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc
@@ -4854,6 +4854,19 @@ The `cancelCorrelationId` method of 
`org.apache.camel.component.jms.reply.ReplyM
 a `boolean`: `true` if the pending reply was cancelled, `false` if the request 
timeout or the reply had already taken
 it. A custom `ReplyManager` implementation has to change the return type.
 
+=== camel-milo - potential breaking change
+
+Since 4.16, the `samplingInterval` default of 0.0 was ignored and milo's own 
`OpcUaMonitoredItem` default of 1000 ms
+was used. Now the parameter is used again, but the default is changed to 
1000.0 to take the previous behaviour
+(starting with 4.16) into account.
+The same applies to a configured `requestedPublishingInterval` or data-change 
filter, which now take effect.
+The parameter `requestedPublishingInterval` is now part of the cache key, 
resulting in multiple clients for different
+values set.
+
+The parameter `dataChangeFilterDeadbandType` changes type from `UInteger` to 
`Integer`.
+This changes the public `MonitorFilterConfiguration` getter/setter and the 
endpoint-DSL builder method, so Java code
+passing a `UInteger` will no longer compile.
+
 == ThrottlingExceptionRoutePolicy
 
 `ThrottlingExceptionRoutePolicy.setKeepOpen(true)` now opens the circuit 
immediately and synchronously (the consumer
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 8c00914b1ba4..d6e3c02ca735 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
@@ -62,8 +62,7 @@ public interface MiloClientEndpointBuilderFactory {
         /**
          * Deadband type for MonitorFilterType DataChangeFilter.
          * 
-         * The option is a:
-         * 
<code>org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger</code> 
type.
+         * The option is a: <code>java.lang.Integer</code> type.
          * 
          * Default: 0
          * Group: common
@@ -71,15 +70,15 @@ public interface MiloClientEndpointBuilderFactory {
          * @param dataChangeFilterDeadbandType the value to set
          * @return the dsl builder
          */
-        default MiloClientEndpointConsumerBuilder 
dataChangeFilterDeadbandType(org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger
 dataChangeFilterDeadbandType) {
+        default MiloClientEndpointConsumerBuilder 
dataChangeFilterDeadbandType(Integer dataChangeFilterDeadbandType) {
             doSetProperty("dataChangeFilterDeadbandType", 
dataChangeFilterDeadbandType);
             return this;
         }
         /**
          * Deadband type for MonitorFilterType DataChangeFilter.
          * 
-         * The option will be converted to a
-         * 
<code>org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger</code> 
type.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
          * 
          * Default: 0
          * Group: common
@@ -301,12 +300,43 @@ public interface MiloClientEndpointBuilderFactory {
             doSetProperty("omitNullValues", omitNullValues);
             return this;
         }
+        /**
+         * The queue size used for OPC UA subscriptions. If not set, a queue
+         * size of 1 is requested.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: common
+         * 
+         * @param queueSize the value to set
+         * @return the dsl builder
+         */
+        default MiloClientEndpointConsumerBuilder queueSize(Integer queueSize) 
{
+            doSetProperty("queueSize", queueSize);
+            return this;
+        }
+        /**
+         * The queue size used for OPC UA subscriptions. If not set, a queue
+         * size of 1 is requested.
+         * 
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * 
+         * Group: common
+         * 
+         * @param queueSize the value to set
+         * @return the dsl builder
+         */
+        default MiloClientEndpointConsumerBuilder queueSize(String queueSize) {
+            doSetProperty("queueSize", queueSize);
+            return this;
+        }
         /**
          * The sampling interval in milliseconds.
          * 
          * The option is a: <code>java.lang.Double</code> type.
          * 
-         * Default: 0.0
+         * Default: 1000.0
          * Group: common
          * 
          * @param samplingInterval the value to set
@@ -321,7 +351,7 @@ public interface MiloClientEndpointBuilderFactory {
          * 
          * The option will be converted to a <code>java.lang.Double</code> 
type.
          * 
-         * Default: 0.0
+         * Default: 1000.0
          * Group: common
          * 
          * @param samplingInterval the value to set
@@ -899,8 +929,7 @@ public interface MiloClientEndpointBuilderFactory {
         /**
          * Deadband type for MonitorFilterType DataChangeFilter.
          * 
-         * The option is a:
-         * 
<code>org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger</code> 
type.
+         * The option is a: <code>java.lang.Integer</code> type.
          * 
          * Default: 0
          * Group: common
@@ -908,15 +937,15 @@ public interface MiloClientEndpointBuilderFactory {
          * @param dataChangeFilterDeadbandType the value to set
          * @return the dsl builder
          */
-        default MiloClientEndpointProducerBuilder 
dataChangeFilterDeadbandType(org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger
 dataChangeFilterDeadbandType) {
+        default MiloClientEndpointProducerBuilder 
dataChangeFilterDeadbandType(Integer dataChangeFilterDeadbandType) {
             doSetProperty("dataChangeFilterDeadbandType", 
dataChangeFilterDeadbandType);
             return this;
         }
         /**
          * Deadband type for MonitorFilterType DataChangeFilter.
          * 
-         * The option will be converted to a
-         * 
<code>org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger</code> 
type.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
          * 
          * Default: 0
          * Group: common
@@ -1138,12 +1167,43 @@ public interface MiloClientEndpointBuilderFactory {
             doSetProperty("omitNullValues", omitNullValues);
             return this;
         }
+        /**
+         * The queue size used for OPC UA subscriptions. If not set, a queue
+         * size of 1 is requested.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: common
+         * 
+         * @param queueSize the value to set
+         * @return the dsl builder
+         */
+        default MiloClientEndpointProducerBuilder queueSize(Integer queueSize) 
{
+            doSetProperty("queueSize", queueSize);
+            return this;
+        }
+        /**
+         * The queue size used for OPC UA subscriptions. If not set, a queue
+         * size of 1 is requested.
+         * 
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * 
+         * Group: common
+         * 
+         * @param queueSize the value to set
+         * @return the dsl builder
+         */
+        default MiloClientEndpointProducerBuilder queueSize(String queueSize) {
+            doSetProperty("queueSize", queueSize);
+            return this;
+        }
         /**
          * The sampling interval in milliseconds.
          * 
          * The option is a: <code>java.lang.Double</code> type.
          * 
-         * Default: 0.0
+         * Default: 1000.0
          * Group: common
          * 
          * @param samplingInterval the value to set
@@ -1158,7 +1218,7 @@ public interface MiloClientEndpointBuilderFactory {
          * 
          * The option will be converted to a <code>java.lang.Double</code> 
type.
          * 
-         * Default: 0.0
+         * Default: 1000.0
          * Group: common
          * 
          * @param samplingInterval the value to set
@@ -1665,8 +1725,7 @@ public interface MiloClientEndpointBuilderFactory {
         /**
          * Deadband type for MonitorFilterType DataChangeFilter.
          * 
-         * The option is a:
-         * 
<code>org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger</code> 
type.
+         * The option is a: <code>java.lang.Integer</code> type.
          * 
          * Default: 0
          * Group: common
@@ -1674,15 +1733,15 @@ public interface MiloClientEndpointBuilderFactory {
          * @param dataChangeFilterDeadbandType the value to set
          * @return the dsl builder
          */
-        default MiloClientEndpointBuilder 
dataChangeFilterDeadbandType(org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger
 dataChangeFilterDeadbandType) {
+        default MiloClientEndpointBuilder dataChangeFilterDeadbandType(Integer 
dataChangeFilterDeadbandType) {
             doSetProperty("dataChangeFilterDeadbandType", 
dataChangeFilterDeadbandType);
             return this;
         }
         /**
          * Deadband type for MonitorFilterType DataChangeFilter.
          * 
-         * The option will be converted to a
-         * 
<code>org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger</code> 
type.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
          * 
          * Default: 0
          * Group: common
@@ -1904,12 +1963,43 @@ public interface MiloClientEndpointBuilderFactory {
             doSetProperty("omitNullValues", omitNullValues);
             return this;
         }
+        /**
+         * The queue size used for OPC UA subscriptions. If not set, a queue
+         * size of 1 is requested.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: common
+         * 
+         * @param queueSize the value to set
+         * @return the dsl builder
+         */
+        default MiloClientEndpointBuilder queueSize(Integer queueSize) {
+            doSetProperty("queueSize", queueSize);
+            return this;
+        }
+        /**
+         * The queue size used for OPC UA subscriptions. If not set, a queue
+         * size of 1 is requested.
+         * 
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * 
+         * Group: common
+         * 
+         * @param queueSize the value to set
+         * @return the dsl builder
+         */
+        default MiloClientEndpointBuilder queueSize(String queueSize) {
+            doSetProperty("queueSize", queueSize);
+            return this;
+        }
         /**
          * The sampling interval in milliseconds.
          * 
          * The option is a: <code>java.lang.Double</code> type.
          * 
-         * Default: 0.0
+         * Default: 1000.0
          * Group: common
          * 
          * @param samplingInterval the value to set
@@ -1924,7 +2014,7 @@ public interface MiloClientEndpointBuilderFactory {
          * 
          * The option will be converted to a <code>java.lang.Double</code> 
type.
          * 
-         * Default: 0.0
+         * Default: 1000.0
          * Group: common
          * 
          * @param samplingInterval the value to set

Reply via email to