Releases: intelligentplant/AppStoreConnect.Adapters
Releases · intelligentplant/AppStoreConnect.Adapters
2.0.0-alpha.293
Changes
TagValueBuilder.WithError
will only set the quality status toBad
if a non-null, non-white space error message is specified. (#35)
2.0.0-alpha.285
Changes:
- Add
Aliases
property toDataFunctionDescriptor
and addIsMatch
extension method that will match a descriptor by ID, name, or alias (#34). This would allows e.g. theInterpolative
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
Breaking Changes:
- Refactoring of dependency injection extension methods (#28)
- This change moves the original
AddDataCoreAdapterServices
method fromDataCore.Adapter.AspNetCore.Common
toDataCore.Adapter.DependencyInjection
and removes the ASP .NET Core-specific services registration. - A new
AddDataCoreAdapterAspNetCoreServices
extension method has been added toDataCore.Adapter.AspNetCore.Common
, which calls the baseAddDataCoreAdapterServices
method and then performs the ASP-NET Core-specific registrations. Therefore, ASP.NET Core hosts should be updated to callAddDataCoreAdapterAspNetCoreServices
instead ofAddDataCoreAdapterServices
.
- This change moves the original
Other Changes:
2.0.0-alpha.257
2.0.0-alpha.245
Breaking Changes:
- Move some dependency injection-related functionality from
DataCore.Adapter.AspNetCore.Common
to newDataCore.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
Breaking Changes:
IAdapter
andIAdapterFeature
now inherit from a new interface,IBackgroundTaskServiceProvider
. In practice, the impact of this change should be minimal, becauseAdapterBase
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
, andEventMessagePushWithTopicsOptions
related to topics being added to or removed from a subscription have been changed to be asynchronous.
Other Changes:
AdapterBase
has a newValidateContext
method that can be used to validateIAdapterCallContext
instances passed to feature method calls. The default implementation ensures that the context object is non-null.SnapshotTagValuePush
has a newIsTopicMatch
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 namedtopic_root/some/child/topic
to a subscriber who had subscribed totopic_root/#
).- The
SnapshotTagValuePushOptions
andEventMessagePushWithTopicsOptions
options classes have been updated to allow anIsTopicMatch
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
This release contains the following updates:
- Additional overloads for
BindInvoke
,BindStream
andBindDuplexStream
inAdapterExtensionFeature
to support additional method signatures when creating registering operations on extension features. - Extension methods for
IAdapterFeaturesCollection
andIAdapter
to specifically retrieve extension methods.
1.0.1
1.0.0
🥳 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
- 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 aDataReference
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.