Andrea Cosentino created CAMEL-23600:
----------------------------------------

             Summary: camel-milo: expose the underlying Eclipse Milo 
OpcUaClient for custom OPC UA DataType handling
                 Key: CAMEL-23600
                 URL: https://issues.apache.org/jira/browse/CAMEL-23600
             Project: Camel
          Issue Type: Improvement
          Components: camel-milo
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.21.0


The camel-milo OPC UA client reads and writes built-in OPC UA data types 
correctly, but values of custom (server-defined) data types are returned as 
ExtensionObject instances. These cannot be decoded (nor encoded, for writes) 
without access to the underlying Eclipse Milo OpcUaClient encoding contexts 
(getStaticEncodingContext() / getDynamicEncodingContext()).

At present the OpcUaClient is held privately inside 
SubscriptionManager.Connected and is not reachable from outside the component, 
so users have no way to obtain the encoding contexts.

This improvement exposes the active OpcUaClient via a new 
MiloClientConnection.getOpcUaClient() accessor (delegating through 
SubscriptionManager). Users can then obtain the connection from the 
MiloClientEndpoint, retrieve the milo client and its encoding contexts, and 
perform custom DataType encode/decode themselves 
(ExtensionObject.encode/decode).

The accessor is purely additive; no existing public API changes. It returns 
null while the connection is not established (the connection is 
lazy/asynchronous and is re-created on reconnect), and the client lifecycle 
remains owned by Camel.

Reported on the Apache Camel user mailing list.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to