This is a new minor release of the SDK. The release contains several library updates, including a major update to the OPC UA Java Stack.
Client side reconnection procedure has also been improved and it should now work more reliably with subscription recovery.
The release contains several interface changes, so it may require minor modifications to the applications using the SDK as well.
OPC Foundation Java Stack changes
Build 1.02.337.4
Changed: Security framework reworked. Again, enables usage of Bouncy Castle natively, without JCE, in practice enabling 256 bit security witout installing the JCE Unlimited Strength Jurisdiction Policy Files. See README.txt for details
Bouncy Castle libraries updated to version 1.52
Spongy Castle libraries updated to version 1.52
Support for HTTP Core version 4.3 and 4.4 added (but due to some issues encountered with the latest libraries, 4.2 kept as the default version provided with the SDK)
Interoperability of Basic256Sha256 and Structure encoding towards other stacks has been improved
Several minor fixes included
Changes to both SDK Client and Server
New: interface UaValueNode; common base type for UaVariable & UaVariableType
Changed: UaMethod.getInputArguments & getOutputArguments to return an empty array instead of null, when the value is null
Changed: UaAddress internal parsing is based on custom parser instead of URI, providing more complete validation.
Changed: UaAddress will use the default protocol (opc.tcp) and port (4840/4843) if none is provided in the URI string
Changed: UaAddress.getServerName() and UaClient.getServerName() does not contain the '/' prefix any more
New: ApplicationIdentity will now replace 'localhost' in ApplicationName with the actual hostname, similar to what is done for ApplicationUri
Fixed: ModelParser can now read the value field for custom Structure types from XML files - although they cannot be decoded and will be kept as ExtensionObject
Changes to SDK Client
INTERFACE CHANGE: New method, SubscriptionAliveListener.onAfterCreate()
INTERFACE CHANGE: Return type changed, UaClient.callAsync returns AsyncResult
Changes to SDK Server
INTERFACE CHANGES: NodeManager.getVariableType(), IoManager.readValue(), IoManager.writeValue(), IoManagerListener.onReadValue(), IoManagerListener.onWriteValue(): type of variable parameter changed to UaValueNode (from UaVariable)
Fixed: IoManager.readValue was not called for VariableType nodes (fixed with the above restructuring)
New: PublishRequest timeouts are now handled
Changes to Sample applications
SampleConsoleClient prompting for connection URI, if no command line argument is given, is clarified
ApplicationName of SampleConsoleServer & SampleConsoleClient now includes the computer name (defined with '@localhost' in the source)
Code generator
New: The codegen will now generate Async versions of all methods.
New: The codegen generates equals() & hashCode() for Structure types