diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 463fa74..6a0761e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,6 @@ jobs: uses: actions/setup-dotnet@v4.0.0 with: dotnet-version: 8.0.x - dotnet-quality: 'preview' - name: Build run: dotnet build src --configuration Release - name: Upload packages diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1c3e8cd..b9369dd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,6 @@ jobs: uses: actions/setup-dotnet@v4.0.0 with: dotnet-version: 8.0.x - dotnet-quality: 'preview' - name: Build run: dotnet build src --configuration Release - name: Sign NuGet packages diff --git a/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApi.approved.txt b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostApplicationBuilder.approved.txt similarity index 89% rename from src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApi.approved.txt rename to src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostApplicationBuilder.approved.txt index 8b5b673..8dcbc0c 100644 --- a/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApi.approved.txt +++ b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostApplicationBuilder.approved.txt @@ -6,7 +6,6 @@ "NServiceBus.Features.SagaAuditFeature", "NServiceBus.Heartbeat.HeartbeatsFeature", "NServiceBus.Heartbeat.Queue", - "NServiceBus.Metrics.MetricsFeature", "NServiceBus.MetricsOptions", "NServiceBus.SagaAudit.Queue" ] \ No newline at end of file diff --git a/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostBuilder.approved.txt b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostBuilder.approved.txt new file mode 100644 index 0000000..8dcbc0c --- /dev/null +++ b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostBuilder.approved.txt @@ -0,0 +1,11 @@ +[ + "errorQueue", + "NServiceBus.AuditConfigReader+Result", + "NServiceBus.CustomChecks.CustomChecksFeature", + "NServiceBus.CustomChecks.Queue", + "NServiceBus.Features.SagaAuditFeature", + "NServiceBus.Heartbeat.HeartbeatsFeature", + "NServiceBus.Heartbeat.Queue", + "NServiceBus.MetricsOptions", + "NServiceBus.SagaAudit.Queue" +] \ No newline at end of file diff --git a/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.HandlesEnableFlag.Metrics.approved.txt b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.HandlesEnableFlag.Metrics.approved.txt index 4753c28..6ad983e 100644 --- a/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.HandlesEnableFlag.Metrics.approved.txt +++ b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.HandlesEnableFlag.Metrics.approved.txt @@ -1,4 +1,3 @@ [ - "NServiceBus.Metrics.MetricsFeature", "NServiceBus.MetricsOptions" ] \ No newline at end of file diff --git a/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.UpdatesConfiguration.approved.txt b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.UpdatesConfiguration.approved.txt index 8b5b673..8dcbc0c 100644 --- a/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.UpdatesConfiguration.approved.txt +++ b/src/NServiceBus.ServicePlatform.Connector.UnitTests/ApprovalFiles/BasicUsage.UpdatesConfiguration.approved.txt @@ -6,7 +6,6 @@ "NServiceBus.Features.SagaAuditFeature", "NServiceBus.Heartbeat.HeartbeatsFeature", "NServiceBus.Heartbeat.Queue", - "NServiceBus.Metrics.MetricsFeature", "NServiceBus.MetricsOptions", "NServiceBus.SagaAudit.Queue" ] \ No newline at end of file diff --git a/src/NServiceBus.ServicePlatform.Connector.UnitTests/BasicUsage.cs b/src/NServiceBus.ServicePlatform.Connector.UnitTests/BasicUsage.cs index 922cb7c..5340fb8 100644 --- a/src/NServiceBus.ServicePlatform.Connector.UnitTests/BasicUsage.cs +++ b/src/NServiceBus.ServicePlatform.Connector.UnitTests/BasicUsage.cs @@ -136,7 +136,7 @@ public void HandlesEnableFlag(string scenario, ServicePlatformConnectionConfigur } [Test] - public void CanBeDeserializedByMicrosoftConfigurationApi() + public void CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostBuilder() { var builder = new HostBuilder(); @@ -153,6 +153,8 @@ public void CanBeDeserializedByMicrosoftConfigurationApi() .UseNServiceBus(c => { var configuration = new EndpointConfiguration("whatever"); + + configuration.UseSerialization(); configuration.UseTransport(); var platformConfiguration = new ServicePlatformConnectionConfiguration(); @@ -176,6 +178,40 @@ public void CanBeDeserializedByMicrosoftConfigurationApi() Approver.Verify(settingChanges); } + [Test] + public void CanBeDeserializedByMicrosoftConfigurationApiWhenUsingHostApplicationBuilder() + { + var builder = Host.CreateApplicationBuilder(); + + var json = $@"{{""ServicePlatformConfiguration"" : {JsonConfiguration}}}"; + var jsonStream = new MemoryStream(Encoding.ASCII.GetBytes(json)); + + builder.Configuration.AddJsonStream(jsonStream); + + var endpointConfiguration = new EndpointConfiguration("whatever"); + endpointConfiguration.UseSerialization(); + endpointConfiguration.UseTransport(); + + var platformConfiguration = new ServicePlatformConnectionConfiguration(); + builder.Configuration.Bind("ServicePlatformConfiguration", platformConfiguration); + + var beforeSettings = GetExplicitSettings(endpointConfiguration); + + endpointConfiguration.ConnectToServicePlatform(platformConfiguration); + + var afterSettings = GetExplicitSettings(endpointConfiguration); + + var settingChanges = afterSettings.Except(beforeSettings) + .OrderBy(x => x) + .ToArray(); + + builder.UseNServiceBus(endpointConfiguration); + + builder.Build(); + + Approver.Verify(settingChanges); + } + static string[] GetExplicitSettings(EndpointConfiguration endpointConfig) { var settings = endpointConfig.GetSettings(); diff --git a/src/NServiceBus.ServicePlatform.Connector.UnitTests/NServiceBus.ServicePlatform.Connector.UnitTests.csproj b/src/NServiceBus.ServicePlatform.Connector.UnitTests/NServiceBus.ServicePlatform.Connector.UnitTests.csproj index c9102a6..6e086c3 100644 --- a/src/NServiceBus.ServicePlatform.Connector.UnitTests/NServiceBus.ServicePlatform.Connector.UnitTests.csproj +++ b/src/NServiceBus.ServicePlatform.Connector.UnitTests/NServiceBus.ServicePlatform.Connector.UnitTests.csproj @@ -16,18 +16,18 @@ - + - - - - - - + + + + + + diff --git a/src/NServiceBus.ServicePlatform.Connector.sln b/src/NServiceBus.ServicePlatform.Connector.sln index 0a59900..b24e524 100644 --- a/src/NServiceBus.ServicePlatform.Connector.sln +++ b/src/NServiceBus.ServicePlatform.Connector.sln @@ -9,7 +9,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.ServicePlatform EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{368E2CED-3A60-48D1-846B-FD9E6C1638AE}" ProjectSection(SolutionItems) = preProject + ..\.github\workflows\ci.yml = ..\.github\workflows\ci.yml Custom.Build.props = Custom.Build.props + ..\.github\workflows\release.yml = ..\.github\workflows\release.yml EndProjectSection EndProject Global diff --git a/src/NServiceBus.ServicePlatform.Connector/NServiceBus.ServicePlatform.Connector.csproj b/src/NServiceBus.ServicePlatform.Connector/NServiceBus.ServicePlatform.Connector.csproj index db0b438..80baa6d 100644 --- a/src/NServiceBus.ServicePlatform.Connector/NServiceBus.ServicePlatform.Connector.csproj +++ b/src/NServiceBus.ServicePlatform.Connector/NServiceBus.ServicePlatform.Connector.csproj @@ -3,7 +3,7 @@ net8.0 true - $(SolutionDir)NServiceBus.snk + ..\NServiceBus.snk @@ -12,13 +12,12 @@ - - - - - - - + + + + + + diff --git a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformAuditConfiguration.cs b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformAuditConfiguration.cs index bbf6c0b..5ec2554 100644 --- a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformAuditConfiguration.cs +++ b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformAuditConfiguration.cs @@ -26,9 +26,7 @@ internal void ApplyTo(EndpointConfiguration endpointConfiguration) if (string.IsNullOrWhiteSpace(AuditQueue)) { - throw new Exception( - @"Message auditing is enabled but no audit queue has been configured. -Configure an audit queue or disable message auditing"); + throw new Exception("Message auditing is enabled but no audit queue has been configured. Configure an audit queue or disable message auditing."); } endpointConfiguration.AuditProcessedMessagesTo(AuditQueue); diff --git a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformConnectionConfiguration.cs b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformConnectionConfiguration.cs index 193f479..49e5f24 100644 --- a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformConnectionConfiguration.cs +++ b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformConnectionConfiguration.cs @@ -52,7 +52,7 @@ internal void ApplyTo(EndpointConfiguration endpointConfiguration) } /// - /// Creates a new from json produced by the Particular Service Platform. + /// Creates a new from JSON produced by the Particular Service Platform. /// public static ServicePlatformConnectionConfiguration Parse(string jsonConfiguration) { @@ -61,7 +61,7 @@ public static ServicePlatformConnectionConfiguration Parse(string jsonConfigurat PropertyNameCaseInsensitive = true }; options.Converters.Add(new JsonTimeSpanConverterFactory()); - return System.Text.Json.JsonSerializer.Deserialize(jsonConfiguration, options); + return JsonSerializer.Deserialize(jsonConfiguration, options); } } } \ No newline at end of file diff --git a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformCustomChecksConfiguration.cs b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformCustomChecksConfiguration.cs index ff5a622..5ce250b 100644 --- a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformCustomChecksConfiguration.cs +++ b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformCustomChecksConfiguration.cs @@ -31,9 +31,7 @@ internal void ApplyTo(EndpointConfiguration endpointConfiguration) if (string.IsNullOrWhiteSpace(CustomChecksQueue)) { - throw new Exception( - @"Sending custom checks results is enabled but no custom check queue has been configured. -Configure a custom check queue or disable sending custom checks to the Particular Service Platform"); + throw new Exception("Sending custom checks results is enabled but no custom check queue has been configured. Configure a custom check queue or disable sending custom checks to the Particular Service Platform."); } endpointConfiguration.ReportCustomChecksTo(CustomChecksQueue, TimeToLive); diff --git a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformHeartbeatConfiguration.cs b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformHeartbeatConfiguration.cs index e78e7e9..1022493 100644 --- a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformHeartbeatConfiguration.cs +++ b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformHeartbeatConfiguration.cs @@ -36,9 +36,7 @@ internal void ApplyTo(EndpointConfiguration endpointConfiguration) if (string.IsNullOrWhiteSpace(HeartbeatsQueue)) { - throw new Exception( - @"Sending heartbeats is enabled but no heartbeat queue has been configured. -Configure a heartbeat queue or disable sending heartbeats to the Particular Service Platform"); + throw new Exception("Sending heartbeats is enabled but no heartbeat queue has been configured. Configure a heartbeat queue or disable sending heartbeats to the Particular Service Platform."); } endpointConfiguration.SendHeartbeatTo(HeartbeatsQueue, Frequency, TimeToLive); diff --git a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformMetricsConfiguration.cs b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformMetricsConfiguration.cs index 83d11f9..c44d1e8 100644 --- a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformMetricsConfiguration.cs +++ b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformMetricsConfiguration.cs @@ -41,9 +41,7 @@ internal void ApplyTo(EndpointConfiguration endpointConfiguration) if (string.IsNullOrWhiteSpace(MetricsQueue)) { - throw new Exception( - @"Sending metric data is enabled but no metrics queue has been configured. -Configure a metrics queue or disable sending metric data to the Particular Service Platform"); + throw new Exception("Sending metric data is enabled but no metrics queue has been configured. Configure a metrics queue or disable sending metric data to the Particular Service Platform."); } var metrics = endpointConfiguration.EnableMetrics(); diff --git a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformSagaAuditConfiguration.cs b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformSagaAuditConfiguration.cs index 38f0a46..f754b95 100644 --- a/src/NServiceBus.ServicePlatform.Connector/ServicePlatformSagaAuditConfiguration.cs +++ b/src/NServiceBus.ServicePlatform.Connector/ServicePlatformSagaAuditConfiguration.cs @@ -32,9 +32,7 @@ internal void ApplyTo(EndpointConfiguration endpointConfiguration) if (string.IsNullOrWhiteSpace(SagaAuditQueue)) { - throw new Exception( - @"Sending saga audit information is enabled but no saga audit queue has been configured. -Configure a saga audit queue or disable sending saga audit information to the Particular Service Platform"); + throw new Exception("Sending saga audit information is enabled but no saga audit queue has been configured. Configure a saga audit queue or disable sending saga audit information to the Particular Service Platform."); }