Dear Community
I am confused with adding node management services, in particular, how the NodeManagementServices gets called (I can't find any reference to it in the code).
What I have done so far was to register the AbstractNodeManager and also the DefaultNodeManagementServiceSet as follows:
server = new OpcUaServer(serverConfig);
AddressSpaceManager addressSpaceManager = server.getAddressSpaceManager();
AbstractNodeManager<UaNode> nodeManager = new AbstractNodeManager<UaNode>();
addressSpaceManager.register(nodeManager);
System.out.println("registered NodeManager ...");
server.getStackServer().addServiceSet("urn:energyutilities:opcua:server",
new DefaultNodeManagementServiceSet());
System.out.println("added DefaultNodeManagementServiceSet ...");
.. But whenever I try to add a node to my server from an outside script, it calls this line in DefaultNodeManagementServiceSet.addNodes():
...
server.getAddressSpaceManager().addNodes(context, nodesToAdd);
...
... which ends up calling the default NodeManagementServices.addNodes() which returns "BadNotSupported".
So my question is really: If I create a custom subclass of NodeManagementServices, where do I register it so that it will get called instead of the original interface?
I thought that " addressSpaceManager.register(nodeManager); " would have taken care of it ... what am I missing?
Or was I supposed to change the DefaultNodeManagementServiceSet.addNodes() so that it does something different?
I'm sorry if is is a real dumb question....
Best regards
Erik
|