Skip to content

OPC UA 1.04.372 Maintenance Update

Compare
Choose a tag to compare
@opcfoundation-org opcfoundation-org released this 25 Aug 18:54

Version bump to .372 due to breaking changes and roll up until August 25th

Bug Fixes / Improvements:

  • The spec compliant opc.https endpoint is now supported for client and server. For non compliant clients and servers https is still supported as a prefix.
  • The reference server TestData complex data structure sample is now compliant.
  • The returned string tables for diagnostic infos were incorrect when a service call had to be batched into multiple calls due to operation limits.
  • Use of ArrayPool.Shared in the BufferManager takes advantage of uninitialized buffer memory (.NET6) and improved buffer sharing.
  • Fix a few special cases and bugs in the subscription transfer on the client and server. Fixed sequential publishing support when subscription is transferred.
  • A hot path for Byte processing was added in the ArraySegmentStream.
  • Refuse nested inner diagnostics levels > 5 to prevent potential stack overflows.
  • Support reconnect to servers from distributed clients, e.g. as failover when subscription transfer is not supported by a server.
  • Update of MQTT PubSub sample library to latest MQTT.NET library by @KneShell.
  • Fix use cases in client and server when GoodSubscriptionTransferred was not sent by the server or acted on in the client after session transfer.

Changes that may break existing code/projects:

  • .NET Framework 4.6.2 support is deprecated. Only .NET Framework 4.8 is supported to reduce the usage of the Bouncy Castle crypto library.
  • ICloneable is back in the generated code! IEncodeable needs the implementation of the Clone methods.
  • Refactored IEncoder/IDecoder interfaces to be derived from IDisposable.
  • IJsonEncoder/ IJsonDecoder were added to support coding against JSON encoding interfaces. A new method
    void UsingReversibleEncoding<T>(Action<string, T> action, string fieldName, T value, bool useReversibleEncoding) allows to switch between reversible and non-reversible encoding.
  • Opc.Ua.NodeSet2.xml is still available as embedded resource but as a zipped resource with the extension .zip
  • Invalid or unambigious use of ExpandedNodeId and NodeId are now throwing exceptions to hint on coding errors!. e.g. ExpandedNodeId nodeId = "Test" or NodeId nodeId = "nsu=http://mynamespace;s=Test" throw an ArgumentException.
  • ISession.PublishStateChanged now returns PublishStateChangedEventArgs instead of EventArgs, including information when publish stopped, recovered or a subscription was transferred.

Released packages

OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub

What's Changed

See More
  • Fixes an issue in Session.LoadDataTypeSystem. by @AndreasHeisel in #2166
  • Bump Nerdbank.GitVersioning from 3.5.119 to 3.6.133 by @dependabot in #2164
  • Bump NUnit3TestAdapter from 4.4.2 to 4.5.0 by @dependabot in #2174
  • Bump Microsoft.NET.Test.Sdk from 17.6.0 to 17.6.1 by @dependabot in #2172
  • Support use of opc.https endpoint url for client and server. by @mregen in #2140
  • Bump Microsoft.NET.Test.Sdk from 17.6.1 to 17.6.2 by @dependabot in #2179
  • TestData sample structure compliance by @mregen in #2175
  • Bump Serilog from 2.12.0 to 3.0.1 by @dependabot in #2205
  • Merge release updates to main by @mregen in #2206
  • Bump Microsoft.NET.Test.Sdk from 17.6.2 to 17.6.3 by @dependabot in #2213
  • Various bugfixes for CTT and others by @mregen in #2212
  • Bump NunitXml.TestLogger from 3.0.131 to 3.1.15 by @dependabot in #2220
  • Fix stringtables for diagnostic results when service calls are batched by @mregen in #2222
  • Add Filter Result property to monitored item status by @marcschier in #2219
  • Support Dynamic Complex Types by @MarkusHorstmann in #2146
  • Bump Microsoft.Extensions.Logging.Abstractions from 3.1.32 to 7.0.1 by @dependabot in #2194
  • Bump BenchmarkDotNet from 0.13.5 to 0.13.6 by @dependabot in #2226
  • Revert Microsoft.Extensions.Logging.Abstractions to V3.1.32 by @mrsuciu in #2229
  • Add IJsonEncoder/IJsonDecoder interfaces by @mregen in #2042
  • Fix corner cases of subscription transfer by @mregen in #2227
  • Always use ArrayPool.Shared for optimized use of buffers in buffer manager by @marcschier in #2224
  • Fix codecoverage pipeline by @mregen in #2236
  • Improve stream processing hotpath by @mregen in #2241
  • Zip embedded Opc.Ua.NodeSet2.xml to reduce assembly size by @mregen in #2232
  • Better NodeId/ExpandedNodeId built in types handling by @mregen in #2230
  • Truncate inner diagnostics if nested depth too high by @mregen in #2247
  • Support for session reconnect from distributed clients by @mregen in #2244
  • Improve client subscription implementation by @mregen in #2245
  • Support ActivitySource in OPC UA client to enable tracing (.NET6) by @bhnaphade in #2251
  • Bump BenchmarkDotNet from 0.13.6 to 0.13.7 by @dependabot in #2258
  • Bump Microsoft.NET.Test.Sdk from 17.6.3 to 17.7.0 by @dependabot in #2257
  • Support client activities on all target platforms by @mregen in #2256
  • Complete ISessionFactory interface by @mregen in #2255
  • Refactor IEncoder/IDecoder to derive from IDisposable by @mregen in #2254
  • Fixed NodeId.CompareTo() null reference exception by @mrsuciu in #2263
  • '#' is not treated as a reserved character in RelativePath's text format by @bhnaphade in #2264
  • Bump Microsoft.Extensions.Logging.Abstractions from 3.1.32 to 7.0.1 by @dependabot in #2233
  • Bump Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets from 2.1.3 to 2.1.40 in /Stack/Opc.Ua.Bindings.Https by @dependabot in #2271
  • Update MQTTnet nuget package version 3.1.1 to 4.2.1.781 (#2272) by @KneShell in #2273
  • Bump Moq from 4.18.4 to 4.20.69 by @dependabot in #2268
  • Bump Microsoft.NET.Test.Sdk from 17.7.0 to 17.7.1 by @dependabot in #2275
  • Fix for 'BadTooManyOperations' in session.publish / 'BadServerHalted' when server is stopped. by @bhnaphade in #2277
  • Add event for the session configuration changed by @mregen in #2278
  • Use the request queue to return GoodSubscriptionTransferred immediately by @mregen in #2280
  • Removed extra unnecessary code and fixed use of userWriteMask by @cacamille3 in #2269
  • Publish state change does not correctly handle subscription transferred case by @bhnaphade in #2281

New Contributors

Full Changelog: 1.4.371.96...1.4.372.56