diff --git a/.gitignore b/.gitignore index ce9d6076..cf57f596 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,8 @@ desktop.ini # NuGet packages/ *.nupkg +# … but DO track repo-local feed for mxaccessgw client (not yet on public nuget.org). +!nuget-packages/*.nupkg # Certificates *.pfx diff --git a/Directory.Packages.props b/Directory.Packages.props index 861b740e..53c43031 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -97,5 +97,7 @@ + + \ No newline at end of file diff --git a/NuGet.config b/NuGet.config new file mode 100644 index 00000000..6ff0cf81 --- /dev/null +++ b/NuGet.config @@ -0,0 +1,7 @@ + + + + + + + diff --git a/nuget-packages/ZB.MOM.WW.MxGateway.Client.0.1.0.nupkg b/nuget-packages/ZB.MOM.WW.MxGateway.Client.0.1.0.nupkg new file mode 100644 index 00000000..1438a971 Binary files /dev/null and b/nuget-packages/ZB.MOM.WW.MxGateway.Client.0.1.0.nupkg differ diff --git a/nuget-packages/ZB.MOM.WW.MxGateway.Contracts.0.1.0.nupkg b/nuget-packages/ZB.MOM.WW.MxGateway.Contracts.0.1.0.nupkg new file mode 100644 index 00000000..e6f60fdd Binary files /dev/null and b/nuget-packages/ZB.MOM.WW.MxGateway.Contracts.0.1.0.nupkg differ diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyBrowseSession.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyBrowseSession.cs index 3049e23a..431c867c 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyBrowseSession.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyBrowseSession.cs @@ -1,29 +1,26 @@ using System.Collections.Concurrent; -using MxGateway.Client; -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; using ZB.MOM.WW.OtOpcUa.Commons.Browsing; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser; /// -/// Galaxy browse over the gateway's . -/// The gateway returns the deployed hierarchy as a flat -/// list, so this session fetches the full set once on , -/// caches it by TagName (and GobjectId for parent lookup), and serves -/// subsequent calls in-memory. Attribute fetches are -/// per-object via DiscoverHierarchyAsync(MaxDepth=0, IncludeAttributes=true). -/// Owns the supplied and disposes it -/// best-effort. (Browse does not need an MxGatewaySession — that's only -/// required for live subscribe/write paths handled by the runtime driver.) +/// Lazy Galaxy browse over . +/// returns the top-level s +/// directly from the gateway; fetches the direct children +/// of a previously-handed-out node via +/// (one wire call per click, paginated internally by the client). Attribute fetches +/// are per-object via DiscoverHierarchyAsync(MaxDepth=0, IncludeAttributes=true). +/// Owns the supplied and disposes it best-effort. /// internal sealed class GalaxyBrowseSession : IBrowseSession { private readonly GalaxyRepositoryClient _client; - private readonly ConcurrentDictionary _byTagName = new(StringComparer.Ordinal); - private readonly ConcurrentDictionary _byGobjectId = new(); - private volatile bool _disposed; + private readonly ConcurrentDictionary _byTagName = new(StringComparer.Ordinal); private readonly SemaphoreSlim _rootGate = new(1, 1); - private HashSet _hasChildrenSet = new(); + private volatile bool _disposed; + private IReadOnlyList? _roots; /// Opaque token identifying this session in the AdminUI registry. public Guid Token { get; } = Guid.NewGuid(); @@ -33,19 +30,20 @@ internal sealed class GalaxyBrowseSession : IBrowseSession /// /// Initializes a new session wrapping a connected repository client. The factory - /// in GalaxyDriverBrowser (Task 9) constructs the client via + /// in GalaxyDriverBrowser constructs the client via /// and hands it off here for the /// session's lifetime. /// - /// Galaxy repository client to query for hierarchy and attributes. + /// Galaxy repository client to query for browse and attributes. internal GalaxyBrowseSession(GalaxyRepositoryClient client) { _client = client ?? throw new ArgumentNullException(nameof(client)); } /// - /// Fetches the full Galaxy hierarchy from the gateway, populates the cache, - /// and returns the top-level objects (those with no parent in the deployed model). + /// Fetches the top-level s from the gateway and + /// returns them as s. Result is cached; a second call + /// returns the cached roots without a re-fetch. /// public async Task> RootAsync(CancellationToken cancellationToken) { @@ -53,29 +51,11 @@ internal sealed class GalaxyBrowseSession : IBrowseSession await _rootGate.WaitAsync(cancellationToken).ConfigureAwait(false); try { - var all = await _client.DiscoverHierarchyAsync( - new DiscoverHierarchyOptions { IncludeAttributes = false }, cancellationToken) + _roots ??= await _client.BrowseAsync(new BrowseChildrenOptions(), cancellationToken) .ConfigureAwait(false); - // Populate caches so later ExpandAsync calls can resolve children in-memory. - foreach (var obj in all) - { - _byTagName[obj.TagName] = obj; - _byGobjectId[obj.GobjectId] = obj; - } - - // Precompute the set of GobjectIds that appear as a parent — used by - // Project to compute HasChildrenHint in O(1) instead of O(n²). - _hasChildrenSet = new HashSet(_byGobjectId.Values.Select(o => o.ParentGobjectId)); - - // Roots are objects whose parent isn't part of the returned set (typically - // ParentGobjectId == 0 for WinPlatforms / top-level Areas). - var roots = all - .Where(o => o.ParentGobjectId == 0 || !_byGobjectId.ContainsKey(o.ParentGobjectId)) - .ToList(); - LastUsedUtc = DateTime.UtcNow; - return Project(roots); + return Project(_roots); } finally { @@ -84,27 +64,24 @@ internal sealed class GalaxyBrowseSession : IBrowseSession } /// - /// Returns the direct children of the cached Galaxy object identified by - /// (the object's TagName). Throws - /// if the tag hasn't been handed out by a - /// prior Root/Expand call (i.e. it's not in the cache). + /// Fetches the direct children of the cached node identified by + /// (the object's TagName) via + /// . Throws + /// if the tag hasn't been handed out by a prior Root/Expand call. /// - public Task> ExpandAsync(string nodeId, CancellationToken cancellationToken) + public async Task> ExpandAsync(string nodeId, CancellationToken cancellationToken) { ObjectDisposedException.ThrowIf(_disposed, this); - if (!_byTagName.TryGetValue(nodeId, out var parent)) + if (!_byTagName.TryGetValue(nodeId, out var node)) { throw new ArgumentException( $"Galaxy object '{nodeId}' is not in the current browse-session cache. " + "Re-open the browser or expand its parent first.", nameof(nodeId)); } - var children = _byGobjectId.Values - .Where(o => o.ParentGobjectId == parent.GobjectId) - .ToList(); - + await node.ExpandAsync(cancellationToken).ConfigureAwait(false); LastUsedUtc = DateTime.UtcNow; - return Task.FromResult(Project(children)); + return Project(node.Children); } /// @@ -143,29 +120,25 @@ internal sealed class GalaxyBrowseSession : IBrowseSession } /// - /// Projects s to s, ensuring - /// every projected object is also written to the by-tag cache so later - /// calls can find it. Galaxy nodes are always - /// — leaves only appear in the attribute - /// side-panel, never in the tree. + /// Projects s to s, caching + /// each by TagName so a subsequent can locate + /// it. Galaxy nodes are always — leaves only + /// appear in the attribute side-panel. /// - private IReadOnlyList Project(IReadOnlyList nodes) + private IReadOnlyList Project(IReadOnlyList nodes) { var result = new List(nodes.Count); - foreach (var obj in nodes) + foreach (var n in nodes) { - // Belt-and-braces: ensure the cache holds every node we hand back so - // ExpandAsync can resolve it on the next round-trip. - _byTagName[obj.TagName] = obj; - _byGobjectId[obj.GobjectId] = obj; - - var displayName = !string.IsNullOrEmpty(obj.ContainedName) ? obj.ContainedName : obj.TagName; - var hasChildrenHint = _hasChildrenSet.Contains(obj.GobjectId); + _byTagName[n.Object.TagName] = n; + var displayName = !string.IsNullOrEmpty(n.Object.ContainedName) + ? n.Object.ContainedName + : n.Object.TagName; result.Add(new BrowseNode( - NodeId: obj.TagName, + NodeId: n.Object.TagName, DisplayName: displayName, Kind: BrowseNodeKind.Folder, - HasChildrenHint: hasChildrenHint)); + HasChildrenHint: n.HasChildrenHint)); } return result; } diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyDriverBrowser.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyDriverBrowser.cs index 98b8cbdb..45ecd19c 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyDriverBrowser.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/GalaxyDriverBrowser.cs @@ -2,7 +2,7 @@ using System.Text.Json; using System.Text.Json.Serialization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MxGateway.Client; +using ZB.MOM.WW.MxGateway.Client; using ZB.MOM.WW.OtOpcUa.Commons.Browsing; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Config; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.csproj b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.csproj index d7ccba1e..7beff51f 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.csproj +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.csproj @@ -13,23 +13,8 @@ - - - ..\ZB.MOM.WW.OtOpcUa.Driver.Galaxy\libs\MxGateway.Client.dll - true - - - ..\ZB.MOM.WW.OtOpcUa.Driver.Galaxy\libs\MxGateway.Contracts.dll - true - - - - - - - + + - diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/DeployWatcher.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/DeployWatcher.cs index 75ca29fd..c11325fb 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/DeployWatcher.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/DeployWatcher.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GalaxyDiscoverer.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GalaxyDiscoverer.cs index b5df09f3..d07c79e3 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GalaxyDiscoverer.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GalaxyDiscoverer.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyDeployWatchSource.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyDeployWatchSource.cs index a6535350..c984c251 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyDeployWatchSource.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyDeployWatchSource.cs @@ -1,5 +1,5 @@ -using MxGateway.Client; -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyHierarchySource.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyHierarchySource.cs index ce28040d..d3382ddb 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyHierarchySource.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/GatewayGalaxyHierarchySource.cs @@ -1,5 +1,5 @@ -using MxGateway.Client; -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyDeployWatchSource.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyDeployWatchSource.cs index bf9201cf..8ed170d3 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyDeployWatchSource.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyDeployWatchSource.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyHierarchySource.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyHierarchySource.cs index ae44ad19..fd3c0b06 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyHierarchySource.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/IGalaxyHierarchySource.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/TracedGalaxyHierarchySource.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/TracedGalaxyHierarchySource.cs index 335926b0..52226704 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/TracedGalaxyHierarchySource.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Browse/TracedGalaxyHierarchySource.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/GalaxyDriver.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/GalaxyDriver.cs index 364ce066..1bcc63b6 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/GalaxyDriver.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/GalaxyDriver.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MxGateway.Client; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browse; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Config; @@ -528,7 +528,7 @@ public sealed class GalaxyDriver // If discovery hasn't run yet, build the client here so the watcher has a target. // Driver.Galaxy-009 fix: guard with ??= so if BuildDefaultHierarchySource later runs // it reuses this client rather than overwriting the field and leaking the first instance. - _ownedRepositoryClient ??= MxGateway.Client.GalaxyRepositoryClient.Create( + _ownedRepositoryClient ??= ZB.MOM.WW.MxGateway.Client.GalaxyRepositoryClient.Create( BuildClientOptions(_options.Gateway)); var source = new GatewayGalaxyDeployWatchSource(_ownedRepositoryClient); diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/EventPump.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/EventPump.cs index daa5e1e7..29d8a865 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/EventPump.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/EventPump.cs @@ -2,7 +2,7 @@ using System.Diagnostics.Metrics; using System.Threading.Channels; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GalaxyMxSession.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GalaxyMxSession.cs index 618c4614..7913c69c 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GalaxyMxSession.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GalaxyMxSession.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MxGateway.Client; +using ZB.MOM.WW.MxGateway.Client; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Config; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmAcknowledger.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmAcknowledger.cs index 2ba9c0be..19b957da 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmAcknowledger.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmAcknowledger.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.Logging; -using MxGateway.Client; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmFeed.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmFeed.cs index b2e44c76..e01c1c61 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmFeed.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyAlarmFeed.cs @@ -1,7 +1,7 @@ using System.Diagnostics.Metrics; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyDataWriter.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyDataWriter.cs index 25ff8072..905253e8 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyDataWriter.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxyDataWriter.cs @@ -1,8 +1,8 @@ using System.Collections.Concurrent; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using MxGateway.Client; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxySubscriber.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxySubscriber.cs index 0b8f5411..e38430f6 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxySubscriber.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/GatewayGalaxySubscriber.cs @@ -1,5 +1,5 @@ -using MxGateway.Client; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto; // Use the generated nested status enum for the SetBufferedUpdateInterval reply check. namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; @@ -62,7 +62,7 @@ public sealed class GatewayGalaxySubscriber : IGalaxySubscriber /// applied value and skip redundant calls. /// private async Task EnsureSessionIntervalAsync( - MxGateway.Client.MxGatewaySession session, int serverHandle, int intervalMs, CancellationToken cancellationToken) + ZB.MOM.WW.MxGateway.Client.MxGatewaySession session, int serverHandle, int intervalMs, CancellationToken cancellationToken) { lock (_intervalLock) { diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/IGalaxySubscriber.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/IGalaxySubscriber.cs index 2aacf2e7..9d33968e 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/IGalaxySubscriber.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/IGalaxySubscriber.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueDecoder.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueDecoder.cs index dd30aa75..93f60aad 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueDecoder.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueDecoder.cs @@ -1,5 +1,5 @@ using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueEncoder.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueEncoder.cs index 330e8116..bcb3a1d6 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueEncoder.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/MxValueEncoder.cs @@ -1,5 +1,5 @@ using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/StatusCodeMap.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/StatusCodeMap.cs index 8d85b28a..09852deb 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/StatusCodeMap.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/StatusCodeMap.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.Logging; -using MxGateway.Client; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Client; +using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/TracedGalaxySubscriber.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/TracedGalaxySubscriber.cs index 9a6341fc..55717860 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/TracedGalaxySubscriber.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/Runtime/TracedGalaxySubscriber.cs @@ -1,5 +1,5 @@ using System.Runtime.CompilerServices; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj index 9cade14c..9ca985d5 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.csproj @@ -19,34 +19,8 @@ - - - libs\MxGateway.Client.dll - true - - - libs\MxGateway.Contracts.dll - true - - - - - + + diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/MxGateway.Client.dll b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/MxGateway.Client.dll deleted file mode 100644 index 6fc124b2..00000000 Binary files a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/MxGateway.Client.dll and /dev/null differ diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/MxGateway.Contracts.dll b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/MxGateway.Contracts.dll deleted file mode 100644 index f918a734..00000000 Binary files a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/MxGateway.Contracts.dll and /dev/null differ diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/README.md b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/README.md deleted file mode 100644 index 58e0c0f6..00000000 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy/libs/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# Vendored MxGateway client DLLs - -This directory holds binary copies of `MxGateway.Client.dll` and -`MxGateway.Contracts.dll` from the sibling `mxaccessgw` repo's last known-good -build (May 2026). The DLLs are referenced from the driver's csproj as -`` items rather than `ProjectReference`. - -## Provenance - -Both DLLs are built from this team's own `mxaccessgw` source tree — they are -not third-party binaries. The build commit + checksums below are recorded so -future readers can verify the artefacts match the expected source without -needing to ask the original author. - -| File | Source commit | SHA-256 | -|---|---|---| -| `MxGateway.Client.dll` | `dd7ca1634e2d2b8a866c81f0009bf87ee9427750` (mxaccessgw repo, pre-restructure) | `3507f770adc8c1b27b2fc4645079c6e4e02d5c65b9545c12d637cd2a080a00bd` | -| `MxGateway.Contracts.dll` | `dd7ca1634e2d2b8a866c81f0009bf87ee9427750` (mxaccessgw repo, pre-restructure) | `437dc6cb6994c7c4d858c82f69af890732c7ffbfa0463fbd8a63ce7930d251b4` | - -The build commit is the same for both DLLs and is embedded as -`AssemblyInformationalVersion` inside each binary — re-verify by running: -`ilspycmd | grep AssemblyInformationalVersion`. - -To re-verify the checksums (e.g. after a clone): -```bash -sha256sum libs/MxGateway.Client.dll libs/MxGateway.Contracts.dll -``` - -If either SHA-256 or the embedded source commit no longer matches what's -listed above, the artefact has been replaced — verify before trusting. - -## Why vendored - -The sibling `mxaccessgw` repo restructured: the `clients/dotnet/MxGateway.Client` -project the driver previously referenced via path-based `ProjectReference` no -longer exists, and the proto contracts moved from the `MxGateway.Contracts.Proto` -namespace to `ZB.MOM.WW.MxGateway.Contracts.Proto`. The driver's source still -expects the pre-restructure namespace, so re-pointing at the new contracts would -require a global namespace rename across ~19 driver files PLUS reimplementing -the `MxGatewayClient` / `MxGatewaySession` / `GalaxyRepositoryClient` types the -old client library provided (the sibling repo dropped the client library -entirely, keeping only the contracts). - -Vendoring the binaries unblocked the build in minutes instead of hours, freezes -the gateway contract surface at a known-good version, and preserves the option -to migrate properly later without an emergency rewrite. - -## What's vendored - -| File | Built against | -|---|---| -| `MxGateway.Client.dll` | net10.0, references `MxGateway.Contracts.dll` | -| `MxGateway.Contracts.dll` | net10.0, proto namespace `MxGateway.Contracts.Proto[.Galaxy]` | - -The NuGet packages the vendored DLLs reference (verified by reflecting -`Assembly.GetReferencedAssemblies()` against `MxGateway.Client.dll`) are -declared as direct `PackageReference` in the driver csproj — when the dropped -`ProjectReference` was in place those packages were transitively provided; -with binary references the consumer must declare them explicitly: - -| Package | Reason | -|---|---| -| `Google.Protobuf` 3.34.1 | Proto message types in `MxGateway.Contracts.dll` | -| `Grpc.Core.Api` 2.76.0 | Base gRPC client types in `MxGateway.Client.dll` | -| `Grpc.Net.Client` 2.76.0 | HTTP/2 transport used by `MxGatewayClient` | -| `Microsoft.Extensions.Logging.Abstractions` 10.0.7 | `ILogger` used by the client | -| `Polly.Core` 8.6.6 | Retry pipeline used by `MxGatewayClient` | - -Versions match the sibling mxaccessgw repo's current Server / Worker -projects (`ZB.MOM.WW.MxGateway.Server.csproj`, -`ZB.MOM.WW.MxGateway.Worker.csproj`) so the runtime versions stay close to -what the gateway team uses. The pre-Driver.Galaxy-016 declarations were -incorrect — most visibly `Polly 8.5.2` was declared where the DLL actually -needs `Polly.Core` (a different package: `Polly` v7 is the older fluent API; -`Polly.Core` v8 is the modern resilience-pipeline API the gateway client was -built against). A `Polly` reference would have failed at runtime with -`MissingMethodException` the first time a retry pipeline ran. - -## Decompiled-source archive - -The vendored DLLs are byte-for-byte the build output. The full source can be -recovered with `ilspycmd MxGateway.Client.dll > MxGateway.Client.cs` if a code -review or audit needs it. - -## How to unwind - -Either path closes the vendored-binary debt: - -1. **Sibling repo restores `MxGateway.Client.csproj`** (or publishes a NuGet - package). Switch the csproj back to a `ProjectReference` / `PackageReference`, - delete this directory. -2. **Driver migrates to the new `ZB.MOM.WW.MxGateway.Contracts.Proto` - namespace.** Global namespace rename across the ~19 consuming source files, - plus re-implementing `MxGatewayClient` / `MxGatewaySession` / - `GalaxyRepositoryClient` (≈2,200 LoC of behavioural client code) either - inlined into this driver or as a fresh sibling library. Delete this - directory. - -Either way: when unwinding, also drop the five `PackageReference` lines added -to the csproj alongside the `` items — the new ProjectReference / -PackageReference will provide them transitively again. diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/GalaxyBrowseSessionTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/GalaxyBrowseSessionTests.cs index d5d88d0c..a2c69819 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/GalaxyBrowseSessionTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/GalaxyBrowseSessionTests.cs @@ -1,4 +1,4 @@ -using MxGateway.Client; +using ZB.MOM.WW.MxGateway.Client; using Shouldly; using Xunit; @@ -13,8 +13,8 @@ namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests; /// , which only ships an internal /// transport seam (IGalaxyRepositoryClientTransport) and an internal /// constructor — both keyed via InternalsVisibleTo on the vendored -/// MxGateway.Client assembly, and only granted to that repo's own -/// MxGateway.Client.Tests. We can't substitute a fake transport from +/// ZB.MOM.WW.MxGateway.Client assembly, and only granted to that repo's own +/// ZB.MOM.WW.MxGateway.Client.Tests. We can't substitute a fake transport from /// here without changing the upstream repo, and the public Create /// factory always opens a real gRPC channel. So in-memory traversal coverage /// (RootAsync / ExpandAsync / AttributesAsync, including the SecurityClass diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests.csproj b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests.csproj index d45df637..411b7c69 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests.csproj +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Browser.Tests.csproj @@ -26,21 +26,8 @@ - - - ..\..\..\src\Drivers\ZB.MOM.WW.OtOpcUa.Driver.Galaxy\libs\MxGateway.Client.dll - true - - - ..\..\..\src\Drivers\ZB.MOM.WW.OtOpcUa.Driver.Galaxy\libs\MxGateway.Contracts.dll - true - + + diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/DeployWatcherTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/DeployWatcherTests.cs index 6fe2bba5..942889be 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/DeployWatcherTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/DeployWatcherTests.cs @@ -1,7 +1,7 @@ using System.Runtime.CompilerServices; using System.Threading.Channels; using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/GalaxyDiscovererTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/GalaxyDiscovererTests.cs index e76dc3bb..11b771f7 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/GalaxyDiscovererTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Browse/GalaxyDiscovererTests.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverFactoryTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverFactoryTests.cs index 4e5ac472..e3886373 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverFactoryTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverFactoryTests.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverInfrastructureTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverInfrastructureTests.cs index 21a0f80a..f135218c 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverInfrastructureTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/GalaxyDriverInfrastructureTests.cs @@ -1,6 +1,6 @@ using System.Threading.Channels; using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Health/PerPlatformProbeWatcherTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Health/PerPlatformProbeWatcherTests.cs index 6e9bec0b..b59ba151 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Health/PerPlatformProbeWatcherTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Health/PerPlatformProbeWatcherTests.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpBoundedChannelTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpBoundedChannelTests.cs index ed07049a..9790bbcd 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpBoundedChannelTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpBoundedChannelTests.cs @@ -1,7 +1,7 @@ using System.Diagnostics.Metrics; using System.Threading.Channels; using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpStreamFaultTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpStreamFaultTests.cs index 8ac0f9be..cd4a5a47 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpStreamFaultTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/EventPumpStreamFaultTests.cs @@ -1,6 +1,6 @@ using System.Threading.Channels; using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverSubscribeTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverSubscribeTests.cs index 922d2da7..84e5df09 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverSubscribeTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverSubscribeTests.cs @@ -1,6 +1,6 @@ using System.Threading.Channels; using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverWriteTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverWriteTests.cs index e921df0b..7de25685 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverWriteTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyDriverWriteTests.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto.Galaxy; +using ZB.MOM.WW.MxGateway.Contracts.Proto.Galaxy; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyTelemetryTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyTelemetryTests.cs index c82c24b2..a1017e1a 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyTelemetryTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GalaxyTelemetryTests.cs @@ -1,5 +1,5 @@ using System.Diagnostics; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; @@ -183,9 +183,9 @@ public sealed class GalaxyTelemetryTests private sealed class FakeHierarchy : IGalaxyHierarchySource { /// - public Task> GetHierarchyAsync( + public Task> GetHierarchyAsync( CancellationToken cancellationToken) - => Task.FromResult>( + => Task.FromResult>( [new(), new()]); } } diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GatewayGalaxyAlarmFeedTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GatewayGalaxyAlarmFeedTests.cs index d27df5ab..077a9efd 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GatewayGalaxyAlarmFeedTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/GatewayGalaxyAlarmFeedTests.cs @@ -1,6 +1,6 @@ using System.Runtime.CompilerServices; using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Core.Abstractions; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueDecoderTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueDecoderTests.cs index c15d4cba..538fc8cd 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueDecoderTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueDecoderTests.cs @@ -1,6 +1,6 @@ using Google.Protobuf; using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueEncoderTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueEncoderTests.cs index 121cf121..8e5cb180 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueEncoderTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/MxValueEncoderTests.cs @@ -1,5 +1,5 @@ using Google.Protobuf.WellKnownTypes; -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/StatusCodeMapTests.cs b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/StatusCodeMapTests.cs index 5d678126..c048431c 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/StatusCodeMapTests.cs +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/Runtime/StatusCodeMapTests.cs @@ -1,4 +1,4 @@ -using MxGateway.Contracts.Proto; +using ZB.MOM.WW.MxGateway.Contracts.Proto; using Shouldly; using Xunit; using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; diff --git a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests.csproj b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests.csproj index 9c50139c..e3c08179 100644 --- a/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests.csproj +++ b/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Tests.csproj @@ -24,16 +24,7 @@ - - - ..\..\..\src\Drivers\ZB.MOM.WW.OtOpcUa.Driver.Galaxy\libs\MxGateway.Contracts.dll - true - +