From 58a5433a5a20db96dcec7b3b7b3e99e9279d23a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96hlund?= Date: Mon, 26 Feb 2024 13:14:46 +0100 Subject: [PATCH 1/3] Prepare for RTM --- .github/workflows/ci.yml | 1 - .github/workflows/release.yml | 1 - ...ersistence.DynamoDB.AcceptanceTests.csproj | 6 +-- ...hen_adding_operations_to_shared_session.cs | 6 +-- ...rsistence.DynamoDB.PersistenceTests.csproj | 6 +-- ...oDB.PessimisticLock.AcceptanceTests.csproj | 6 +-- ...rviceBus.Persistence.DynamoDB.Tests.csproj | 6 +-- .../Outbox/OutboxPersisterTests.cs | 8 ++-- ...ransactionalSession.AcceptanceTests.csproj | 6 +-- ...DynamoDB.TransactionalSession.Tests.csproj | 2 +- ...tence.DynamoDB.TransactionalSession.csproj | 2 +- src/NServiceBus.Persistence.DynamoDB.sln | 4 +- ...moClientProvidedByConfigurationProvider.cs | 3 +- .../DynamoPersistenceConfigExtensions.cs | 11 ++--- .../NServiceBus.Persistence.DynamoDB.csproj | 5 +-- .../DynamoOutboxConfigurationExtensions.cs | 9 ++--- .../Outbox/OutboxPersister.cs | 2 +- .../Serialization/Mapper.cs | 4 +- .../Serialization/MemoryStreamConverter.cs | 2 +- .../SynchronizedStorageSessionExtensions.cs | 3 +- .../Utility/Guard.cs | 40 ------------------- 21 files changed, 46 insertions(+), 87 deletions(-) delete mode 100644 src/NServiceBus.Persistence.DynamoDB/Utility/Guard.cs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3419a797..dddb417d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,6 @@ jobs: uses: actions/setup-dotnet@v4.0.0 with: dotnet-version: 8.0.x - dotnet-quality: 'preview' - name: Build run: dotnet build src --configuration Release - name: Upload packages diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4b845ba1..60a0b61c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,6 @@ jobs: uses: actions/setup-dotnet@v4.0.0 with: dotnet-version: 8.0.x - dotnet-quality: 'preview' - name: Build run: dotnet build src --configuration Release - name: Sign NuGet packages diff --git a/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj index 6c268987..74d297da 100644 --- a/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj @@ -12,11 +12,11 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/When_adding_operations_to_shared_session.cs b/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/When_adding_operations_to_shared_session.cs index 1ad192c7..26541af3 100644 --- a/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/When_adding_operations_to_shared_session.cs +++ b/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/When_adding_operations_to_shared_session.cs @@ -105,8 +105,8 @@ public Task Handle(TriggerMessage message, IMessageHandlerContext context) } }); - session.AddRange(new List - { + session.AddRange( + [ new TransactWriteItem { Put = new Put @@ -143,7 +143,7 @@ public Task Handle(TriggerMessage message, IMessageHandlerContext context) } } } - }); + ]); testContext.MessageReceived = true; diff --git a/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj index 55b39b4d..5354b9db 100644 --- a/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj @@ -11,11 +11,11 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj index da38192e..f5dd7b62 100644 --- a/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj @@ -11,11 +11,11 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj b/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj index 2b53da0c..c770708d 100644 --- a/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj @@ -18,9 +18,9 @@ - - - + + + diff --git a/src/NServiceBus.Persistence.DynamoDB.Tests/Outbox/OutboxPersisterTests.cs b/src/NServiceBus.Persistence.DynamoDB.Tests/Outbox/OutboxPersisterTests.cs index 5f43fd23..979f0930 100644 --- a/src/NServiceBus.Persistence.DynamoDB.Tests/Outbox/OutboxPersisterTests.cs +++ b/src/NServiceBus.Persistence.DynamoDB.Tests/Outbox/OutboxPersisterTests.cs @@ -193,8 +193,8 @@ public async Task Should_return_record_even_if_metadata_and_transport_operations { "PK", new AttributeValue("OUTBOX#endpointIdentifier#someMessageId")}, { "SK", new AttributeValue("OUTBOX#OPERATION#someMessageId#0000")}, { "MessageId", new AttributeValue(Guid.NewGuid().ToString())}, - { "Properties", new AttributeValue { M = new Dictionary(0)} }, - { "Headers", new AttributeValue { M = new Dictionary(0)} }, + { "Properties", new AttributeValue { M = []} }, + { "Headers", new AttributeValue { M = []} }, { "Body", new AttributeValue { B = new MemoryStream() } } } } @@ -267,8 +267,8 @@ public void Should_throw_when_transport_operations_not_complete_even_when_paging { "PK", new AttributeValue("OUTBOX#endpointIdentifier#someMessageId")}, { "SK", new AttributeValue("OUTBOX#OPERATION#someMessageId#0000")}, { "MessageId", new AttributeValue(Guid.NewGuid().ToString())}, - { "Properties", new AttributeValue { M = new Dictionary(0)} }, - { "Headers", new AttributeValue { M = new Dictionary(0)} }, + { "Properties", new AttributeValue { M = []} }, + { "Headers", new AttributeValue { M = []} }, { "Body", new AttributeValue { B = new MemoryStream() } } } } diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj index 5748dd55..22d42fc8 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj @@ -14,11 +14,11 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj index 38c78620..e7a791a8 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj index 657b5353..1384f10e 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj @@ -15,7 +15,7 @@ - + diff --git a/src/NServiceBus.Persistence.DynamoDB.sln b/src/NServiceBus.Persistence.DynamoDB.sln index a8b36088..2b060e1c 100644 --- a/src/NServiceBus.Persistence.DynamoDB.sln +++ b/src/NServiceBus.Persistence.DynamoDB.sln @@ -9,7 +9,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.Dyn EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C4C88BE6-36A9-4F37-B9C6-3FEAD151C836}" ProjectSection(SolutionItems) = preProject + ..\.github\workflows\ci.yml = ..\.github\workflows\ci.yml Custom.Build.props = Custom.Build.props + ..\.github\workflows\release.yml = ..\.github\workflows\release.yml EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.DynamoDB.AcceptanceTests", "NServiceBus.Persistence.DynamoDB.AcceptanceTests\NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj", "{134F5B2E-35A0-41A0-9806-B763FCD918F3}" @@ -22,7 +24,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.Dyn EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests", "NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests\NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj", "{D77F739B-53C7-4271-8552-4AE6CACACF6F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests", "NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests\NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj", "{EB66E88B-5B05-4D26-8FEF-739E325A14D6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests", "NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests\NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj", "{EB66E88B-5B05-4D26-8FEF-739E325A14D6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/NServiceBus.Persistence.DynamoDB/Config/DynamoClientProvidedByConfigurationProvider.cs b/src/NServiceBus.Persistence.DynamoDB/Config/DynamoClientProvidedByConfigurationProvider.cs index 49da3884..ad4d69da 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Config/DynamoClientProvidedByConfigurationProvider.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Config/DynamoClientProvidedByConfigurationProvider.cs @@ -1,12 +1,13 @@ namespace NServiceBus.Persistence.DynamoDB; +using System; using Amazon.DynamoDBv2; sealed class DynamoClientProvidedByConfigurationProvider : IDynamoClientProvider { public DynamoClientProvidedByConfigurationProvider(IAmazonDynamoDB client) { - Guard.ThrowIfNull(client); + ArgumentNullException.ThrowIfNull(client); Client = client; } diff --git a/src/NServiceBus.Persistence.DynamoDB/Config/DynamoPersistenceConfigExtensions.cs b/src/NServiceBus.Persistence.DynamoDB/Config/DynamoPersistenceConfigExtensions.cs index ac473f8d..c2e3be1e 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Config/DynamoPersistenceConfigExtensions.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Config/DynamoPersistenceConfigExtensions.cs @@ -1,5 +1,6 @@ namespace NServiceBus; +using System; using Amazon.DynamoDBv2; using Configuration.AdvancedExtensibility; using Persistence.DynamoDB; @@ -15,8 +16,8 @@ public static class DynamoPersistenceConfigExtensions /// The lifetime of the provided client is assumed to be controlled by the caller of this method and thus the client will not be disposed. public static PersistenceExtensions DynamoClient(this PersistenceExtensions persistenceExtensions, IAmazonDynamoDB dynamoClient) { - Guard.ThrowIfNull(persistenceExtensions); - Guard.ThrowIfNull(dynamoClient); + ArgumentNullException.ThrowIfNull(persistenceExtensions); + ArgumentNullException.ThrowIfNull(dynamoClient); persistenceExtensions.GetSettings().Set(new DynamoClientProvidedByConfigurationProvider(dynamoClient)); return persistenceExtensions; @@ -27,8 +28,8 @@ public static PersistenceExtensions DynamoClient(this Persist /// public static PersistenceExtensions UseSharedTable(this PersistenceExtensions persistenceExtensions, TableConfiguration sharedTableConfiguration) { - Guard.ThrowIfNull(persistenceExtensions); - Guard.ThrowIfNull(sharedTableConfiguration); + ArgumentNullException.ThrowIfNull(persistenceExtensions); + ArgumentNullException.ThrowIfNull(sharedTableConfiguration); persistenceExtensions.GetSettings().GetOrCreate().Table = sharedTableConfiguration with { }; persistenceExtensions.GetSettings().GetOrCreate().Table = sharedTableConfiguration with { }; @@ -40,7 +41,7 @@ public static PersistenceExtensions UseSharedTable(this Persi /// public static void DisableTablesCreation(this PersistenceExtensions persistenceExtensions) { - Guard.ThrowIfNull(persistenceExtensions); + ArgumentNullException.ThrowIfNull(persistenceExtensions); persistenceExtensions.GetSettings().GetOrCreate().CreateTable = false; persistenceExtensions.GetSettings().GetOrCreate().CreateTable = false; diff --git a/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj b/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj index 5259ac17..a0403a25 100644 --- a/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj +++ b/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj @@ -9,9 +9,8 @@ - - - + + diff --git a/src/NServiceBus.Persistence.DynamoDB/Outbox/DynamoOutboxConfigurationExtensions.cs b/src/NServiceBus.Persistence.DynamoDB/Outbox/DynamoOutboxConfigurationExtensions.cs index 396ece17..036b68c3 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Outbox/DynamoOutboxConfigurationExtensions.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Outbox/DynamoOutboxConfigurationExtensions.cs @@ -3,7 +3,6 @@ using System; using Configuration.AdvancedExtensibility; using Outbox; -using Persistence.DynamoDB; /// /// Outbox configuration extensions for DynamoDB persistence. @@ -15,8 +14,8 @@ public static class DynamoOutboxConfigurationExtensions /// public static OutboxSettings UseTable(this OutboxSettings outboxSettings, TableConfiguration tableConfiguration) { - Guard.ThrowIfNull(outboxSettings); - Guard.ThrowIfNull(tableConfiguration); + ArgumentNullException.ThrowIfNull(outboxSettings); + ArgumentNullException.ThrowIfNull(tableConfiguration); outboxSettings.GetSettings().GetOrCreate().Table = tableConfiguration; return outboxSettings; @@ -27,7 +26,7 @@ public static OutboxSettings UseTable(this OutboxSettings outboxSettings, TableC /// public static OutboxSettings SetTimeToKeepDeduplicationData(this OutboxSettings outboxSettings, TimeSpan timeToKeepDeduplicationData) { - Guard.ThrowIfNegativeOrZero(timeToKeepDeduplicationData); + ArgumentOutOfRangeException.ThrowIfLessThanOrEqual(timeToKeepDeduplicationData, TimeSpan.Zero); outboxSettings.GetSettings().GetOrCreate().TimeToKeepDeduplicationData = timeToKeepDeduplicationData; return outboxSettings; @@ -38,7 +37,7 @@ public static OutboxSettings SetTimeToKeepDeduplicationData(this OutboxSettings /// public static OutboxSettings CreateTable(this OutboxSettings outboxSettings, bool createTable) { - Guard.ThrowIfNull(outboxSettings); + ArgumentNullException.ThrowIfNull(outboxSettings); outboxSettings.GetSettings().GetOrCreate().CreateTable = createTable; return outboxSettings; diff --git a/src/NServiceBus.Persistence.DynamoDB/Outbox/OutboxPersister.cs b/src/NServiceBus.Persistence.DynamoDB/Outbox/OutboxPersister.cs index cc977516..4bb30d0b 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Outbox/OutboxPersister.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Outbox/OutboxPersister.cs @@ -247,7 +247,7 @@ IReadOnlyCollection Serialize(OutboxMessage outboxMessage, Co { if (value == null) { - return new Dictionary(0); + return []; } var attributeValues = new Dictionary(value.Count); diff --git a/src/NServiceBus.Persistence.DynamoDB/Serialization/Mapper.cs b/src/NServiceBus.Persistence.DynamoDB/Serialization/Mapper.cs index 94c99b80..981d66b1 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Serialization/Mapper.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Serialization/Mapper.cs @@ -45,7 +45,7 @@ public static class Mapper internal static Dictionary ToMap(TValue value, JsonTypeInfo jsonTypeInfo) where TValue : class { - Guard.ThrowIfNull(jsonTypeInfo); + ArgumentNullException.ThrowIfNull(jsonTypeInfo); using var trackingState = new ClearTrackingState(); using var jsonDocument = JsonSerializer.SerializeToDocument(value, jsonTypeInfo); @@ -68,7 +68,7 @@ public static class Mapper // This method can be made public to support custom serialization options which also enables source gen support. internal static Dictionary ToMap(object value, Type type, JsonSerializerContext context) { - Guard.ThrowIfNull(context); + ArgumentNullException.ThrowIfNull(context); using var trackingState = new ClearTrackingState(); using var jsonDocument = JsonSerializer.SerializeToDocument(value, type, context); diff --git a/src/NServiceBus.Persistence.DynamoDB/Serialization/MemoryStreamConverter.cs b/src/NServiceBus.Persistence.DynamoDB/Serialization/MemoryStreamConverter.cs index a034eec6..d44b493f 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Serialization/MemoryStreamConverter.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Serialization/MemoryStreamConverter.cs @@ -120,5 +120,5 @@ static uint TrackStream(MemoryStream memoryStream) // internal for tests internal static readonly ThreadLocal StreamId = new(() => 0); - internal static readonly ThreadLocal> StreamMap = new(() => new Dictionary()); + internal static readonly ThreadLocal> StreamMap = new(() => []); } \ No newline at end of file diff --git a/src/NServiceBus.Persistence.DynamoDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs b/src/NServiceBus.Persistence.DynamoDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs index 9971b586..69304fd3 100644 --- a/src/NServiceBus.Persistence.DynamoDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs +++ b/src/NServiceBus.Persistence.DynamoDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs @@ -2,7 +2,6 @@ using System; using Persistence; -using Persistence.DynamoDB; /// /// DynamoDB persistence specific extension methods for the . @@ -14,7 +13,7 @@ public static class SynchronizedStorageSessionExtensions /// public static IDynamoStorageSession DynamoPersistenceSession(this ISynchronizedStorageSession session) { - Guard.ThrowIfNull(session); + ArgumentNullException.ThrowIfNull(session); if (session is not IDynamoStorageSession dynamoSession) { diff --git a/src/NServiceBus.Persistence.DynamoDB/Utility/Guard.cs b/src/NServiceBus.Persistence.DynamoDB/Utility/Guard.cs deleted file mode 100644 index a5ddf51e..00000000 --- a/src/NServiceBus.Persistence.DynamoDB/Utility/Guard.cs +++ /dev/null @@ -1,40 +0,0 @@ -namespace NServiceBus.Persistence.DynamoDB; - -using System; -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; - -static class Guard -{ - public static void ThrowIfNull([NotNull] object? argument, [CallerArgumentExpression("argument")] string? paramName = null) - { - if (argument is null) - { - ThrowArgumentNullException(paramName); - } - } - - public static void ThrowIfNullOrEmpty(string argument, [CallerArgumentExpression("argument")] string? paramName = null) - { - if (string.IsNullOrWhiteSpace(argument)) - { - ThrowArgumentNullException(paramName); - } - } - - [DoesNotReturn] - static void ThrowArgumentNullException(string? paramName) - => throw new ArgumentNullException(paramName); - - public static void ThrowIfNegativeOrZero(TimeSpan argument, [CallerArgumentExpression("argument")] string? paramName = null) - { - if (argument <= TimeSpan.Zero) - { - ThrowArgumentOutOfRangeException(paramName); - } - } - - [DoesNotReturn] - static void ThrowArgumentOutOfRangeException(string? paramName) - => throw new ArgumentOutOfRangeException(paramName); -} \ No newline at end of file From 87fcc84883ed103cc1e777a64b40f1be73958049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96hlund?= Date: Mon, 26 Feb 2024 13:27:58 +0100 Subject: [PATCH 2/3] Ser serializer --- .../TransactionSessionDefaultServer.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs index fb4e0fb0..11413463 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs @@ -9,31 +9,31 @@ namespace NServiceBus.TransactionalSession.AcceptanceTests; public class TransactionSessionDefaultServer : IEndpointSetupTemplate { public virtual async Task GetConfiguration(RunDescriptor runDescriptor, - EndpointCustomizationConfiguration endpointConfiguration, + EndpointCustomizationConfiguration endpointCustomization, Func configurationBuilderCustomization) { - var builder = new EndpointConfiguration(endpointConfiguration.EndpointName); + var endpointConfiguration = new EndpointConfiguration(endpointCustomization.EndpointName); - builder.UseTransport(); + endpointConfiguration.UseSerialization(); + endpointConfiguration.UseTransport(); - builder.Recoverability() + endpointConfiguration.Recoverability() .Delayed(delayed => delayed.NumberOfRetries(0)) // due to read-committed isolation level we allow retries for partial results on the outbox get .Immediate(immediate => immediate.NumberOfRetries(1)); - builder.SendFailedMessagesTo("error"); // scan types at the end so that all types used by the configuration have been loaded into the AppDomain - builder.TypesToIncludeInScan(endpointConfiguration.GetTypesScopedByTestClass()); + endpointConfiguration.TypesToIncludeInScan(endpointCustomization.GetTypesScopedByTestClass()); - var persistence = builder.UsePersistence(); + var persistence = endpointConfiguration.UsePersistence(); persistence.DynamoClient(SetupFixture.DynamoDBClient); persistence.UseSharedTable(SetupFixture.TableConfiguration); persistence.EnableTransactionalSession(); - builder.RegisterStartupTask(sp => new CaptureServiceProviderStartupTask(sp, runDescriptor.ScenarioContext)); + endpointConfiguration.RegisterStartupTask(sp => new CaptureServiceProviderStartupTask(sp, runDescriptor.ScenarioContext)); - await configurationBuilderCustomization(builder).ConfigureAwait(false); + await configurationBuilderCustomization(endpointConfiguration).ConfigureAwait(false); - return builder; + return endpointConfiguration; } } \ No newline at end of file From ac191d50d32de2b42707033825868c527f649320 Mon Sep 17 00:00:00 2001 From: Brandon Ording Date: Thu, 7 Mar 2024 17:56:02 -0500 Subject: [PATCH 3/3] Tweaks --- ...ServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj | 3 +-- ...erviceBus.Persistence.DynamoDB.PersistenceTests.csproj | 3 +-- ...stence.DynamoDB.PessimisticLock.AcceptanceTests.csproj | 3 +-- .../{ApiApprovals.cs => APIApprovals.cs} | 0 ...have_all_relevant_extraction_apis_exposed.approved.txt | 1 - .../NServiceBus.Persistence.DynamoDB.Tests.csproj | 4 ++-- ...e.DynamoDB.TransactionalSession.AcceptanceTests.csproj | 3 +-- .../{ApiApprovals.cs => APIApprovals.cs} | 4 ++-- ...ove.approved.txt => APIApprovals.Approve.approved.txt} | 0 ...Persistence.DynamoDB.TransactionalSession.Tests.csproj | 4 +++- ...ceBus.Persistence.DynamoDB.TransactionalSession.csproj | 2 +- src/NServiceBus.Persistence.DynamoDB/FodyWeavers.xml | 3 --- .../NServiceBus.Persistence.DynamoDB.csproj | 8 +++----- .../Outbox/WriteRequestBatchExecutionExtensions.cs | 2 +- .../Serialization/SetOfNumberConverter.cs | 4 ++-- 15 files changed, 18 insertions(+), 26 deletions(-) rename src/NServiceBus.Persistence.DynamoDB.Tests/{ApiApprovals.cs => APIApprovals.cs} (100%) delete mode 100644 src/NServiceBus.Persistence.DynamoDB.Tests/ApprovalFiles/TransactionInformationConfigurationTests.Should_have_all_relevant_extraction_apis_exposed.approved.txt rename src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/{ApiApprovals.cs => APIApprovals.cs} (71%) rename src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApprovalFiles/{ApiApprovals.Approve.approved.txt => APIApprovals.Approve.approved.txt} (100%) delete mode 100644 src/NServiceBus.Persistence.DynamoDB/FodyWeavers.xml diff --git a/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj index 74d297da..6e676b6d 100644 --- a/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.AcceptanceTests/NServiceBus.Persistence.DynamoDB.AcceptanceTests.csproj @@ -12,11 +12,10 @@ - + - diff --git a/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj index 5354b9db..dd9fe2c3 100644 --- a/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.PersistenceTests/NServiceBus.Persistence.DynamoDB.PersistenceTests.csproj @@ -11,11 +11,10 @@ - + - diff --git a/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj index f5dd7b62..52bf87b9 100644 --- a/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.DynamoDB.PessimisticLock.AcceptanceTests.csproj @@ -11,11 +11,10 @@ - + - diff --git a/src/NServiceBus.Persistence.DynamoDB.Tests/ApiApprovals.cs b/src/NServiceBus.Persistence.DynamoDB.Tests/APIApprovals.cs similarity index 100% rename from src/NServiceBus.Persistence.DynamoDB.Tests/ApiApprovals.cs rename to src/NServiceBus.Persistence.DynamoDB.Tests/APIApprovals.cs diff --git a/src/NServiceBus.Persistence.DynamoDB.Tests/ApprovalFiles/TransactionInformationConfigurationTests.Should_have_all_relevant_extraction_apis_exposed.approved.txt b/src/NServiceBus.Persistence.DynamoDB.Tests/ApprovalFiles/TransactionInformationConfigurationTests.Should_have_all_relevant_extraction_apis_exposed.approved.txt deleted file mode 100644 index aaed50a9..00000000 --- a/src/NServiceBus.Persistence.DynamoDB.Tests/ApprovalFiles/TransactionInformationConfigurationTests.Should_have_all_relevant_extraction_apis_exposed.approved.txt +++ /dev/null @@ -1 +0,0 @@ -Represents the missing extraction methods in the TransactionInformationConfiguration object and should remain empty \ No newline at end of file diff --git a/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj b/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj index c770708d..04562076 100644 --- a/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.Tests/NServiceBus.Persistence.DynamoDB.Tests.csproj @@ -18,10 +18,10 @@ - + - + diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj index 22d42fc8..ec37ecd5 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.DynamoDB.TransactionalSession.AcceptanceTests.csproj @@ -10,11 +10,10 @@ - - + diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApiApprovals.cs b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/APIApprovals.cs similarity index 71% rename from src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApiApprovals.cs rename to src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/APIApprovals.cs index f8341dda..251995c9 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApiApprovals.cs +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/APIApprovals.cs @@ -6,14 +6,14 @@ using PublicApiGenerator; [TestFixture] -public class ApiApprovals +public class APIApprovals { [Test] public void Approve() { var publicApi = typeof(DynamoOpenSessionOptions).Assembly.GeneratePublicApi(new ApiGeneratorOptions { - ExcludeAttributes = new[] { "System.Runtime.Versioning.TargetFrameworkAttribute", "System.Reflection.AssemblyMetadataAttribute" } + ExcludeAttributes = ["System.Runtime.Versioning.TargetFrameworkAttribute", "System.Reflection.AssemblyMetadataAttribute"] }); Approver.Verify(publicApi); } diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApprovalFiles/ApiApprovals.Approve.approved.txt b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApprovalFiles/APIApprovals.Approve.approved.txt similarity index 100% rename from src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApprovalFiles/ApiApprovals.Approve.approved.txt rename to src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/ApprovalFiles/APIApprovals.Approve.approved.txt diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj index e7a791a8..e8fd9c82 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests/NServiceBus.Persistence.DynamoDB.TransactionalSession.Tests.csproj @@ -19,8 +19,10 @@ + + - + diff --git a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj index 1384f10e..35a590c6 100644 --- a/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj +++ b/src/NServiceBus.Persistence.DynamoDB.TransactionalSession/NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj @@ -16,7 +16,7 @@ - + diff --git a/src/NServiceBus.Persistence.DynamoDB/FodyWeavers.xml b/src/NServiceBus.Persistence.DynamoDB/FodyWeavers.xml deleted file mode 100644 index f41b97a7..00000000 --- a/src/NServiceBus.Persistence.DynamoDB/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj b/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj index a0403a25..7b35d1c8 100644 --- a/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj +++ b/src/NServiceBus.Persistence.DynamoDB/NServiceBus.Persistence.DynamoDB.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -9,14 +9,12 @@ + - - - - + diff --git a/src/NServiceBus.Persistence.DynamoDB/Outbox/WriteRequestBatchExecutionExtensions.cs b/src/NServiceBus.Persistence.DynamoDB/Outbox/WriteRequestBatchExecutionExtensions.cs index 2f046f34..ac30aa21 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Outbox/WriteRequestBatchExecutionExtensions.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Outbox/WriteRequestBatchExecutionExtensions.cs @@ -9,7 +9,7 @@ namespace NServiceBus.Persistence.DynamoDB; using Amazon.DynamoDBv2.Model; using NServiceBus.Logging; -// While this class looks like it has some generic helper flavour it was deliberately kept as close +// While this class looks like it has some generic helper flavor it was deliberately kept as close // as possible to the requirements of the outbox persister and can only be used in that context. // Otherwise some significant refactoring would be required. static class WriteRequestBatchExecutionExtensions diff --git a/src/NServiceBus.Persistence.DynamoDB/Serialization/SetOfNumberConverter.cs b/src/NServiceBus.Persistence.DynamoDB/Serialization/SetOfNumberConverter.cs index 38bf18e0..3c031000 100644 --- a/src/NServiceBus.Persistence.DynamoDB/Serialization/SetOfNumberConverter.cs +++ b/src/NServiceBus.Persistence.DynamoDB/Serialization/SetOfNumberConverter.cs @@ -44,10 +44,10 @@ public override JsonConverter CreateConverter(Type type, JsonSerializerOptions o Type valueType = type.GetGenericArguments()[0]; var converter = (JsonConverter)Activator.CreateInstance( typeof(SetConverter<,>) - .MakeGenericType(new Type[] { type, valueType }), + .MakeGenericType([type, valueType]), BindingFlags.Instance | BindingFlags.Public, binder: null, - args: new object[] { options }, + args: [options], culture: null)!; return converter;