From 666ee5d7cb165c8bad93e8600f7245800f6077ce Mon Sep 17 00:00:00 2001 From: "minaco77@gmail.com" Date: Fri, 8 May 2026 16:28:30 -0700 Subject: [PATCH 1/4] update to latest version of everything --- src/TestHelper/TestHelper.csproj | 7 +- .../Program.cs | 5 +- ...TimeoutMigrationTool.ASQ.FakeTarget.csproj | 8 +-- ...tMigrationTool.ASQ.IntegrationTests.csproj | 2 +- .../AspAcceptanceTest.cs | 48 ++++++++----- .../AspToAsqMqEndToEnd.cs | 39 ++--------- .../AspToRabbitMqEndToEnd.cs | 29 ++------ .../AspToSqlTEndToEnd.cs | 30 ++------ .../ConfigureExtensions.cs | 6 +- .../DefaultServer.cs | 8 +-- ...intCustomizationConfigurationExtensions.cs | 4 +- .../LegacyTimeoutManagerEndpoint.cs | 19 ++---- ...utMigrationTool.Asp.AcceptanceTests.csproj | 14 ++-- .../TimeoutMigrationTool.Asp.FakeData.csproj | 2 +- .../AspTimeoutsSourceTests.cs | 2 +- ...tMigrationTool.Asp.IntegrationTests.csproj | 2 +- .../ConfigureExtensions.cs | 8 +-- .../DefaultServer.cs | 11 +-- ...intCustomizationConfigurationExtensions.cs | 4 +- .../LegacyTimeoutManagerEndpoint.cs | 20 ++---- .../MsSqlMicrosoftDataClientHelper.cs | 8 +-- .../SqlPAcceptanceTest.cs | 4 +- .../SqlPToMsmqEndToEnd.cs | 24 +++---- ...tMigrationTool.Msmq.AcceptanceTests.csproj | 11 +-- ...MigrationTool.Msmq.IntegrationTests.csproj | 2 +- .../ConfigureExtensions.cs | 6 +- .../DefaultServer.cs | 8 +-- ...intCustomizationConfigurationExtensions.cs | 4 +- .../LegacyTimeoutManagerEndpoint.cs | 19 ++---- .../NHibernateToAsqEndToEnd.cs | 14 ++-- .../NHibernateToRabbitMqEndToEnd.cs | 4 +- .../NHibernateToSqlTEndToEnd.cs | 4 +- ...tionTool.NHibernate.AcceptanceTests.csproj | 12 ++-- ...ol.NHibernate.OracleAcceptanceTests.csproj | 10 +-- ...utMigrationTool.RabbitMq.FakeTarget.csproj | 2 +- ...ationTool.RabbitMq.IntegrationTests.csproj | 2 +- ...TimeoutMigrationTool.Raven.FakeData.csproj | 4 +- ...igrationTool.Raven.IntegrationTests.csproj | 2 +- .../ConfigureExtensions.cs | 6 +- ...intCustomizationConfigurationExtensions.cs | 4 +- .../LegacyTimeoutManagerEndpoint.cs | 19 ++---- .../RabbitMqEndpoint.cs | 8 +-- .../RavenDBAcceptanceTest.cs | 4 +- .../RavenDBToRabbitMqEndToEnd.cs | 68 +++++++++---------- ...igrationTool.Raven3.AcceptanceTests.csproj | 12 ++-- .../ConfigureExtensions.cs | 6 +- .../DefaultServer.cs | 8 +-- ...intCustomizationConfigurationExtensions.cs | 4 +- .../LegacyTimeoutManagerEndpoint.cs | 19 ++---- .../RavenDBToAsqEndToEnd.cs | 16 ++--- .../RavenDBToRabbitMqEndToEnd.cs | 6 +- .../RavenDBToSqlTEndToEnd.cs | 8 +-- ...igrationTool.Raven4.AcceptanceTests.csproj | 14 ++-- .../ConfigureExtensions.cs | 6 +- .../DefaultServer.cs | 8 +-- ...intCustomizationConfigurationExtensions.cs | 4 +- .../LegacyTimeoutManagerEndpoint.cs | 19 ++---- .../SqlPToAsqEndToEnd.cs | 22 +++--- .../SqlPToRabbitMqEndToEnd.cs | 6 +- .../SqlPToSqlTEndToEnd.cs | 8 +-- .../SqlTimeoutSourceTests.cs | 4 +- ...tMigrationTool.SqlP.AcceptanceTests.csproj | 14 ++-- ...MigrationTool.SqlT.IntegrationTests.csproj | 6 +- .../TimeoutMigrationTool.Tests.csproj | 13 ++-- .../TimeoutMigrationTool.csproj | 9 ++- 65 files changed, 305 insertions(+), 424 deletions(-) diff --git a/src/TestHelper/TestHelper.csproj b/src/TestHelper/TestHelper.csproj index 88359f4c..b1324041 100644 --- a/src/TestHelper/TestHelper.csproj +++ b/src/TestHelper/TestHelper.csproj @@ -6,8 +6,11 @@ - - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/src/TimeoutMigrationTool.ASQ.FakeTarget/Program.cs b/src/TimeoutMigrationTool.ASQ.FakeTarget/Program.cs index bf69a5b9..742bef05 100644 --- a/src/TimeoutMigrationTool.ASQ.FakeTarget/Program.cs +++ b/src/TimeoutMigrationTool.ASQ.FakeTarget/Program.cs @@ -36,11 +36,10 @@ static void SetupEndpointConfig(EndpointConfiguration endpointConfig) endpointConfig.SendFailedMessagesTo("error"); endpointConfig.AuditProcessedMessagesTo("audit"); var transport = endpointConfig.UseTransport(); - transport.DisablePublishing(); + transport.Routing().DisablePublishing(); transport.ConnectionString("UseDevelopmentStorage=true;"); endpointConfig.EnableInstallers(); endpointConfig.UseSerialization(); - endpointConfig.DisableFeature(); } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.ASQ.FakeTarget/TimeoutMigrationTool.ASQ.FakeTarget.csproj b/src/TimeoutMigrationTool.ASQ.FakeTarget/TimeoutMigrationTool.ASQ.FakeTarget.csproj index 3a705bea..39bd3b1a 100644 --- a/src/TimeoutMigrationTool.ASQ.FakeTarget/TimeoutMigrationTool.ASQ.FakeTarget.csproj +++ b/src/TimeoutMigrationTool.ASQ.FakeTarget/TimeoutMigrationTool.ASQ.FakeTarget.csproj @@ -1,14 +1,14 @@  - net8.0 + net10.0 Exe - - - + + + diff --git a/src/TimeoutMigrationTool.ASQ.IntegrationTests/TimeoutMigrationTool.ASQ.IntegrationTests.csproj b/src/TimeoutMigrationTool.ASQ.IntegrationTests/TimeoutMigrationTool.ASQ.IntegrationTests.csproj index 02e20892..0bba11a4 100644 --- a/src/TimeoutMigrationTool.ASQ.IntegrationTests/TimeoutMigrationTool.ASQ.IntegrationTests.csproj +++ b/src/TimeoutMigrationTool.ASQ.IntegrationTests/TimeoutMigrationTool.ASQ.IntegrationTests.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspAcceptanceTest.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspAcceptanceTest.cs index adb585fa..f3907fa0 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspAcceptanceTest.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspAcceptanceTest.cs @@ -1,13 +1,15 @@ namespace TimeoutMigrationTool.Asp.AcceptanceTests { using System; + using System.Collections.Generic; using System.IO; using System.Linq; + using System.Text; using System.Threading; using System.Threading.Tasks; using Azure.Storage.Blobs; using Microsoft.Azure.Cosmos.Table; - using NServiceBus; + using Newtonsoft.Json; using NUnit.Framework; using Particular.TimeoutMigrationTool.Asp; using static Microsoft.Azure.Cosmos.Table.TableQuery; @@ -72,26 +74,40 @@ public async Task TearDown() await blobServiceClient.DeleteBlobContainerAsync(timeoutContainerName); } - protected void SetupPersistence(EndpointConfiguration endpointConfiguration) - { - var persistence = endpointConfiguration.UsePersistence(); - persistence.ConnectionString(connectionString); - - var timeoutPersistence = endpointConfiguration.UsePersistence(); -#pragma warning disable 618 - timeoutPersistence.CreateSchema(true); - timeoutPersistence.TimeoutDataTableName(timeoutTableName); - timeoutPersistence.TimeoutStateContainerName(timeoutContainerName); - timeoutPersistence.PartitionKeyScope(PartitionKeyScope); -#pragma warning restore 618 - } - protected AspTimeoutsSource CreateTimeoutStorage(string endpointNameToBeListed, int batchSize = 1024) { var storage = new AspTimeoutsSource(connectionString, batchSize, timeoutContainerName, endpointNameToBeListed, TimeoutTableName, tablePrefix: tableNamePrefix, partitionKeyScope: PartitionKeyScope); return storage; } + protected async Task StoreLegacyTimeout(string sourceEndpoint, string targetEndpoint, Type messageType) + { + var timeoutId = Guid.NewGuid().ToString("N"); + var timeoutTime = DateTime.UtcNow.AddSeconds(5); + var stateAddress = $"{timeoutId}.state"; + var body = Encoding.UTF8.GetBytes("{}"); + + var blobContainerClient = blobServiceClient.GetBlobContainerClient(timeoutContainerName); + await blobContainerClient.UploadBlobAsync(stateAddress, new BinaryData(body)); + + var timeout = new TimeoutDataEntity(timeoutTime.ToString(PartitionKeyScope), timeoutId) + { + Destination = targetEndpoint, + SagaId = Guid.NewGuid(), + StateAddress = stateAddress, + Time = timeoutTime, + OwningTimeoutManager = sourceEndpoint, + Headers = JsonConvert.SerializeObject(new Dictionary + { + { "NServiceBus.ContentType", "application/json" }, + { "NServiceBus.EnclosedMessageTypes", messageType.AssemblyQualifiedName }, + { "NServiceBus.MessageId", timeoutId } + }) + }; + + await timeoutTable.ExecuteAsync(TableOperation.Insert(timeout)); + } + protected async Task WaitUntilTheTimeoutsAreSavedInAsp(string endpoint, int numberOfEntriesThatShouldBeThere) { var query = new TableQuery() @@ -152,4 +168,4 @@ public static string StorageRootDir } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToAsqMqEndToEnd.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToAsqMqEndToEnd.cs index 5f78c0f9..bbbd5c13 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToAsqMqEndToEnd.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToAsqMqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Asp.AcceptanceTests +namespace TimeoutMigrationTool.Asp.AcceptanceTests { using NServiceBus.Features; using NServiceBus; @@ -23,30 +23,7 @@ public async Task Can_migrate_timeouts() var sourceEndpoint = NServiceBus.AcceptanceTesting.Customization.Conventions.EndpointNamingConvention(typeof(AspSource)); var targetEndpoint = NServiceBus.AcceptanceTesting.Customization.Conventions.EndpointNamingConvention(typeof(AsqTarget)); - await Scenario.Define() - .WithEndpoint(b => b.CustomConfig(ec => - { - SetupPersistence(ec); - - ec.UseSerialization(); - }) - .When(async (session, c) => - { - var delayedMessage = new DelayedMessage(); - - var options = new SendOptions(); - - options.DelayDeliveryWith(TimeSpan.FromSeconds(15)); - options.SetDestination(targetEndpoint); - - await session.Send(delayedMessage, options); - - await WaitUntilTheTimeoutsAreSavedInAsp(sourceEndpoint, 2); - - c.TimeoutSet = true; - })) - .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(30)); + await StoreLegacyTimeout(sourceEndpoint, targetEndpoint, typeof(DelayedMessage)); var context = await Scenario.Define() // Create the legacy endpoint to forward the delayed message to the reporting endpoint @@ -56,9 +33,7 @@ await Scenario.Define() { var transportConfig = ec.UseTransport(); transportConfig.ConnectionString(asqConnectionString); - transportConfig.DisablePublishing(); - - transportConfig.DelayedDelivery().DisableTimeoutManager(); + transportConfig.Routing().DisablePublishing(); ec.UseSerialization(); })) @@ -67,9 +42,7 @@ await Scenario.Define() { var transportConfig = ec.UseTransport(); transportConfig.ConnectionString(asqConnectionString); - transportConfig.DisablePublishing(); - - transportConfig.DelayedDelivery().DisableTimeoutManager(); + transportConfig.Routing().DisablePublishing(); ec.UseSerialization(); }) @@ -83,7 +56,7 @@ await Scenario.Define() await migrationRunner.Run(DateTime.Now.AddDays(-10), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } @@ -140,4 +113,4 @@ public class DelayedMessage : IMessage { } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToRabbitMqEndToEnd.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToRabbitMqEndToEnd.cs index 6a536454..4d74a8c8 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToRabbitMqEndToEnd.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToRabbitMqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Asp.AcceptanceTests +namespace TimeoutMigrationTool.Asp.AcceptanceTests { using NServiceBus.Features; using NServiceBus; @@ -27,28 +27,7 @@ public async Task Can_migrate_timeouts() var sourceEndpoint = NServiceBus.AcceptanceTesting.Customization.Conventions.EndpointNamingConvention(typeof(AspSource)); var targetEndpoint = NServiceBus.AcceptanceTesting.Customization.Conventions.EndpointNamingConvention(typeof(RabbitMqTarget)); - await Scenario.Define() - .WithEndpoint(b => b.CustomConfig(ec => - { - SetupPersistence(ec); - }) - .When(async (session, c) => - { - var delayedMessage = new DelayedMessage(); - - var options = new SendOptions(); - - options.DelayDeliveryWith(TimeSpan.FromSeconds(15)); - options.SetDestination(targetEndpoint); - - await session.Send(delayedMessage, options); - - await WaitUntilTheTimeoutsAreSavedInAsp(sourceEndpoint, 2); - - c.TimeoutSet = true; - })) - .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(30)); + await StoreLegacyTimeout(sourceEndpoint, targetEndpoint, typeof(DelayedMessage)); var context = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => @@ -66,7 +45,7 @@ await Scenario.Define() await migrationRunner.Run(DateTime.Now.AddDays(-10), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } @@ -125,4 +104,4 @@ public class DelayedMessage : IMessage { } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToSqlTEndToEnd.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToSqlTEndToEnd.cs index ff54789a..3a07c79a 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToSqlTEndToEnd.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/AspToSqlTEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Asp.AcceptanceTests +namespace TimeoutMigrationTool.Asp.AcceptanceTests { using NServiceBus.Features; using NServiceBus; @@ -37,27 +37,7 @@ public async Task Can_migrate_timeouts() var sourceEndpoint = NServiceBus.AcceptanceTesting.Customization.Conventions.EndpointNamingConvention(typeof(AspSource)); var targetEndpoint = NServiceBus.AcceptanceTesting.Customization.Conventions.EndpointNamingConvention(typeof(SqlTTarget)); - await Scenario.Define() - .WithEndpoint(b => b.CustomConfig(ec => - { - SetupPersistence(ec); - }) - .When(async (session, c) => - { - var delayedMessage = new DelayedMessage(); - var options = new SendOptions(); - - options.DelayDeliveryWith(TimeSpan.FromSeconds(15)); - options.SetDestination(targetEndpoint); - - await session.Send(delayedMessage, options); - - await WaitUntilTheTimeoutsAreSavedInAsp(sourceEndpoint, 2); - - c.TimeoutSet = true; - })) - .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(30)); + await StoreLegacyTimeout(sourceEndpoint, targetEndpoint, typeof(DelayedMessage)); var setupContext = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => @@ -68,7 +48,7 @@ await Scenario.Define() .ConnectionString(sqlConnectionString); })) .Done(c => c.EndpointsStarted) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); var logger = new TestLoggingAdapter(setupContext); var timeoutStorage = CreateTimeoutStorage(sourceEndpoint); @@ -86,7 +66,7 @@ await Scenario.Define() .ConnectionString(sqlConnectionString); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } @@ -143,4 +123,4 @@ public class DelayedMessage : IMessage { } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/ConfigureExtensions.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/ConfigureExtensions.cs index d4cc7c26..1ce22dd7 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/ConfigureExtensions.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/ConfigureExtensions.cs @@ -2,7 +2,7 @@ { using NServiceBus; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.ObjectBuilder; + using Microsoft.Extensions.DependencyInjection; public static class ConfigureExtensions { @@ -11,12 +11,12 @@ public static void RegisterComponentsAndInheritanceHierarchy(this EndpointConfig builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); }); } - static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IConfigureComponents r) + static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IServiceCollection r) { var type = runDescriptor.ScenarioContext.GetType(); while (type != typeof(object)) { - r.RegisterSingleton(type, runDescriptor.ScenarioContext); + r.AddSingleton(type, runDescriptor.ScenarioContext); type = type.BaseType; } } diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/DefaultServer.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/DefaultServer.cs index 82d01cbd..1429f642 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/DefaultServer.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/DefaultServer.cs @@ -8,7 +8,7 @@ public class DefaultServer : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -26,9 +26,9 @@ public virtual Task GetConfiguration(RunDescriptor runDes endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index 3e2885c1..4135cb45 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Asp.AcceptanceTests +namespace TimeoutMigrationTool.Asp.AcceptanceTests { using System; using System.Collections.Generic; @@ -23,7 +23,7 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList(); + return types.ToList(); } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 1cb462a1..9725a15c 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -3,15 +3,12 @@ using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.Features; - using NUnit.Framework; using System; - using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -21,21 +18,15 @@ public virtual Task GetConfiguration(RunDescriptor runDes .Delayed(delayed => delayed.NumberOfRetries(0)) .Immediate(immediate => immediate.NumberOfRetries(0)); - var storageDir = Path.Combine(AspAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); - endpointConfiguration.EnableInstallers(); - var transport = endpointConfiguration.UseTransport(); - transport.StorageDirectory(storageDir); - transport.UseNativeDelayedDelivery(false); - - endpointConfiguration.EnableFeature(); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/TimeoutMigrationTool.Asp.AcceptanceTests.csproj b/src/TimeoutMigrationTool.Asp.AcceptanceTests/TimeoutMigrationTool.Asp.AcceptanceTests.csproj index 1ef820e8..af3e27ed 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/TimeoutMigrationTool.Asp.AcceptanceTests.csproj +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/TimeoutMigrationTool.Asp.AcceptanceTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 @@ -16,12 +16,12 @@ - - - - - - + + + + + + diff --git a/src/TimeoutMigrationTool.Asp.FakeData/TimeoutMigrationTool.Asp.FakeData.csproj b/src/TimeoutMigrationTool.Asp.FakeData/TimeoutMigrationTool.Asp.FakeData.csproj index c5d7767d..00f0eee0 100644 --- a/src/TimeoutMigrationTool.Asp.FakeData/TimeoutMigrationTool.Asp.FakeData.csproj +++ b/src/TimeoutMigrationTool.Asp.FakeData/TimeoutMigrationTool.Asp.FakeData.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 Exe diff --git a/src/TimeoutMigrationTool.Asp.IntegrationTests/AspTimeoutsSourceTests.cs b/src/TimeoutMigrationTool.Asp.IntegrationTests/AspTimeoutsSourceTests.cs index 9f994fac..71006579 100644 --- a/src/TimeoutMigrationTool.Asp.IntegrationTests/AspTimeoutsSourceTests.cs +++ b/src/TimeoutMigrationTool.Asp.IntegrationTests/AspTimeoutsSourceTests.cs @@ -673,7 +673,7 @@ public async Task ListEndpoint_should_ignore_endpoints_outside_cutoff_date() Assert.That(singleElement.ShortestTimeout.Day, Is.EqualTo(DateTime.UtcNow.AddDays(1).Day)); Assert.That(singleElement.LongestTimeout.Day, Is.EqualTo(DateTime.UtcNow.AddDays(5).Day)); }); - Assert.That(singleElement.Destinations, Is.EquivalentTo(new List + Assert.That(singleElement.Destinations, Is.EquivalentTo(new[] { "Destination1", "Destination2", diff --git a/src/TimeoutMigrationTool.Asp.IntegrationTests/TimeoutMigrationTool.Asp.IntegrationTests.csproj b/src/TimeoutMigrationTool.Asp.IntegrationTests/TimeoutMigrationTool.Asp.IntegrationTests.csproj index 02e20892..0bba11a4 100644 --- a/src/TimeoutMigrationTool.Asp.IntegrationTests/TimeoutMigrationTool.Asp.IntegrationTests.csproj +++ b/src/TimeoutMigrationTool.Asp.IntegrationTests/TimeoutMigrationTool.Asp.IntegrationTests.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/ConfigureExtensions.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/ConfigureExtensions.cs index 584ee648..86f25b1d 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/ConfigureExtensions.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/ConfigureExtensions.cs @@ -1,8 +1,8 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.Msmq.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.ObjectBuilder; + using Microsoft.Extensions.DependencyInjection; public static class ConfigureExtensions { @@ -11,12 +11,12 @@ public static void RegisterComponentsAndInheritanceHierarchy(this EndpointConfig builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); }); } - static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IConfigureComponents r) + static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IServiceCollection r) { var type = runDescriptor.ScenarioContext.GetType(); while (type != typeof(object)) { - r.RegisterSingleton(type, runDescriptor.ScenarioContext); + r.AddSingleton(type, runDescriptor.ScenarioContext); type = type.BaseType; } } diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/DefaultServer.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/DefaultServer.cs index 59e708b0..6e503cf7 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/DefaultServer.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/DefaultServer.cs @@ -5,10 +5,11 @@ using NServiceBus.AcceptanceTesting.Support; using System; using System.Threading.Tasks; + using TimeoutMigrationTool.Msmq.AcceptanceTests; public class DefaultServer : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -21,13 +22,13 @@ public virtual Task GetConfiguration(RunDescriptor runDes endpointConfiguration.EnableInstallers(); endpointConfiguration.SendFailedMessagesTo("error"); - var transport = endpointConfiguration.UseTransport(); + endpointConfiguration.UseTransport(new MsmqTransport()); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index 0f55691d..e891d4de 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using System; using System.Collections.Generic; @@ -23,7 +23,7 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList(); + return types.ToList(); } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 0a12fc3d..4ff5da58 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -3,15 +3,13 @@ using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.Features; - using NUnit.Framework; using System; - using System.IO; using System.Threading.Tasks; + using TimeoutMigrationTool.Msmq.AcceptanceTests; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -21,21 +19,15 @@ public virtual Task GetConfiguration(RunDescriptor runDes .Delayed(delayed => delayed.NumberOfRetries(0)) .Immediate(immediate => immediate.NumberOfRetries(0)); - var storageDir = Path.Combine(SqlPAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); - endpointConfiguration.EnableInstallers(); - var transport = endpointConfiguration.UseTransport(); - transport.StorageDirectory(storageDir); - transport.UseNativeDelayedDelivery(false); - - endpointConfiguration.EnableFeature(); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/MsSqlMicrosoftDataClientHelper.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/MsSqlMicrosoftDataClientHelper.cs index 0c441940..0575b695 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/MsSqlMicrosoftDataClientHelper.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/MsSqlMicrosoftDataClientHelper.cs @@ -1,14 +1,14 @@ namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using System; - using System.Data.SqlClient; + using Microsoft.Data.SqlClient; using System.Threading.Tasks; public static class MsSqlMicrosoftDataClientHelper { public static async Task RemoveDbIfExists(string connectionString = null) { - connectionString = connectionString ?? GetConnectionString(); + connectionString ??= GetConnectionString(); var connectionStringBuilder = new SqlConnectionStringBuilder(connectionString); var databaseName = connectionStringBuilder.InitialCatalog; @@ -18,7 +18,7 @@ public static async Task RemoveDbIfExists(string connectionString = null) public static async Task RecreateDbIfNotExists(string connectionString = null) { - connectionString = connectionString ?? GetConnectionString(); + connectionString ??= GetConnectionString(); var connectionStringBuilder = new SqlConnectionStringBuilder(connectionString); var databaseName = connectionStringBuilder.InitialCatalog; @@ -67,4 +67,4 @@ static async Task DropDatabase(string connectionString, string databaseName) } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPAcceptanceTest.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPAcceptanceTest.cs index 134ee42b..24ed1e03 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPAcceptanceTest.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPAcceptanceTest.cs @@ -3,7 +3,7 @@ using NServiceBus; using NUnit.Framework; using System; - using System.Data.SqlClient; + using Microsoft.Data.SqlClient; using System.IO; using System.Linq; using System.Threading; @@ -144,4 +144,4 @@ protected async Task WaitUntilTheTimeoutIsSavedInSql(string endpoint) protected string databaseName; protected string connectionString; } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPToMsmqEndToEnd.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPToMsmqEndToEnd.cs index 127e82ad..9da2fa3e 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPToMsmqEndToEnd.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/SqlPToMsmqEndToEnd.cs @@ -1,10 +1,10 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; using NUnit.Framework; using System; - using System.Data.SqlClient; + using Microsoft.Data.SqlClient; using System.Threading.Tasks; using Msmq.AcceptanceTests; using Conventions = NServiceBus.AcceptanceTesting.Customization.Conventions; @@ -43,19 +43,15 @@ await Scenario.Define() c.TimeoutSet = true; })) .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(60)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(60)).Token); var setupContext = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => { - var transport = ec.UseTransport(); - transport.NativeDelayedDelivery(new SqlServerDelayedMessageStore(connectionString)); - - //To ensure we don't pick up the timeout via the timeout manager - var persistence = ec.UsePersistence(); + ec.UseTransport(new MsmqTransport()); })) .Done(c => c.EndpointsStarted) - .Run(TimeSpan.FromSeconds(90)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(90)).Token); MigrationRunner.Run(connectionString); @@ -63,14 +59,10 @@ await Scenario.Define() var context = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => { - var transport = ec.UseTransport(); - transport.NativeDelayedDelivery(new SqlServerDelayedMessageStore(connectionString)); - - //To ensure we don't pick up the timeout via the timeout manager - var persistence = ec.UsePersistence(); + ec.UseTransport(new MsmqTransport()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(120)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(120)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } @@ -121,4 +113,4 @@ public class DelayedMessage : IMessage { } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/TimeoutMigrationTool.Msmq.AcceptanceTests.csproj b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/TimeoutMigrationTool.Msmq.AcceptanceTests.csproj index c389392f..b0a67661 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/TimeoutMigrationTool.Msmq.AcceptanceTests.csproj +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/TimeoutMigrationTool.Msmq.AcceptanceTests.csproj @@ -1,7 +1,7 @@ - net48 + net10.0-windows7.0 @@ -15,10 +15,11 @@ - - - - + + + + + diff --git a/src/TimeoutMigrationTool.Msmq.IntegrationTests/TimeoutMigrationTool.Msmq.IntegrationTests.csproj b/src/TimeoutMigrationTool.Msmq.IntegrationTests/TimeoutMigrationTool.Msmq.IntegrationTests.csproj index 1dc66a73..4010f949 100644 --- a/src/TimeoutMigrationTool.Msmq.IntegrationTests/TimeoutMigrationTool.Msmq.IntegrationTests.csproj +++ b/src/TimeoutMigrationTool.Msmq.IntegrationTests/TimeoutMigrationTool.Msmq.IntegrationTests.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/ConfigureExtensions.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/ConfigureExtensions.cs index 5a26f18f..39bf14aa 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/ConfigureExtensions.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/ConfigureExtensions.cs @@ -2,7 +2,7 @@ { using NServiceBus; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.ObjectBuilder; + using Microsoft.Extensions.DependencyInjection; public static class ConfigureExtensions { @@ -11,12 +11,12 @@ public static void RegisterComponentsAndInheritanceHierarchy(this EndpointConfig builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); }); } - static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IConfigureComponents r) + static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IServiceCollection r) { var type = runDescriptor.ScenarioContext.GetType(); while (type != typeof(object)) { - r.RegisterSingleton(type, runDescriptor.ScenarioContext); + r.AddSingleton(type, runDescriptor.ScenarioContext); type = type.BaseType; } } diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/DefaultServer.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/DefaultServer.cs index 63febd34..3a2adaa3 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/DefaultServer.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/DefaultServer.cs @@ -8,7 +8,7 @@ public class DefaultServer : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -26,9 +26,9 @@ public virtual Task GetConfiguration(RunDescriptor runDes endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index e6225fe1..36835e82 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.NHibernate.AcceptanceTests +namespace TimeoutMigrationTool.NHibernate.AcceptanceTests { using System; using System.Collections.Generic; @@ -23,7 +23,7 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList(); + return types.ToList(); } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index ef332e71..02c6136b 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -3,15 +3,12 @@ using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.Features; - using NUnit.Framework; using System; - using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -21,21 +18,15 @@ public virtual Task GetConfiguration(RunDescriptor runDes .Delayed(delayed => delayed.NumberOfRetries(0)) .Immediate(immediate => immediate.NumberOfRetries(0)); - var storageDir = Path.Combine(NHibernateAcceptanceTests.StorageRootDir, TestContext.CurrentContext.Test.ID); - endpointConfiguration.EnableInstallers(); - var transport = endpointConfiguration.UseTransport(); - transport.StorageDirectory(storageDir); - transport.UseNativeDelayedDelivery(false); - - endpointConfiguration.EnableFeature(); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToAsqEndToEnd.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToAsqEndToEnd.cs index 84f9580e..eeca03f5 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToAsqEndToEnd.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToAsqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.NHibernate.AcceptanceTests +namespace TimeoutMigrationTool.NHibernate.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; @@ -56,9 +56,7 @@ await testSession.SaveAsync(new TimeoutEntity { var transportConfig = ec.UseTransport(); transportConfig.ConnectionString(asqConnectionString); - transportConfig.DisablePublishing(); - - transportConfig.DelayedDelivery().DisableTimeoutManager(); + transportConfig.Routing().DisablePublishing(); ec.UseSerialization(); })) @@ -66,9 +64,7 @@ await testSession.SaveAsync(new TimeoutEntity { var transportConfig = ec.UseTransport(); transportConfig.ConnectionString(asqConnectionString); - transportConfig.DisablePublishing(); - - transportConfig.DelayedDelivery().DisableTimeoutManager(); + transportConfig.Routing().DisablePublishing(); ec.UseSerialization(); }) @@ -82,7 +78,7 @@ await testSession.SaveAsync(new TimeoutEntity await migrationRunner.Run(DateTime.Now.AddDays(-10), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(90)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(90)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } @@ -132,4 +128,4 @@ public class DelayedMessage : IMessage { } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToRabbitMqEndToEnd.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToRabbitMqEndToEnd.cs index 2632841c..32c1bdaf 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToRabbitMqEndToEnd.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToRabbitMqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.NHibernate.AcceptanceTests +namespace TimeoutMigrationTool.NHibernate.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; @@ -66,7 +66,7 @@ await testSession.SaveAsync(new TimeoutEntity await migrationRunner.Run(DateTime.Now.AddDays(-10), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(90)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(90)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToSqlTEndToEnd.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToSqlTEndToEnd.cs index aad7e6fc..882c9c3a 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToSqlTEndToEnd.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/NHibernateToSqlTEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.NHibernate.AcceptanceTests +namespace TimeoutMigrationTool.NHibernate.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; @@ -62,7 +62,7 @@ await migrationRunner.Run(DateTime.Now.AddDays(-10), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(90)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(90)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/TimeoutMigrationTool.NHibernate.AcceptanceTests.csproj b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/TimeoutMigrationTool.NHibernate.AcceptanceTests.csproj index 90b9c695..f6d5ac5c 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/TimeoutMigrationTool.NHibernate.AcceptanceTests.csproj +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/TimeoutMigrationTool.NHibernate.AcceptanceTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 $(DefineConstants);SQLSERVER @@ -17,11 +17,11 @@ - - - - - + + + + + diff --git a/src/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests.csproj b/src/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests.csproj index 6f1580f4..59558c75 100644 --- a/src/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests.csproj +++ b/src/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests/TimeoutMigrationTool.NHibernate.OracleAcceptanceTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 $(DefineConstants);ORACLE @@ -17,10 +17,10 @@ - - - - + + + + diff --git a/src/TimeoutMigrationTool.RabbitMq.FakeTarget/TimeoutMigrationTool.RabbitMq.FakeTarget.csproj b/src/TimeoutMigrationTool.RabbitMq.FakeTarget/TimeoutMigrationTool.RabbitMq.FakeTarget.csproj index 6d0c0b73..59fcf7f9 100644 --- a/src/TimeoutMigrationTool.RabbitMq.FakeTarget/TimeoutMigrationTool.RabbitMq.FakeTarget.csproj +++ b/src/TimeoutMigrationTool.RabbitMq.FakeTarget/TimeoutMigrationTool.RabbitMq.FakeTarget.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 Exe diff --git a/src/TimeoutMigrationTool.RabbitMq.IntegrationTests/TimeoutMigrationTool.RabbitMq.IntegrationTests.csproj b/src/TimeoutMigrationTool.RabbitMq.IntegrationTests/TimeoutMigrationTool.RabbitMq.IntegrationTests.csproj index f7d873d6..3195ee62 100644 --- a/src/TimeoutMigrationTool.RabbitMq.IntegrationTests/TimeoutMigrationTool.RabbitMq.IntegrationTests.csproj +++ b/src/TimeoutMigrationTool.RabbitMq.IntegrationTests/TimeoutMigrationTool.RabbitMq.IntegrationTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 diff --git a/src/TimeoutMigrationTool.Raven.FakeData/TimeoutMigrationTool.Raven.FakeData.csproj b/src/TimeoutMigrationTool.Raven.FakeData/TimeoutMigrationTool.Raven.FakeData.csproj index 36239536..3d247d51 100644 --- a/src/TimeoutMigrationTool.Raven.FakeData/TimeoutMigrationTool.Raven.FakeData.csproj +++ b/src/TimeoutMigrationTool.Raven.FakeData/TimeoutMigrationTool.Raven.FakeData.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 Exe @@ -10,7 +10,7 @@ - + diff --git a/src/TimeoutMigrationTool.Raven.IntegrationTests/TimeoutMigrationTool.Raven.IntegrationTests.csproj b/src/TimeoutMigrationTool.Raven.IntegrationTests/TimeoutMigrationTool.Raven.IntegrationTests.csproj index f7d873d6..3195ee62 100644 --- a/src/TimeoutMigrationTool.Raven.IntegrationTests/TimeoutMigrationTool.Raven.IntegrationTests.csproj +++ b/src/TimeoutMigrationTool.Raven.IntegrationTests/TimeoutMigrationTool.Raven.IntegrationTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/ConfigureExtensions.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/ConfigureExtensions.cs index 6e4d1477..c8edd6da 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/ConfigureExtensions.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/ConfigureExtensions.cs @@ -2,7 +2,7 @@ { using NServiceBus; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.ObjectBuilder; + using Microsoft.Extensions.DependencyInjection; public static class ConfigureExtensions { @@ -11,12 +11,12 @@ public static void RegisterComponentsAndInheritanceHierarchy(this EndpointConfig builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); }); } - static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IConfigureComponents r) + static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IServiceCollection r) { var type = runDescriptor.ScenarioContext.GetType(); while (type != typeof(object)) { - r.RegisterSingleton(type, runDescriptor.ScenarioContext); + r.AddSingleton(type, runDescriptor.ScenarioContext); type = type.BaseType; } } diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index d3569a97..f641baff 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Raven3.AcceptanceTests +namespace TimeoutMigrationTool.Raven3.AcceptanceTests { using System; using System.Collections.Generic; @@ -23,7 +23,7 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList(); + return types.ToList(); } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 785929f5..bb01aec2 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -3,15 +3,12 @@ using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.Features; - using NUnit.Framework; using System; - using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -21,21 +18,15 @@ public virtual Task GetConfiguration(RunDescriptor runDes .Delayed(delayed => delayed.NumberOfRetries(0)) .Immediate(immediate => immediate.NumberOfRetries(0)); - var storageDir = Path.Combine(NServiceBusAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); - endpointConfiguration.EnableInstallers(); - var transport = endpointConfiguration.UseTransport(); - transport.StorageDirectory(storageDir); - transport.UseNativeDelayedDelivery(false); - - endpointConfiguration.EnableFeature(); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RabbitMqEndpoint.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RabbitMqEndpoint.cs index 9557b620..aeff47c4 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RabbitMqEndpoint.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RabbitMqEndpoint.cs @@ -10,7 +10,7 @@ public class RabbitMqEndpoint : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -30,9 +30,9 @@ public virtual Task GetConfiguration(RunDescriptor runDes endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBAcceptanceTest.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBAcceptanceTest.cs index af8cdff5..2c284b1d 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBAcceptanceTest.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBAcceptanceTest.cs @@ -5,7 +5,7 @@ using Raven.Client.Document; using System; using System.Threading.Tasks; - using NServiceBus.Timeout.Core; + using Particular.TimeoutMigrationTool; using Particular.TimeoutMigrationTool.RavenDB; public abstract class RavenDBAcceptanceTest : NServiceBusAcceptanceTest @@ -102,4 +102,4 @@ static async Task DeleteDatabase(string urls, string dbName) protected string serverUrl = ""; protected string rabbitUrl = ""; } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs index 24173ee0..60a2b408 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Raven3.AcceptanceTests +namespace TimeoutMigrationTool.Raven3.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; @@ -6,8 +6,10 @@ using Particular.TimeoutMigrationTool; using Particular.TimeoutMigrationTool.RabbitMq; using Particular.TimeoutMigrationTool.RavenDB; + using Raven.Abstractions.Data; using System; using System.Collections.Generic; + using System.Text; using System.Threading.Tasks; [TestFixture] @@ -23,33 +25,7 @@ public async Task Can_migrate_timeouts() var ravenTimeoutPrefix = "TimeoutDatas"; var ravenVersion = RavenDbVersion.ThreeDotFive; - var ravenAdapter = new Raven3Adapter(serverUrl, databaseName); - - await Scenario.Define() - .WithEndpoint(b => b.CustomConfig(ec => - { - ec.UsePersistence() - .DoNotSetupDatabasePermissions() - .DisableSubscriptionVersioning() - .SetDefaultDocumentStore(GetDocumentStore(serverUrl, databaseName)); - }) - .When(async (session, c) => - { - var delayedMessage = new DelayedMessage(); - - var options = new SendOptions(); - - options.DelayDeliveryWith(TimeSpan.FromSeconds(30)); - options.SetDestination(targetEndpoint); - - await session.Send(delayedMessage, options); - - await WaitUntilTheTimeoutIsSavedInRaven(ravenAdapter, sourceEndpoint); - - c.TimeoutSet = true; - })) - .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(15)); + await StoreLegacyTimeout(sourceEndpoint, targetEndpoint, ravenTimeoutPrefix); var context = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => @@ -66,16 +42,11 @@ await Scenario.Define() await migrationRunner.Run(DateTime.Now.AddDays(-1), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(60)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(60)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } - public class SourceContext : ScenarioContext - { - public bool TimeoutSet { get; set; } - } - public class TargetContext : ScenarioContext { public bool GotTheDelayedMessage { get; set; } @@ -116,5 +87,32 @@ public Task Handle(DelayedMessage message, IMessageHandlerContext context) public class DelayedMessage : IMessage { } + + async Task StoreLegacyTimeout(string sourceEndpoint, string targetEndpoint, string ravenTimeoutPrefix) + { + using var documentStore = GetDocumentStore(serverUrl, databaseName); + await documentStore.AsyncDatabaseCommands.GlobalAdmin.CreateDatabaseAsync(new DatabaseDocument + { + Id = databaseName + }); + + using var session = documentStore.OpenAsyncSession(); + await session.StoreAsync(new TimeoutData + { + Destination = targetEndpoint, + SagaId = Guid.NewGuid(), + OwningTimeoutManager = sourceEndpoint, + Time = DateTime.UtcNow.AddSeconds(5), + Headers = new Dictionary + { + { "NServiceBus.ContentType", "application/json" }, + { "NServiceBus.EnclosedMessageTypes", typeof(DelayedMessage).AssemblyQualifiedName }, + { "NServiceBus.MessageId", Guid.NewGuid().ToString("N") } + }, + State = Encoding.UTF8.GetBytes("{}") + }, $"{ravenTimeoutPrefix}/1"); + + await session.SaveChangesAsync(); + } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/TimeoutMigrationTool.Raven3.AcceptanceTests.csproj b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/TimeoutMigrationTool.Raven3.AcceptanceTests.csproj index 196a1ecb..b7671eb5 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/TimeoutMigrationTool.Raven3.AcceptanceTests.csproj +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/TimeoutMigrationTool.Raven3.AcceptanceTests.csproj @@ -1,7 +1,8 @@  - net8.0 + net10.0 + $(NoWarn);NU1608 @@ -16,13 +17,16 @@ - - + + - + + + + diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/ConfigureExtensions.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/ConfigureExtensions.cs index fedb4d42..09eed6a3 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/ConfigureExtensions.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/ConfigureExtensions.cs @@ -2,7 +2,7 @@ { using NServiceBus; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.ObjectBuilder; + using Microsoft.Extensions.DependencyInjection; public static class ConfigureExtensions { @@ -11,12 +11,12 @@ public static void RegisterComponentsAndInheritanceHierarchy(this EndpointConfig builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); }); } - static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IConfigureComponents r) + static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IServiceCollection r) { var type = runDescriptor.ScenarioContext.GetType(); while (type != typeof(object)) { - r.RegisterSingleton(type, runDescriptor.ScenarioContext); + r.AddSingleton(type, runDescriptor.ScenarioContext); type = type.BaseType; } } diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/DefaultServer.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/DefaultServer.cs index 053c156e..6c8a2a11 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/DefaultServer.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/DefaultServer.cs @@ -8,7 +8,7 @@ public class DefaultServer : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -26,9 +26,9 @@ public virtual Task GetConfiguration(RunDescriptor runDes endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index 6226b8c5..c326777c 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Raven4.AcceptanceTests +namespace TimeoutMigrationTool.Raven4.AcceptanceTests { using System; using System.Collections.Generic; @@ -23,7 +23,7 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList(); + return types.ToList(); } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 107b3a4d..c81b6a59 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -3,15 +3,12 @@ using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.Features; - using NUnit.Framework; using System; - using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -21,21 +18,15 @@ public virtual Task GetConfiguration(RunDescriptor runDes .Delayed(delayed => delayed.NumberOfRetries(0)) .Immediate(immediate => immediate.NumberOfRetries(0)); - var storageDir = Path.Combine(RavenDBAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); - endpointConfiguration.EnableInstallers(); - var transport = endpointConfiguration.UseTransport(); - transport.StorageDirectory(storageDir); - transport.UseNativeDelayedDelivery(false); - - endpointConfiguration.EnableFeature(); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToAsqEndToEnd.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToAsqEndToEnd.cs index fe9ff548..12fb7020 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToAsqEndToEnd.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToAsqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Raven4.AcceptanceTests +namespace TimeoutMigrationTool.Raven4.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; @@ -50,7 +50,7 @@ await Scenario.Define() c.TimeoutSet = true; })) .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(15)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(15)).Token); var context = await Scenario.Define() // Create the legacy endpoint to forward the delayed message to the native delayed delivery endpoint @@ -58,18 +58,14 @@ await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => { var transport = ec.UseTransport().ConnectionString(asqConnectionString); - transport.DisablePublishing(); - - transport.DelayedDelivery().DisableTimeoutManager(); + transport.Routing().DisablePublishing(); ec.UseSerialization(); })) .WithEndpoint(b => b.CustomConfig(ec => { var transport = ec.UseTransport().ConnectionString(asqConnectionString); - transport.DisablePublishing(); - - transport.DelayedDelivery().DisableTimeoutManager(); + transport.Routing().DisablePublishing(); ec.UseSerialization(); }) @@ -83,7 +79,7 @@ await Scenario.Define() await migrationRunner.Run(DateTime.Now.AddDays(-1), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } @@ -134,4 +130,4 @@ public class DelayedMessage : IMessage { } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs index c8aad5be..f45aaf08 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToRabbitMqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Raven4.AcceptanceTests +namespace TimeoutMigrationTool.Raven4.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; @@ -47,7 +47,7 @@ await Scenario.Define() c.TimeoutSet = true; })) .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(15)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(15)).Token); var context = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => @@ -65,7 +65,7 @@ await Scenario.Define() await migrationRunner.Run(DateTime.Now.AddDays(-1), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToSqlTEndToEnd.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToSqlTEndToEnd.cs index 5a587043..da425b10 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToSqlTEndToEnd.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/RavenDBToSqlTEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.Raven4.AcceptanceTests +namespace TimeoutMigrationTool.Raven4.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting; @@ -58,7 +58,7 @@ await Scenario.Define() c.TimeoutSet = true; })) .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(15)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(15)).Token); var setupContext = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => @@ -69,7 +69,7 @@ await Scenario.Define() .ConnectionString(sqlConnectionString); })) .Done(c => c.EndpointsStarted) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); var logger = new TestLoggingAdapter(setupContext); var timeoutsSource = new RavenDbTimeoutsSource(logger, serverUrl, databaseName, ravenTimeoutPrefix, ravenVersion, false); @@ -87,7 +87,7 @@ await Scenario.Define() .ConnectionString(sqlConnectionString); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/TimeoutMigrationTool.Raven4.AcceptanceTests.csproj b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/TimeoutMigrationTool.Raven4.AcceptanceTests.csproj index 46e97de3..50d1dd86 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/TimeoutMigrationTool.Raven4.AcceptanceTests.csproj +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/TimeoutMigrationTool.Raven4.AcceptanceTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 @@ -16,12 +16,12 @@ - - - - - - + + + + + + diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/ConfigureExtensions.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/ConfigureExtensions.cs index 584ee648..a4c8b029 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/ConfigureExtensions.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/ConfigureExtensions.cs @@ -2,7 +2,7 @@ { using NServiceBus; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.ObjectBuilder; + using Microsoft.Extensions.DependencyInjection; public static class ConfigureExtensions { @@ -11,12 +11,12 @@ public static void RegisterComponentsAndInheritanceHierarchy(this EndpointConfig builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); }); } - static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IConfigureComponents r) + static void RegisterInheritanceHierarchyOfContextOnContainer(RunDescriptor runDescriptor, IServiceCollection r) { var type = runDescriptor.ScenarioContext.GetType(); while (type != typeof(object)) { - r.RegisterSingleton(type, runDescriptor.ScenarioContext); + r.AddSingleton(type, runDescriptor.ScenarioContext); type = type.BaseType; } } diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/DefaultServer.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/DefaultServer.cs index 2bee39b7..ed90d50b 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/DefaultServer.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/DefaultServer.cs @@ -8,7 +8,7 @@ public class DefaultServer : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -26,9 +26,9 @@ public virtual Task GetConfiguration(RunDescriptor runDes endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index 0f55691d..e891d4de 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using System; using System.Collections.Generic; @@ -23,7 +23,7 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList(); + return types.ToList(); } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 0a12fc3d..7e79e771 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -3,15 +3,12 @@ using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; - using NServiceBus.Features; - using NUnit.Framework; using System; - using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate { - public virtual Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action configurationBuilderCustomization) + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Func configurationBuilderCustomization) { var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName); @@ -21,21 +18,15 @@ public virtual Task GetConfiguration(RunDescriptor runDes .Delayed(delayed => delayed.NumberOfRetries(0)) .Immediate(immediate => immediate.NumberOfRetries(0)); - var storageDir = Path.Combine(SqlPAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); - endpointConfiguration.EnableInstallers(); - var transport = endpointConfiguration.UseTransport(); - transport.StorageDirectory(storageDir); - transport.UseNativeDelayedDelivery(false); - - endpointConfiguration.EnableFeature(); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); - configurationBuilderCustomization(endpointConfiguration); + await configurationBuilderCustomization(endpointConfiguration); - return Task.FromResult(endpointConfiguration); + return endpointConfiguration; } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToAsqEndToEnd.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToAsqEndToEnd.cs index fc54cf2e..fd613c0b 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToAsqEndToEnd.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToAsqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using Microsoft.Data.SqlClient; using NServiceBus; @@ -29,12 +29,10 @@ await Scenario.Define() { var transportConfig = ec.UseTransport(); transportConfig.ConnectionString(asqConnectionString); - transportConfig.DisablePublishing(); - - transportConfig.DelayedDelivery().DisableTimeoutManager(); + transportConfig.Routing().DisablePublishing(); ec.UseSerialization(); - })).Run(TimeSpan.FromSeconds(10)); + })).Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(10)).Token); // Sending a delayed delivery message using TimeoutManager await Scenario.Define() @@ -65,7 +63,7 @@ await Scenario.Define() c.TimeoutSet = true; })) .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); var context = await Scenario.Define() // Create the sales endpoint to forward the delayed message to the reporting endpoint @@ -75,9 +73,7 @@ await Scenario.Define() { var transportConfig = ec.UseTransport(); transportConfig.ConnectionString(asqConnectionString); - transportConfig.DisablePublishing(); - - transportConfig.DelayedDelivery().DisableTimeoutManager(); + transportConfig.Routing().DisablePublishing(); ec.UseSerialization(); })) @@ -86,9 +82,7 @@ await Scenario.Define() { var transportConfig = ec.UseTransport(); transportConfig.ConnectionString(asqConnectionString); - transportConfig.DisablePublishing(); - - transportConfig.DelayedDelivery().DisableTimeoutManager(); + transportConfig.Routing().DisablePublishing(); ec.UseSerialization(); }) @@ -102,7 +96,7 @@ await Scenario.Define() await migrationRunner.Run(DateTime.Now.AddDays(-10), EndpointFilter.SpecificEndpoint(salesEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } @@ -153,4 +147,4 @@ public class DelayedMessage : IMessage { } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToRabbitMqEndToEnd.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToRabbitMqEndToEnd.cs index e34a69f9..9263a7f1 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToRabbitMqEndToEnd.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToRabbitMqEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using Microsoft.Data.SqlClient; using NServiceBus; @@ -55,7 +55,7 @@ await Scenario.Define() c.TimeoutSet = true; })) .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); var context = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => @@ -73,7 +73,7 @@ await Scenario.Define() await migrationRunner.Run(DateTime.Now.AddDays(-10), EndpointFilter.SpecificEndpoint(sourceEndpoint), new Dictionary()); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToSqlTEndToEnd.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToSqlTEndToEnd.cs index 6c8257c4..2fb11ed2 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToSqlTEndToEnd.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlPToSqlTEndToEnd.cs @@ -1,4 +1,4 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using Microsoft.Data.SqlClient; using NServiceBus; @@ -48,7 +48,7 @@ await Scenario.Define() c.TimeoutSet = true; })) .Done(c => c.TimeoutSet) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); var setupContext = await Scenario.Define() .WithEndpoint(b => b.CustomConfig(ec => @@ -59,7 +59,7 @@ await Scenario.Define() .ConnectionString(connectionString); })) .Done(c => c.EndpointsStarted) - .Run(TimeSpan.FromSeconds(30)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(30)).Token); var logger = new TestLoggingAdapter(setupContext); var timeoutSource = new SqlTimeoutsSource(connectionString, new MsSqlServer(), 1024); @@ -77,7 +77,7 @@ await Scenario.Define() .ConnectionString(connectionString); })) .Done(c => c.GotTheDelayedMessage) - .Run(TimeSpan.FromSeconds(90)); + .Run(new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(90)).Token); Assert.That(context.GotTheDelayedMessage, Is.True); } diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlTimeoutSourceTests.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlTimeoutSourceTests.cs index 489d4f07..f26e08a5 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlTimeoutSourceTests.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/SqlTimeoutSourceTests.cs @@ -135,7 +135,7 @@ await Scenario.Define(c => c.NumberOfTimeouts = 1) var endpoints = await GetTimeoutStorage().ListEndpoints(DateTime.Now.AddYears(-10)); - Assert.That(endpoints.First().Destinations, Is.EquivalentTo(new List { "FirstDestination", "SecondDestination", "ThirdDestination" })); + Assert.That(endpoints.First().Destinations, Is.EquivalentTo(new[] { "FirstDestination", "SecondDestination", "ThirdDestination" })); } [Test] @@ -400,4 +400,4 @@ public class StartSagaMessage : ICommand public Guid Id { get; set; } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/TimeoutMigrationTool.SqlP.AcceptanceTests.csproj b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/TimeoutMigrationTool.SqlP.AcceptanceTests.csproj index 386d18a6..74d079c9 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/TimeoutMigrationTool.SqlP.AcceptanceTests.csproj +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/TimeoutMigrationTool.SqlP.AcceptanceTests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 @@ -16,12 +16,12 @@ - - - - - - + + + + + + diff --git a/src/TimeoutMigrationTool.SqlT.IntegrationTests/TimeoutMigrationTool.SqlT.IntegrationTests.csproj b/src/TimeoutMigrationTool.SqlT.IntegrationTests/TimeoutMigrationTool.SqlT.IntegrationTests.csproj index 1dc66a73..6d509168 100644 --- a/src/TimeoutMigrationTool.SqlT.IntegrationTests/TimeoutMigrationTool.SqlT.IntegrationTests.csproj +++ b/src/TimeoutMigrationTool.SqlT.IntegrationTests/TimeoutMigrationTool.SqlT.IntegrationTests.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 @@ -10,8 +10,8 @@ - - + + diff --git a/src/TimeoutMigrationTool.Tests/TimeoutMigrationTool.Tests.csproj b/src/TimeoutMigrationTool.Tests/TimeoutMigrationTool.Tests.csproj index 9c88efac..fd18b33d 100644 --- a/src/TimeoutMigrationTool.Tests/TimeoutMigrationTool.Tests.csproj +++ b/src/TimeoutMigrationTool.Tests/TimeoutMigrationTool.Tests.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 @@ -9,10 +9,13 @@ - - - - + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/src/TimeoutMigrationTool/TimeoutMigrationTool.csproj b/src/TimeoutMigrationTool/TimeoutMigrationTool.csproj index 27976097..5eb8de7b 100644 --- a/src/TimeoutMigrationTool/TimeoutMigrationTool.csproj +++ b/src/TimeoutMigrationTool/TimeoutMigrationTool.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 Exe false true @@ -17,17 +17,16 @@ - + - - + + - From e87328783e84824898a010c80a4d0a8863449f08 Mon Sep 17 00:00:00 2001 From: "minaco77@gmail.com" Date: Fri, 8 May 2026 16:39:22 -0700 Subject: [PATCH 2/4] replace endpoint filtering --- .../EndpointCustomizationConfigurationExtensions.cs | 10 ++++++++-- .../EndpointCustomizationConfigurationExtensions.cs | 10 ++++++++-- .../EndpointCustomizationConfigurationExtensions.cs | 10 ++++++++-- .../EndpointCustomizationConfigurationExtensions.cs | 10 ++++++++-- .../EndpointCustomizationConfigurationExtensions.cs | 10 ++++++++-- .../EndpointCustomizationConfigurationExtensions.cs | 10 ++++++++-- 6 files changed, 48 insertions(+), 12 deletions(-) diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index 4135cb45..bb25fb54 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -23,7 +23,13 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.ToList(); + return types.Where(t => !IsExcluded(endpointConfiguration, t)).ToList(); + } + + static bool IsExcluded(EndpointCustomizationConfiguration endpointConfiguration, Type type) + { + var typesToExclude = endpointConfiguration.GetType().GetProperty("TypesToExclude")?.GetValue(endpointConfiguration) as IEnumerable; + return typesToExclude?.Contains(type) ?? false; } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) @@ -46,4 +52,4 @@ static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index e891d4de..288b4893 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -23,7 +23,13 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.ToList(); + return types.Where(t => !IsExcluded(endpointConfiguration, t)).ToList(); + } + + static bool IsExcluded(EndpointCustomizationConfiguration endpointConfiguration, Type type) + { + var typesToExclude = endpointConfiguration.GetType().GetProperty("TypesToExclude")?.GetValue(endpointConfiguration) as IEnumerable; + return typesToExclude?.Contains(type) ?? false; } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) @@ -46,4 +52,4 @@ static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index 36835e82..4cf11760 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -23,7 +23,13 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.ToList(); + return types.Where(t => !IsExcluded(endpointConfiguration, t)).ToList(); + } + + static bool IsExcluded(EndpointCustomizationConfiguration endpointConfiguration, Type type) + { + var typesToExclude = endpointConfiguration.GetType().GetProperty("TypesToExclude")?.GetValue(endpointConfiguration) as IEnumerable; + return typesToExclude?.Contains(type) ?? false; } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) @@ -46,4 +52,4 @@ static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index f641baff..0ea4c8f3 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -23,7 +23,13 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.ToList(); + return types.Where(t => !IsExcluded(endpointConfiguration, t)).ToList(); + } + + static bool IsExcluded(EndpointCustomizationConfiguration endpointConfiguration, Type type) + { + var typesToExclude = endpointConfiguration.GetType().GetProperty("TypesToExclude")?.GetValue(endpointConfiguration) as IEnumerable; + return typesToExclude?.Contains(type) ?? false; } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) @@ -46,4 +52,4 @@ static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index c326777c..88ce9fbe 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -23,7 +23,13 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.ToList(); + return types.Where(t => !IsExcluded(endpointConfiguration, t)).ToList(); + } + + static bool IsExcluded(EndpointCustomizationConfiguration endpointConfiguration, Type type) + { + var typesToExclude = endpointConfiguration.GetType().GetProperty("TypesToExclude")?.GetValue(endpointConfiguration) as IEnumerable; + return typesToExclude?.Contains(type) ?? false; } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) @@ -46,4 +52,4 @@ static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) } } } -} \ No newline at end of file +} diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs index e891d4de..288b4893 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/EndpointCustomizationConfigurationExtensions.cs @@ -23,7 +23,13 @@ public static IEnumerable GetTypesScopedByTestClass(this EndpointCustomiza types = types.Union(endpointConfiguration.TypesToInclude); - return types.ToList(); + return types.Where(t => !IsExcluded(endpointConfiguration, t)).ToList(); + } + + static bool IsExcluded(EndpointCustomizationConfiguration endpointConfiguration, Type type) + { + var typesToExclude = endpointConfiguration.GetType().GetProperty("TypesToExclude")?.GetValue(endpointConfiguration) as IEnumerable; + return typesToExclude?.Contains(type) ?? false; } static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) @@ -46,4 +52,4 @@ static IEnumerable GetNestedTypeRecursive(Type rootType, Type builderType) } } } -} \ No newline at end of file +} From 5cff65ed15de5581b0eef638271020d719caa6e8 Mon Sep 17 00:00:00 2001 From: "minaco77@gmail.com" Date: Fri, 8 May 2026 16:51:14 -0700 Subject: [PATCH 3/4] add settings for test endpoints --- .../LegacyTimeoutManagerEndpoint.cs | 10 ++++++++-- .../LegacyTimeoutManagerEndpoint.cs | 10 ++++++++-- .../LegacyTimeoutManagerEndpoint.cs | 10 ++++++++-- .../LegacyTimeoutManagerEndpoint.cs | 10 ++++++++-- .../LegacyTimeoutManagerEndpoint.cs | 10 ++++++++-- .../LegacyTimeoutManagerEndpoint.cs | 10 ++++++++-- 6 files changed, 48 insertions(+), 12 deletions(-) diff --git a/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 9725a15c..6a60135f 100644 --- a/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Asp.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -1,9 +1,11 @@ -namespace TimeoutMigrationTool.Asp.AcceptanceTests +namespace TimeoutMigrationTool.Asp.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; + using NUnit.Framework; using System; + using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate @@ -20,7 +22,11 @@ public virtual async Task GetConfiguration(RunDescriptor endpointConfiguration.EnableInstallers(); - endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); + var storageDir = Path.Combine(AspAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport(enableNativeDelayedDelivery: false) + { + StorageLocation = storageDir + }); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); diff --git a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 4ff5da58..6b09856f 100644 --- a/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Msmq.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -1,9 +1,11 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; + using NUnit.Framework; using System; + using System.IO; using System.Threading.Tasks; using TimeoutMigrationTool.Msmq.AcceptanceTests; @@ -21,7 +23,11 @@ public virtual async Task GetConfiguration(RunDescriptor endpointConfiguration.EnableInstallers(); - endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); + var storageDir = Path.Combine(SqlPAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport(enableNativeDelayedDelivery: false) + { + StorageLocation = storageDir + }); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); diff --git a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 02c6136b..6e311da1 100644 --- a/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.NHibernate.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -1,9 +1,11 @@ -namespace TimeoutMigrationTool.NHibernate.AcceptanceTests +namespace TimeoutMigrationTool.NHibernate.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; + using NUnit.Framework; using System; + using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate @@ -20,7 +22,11 @@ public virtual async Task GetConfiguration(RunDescriptor endpointConfiguration.EnableInstallers(); - endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); + var storageDir = Path.Combine(NHibernateAcceptanceTests.StorageRootDir, TestContext.CurrentContext.Test.ID); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport(enableNativeDelayedDelivery: false) + { + StorageLocation = storageDir + }); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); diff --git a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index bb01aec2..3737c345 100644 --- a/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Raven3.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -1,9 +1,11 @@ -namespace TimeoutMigrationTool.Raven3.AcceptanceTests +namespace TimeoutMigrationTool.Raven3.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; + using NUnit.Framework; using System; + using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate @@ -20,7 +22,11 @@ public virtual async Task GetConfiguration(RunDescriptor endpointConfiguration.EnableInstallers(); - endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); + var storageDir = Path.Combine(NServiceBusAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport(enableNativeDelayedDelivery: false) + { + StorageLocation = storageDir + }); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); diff --git a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index c81b6a59..9a0b46c6 100644 --- a/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.Raven4.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -1,9 +1,11 @@ -namespace TimeoutMigrationTool.Raven4.AcceptanceTests +namespace TimeoutMigrationTool.Raven4.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; + using NUnit.Framework; using System; + using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate @@ -20,7 +22,11 @@ public virtual async Task GetConfiguration(RunDescriptor endpointConfiguration.EnableInstallers(); - endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); + var storageDir = Path.Combine(RavenDBAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport(enableNativeDelayedDelivery: false) + { + StorageLocation = storageDir + }); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); diff --git a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs index 7e79e771..2b3e53cc 100644 --- a/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs +++ b/src/TimeoutMigrationTool.SqlP.AcceptanceTests/LegacyTimeoutManagerEndpoint.cs @@ -1,9 +1,11 @@ -namespace TimeoutMigrationTool.SqlP.AcceptanceTests +namespace TimeoutMigrationTool.SqlP.AcceptanceTests { using NServiceBus; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.AcceptanceTesting.Support; + using NUnit.Framework; using System; + using System.IO; using System.Threading.Tasks; public class LegacyTimeoutManagerEndpoint : IEndpointSetupTemplate @@ -20,7 +22,11 @@ public virtual async Task GetConfiguration(RunDescriptor endpointConfiguration.EnableInstallers(); - endpointConfiguration.UseTransport(new AcceptanceTestingTransport()); + var storageDir = Path.Combine(SqlPAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID); + endpointConfiguration.UseTransport(new AcceptanceTestingTransport(enableNativeDelayedDelivery: false) + { + StorageLocation = storageDir + }); endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor); From 63c8ac7f828f2d22138a9481098120e21fb21db0 Mon Sep 17 00:00:00 2001 From: "minaco77@gmail.com" Date: Tue, 12 May 2026 14:33:40 -0700 Subject: [PATCH 4/4] update sdk in globals --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index 2134ed94..f72210ca 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.400", + "version": "10.0.100", "rollForward": "latestFeature" } } \ No newline at end of file