From 0e0bd83bee57616ff6bd6921cc322d83c3ac8d42 Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Tue, 21 Feb 2023 19:02:39 -0600 Subject: [PATCH] move `DateTime` / `TimeSpan` extension APIs out of Akka.Util and into Akka.Cluster.Metrics (#6427) * remove `DateTimeExtensions` * deleted metrics collector mock. * moved `TimeSpanExtensions` into Akka.Cluster.Metrics.Tests * API approvals * Revert "deleted metrics collector mock." This reverts commit 08c022e16e1007e7b65f601bf6d27891cc88a714. * added mock back * missed API approval --- .../Akka.Cluster.Metrics.Tests.csproj | 1 + .../ClusterMetricsExtensionSpec.cs | 2 +- .../Helpers/MetricsCollectorMock.cs | 2 +- .../Akka.Cluster.Metrics.Tests/MetricsSelectorSpecs.cs | 1 - .../Akka.Cluster.Metrics.Tests}/TimeSpanExtensions.cs | 2 +- .../cluster/Akka.Cluster.Metrics}/DateTimeExtensions.cs | 4 ++-- .../cluster/Akka.Cluster.Metrics/Properties/Friends.cs | 3 +++ .../CoreAPISpec.ApproveClusterMetrics.Core.verified.txt | 1 + ...CoreAPISpec.ApproveClusterMetrics.DotNet.verified.txt | 1 + .../CoreAPISpec.ApproveClusterMetrics.Net.verified.txt | 1 + .../verify/CoreAPISpec.ApproveCore.Core.verified.txt | 9 --------- .../verify/CoreAPISpec.ApproveCore.DotNet.verified.txt | 9 --------- .../verify/CoreAPISpec.ApproveCore.Net.verified.txt | 9 --------- 13 files changed, 12 insertions(+), 33 deletions(-) rename src/{core/Akka/Util/Extensions => contrib/cluster/Akka.Cluster.Metrics.Tests}/TimeSpanExtensions.cs (96%) rename src/{core/Akka/Util/Extensions => contrib/cluster/Akka.Cluster.Metrics}/DateTimeExtensions.cs (92%) create mode 100644 src/contrib/cluster/Akka.Cluster.Metrics/Properties/Friends.cs diff --git a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Akka.Cluster.Metrics.Tests.csproj b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Akka.Cluster.Metrics.Tests.csproj index dd8dfe77884..6cced4cef22 100644 --- a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Akka.Cluster.Metrics.Tests.csproj +++ b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Akka.Cluster.Metrics.Tests.csproj @@ -5,6 +5,7 @@ Akka.Cluster.Metrics.Tests $(NetFrameworkTestVersion);$(NetTestVersion);$(NetCoreTestVersion) + 8.0 diff --git a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/ClusterMetricsExtensionSpec.cs b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/ClusterMetricsExtensionSpec.cs index 3dcf0856bdf..4f42ffaad37 100644 --- a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/ClusterMetricsExtensionSpec.cs +++ b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/ClusterMetricsExtensionSpec.cs @@ -94,7 +94,7 @@ public async Task Metrics_extension_Should_control_collector_on_off_state() private Task AwaitSampleAsync(double? timeMs = null) { - timeMs = timeMs ?? _sampleInterval.TotalMilliseconds * 5; + timeMs ??= _sampleInterval.TotalMilliseconds * 5; return Task.Delay(TimeSpan.FromMilliseconds(timeMs.Value)); } diff --git a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Helpers/MetricsCollectorMock.cs b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Helpers/MetricsCollectorMock.cs index 231906b5404..ab0b85c28e3 100644 --- a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Helpers/MetricsCollectorMock.cs +++ b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/Helpers/MetricsCollectorMock.cs @@ -30,7 +30,7 @@ public MetricsCollectorMock(ActorSystem system) /// public NodeMetrics Sample() { - return new NodeMetrics(new Address("akka", _system.Name), DateTime.UtcNow.ToTimestamp().Seconds, new [] + return new NodeMetrics(new Address("akka", _system.Name), DateTime.UtcNow.ToTimestamp(), new [] { new NodeMetrics.Types.Metric("metric1", _random.Next(0, 100), new NodeMetrics.Types.EWMA(5, 0.5)), new NodeMetrics.Types.Metric("metric2", _random.Next(0, 100), new NodeMetrics.Types.EWMA(5, 0.2)), diff --git a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/MetricsSelectorSpecs.cs b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/MetricsSelectorSpecs.cs index 34f85844fe6..1b9acc84021 100644 --- a/src/contrib/cluster/Akka.Cluster.Metrics.Tests/MetricsSelectorSpecs.cs +++ b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/MetricsSelectorSpecs.cs @@ -9,7 +9,6 @@ using System.Collections.Generic; using System.Collections.Immutable; using Akka.Cluster.Metrics.Serialization; -using Akka.Util.Extensions; using FluentAssertions; using Xunit; using Address = Akka.Actor.Address; diff --git a/src/core/Akka/Util/Extensions/TimeSpanExtensions.cs b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/TimeSpanExtensions.cs similarity index 96% rename from src/core/Akka/Util/Extensions/TimeSpanExtensions.cs rename to src/contrib/cluster/Akka.Cluster.Metrics.Tests/TimeSpanExtensions.cs index 85e849a13cd..f5c6d14cfd4 100644 --- a/src/core/Akka/Util/Extensions/TimeSpanExtensions.cs +++ b/src/contrib/cluster/Akka.Cluster.Metrics.Tests/TimeSpanExtensions.cs @@ -7,7 +7,7 @@ using System; -namespace Akka.Util.Extensions +namespace Akka.Cluster.Metrics.Tests { /// /// TimeSpanExtensions diff --git a/src/core/Akka/Util/Extensions/DateTimeExtensions.cs b/src/contrib/cluster/Akka.Cluster.Metrics/DateTimeExtensions.cs similarity index 92% rename from src/core/Akka/Util/Extensions/DateTimeExtensions.cs rename to src/contrib/cluster/Akka.Cluster.Metrics/DateTimeExtensions.cs index df9c3db358e..305067859fb 100644 --- a/src/core/Akka/Util/Extensions/DateTimeExtensions.cs +++ b/src/contrib/cluster/Akka.Cluster.Metrics/DateTimeExtensions.cs @@ -7,12 +7,12 @@ using System; -namespace Akka.Util.Extensions +namespace Akka.Cluster.Metrics { /// /// DateTimeExtensions /// - public static class DateTimeExtensions + internal static class DateTimeExtensions { private static readonly DateTime UnixOffset = new DateTime(1970, 1, 1); diff --git a/src/contrib/cluster/Akka.Cluster.Metrics/Properties/Friends.cs b/src/contrib/cluster/Akka.Cluster.Metrics/Properties/Friends.cs new file mode 100644 index 00000000000..86f346e8648 --- /dev/null +++ b/src/contrib/cluster/Akka.Cluster.Metrics/Properties/Friends.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Akka.Cluster.Metrics.Tests")] \ No newline at end of file diff --git a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Core.verified.txt b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Core.verified.txt index 6a97e34c58c..8415e6da263 100644 --- a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Core.verified.txt +++ b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Core.verified.txt @@ -1,4 +1,5 @@ [assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://github.com/akkadotnet/akka.net")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleToAttribute("Akka.Cluster.Metrics.Tests")] [assembly: System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")] namespace Akka.Cluster.Metrics { diff --git a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.DotNet.verified.txt b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.DotNet.verified.txt index f462246ed53..ed83b616959 100644 --- a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.DotNet.verified.txt +++ b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.DotNet.verified.txt @@ -1,4 +1,5 @@ [assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://github.com/akkadotnet/akka.net")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleToAttribute("Akka.Cluster.Metrics.Tests")] [assembly: System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName=".NET 6.0")] namespace Akka.Cluster.Metrics { diff --git a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Net.verified.txt b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Net.verified.txt index 6a97e34c58c..8415e6da263 100644 --- a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Net.verified.txt +++ b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveClusterMetrics.Net.verified.txt @@ -1,4 +1,5 @@ [assembly: System.Reflection.AssemblyMetadataAttribute("RepositoryUrl", "https://github.com/akkadotnet/akka.net")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleToAttribute("Akka.Cluster.Metrics.Tests")] [assembly: System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")] namespace Akka.Cluster.Metrics { diff --git a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Core.verified.txt b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Core.verified.txt index 61450c0867b..7c207affec3 100644 --- a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Core.verified.txt +++ b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Core.verified.txt @@ -5245,19 +5245,10 @@ namespace Akka.Util } namespace Akka.Util.Extensions { - public class static DateTimeExtensions - { - public static long ToTimestamp(this System.DateTime dateTime) { } - } public class static ObjectExtensions { public static Akka.Util.Option AsOption(this T obj) { } } - public class static TimeSpanExtensions - { - public static System.TimeSpan Multiply(this System.TimeSpan multiplicand, int multiplier) { } - public static System.TimeSpan Multiply(this System.TimeSpan multiplicand, double multiplier) { } - } } namespace Akka.Util.Internal { diff --git a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.DotNet.verified.txt b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.DotNet.verified.txt index 229a27f48de..7af8acb0957 100644 --- a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.DotNet.verified.txt +++ b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.DotNet.verified.txt @@ -5253,19 +5253,10 @@ namespace Akka.Util } namespace Akka.Util.Extensions { - public class static DateTimeExtensions - { - public static long ToTimestamp(this System.DateTime dateTime) { } - } public class static ObjectExtensions { public static Akka.Util.Option AsOption(this T obj) { } } - public class static TimeSpanExtensions - { - public static System.TimeSpan Multiply(this System.TimeSpan multiplicand, int multiplier) { } - public static System.TimeSpan Multiply(this System.TimeSpan multiplicand, double multiplier) { } - } } namespace Akka.Util.Internal { diff --git a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Net.verified.txt b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Net.verified.txt index 61450c0867b..7c207affec3 100644 --- a/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Net.verified.txt +++ b/src/core/Akka.API.Tests/verify/CoreAPISpec.ApproveCore.Net.verified.txt @@ -5245,19 +5245,10 @@ namespace Akka.Util } namespace Akka.Util.Extensions { - public class static DateTimeExtensions - { - public static long ToTimestamp(this System.DateTime dateTime) { } - } public class static ObjectExtensions { public static Akka.Util.Option AsOption(this T obj) { } } - public class static TimeSpanExtensions - { - public static System.TimeSpan Multiply(this System.TimeSpan multiplicand, int multiplier) { } - public static System.TimeSpan Multiply(this System.TimeSpan multiplicand, double multiplier) { } - } } namespace Akka.Util.Internal {