Skip to content

Commit

Permalink
Update to NServiceBus 9 (#3986)
Browse files Browse the repository at this point in the history
* Update to NServiceBus 9

* Add MSMQ back

* Update tests

* Use new UseNServiceBus overload

* Clean up how the host is started

* Add CopyLocalLockFileAssemblies to MSMQ project

* Fix subscription storage registration

* Add recoverability config for Monitoring instance

* Remove StaticLoggerFactory

* Remove unneeded concept of default transport

* Remove commented out project reference
  • Loading branch information
bording committed Mar 7, 2024
1 parent c37c4ed commit bcd7353
Show file tree
Hide file tree
Showing 59 changed files with 377 additions and 670 deletions.
40 changes: 20 additions & 20 deletions src/Directory.Packages.props
Expand Up @@ -16,7 +16,7 @@
<PackageVersion Include="HdrHistogram" Version="2.5.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="8.0.0" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.1.5" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.2.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
Expand All @@ -27,25 +27,24 @@
<PackageVersion Include="Mindscape.Raygun4Net.NetCore" Version="8.0.0" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="NLog.Extensions.Logging" Version="5.3.5" />
<PackageVersion Include="NServiceBus" Version="8.1.6" />
<PackageVersion Include="NServiceBus.AcceptanceTesting" Version="8.1.6" />
<PackageVersion Include="NServiceBus.AmazonSQS" Version="6.2.0" />
<PackageVersion Include="NServiceBus.CustomChecks" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Extensions.Hosting" Version="2.0.0" />
<PackageVersion Include="NServiceBus.Extensions.Logging" Version="2.0.0" />
<PackageVersion Include="NServiceBus.Heartbeat" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Metrics" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Metrics.ServiceControl" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Metrics.ServiceControl.Msmq" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Newtonsoft.Json" Version="3.0.0" />
<PackageVersion Include="NServiceBus.Persistence.NonDurable" Version="1.0.0" />
<PackageVersion Include="NServiceBus.RabbitMQ" Version="8.0.3" />
<PackageVersion Include="NServiceBus.SagaAudit" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Testing" Version="8.1.0" />
<PackageVersion Include="NServiceBus.Transport.AzureServiceBus" Version="3.2.2" />
<PackageVersion Include="NServiceBus.Transport.AzureStorageQueues" Version="12.0.1" />
<PackageVersion Include="NServiceBus.Transport.Msmq" Version="2.0.3" />
<PackageVersion Include="NServiceBus.Transport.SqlServer" Version="7.0.2" />
<PackageVersion Include="NServiceBus" Version="9.0.0" />
<PackageVersion Include="NServiceBus.AcceptanceTesting" Version="9.0.0" />
<PackageVersion Include="NServiceBus.AmazonSQS" Version="7.0.0" />
<PackageVersion Include="NServiceBus.CustomChecks" Version="5.0.0" />
<PackageVersion Include="NServiceBus.Extensions.Hosting" Version="3.0.0" />
<PackageVersion Include="NServiceBus.Extensions.Logging" Version="3.0.0" />
<PackageVersion Include="NServiceBus.Heartbeat" Version="5.0.0" />
<PackageVersion Include="NServiceBus.Metrics" Version="5.0.0" />
<PackageVersion Include="NServiceBus.Metrics.ServiceControl" Version="5.0.0" />
<PackageVersion Include="NServiceBus.Newtonsoft.Json" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Persistence.NonDurable" Version="2.0.0" />
<PackageVersion Include="NServiceBus.RabbitMQ" Version="9.0.0" />
<PackageVersion Include="NServiceBus.SagaAudit" Version="5.0.0" />
<PackageVersion Include="NServiceBus.Testing" Version="9.0.0" />
<PackageVersion Include="NServiceBus.Transport.AzureServiceBus" Version="4.0.0" />
<PackageVersion Include="NServiceBus.Transport.AzureStorageQueues" Version="13.0.0" />
<PackageVersion Include="NServiceBus.Transport.Msmq.Sources" Version="3.0.0" />
<PackageVersion Include="NServiceBus.Transport.SqlServer" Version="8.0.0" />
<PackageVersion Include="NuGet.Versioning" Version="6.8.0" />
<PackageVersion Include="NUnit" Version="3.14.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.5.0" />
Expand All @@ -58,6 +57,7 @@
<PackageVersion Include="ReactiveUI.WPF" Version="19.5.1" />
<PackageVersion Include="ServiceControl.Contracts" Version="4.0.0" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="8.0.0" />
<PackageVersion Include="System.DirectoryServices.AccountManagement" Version="8.0.0" />
<PackageVersion Include="System.Management" Version="8.0.0" />
<PackageVersion Include="System.Management.Automation" Version="7.2.18" />
Expand Down
2 changes: 1 addition & 1 deletion src/ProjectReferences.Transports.props
Expand Up @@ -4,7 +4,7 @@
<ProjectReference Include="..\ServiceControl.Transports.ASBS\ServiceControl.Transports.ASBS.csproj" ReferenceOutputAssembly="false" Private="false" />
<ProjectReference Include="..\ServiceControl.Transports.ASQ\ServiceControl.Transports.ASQ.csproj" ReferenceOutputAssembly="false" Private="false" />
<ProjectReference Include="..\ServiceControl.Transports.Learning\ServiceControl.Transports.Learning.csproj" ReferenceOutputAssembly="false" Private="false" />
<!--<ProjectReference Include="..\ServiceControl.Transports.Msmq\ServiceControl.Transports.Msmq.csproj" ReferenceOutputAssembly="false" Private="false" />-->
<ProjectReference Include="..\ServiceControl.Transports.Msmq\ServiceControl.Transports.Msmq.csproj" ReferenceOutputAssembly="false" Private="false" SkipGetTargetFrameworkProperties="true" UndefineProperties="TargetFramework" />
<ProjectReference Include="..\ServiceControl.Transports.RabbitMQ\ServiceControl.Transports.RabbitMQ.csproj" ReferenceOutputAssembly="false" Private="false" />
<ProjectReference Include="..\ServiceControl.Transports.SqlServer\ServiceControl.Transports.SqlServer.csproj" ReferenceOutputAssembly="false" Private="false" />
<ProjectReference Include="..\ServiceControl.Transports.SQS\ServiceControl.Transports.SQS.csproj" ReferenceOutputAssembly="false" Private="false" />
Expand Down
Expand Up @@ -64,7 +64,7 @@ public IScenarioWithEndpointBehavior<TContext> Done(Func<TContext, bool> doneCri
// If sequence is done but test is not finished, small delay to avoid tight loop check
await Task.Delay(250);
// If sequence is not finished immediately return false, since each step will enforce delays
// If sequence is not finished immediately return false, since each step will enforce delays
return false;
});
}
Expand Down Expand Up @@ -127,7 +127,7 @@ public override Task ComponentsStarted(CancellationToken cancellationToken = def
return Task.CompletedTask;
}

