diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 73b01692..fb4c03f6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,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.CosmosDB.LogicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.LogicalOutbox.AcceptanceTests.csproj b/src/NServiceBus.Persistence.CosmosDB.LogicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.LogicalOutbox.AcceptanceTests.csproj index 3833a277..9cf74792 100644 --- a/src/NServiceBus.Persistence.CosmosDB.LogicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.LogicalOutbox.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.LogicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.LogicalOutbox.AcceptanceTests.csproj @@ -12,10 +12,10 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests.csproj b/src/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests.csproj index 1161048e..1c84a22b 100644 --- a/src/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests/NServiceBus.Persistence.CosmosDB.NonTransactionalSagas.AcceptanceTests.csproj @@ -12,10 +12,10 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.CosmosDB.PersistenceTests/NServiceBus.Persistence.CosmosDB.PersistenceTests.csproj b/src/NServiceBus.Persistence.CosmosDB.PersistenceTests/NServiceBus.Persistence.CosmosDB.PersistenceTests.csproj index 0469ca70..6d7de73f 100644 --- a/src/NServiceBus.Persistence.CosmosDB.PersistenceTests/NServiceBus.Persistence.CosmosDB.PersistenceTests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.PersistenceTests/NServiceBus.Persistence.CosmosDB.PersistenceTests.csproj @@ -12,9 +12,10 @@ - + - + + diff --git a/src/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests.csproj b/src/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests.csproj index c1363d43..05737e15 100644 --- a/src/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PessimisticLock.AcceptanceTests.csproj @@ -12,10 +12,10 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests.csproj b/src/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests.csproj index 3833a277..9cf74792 100644 --- a/src/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests/NServiceBus.Persistence.CosmosDB.PhysicalOutbox.AcceptanceTests.csproj @@ -12,10 +12,10 @@ - + - - + + diff --git a/src/NServiceBus.Persistence.CosmosDB.Tests/ApiApprovals.cs b/src/NServiceBus.Persistence.CosmosDB.Tests/APIApprovals.cs similarity index 76% rename from src/NServiceBus.Persistence.CosmosDB.Tests/ApiApprovals.cs rename to src/NServiceBus.Persistence.CosmosDB.Tests/APIApprovals.cs index 298733e1..379a7631 100644 --- a/src/NServiceBus.Persistence.CosmosDB.Tests/ApiApprovals.cs +++ b/src/NServiceBus.Persistence.CosmosDB.Tests/APIApprovals.cs @@ -13,7 +13,7 @@ public void Approve() { var publicApi = typeof(CosmosPersistence).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.CosmosDB.Tests/NServiceBus.Persistence.CosmosDB.Tests.csproj b/src/NServiceBus.Persistence.CosmosDB.Tests/NServiceBus.Persistence.CosmosDB.Tests.csproj index f64172be..1f8ac4ec 100644 --- a/src/NServiceBus.Persistence.CosmosDB.Tests/NServiceBus.Persistence.CosmosDB.Tests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.Tests/NServiceBus.Persistence.CosmosDB.Tests.csproj @@ -18,10 +18,11 @@ - - - - + + + + + diff --git a/src/NServiceBus.Persistence.CosmosDB.Tests/Outbox/PendingTransportOperationsExtensionsTests.cs b/src/NServiceBus.Persistence.CosmosDB.Tests/Outbox/PendingTransportOperationsExtensionsTests.cs index ac9bd8ca..e49db88a 100644 --- a/src/NServiceBus.Persistence.CosmosDB.Tests/Outbox/PendingTransportOperationsExtensionsTests.cs +++ b/src/NServiceBus.Persistence.CosmosDB.Tests/Outbox/PendingTransportOperationsExtensionsTests.cs @@ -1,7 +1,6 @@ namespace NServiceBus.Persistence.CosmosDB.Tests { using System; - using System.Collections.Generic; using NUnit.Framework; using Routing; using Transport; diff --git a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs index 73610ea8..2a109398 100644 --- a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs +++ b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/Infrastructure/TransactionSessionDefaultServer.cs @@ -14,25 +14,27 @@ namespace NServiceBus.TransactionalSession.AcceptanceTests public class TransactionSessionDefaultServer : IEndpointSetupTemplate { - public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, + public virtual async Task GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomization, Func configurationBuilderCustomization) { - var builder = new EndpointConfiguration(endpointConfiguration.EndpointName); - builder.EnableInstallers(); + var endpointConfiguration = new EndpointConfiguration(endpointCustomization.EndpointName); - builder.Recoverability() + endpointConfiguration.EnableInstallers(); + endpointConfiguration.UseSerialization(); + + endpointConfiguration.Recoverability() .Delayed(delayed => delayed.NumberOfRetries(0)) .Immediate(immediate => immediate.NumberOfRetries(0)); - builder.SendFailedMessagesTo("error"); + endpointConfiguration.SendFailedMessagesTo("error"); var storageDir = Path.Combine(Path.GetTempPath(), "learn", TestContext.CurrentContext.Test.ID); - builder.UseTransport(new AcceptanceTestingTransport + endpointConfiguration.UseTransport(new AcceptanceTestingTransport { StorageLocation = storageDir }); - var persistence = builder.UsePersistence(); + var persistence = endpointConfiguration.UsePersistence(); persistence.EnableTransactionalSession(); persistence.DisableContainerCreation(); persistence.CosmosClient(SetupFixture.CosmosDbClient); @@ -40,21 +42,20 @@ public virtual async Task GetConfiguration(RunDescriptor persistence.DefaultContainer(SetupFixture.ContainerName, SetupFixture.PartitionPathKey); - builder.RegisterComponents(services => services.AddSingleton()); + endpointConfiguration.RegisterComponents(services => services.AddSingleton()); - 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); // 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()); - return builder; + return endpointConfiguration; } class PartitionKeyProvider : IPartitionKeyFromHeadersExtractor { - public PartitionKeyProvider(ScenarioContext scenarioContext) => this.scenarioContext = scenarioContext; public bool TryExtract(IReadOnlyDictionary headers, out PartitionKey? partitionKey) diff --git a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests.csproj b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests.csproj index 28524462..5babec98 100644 --- a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests/NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests.csproj @@ -14,10 +14,11 @@ - + - - + + + diff --git a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/ApiApprovals.cs b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/APIApprovals.cs similarity index 76% rename from src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/ApiApprovals.cs rename to src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/APIApprovals.cs index af577923..4e3c5832 100644 --- a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/ApiApprovals.cs +++ b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/APIApprovals.cs @@ -13,7 +13,7 @@ public void Approve() { var publicApi = typeof(CosmosOpenSessionOptions).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.CosmosDB.TransactionalSession.Tests/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests.csproj b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests.csproj index d686540d..42b078b6 100644 --- a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests/NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -18,8 +18,11 @@ - - + + + + + diff --git a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession/NServiceBus.Persistence.CosmosDB.TransactionalSession.csproj b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession/NServiceBus.Persistence.CosmosDB.TransactionalSession.csproj index f9643e82..93e76510 100644 --- a/src/NServiceBus.Persistence.CosmosDB.TransactionalSession/NServiceBus.Persistence.CosmosDB.TransactionalSession.csproj +++ b/src/NServiceBus.Persistence.CosmosDB.TransactionalSession/NServiceBus.Persistence.CosmosDB.TransactionalSession.csproj @@ -14,8 +14,9 @@ - - + + + \ No newline at end of file diff --git a/src/NServiceBus.Persistence.CosmosDB.sln b/src/NServiceBus.Persistence.CosmosDB.sln index aba3b343..65c9b0c9 100644 --- a/src/NServiceBus.Persistence.CosmosDB.sln +++ b/src/NServiceBus.Persistence.CosmosDB.sln @@ -19,14 +19,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.Cos 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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NServiceBus.Persistence.CosmosDB.TransactionalSession", "NServiceBus.Persistence.CosmosDB.TransactionalSession\NServiceBus.Persistence.CosmosDB.TransactionalSession.csproj", "{EAE3490D-346E-4700-BE06-3F706BE8A510}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.CosmosDB.TransactionalSession", "NServiceBus.Persistence.CosmosDB.TransactionalSession\NServiceBus.Persistence.CosmosDB.TransactionalSession.csproj", "{EAE3490D-346E-4700-BE06-3F706BE8A510}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests", "NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests\NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests.csproj", "{5DC54F36-FB1B-410A-8711-75A5496F3869}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests", "NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests\NServiceBus.Persistence.CosmosDB.TransactionalSession.AcceptanceTests.csproj", "{5DC54F36-FB1B-410A-8711-75A5496F3869}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests", "NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests\NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests.csproj", "{5043C20C-6C60-40A9-9201-0C557F820833}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests", "NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests\NServiceBus.Persistence.CosmosDB.TransactionalSession.Tests.csproj", "{5043C20C-6C60-40A9-9201-0C557F820833}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/NServiceBus.Persistence.CosmosDB/Config/ContainerInformation.cs b/src/NServiceBus.Persistence.CosmosDB/Config/ContainerInformation.cs index 40f15943..2a279440 100644 --- a/src/NServiceBus.Persistence.CosmosDB/Config/ContainerInformation.cs +++ b/src/NServiceBus.Persistence.CosmosDB/Config/ContainerInformation.cs @@ -1,6 +1,6 @@ namespace NServiceBus { - using Persistence.CosmosDB; + using System; /// /// Represents the container name and the partition key path when the container information is provided at runtime through the pipeline. @@ -14,7 +14,7 @@ public readonly struct ContainerInformation /// The partition key path matching the container in use. public ContainerInformation(string containerName, PartitionKeyPath partitionKeyPath) { - Guard.AgainstNullAndEmpty(nameof(containerName), containerName); + ArgumentException.ThrowIfNullOrWhiteSpace(containerName); ContainerName = containerName; PartitionKeyPath = partitionKeyPath; diff --git a/src/NServiceBus.Persistence.CosmosDB/Config/CosmosPersistenceConfig.cs b/src/NServiceBus.Persistence.CosmosDB/Config/CosmosPersistenceConfig.cs index 7ae0da85..824e3836 100644 --- a/src/NServiceBus.Persistence.CosmosDB/Config/CosmosPersistenceConfig.cs +++ b/src/NServiceBus.Persistence.CosmosDB/Config/CosmosPersistenceConfig.cs @@ -1,5 +1,6 @@ namespace NServiceBus { + using System; using Configuration.AdvancedExtensibility; using Microsoft.Azure.Cosmos; using Persistence.CosmosDB; @@ -15,8 +16,8 @@ public static class CosmosPersistenceConfig /// 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 CosmosClient(this PersistenceExtensions persistenceExtensions, CosmosClient cosmosClient) { - Guard.AgainstNull(nameof(persistenceExtensions), persistenceExtensions); - Guard.AgainstNull(nameof(cosmosClient), cosmosClient); + ArgumentNullException.ThrowIfNull(persistenceExtensions); + ArgumentNullException.ThrowIfNull(cosmosClient); persistenceExtensions.GetSettings().Set(new CosmosClientProvidedByConfiguration { Client = cosmosClient }); return persistenceExtensions; @@ -27,7 +28,7 @@ public static PersistenceExtensions CosmosClient(this Persist /// public static PersistenceExtensions DatabaseName(this PersistenceExtensions persistenceExtensions, string databaseName) { - Guard.AgainstNullAndEmpty(nameof(databaseName), databaseName); + ArgumentException.ThrowIfNullOrWhiteSpace(databaseName); persistenceExtensions.GetSettings().Set(SettingsKeys.DatabaseName, databaseName); @@ -40,7 +41,7 @@ public static PersistenceExtensions DatabaseName(this Persist /// When the default container is not set the container information needs to be provided as part of the message handling pipeline. public static PersistenceExtensions DefaultContainer(this PersistenceExtensions persistenceExtensions, string containerName, string partitionKeyPath) { - Guard.AgainstNull(nameof(persistenceExtensions), persistenceExtensions); + ArgumentNullException.ThrowIfNull(persistenceExtensions); persistenceExtensions.GetSettings().Set(new ContainerInformation(containerName, new PartitionKeyPath(partitionKeyPath))); @@ -52,7 +53,7 @@ public static PersistenceExtensions DefaultContainer(this Per /// public static void DisableContainerCreation(this PersistenceExtensions persistenceExtensions) { - Guard.AgainstNull(nameof(persistenceExtensions), persistenceExtensions); + ArgumentNullException.ThrowIfNull(persistenceExtensions); var installerSettings = persistenceExtensions.GetSettings().GetOrCreate(); installerSettings.Disabled = true; @@ -69,7 +70,7 @@ public static SagaPersistenceConfiguration Sagas(this PersistenceExtensions public static TransactionInformationConfiguration TransactionInformation(this PersistenceExtensions persistenceExtensions) { - Guard.AgainstNull(nameof(persistenceExtensions), persistenceExtensions); + ArgumentNullException.ThrowIfNull(persistenceExtensions); return persistenceExtensions.GetSettings().GetOrCreate(); } diff --git a/src/NServiceBus.Persistence.CosmosDB/Guard.cs b/src/NServiceBus.Persistence.CosmosDB/Guard.cs deleted file mode 100644 index 71e8ca78..00000000 --- a/src/NServiceBus.Persistence.CosmosDB/Guard.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace NServiceBus.Persistence.CosmosDB -{ - using System; - - static class Guard - { - public static void AgainstNull(string argumentName, object value) - { - if (value == null) - { - throw new ArgumentNullException(argumentName); - } - } - - public static void AgainstNullAndEmpty(string argumentName, string value) - { - if (string.IsNullOrWhiteSpace(value)) - { - throw new ArgumentNullException(argumentName); - } - } - - public static void AgainstNegativeAndZero(string argumentName, TimeSpan value) - { - if (value <= TimeSpan.Zero) - { - throw new ArgumentOutOfRangeException(argumentName); - } - } - - public static void AgainstZero(string argumentName, TimeSpan value) - { - if (value == TimeSpan.Zero) - { - throw new ArgumentOutOfRangeException(argumentName); - } - } - } -} \ No newline at end of file diff --git a/src/NServiceBus.Persistence.CosmosDB/NServiceBus.Persistence.CosmosDB.csproj b/src/NServiceBus.Persistence.CosmosDB/NServiceBus.Persistence.CosmosDB.csproj index 35511066..b8903f6b 100644 --- a/src/NServiceBus.Persistence.CosmosDB/NServiceBus.Persistence.CosmosDB.csproj +++ b/src/NServiceBus.Persistence.CosmosDB/NServiceBus.Persistence.CosmosDB.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -8,10 +8,15 @@ - - + + + + + + + - + diff --git a/src/NServiceBus.Persistence.CosmosDB/Outbox/CosmosOutboxSettingsExtensions.cs b/src/NServiceBus.Persistence.CosmosDB/Outbox/CosmosOutboxSettingsExtensions.cs index 4f44b98f..408bece8 100644 --- a/src/NServiceBus.Persistence.CosmosDB/Outbox/CosmosOutboxSettingsExtensions.cs +++ b/src/NServiceBus.Persistence.CosmosDB/Outbox/CosmosOutboxSettingsExtensions.cs @@ -15,7 +15,7 @@ public static class CosmosOutboxSettingsExtensions /// public static void TimeToKeepOutboxDeduplicationData(this OutboxSettings outboxSettings, TimeSpan timeToKeepOutboxDeduplicationData) { - Guard.AgainstNegativeAndZero(nameof(timeToKeepOutboxDeduplicationData), timeToKeepOutboxDeduplicationData); + ArgumentOutOfRangeException.ThrowIfLessThanOrEqual(timeToKeepOutboxDeduplicationData, TimeSpan.Zero); outboxSettings.GetSettings().Set(SettingsKeys.OutboxTimeToLiveInSeconds, (int)timeToKeepOutboxDeduplicationData.TotalSeconds); } diff --git a/src/NServiceBus.Persistence.CosmosDB/Saga/SagaOperations.cs b/src/NServiceBus.Persistence.CosmosDB/Saga/SagaOperations.cs index 615496da..a02a1a5c 100644 --- a/src/NServiceBus.Persistence.CosmosDB/Saga/SagaOperations.cs +++ b/src/NServiceBus.Persistence.CosmosDB/Saga/SagaOperations.cs @@ -146,10 +146,10 @@ sealed class SagaReleaseLock : SagaOperation, IReleaseLockOperation { static IReadOnlyList cleanupPatchOperations; - static IReadOnlyList CleanupPatchOperations => cleanupPatchOperations ??= new List - { + static IReadOnlyList CleanupPatchOperations => cleanupPatchOperations ??= + [ PatchOperation.Remove($"/{MetadataExtensions.MetadataKey}/{MetadataExtensions.SagaDataContainerReservedUntilMetadataKey}") - }; + ]; public SagaReleaseLock(IContainSagaData sagaData, PartitionKey partitionKey, JsonSerializer serializer, ContextBag context) : base(sagaData, partitionKey, serializer, context) { diff --git a/src/NServiceBus.Persistence.CosmosDB/Saga/SagaPersister.cs b/src/NServiceBus.Persistence.CosmosDB/Saga/SagaPersister.cs index b36e3203..9efec6da 100644 --- a/src/NServiceBus.Persistence.CosmosDB/Saga/SagaPersister.cs +++ b/src/NServiceBus.Persistence.CosmosDB/Saga/SagaPersister.cs @@ -166,10 +166,10 @@ public async Task Get(string propertyName, object property var now = DateTime.UtcNow.ToFileTimeUtc(); var reservedUntil = DateTime.UtcNow.Add(leaseLockTime).ToFileTimeUtc(); - IReadOnlyList patchOperations = new List - { + IReadOnlyList patchOperations = + [ PatchOperation.Add($"/{MetadataExtensions.MetadataKey}/{MetadataExtensions.SagaDataContainerReservedUntilMetadataKey}", reservedUntil) - }; + ]; var requestOptions = new PatchItemRequestOptions { FilterPredicate = diff --git a/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SharedTransactionalBatch.cs b/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SharedTransactionalBatch.cs index 0552b684..6cbe1280 100644 --- a/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SharedTransactionalBatch.cs +++ b/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SharedTransactionalBatch.cs @@ -25,7 +25,7 @@ public SharedTransactionalBatch(IWorkWithSharedTransactionalBatch operationsHold public override TransactionalBatch CreateItem(T item, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNull(nameof(item), item); + ArgumentNullException.ThrowIfNull(item); operationsHolder.AddOperation(new CreateItemOperation(item, requestOptions, PartitionKey)); return this; @@ -33,7 +33,7 @@ public override TransactionalBatch CreateItem(T item, TransactionalBatchItemR public override TransactionalBatch CreateItemStream(Stream streamPayload, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNull(nameof(streamPayload), streamPayload); + ArgumentNullException.ThrowIfNull(streamPayload); operationsHolder.AddOperation(new CreateItemStreamOperation(streamPayload, requestOptions, PartitionKey)); return this; @@ -41,7 +41,7 @@ public override TransactionalBatch CreateItemStream(Stream streamPayload, Transa public override TransactionalBatch ReadItem(string id, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNullAndEmpty(nameof(id), id); + ArgumentException.ThrowIfNullOrWhiteSpace(id); operationsHolder.AddOperation(new ReadItemOperation(id, requestOptions, PartitionKey)); return this; @@ -49,7 +49,7 @@ public override TransactionalBatch ReadItem(string id, TransactionalBatchItemReq public override TransactionalBatch UpsertItem(T item, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNull(nameof(item), item); + ArgumentNullException.ThrowIfNull(item); operationsHolder.AddOperation(new UpsertItemOperation(item, requestOptions, PartitionKey)); return this; @@ -57,7 +57,7 @@ public override TransactionalBatch UpsertItem(T item, TransactionalBatchItemR public override TransactionalBatch UpsertItemStream(Stream streamPayload, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNull(nameof(streamPayload), streamPayload); + ArgumentNullException.ThrowIfNull(streamPayload); operationsHolder.AddOperation(new UpsertItemStreamOperation(streamPayload, requestOptions, PartitionKey)); return this; @@ -65,8 +65,8 @@ public override TransactionalBatch UpsertItemStream(Stream streamPayload, Transa public override TransactionalBatch ReplaceItem(string id, T item, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNullAndEmpty(nameof(id), id); - Guard.AgainstNull(nameof(item), item); + ArgumentException.ThrowIfNullOrWhiteSpace(id); + ArgumentNullException.ThrowIfNull(item); operationsHolder.AddOperation(new ReplaceItemOperation(id, item, requestOptions, PartitionKey)); return this; @@ -74,8 +74,8 @@ public override TransactionalBatch ReplaceItem(string id, T item, Transaction public override TransactionalBatch ReplaceItemStream(string id, Stream streamPayload, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNullAndEmpty(nameof(id), id); - Guard.AgainstNull(nameof(streamPayload), streamPayload); + ArgumentException.ThrowIfNullOrWhiteSpace(id); + ArgumentNullException.ThrowIfNull(streamPayload); operationsHolder.AddOperation(new ReplaceItemStreamOperation(id, streamPayload, requestOptions, PartitionKey)); return this; @@ -83,7 +83,7 @@ public override TransactionalBatch ReplaceItemStream(string id, Stream streamPay public override TransactionalBatch DeleteItem(string id, TransactionalBatchItemRequestOptions requestOptions = null) { - Guard.AgainstNullAndEmpty(nameof(id), id); + ArgumentException.ThrowIfNullOrWhiteSpace(id); operationsHolder.AddOperation(new DeleteItemOperation(id, requestOptions, PartitionKey)); return this; @@ -91,8 +91,8 @@ public override TransactionalBatch DeleteItem(string id, TransactionalBatchItemR public override TransactionalBatch PatchItem(string id, IReadOnlyList patchOperations, TransactionalBatchPatchItemRequestOptions requestOptions = null) { - Guard.AgainstNullAndEmpty(nameof(id), id); - Guard.AgainstNull(nameof(patchOperations), patchOperations); + ArgumentException.ThrowIfNullOrWhiteSpace(id); + ArgumentNullException.ThrowIfNull(patchOperations); operationsHolder.AddOperation(new PatchItemOperation(id, patchOperations, requestOptions, PartitionKey)); return this; diff --git a/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs b/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs index 53bfb5d3..abfb8650 100644 --- a/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs +++ b/src/NServiceBus.Persistence.CosmosDB/SynchronizedStorage/SynchronizedStorageSessionExtensions.cs @@ -14,7 +14,7 @@ public static class SynchronizedStorageSessionExtensions /// public static ICosmosStorageSession CosmosPersistenceSession(this ISynchronizedStorageSession session) { - Guard.AgainstNull(nameof(session), session); + ArgumentNullException.ThrowIfNull(session); if (session is IWorkWithSharedTransactionalBatch workWith) { diff --git a/src/NServiceBus.Persistence.CosmosDB/Transaction/ContainerInformationExtractor.Headers.cs b/src/NServiceBus.Persistence.CosmosDB/Transaction/ContainerInformationExtractor.Headers.cs index 607f2e41..6341056f 100644 --- a/src/NServiceBus.Persistence.CosmosDB/Transaction/ContainerInformationExtractor.Headers.cs +++ b/src/NServiceBus.Persistence.CosmosDB/Transaction/ContainerInformationExtractor.Headers.cs @@ -57,7 +57,7 @@ public void ExtractContainerInformationFromHeaders(Func(Func(Func(Func