Prosys OPC UA Java SDK 1.3.2
This is an update release, with some fixes and improvements. It improves especially the reconnect handling on the client side and also timeout vs. memory handling on the server side.
A few important certificate issues are also improved (in the Java stack).
OPC Foundation Java Stack changes
- Stack Build 314.2
- New: ExpandedNodeId.parseExpandedNodeId()
- New: UnsignedShort.parseUnsignedShort()
- New: StackUtils.logStatus()
- New: StackUtils.logStatus()
- New: StackUtils.get/setDefaultMaxBlockingWorkerThreadPoolSize()
- New: StackUtils.get/setBlockingWorkerThreadPoolCoreSize() & get/setBlockingWorkerThreadPoolTimeout()
- New: StackUtils.get/setUncaughtExceptionHandler()
- New: StackUtils.newNamedThreadPool()
- Fixed: Support for 2048 bit keys
- Fixed: EndpointUtil.select when endpointUrl==null
- Fixed: Do not retry the reading of first value from socket
- Fixed: BASIC256 KeyDerivationLength
- Renamed: NodeId.parseNodeId() from decode() [deprecated],
- Fixed: CertificateUtils.loadFromKeyStore to always try Sun provider first (may fail with others) and to use password for both key store and key (in case of BC, for example)
- Fixed: EndpointUtil.createUserNameIdentityToken, when the server does not provide any Nonce
- Changed: Enable alternate hostNames for the certificates
Changes to both SDK Client and Server
- Fixed: NPE from PkiFileBasedCertificateValidator.validate(null, ...)
- Changed: DataTypeConverter.parseVariant to raise IllegalArgumentException or NullPointerException (and doc updated)
Changes to SDK Client
- Changed: UaClient.reconnect() to return true if the session could be reused
- Changed: UaClient.addSubscription() returns Subscription instead of SubscriptionBase
- New: ConnectException, raised from UaClient.connect() and reconnect() instead of ServerConnectionException
- New: Subscription.set/getRetransmissionEnabled() - to optionally disable Republish altogether
- Fixed: NullPointerException from UaClient.reconnect() if session did not exist (e.g. status read failed due to server error)
- Fixed: UaClient.reconnect() did not always recreate the subscriptions properly
- Fixed: Improved handling of Republish, in case the server no longer has the missing notifications - at some occasions the subscriptions stopped receiving data
- Fixed: UaVariableImpl failed with array data - and contained some "invalid" server side code
- Fixed: AddressSpace.setMaxReferencesPerNode() was not effective - changing default also to 1000 from 0
- Fixed: historyRead must be called with releaseContinuationPoints=false for the first time (misinterpreted in all convenience methods)
Changes to SDK Server
- New: UaServer.addEndpointHost() (published)
- New: UaServer.is/setUseHostName()
- New: UaServer.is/setUseCanonicalHostName()
- New: UaServer.getEndpointSecurityLevel() (published)
- New: SubscriptionManager.MaxRetransmissionQueueSize (default 10)
- New: NodeManager.isOfType()
- New: MonitoredItem.getServiceContext()
- Fixed: ServiceManagerBase.checkDataType to check parent datatypes as well
- Fixed: Synchronize access to MonitoredItem.node property
- Fixed: NPE from ServerNode.registerOverridePlainMethod if the typeDefinition is not a "valid" node
- Fixed: PublishRequestQueue & the handler thread were not removed at session close
- Fixed: UaExternalNode to silently ignore access to SuperType property
- Fixed: Session did not handle browse continuation points properly in all cases
- Changed: Generation of InitialValue of monitored items (to always use IoManager)
Changes to the Sample applications
- New: Another filter example to SampleConsoleClient
- New: SampleConsoleClient -u userName -p passWord (from cmd line)
- Fixed: SampleConsoleServer.eotsNode renamed back to myLevel
- Fixed: MyBigNodeManager did not remove monitoredItems properly
- New: SampleConsoleClient readHistory Sample
- Changed: SampleConsoleServer to use all hostNames in the certificate
25.04.12