public override async Task Stop()
public override async Task Stop(CancellationToken cancellationToken = default)
{
if (checkTask == null)
{
Expand Down
120 changes: 0 additions & 120 deletions src/ServiceControl.AcceptanceTesting/StaticContextAppender.cs

This file was deleted.

26 changes: 0 additions & 26 deletions src/ServiceControl.AcceptanceTesting/StaticLoggerFactory.cs

This file was deleted.

Expand Up @@ -38,12 +38,6 @@ protected AcceptanceTest()
public Settings Settings => serviceControlRunnerBehavior.Settings;
public Func<HttpMessageHandler> HttpMessageHandlerFactory => serviceControlRunnerBehavior.HttpMessageHandlerFactory;

[OneTimeSetUp]
public static void OneTimeSetup()
{
Scenario.GetLoggerFactory = ctx => new StaticLoggerFactory(ctx);
}

[SetUp]
public void Setup()
{
Expand Down
Expand Up @@ -4,6 +4,7 @@
using System.IO;
using System.Net.Http;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using AcceptanceTesting;
using Infrastructure.DomainEvents;
Expand Down Expand Up @@ -157,19 +158,19 @@ async Task InitializeServiceControl(ScenarioContext context)

host = hostBuilder.Build();
host.UseServiceControl();
await host.StartServiceControl();
await host.StartAsync();
DomainEvents = host.Services.GetRequiredService<IDomainEvents>();
// Bring this back and look into the base address of the client
HttpClient = host.GetTestServer().CreateClient();
HttpMessageHandlerFactory = () => host.GetTestServer().CreateHandler();
}
}

public override async Task Stop()
public override async Task Stop(CancellationToken cancellationToken = default)
{
using (new DiagnosticTimer($"Test TearDown for {instanceName}"))
{
await host.StopAsync();
await host.StopAsync(cancellationToken);
HttpClient.Dispose();
await host.DisposeAsync();
await persistenceToUse.Cleanup();
Expand Down
3 changes: 0 additions & 3 deletions src/ServiceControl.Audit.AcceptanceTests/AcceptanceTest.cs
Expand Up @@ -36,9 +36,6 @@ protected AcceptanceTest()
// TODO Check why this is necessary and if it can be removed
protected IServiceProvider ServiceProvider => serviceControlRunnerBehavior.ServiceProvider;

[OneTimeSetUp]
public static void OneTimeSetup() => Scenario.GetLoggerFactory = ctx => new StaticLoggerFactory(ctx);

[SetUp]
public void Setup()
{
Expand Down
Expand Up @@ -6,6 +6,7 @@ namespace ServiceControl.Audit.AcceptanceTests.TestSupport
using System.IO;
using System.Net.Http;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using AcceptanceTesting;
using Auditing;
Expand Down Expand Up @@ -179,11 +180,11 @@ async Task InitializeServiceControl(ScenarioContext context)
}
}

public override async Task Stop()
public override async Task Stop(CancellationToken cancellationToken = default)
{
using (new DiagnosticTimer($"Test TearDown for {instanceName}"))
{
await host.StopAsync();
await host.StopAsync(cancellationToken);
HttpClient.Dispose();
await host.DisposeAsync();
}
Expand Down
Expand Up @@ -28,10 +28,9 @@ public override async Task Execute(HostArguments args, Settings settings)
tokenSource.Cancel();
return Task.CompletedTask;
}, settings, endpointConfiguration, loggingSettings);
using var app = hostBuilder.Build();

using var app = hostBuilder.Build();
app.UseServiceControlAudit();

await app.StartAsync(tokenSource.Token);

var importer = app.Services.GetRequiredService<ImportFailedAudits>();
Expand Down
Expand Up @@ -22,8 +22,7 @@ public override async Task Execute(HostArguments args, Settings settings)
return Task.CompletedTask;
}, settings, endpointConfiguration, loggingSettings);

using var app = hostBuilder.Build();

var app = hostBuilder.Build();
app.UseServiceControlAudit();
await app.RunAsync();
}
Expand Down
8 changes: 2 additions & 6 deletions src/ServiceControl.Audit/WebApplicationBuilderExtension.cs
Expand Up @@ -82,13 +82,9 @@ static class WebApplicationBuilderExtension
services.AddMetrics(settings.PrintMetrics);

services.AddPersistence(persistenceSettings, persistenceConfiguration);
builder.Host.UseNServiceBus(_ =>
{
NServiceBusFactory.Configure(settings, transportCustomization, transportSettings, loggingSettings,
onCriticalError, configuration);

return configuration;
});
NServiceBusFactory.Configure(settings, transportCustomization, transportSettings, loggingSettings, onCriticalError, configuration);
builder.UseNServiceBus(configuration);

// Configure after the NServiceBus hosted service to ensure NServiceBus is already started
if (settings.IngestAuditMessages)
Expand Down

0 comments on commit bcd7353

Please sign in to comment.