Skip to content

Releases: intelligentplant/AppStoreConnect.Adapters

2.0.0-alpha.293

26 Nov 10:42
cc6bf07
Compare
Choose a tag to compare
2.0.0-alpha.293 Pre-release
Pre-release

Changes

  • TagValueBuilder.WithError will only set the quality status to Bad if a non-null, non-white space error message is specified. (#35)

2.0.0-alpha.285

12 Nov 11:40
a9543d4
Compare
Choose a tag to compare
2.0.0-alpha.285 Pre-release
Pre-release

Changes:

  • Add Aliases property to DataFunctionDescriptor and add IsMatch extension method that will match a descriptor by ID, name, or alias (#34). This would allows e.g. the Interpolative aggregate in the OPC UA specification to be matched by its name, its ID (e.g. i=2341), or by some sort of alias as well (e.g. INTERP).

2.0.0-alpha.277

10 Nov 10:38
4fe756a
Compare
Choose a tag to compare
2.0.0-alpha.277 Pre-release
Pre-release

Breaking Changes:

  • Refactoring of dependency injection extension methods (#28)
    • This change moves the original AddDataCoreAdapterServices method from DataCore.Adapter.AspNetCore.Common to DataCore.Adapter.DependencyInjection and removes the ASP .NET Core-specific services registration.
    • A new AddDataCoreAdapterAspNetCoreServices extension method has been added to DataCore.Adapter.AspNetCore.Common, which calls the base AddDataCoreAdapterServices method and then performs the ASP-NET Core-specific registrations. Therefore, ASP.NET Core hosts should be updated to call AddDataCoreAdapterAspNetCoreServices instead of AddDataCoreAdapterServices.

Other Changes:

  • Add new IConfigurationChanges feature and associated implementations (#29, #31)

2.0.0-alpha.257

02 Nov 10:31
40fe810
Compare
Choose a tag to compare
2.0.0-alpha.257 Pre-release
Pre-release

Changes:

  • AdapterInitializer no longer propagates exceptions occurring during the startup of individual adapters (these are now logged).
  • Add base classes for assisting with unit tests (#25, #27).
  • Make SnapshotTagValuesPush.GetSubscribedTags public (#26).

2.0.0-alpha.245

28 Oct 09:59
825ce38
Compare
Choose a tag to compare
2.0.0-alpha.245 Pre-release
Pre-release

Breaking Changes:

  • Move some dependency injection-related functionality from DataCore.Adapter.AspNetCore.Common to new DataCore.Adapter.DependencyInjection project (#24).

Other Changes:

  • Non-running adapters will no longer throw an exception when StopAsync is called (#22).
  • Adapter and their containing assemblies can be annotated with attributes to allow automatic creation of AdapterTypeDescriptor objects describing the adapter type (#23).
  • Routes for MVC controllers are now available under both /api/app-store-connect/ and /api/data-core/. The latter is deprecated, but is still in place. The change was to reduce confusion between adapter routes and routes used in current Industrial App Store data APIs (#24).

2.0.0-alpha.235

14 Oct 13:15
f7cfa8a
Compare
Choose a tag to compare
2.0.0-alpha.235 Pre-release
Pre-release

Breaking Changes:

  • IAdapter and IAdapterFeature now inherit from a new interface, IBackgroundTaskServiceProvider. In practice, the impact of this change should be minimal, because AdapterBase and most feature implementations already implicitly implement the property defined by this interface. The purpose of this interface is to ensure that extension methods that need to run some sort of background operation on behalf of an adapter or feature can do so using the background task service supplied by the adapter or feature (e.g. so that a background operation will be cancelled if the adapter it is operating on is shut down).
  • The signatures of methods and delegates on SnapshotTagValuePush, SnapshotTagValuePushOptions, EventMessagePushWithTopics, and EventMessagePushWithTopicsOptions related to topics being added to or removed from a subscription have been changed to be asynchronous.

Other Changes:

  • AdapterBase has a new ValidateContext method that can be used to validate IAdapterCallContext instances passed to feature method calls. The default implementation ensures that the context object is non-null.
  • SnapshotTagValuePush has a new IsTopicMatch method that is used to determine if a received value should be pushed to a given subscriber. This allows adapters to support wildcard-based tag subscriptions (e.g. an MQTT adapter would be able to push values on a topic named topic_root/some/child/topic to a subscriber who had subscribed to topic_root/#).
  • The SnapshotTagValuePushOptions and EventMessagePushWithTopicsOptions options classes have been updated to allow an IsTopicMatch delegate to be specified, so that wildcard support can be added to tag value and event message subscriptions without having to create new subclasses.
  • Fixes an issue in gRPC proxies when writing tag values or event messages where the completion of the input channel could result in the closure of the gRPC response stream before the results of all of the write operations had been received.

1.0.2

25 Sep 07:35
028f1c1
Compare
Choose a tag to compare

This release contains the following updates:

  • Additional overloads for BindInvoke, BindStream and BindDuplexStream in AdapterExtensionFeature to support additional method signatures when creating registering operations on extension features.
  • Extension methods for IAdapterFeaturesCollection and IAdapter to specifically retrieve extension methods.

1.0.1

18 Sep 09:18
Compare
Choose a tag to compare

Fixes #11.

1.0.0

17 Sep 09:26
Compare
Choose a tag to compare

🥳 v1.0 Release! 🥳

Some small changes over the previous release:

  • Projects have been updated to use nullable reference types.
  • gRPC proxy adapter options now provide a property to control if the adapter will shut down its gRPC channel when it is disposed.
  • Other minor improvements.

1.0.0-RC8

10 Sep 11:49
Compare
Choose a tag to compare
1.0.0-RC8 Pre-release
Pre-release
  • All adapter features are now identified by a URI.
  • Improvements to extension features to allow invocation of extension feature operations without the caller requiring a strongly-typed client library.
  • Proxy adapters can now automatically generate implementations of unknown extension features using DynamicProxy.
  • Tag value and event subscriptions have reverted back to a duplex streaming call, rather than a call to establish a subscription and then subsequent calls to add topics to/remove topics from subscriptions. Use of oneof in gRPC messages has helped to facilitate this.
  • Asset model has been modified. Rather than having hierarchy nodes which can have one or more measurements associated with them, measurements are themselves now nodes. Nodes now have a NodeType property to identify if the item is an object, measurement, template, etc. Nodes can have a DataReference property that acts as a binding between a node and a tag on an adapter.
    • This approach is more compatible with e.g. OPC UA asset modelling.