Skip to content

Commit

Permalink
Prepare for RTM (#547)
Browse files Browse the repository at this point in the history
* Prepare for RTM

* Ser serializer

* Tweaks

---------

Co-authored-by: Brandon Ording <bording@gmail.com>
  • Loading branch information
andreasohlund and bording committed Mar 7, 2024
1 parent fe3dd0b commit 654ff4f
Show file tree
Hide file tree
Showing 29 changed files with 65 additions and 114 deletions.
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/release.yml
Expand Up @@ -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
Expand Down
Expand Up @@ -12,11 +12,10 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.13" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.18" />
<PackageReference Include="GitHubActionsTestLogger" Version="2.3.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="NServiceBus.AcceptanceTests.Sources" Version="9.0.0-alpha.6" GeneratePathProperty="true" />
<PackageReference Include="NServiceBus.Testing" Version="9.0.0-alpha.1" />
<PackageReference Include="NServiceBus.AcceptanceTests.Sources" Version="9.0.0" GeneratePathProperty="true" />
<PackageReference Include="Nunit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
</ItemGroup>
Expand Down
Expand Up @@ -105,8 +105,8 @@ public Task Handle(TriggerMessage message, IMessageHandlerContext context)
}
});

session.AddRange(new List<TransactWriteItem>
{
session.AddRange(
[
new TransactWriteItem
{
Put = new Put
Expand Down Expand Up @@ -143,7 +143,7 @@ public Task Handle(TriggerMessage message, IMessageHandlerContext context)
}
}
}
});
]);

testContext.MessageReceived = true;

Expand Down
Expand Up @@ -11,11 +11,10 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.13" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.18" />
<PackageReference Include="GitHubActionsTestLogger" Version="2.3.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="NServiceBus.PersistenceTests.Sources" Version="9.0.0-alpha.9" />
<PackageReference Include="NServiceBus.Testing" Version="9.0.0-alpha.1" />
<PackageReference Include="NServiceBus.PersistenceTests.Sources" Version="9.0.0" />
<PackageReference Include="Nunit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
</ItemGroup>
Expand Down
Expand Up @@ -11,11 +11,10 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.13" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.18" />
<PackageReference Include="GitHubActionsTestLogger" Version="2.3.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="NServiceBus.AcceptanceTests.Sources" Version="9.0.0-alpha.6" GeneratePathProperty="true" />
<PackageReference Include="NServiceBus.Testing" Version="9.0.0-alpha.1" />
<PackageReference Include="NServiceBus.AcceptanceTests.Sources" Version="9.0.0" GeneratePathProperty="true" />
<PackageReference Include="Nunit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
</ItemGroup>
Expand Down

This file was deleted.

Expand Up @@ -18,10 +18,10 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.13" />
<PackageReference Include="NServiceBus" Version="9.0.0-alpha.6" />
<PackageReference Include="NServiceBus.Testing" Version="9.0.0-alpha.1" />
<PackageReference Include="Particular.Approvals" Version="0.6.0" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.18" />
<PackageReference Include="NServiceBus" Version="9.0.0" />
<PackageReference Include="NServiceBus.Testing" Version="9.0.0" />
<PackageReference Include="Particular.Approvals" Version="1.0.0" />
<PackageReference Include="PublicApiGenerator" Version="11.1.0" />
</ItemGroup>

Expand Down
Expand Up @@ -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<string, AttributeValue>(0)} },
{ "Headers", new AttributeValue { M = new Dictionary<string, AttributeValue>(0)} },
{ "Properties", new AttributeValue { M = []} },
{ "Headers", new AttributeValue { M = []} },
{ "Body", new AttributeValue { B = new MemoryStream() } }
}
}
Expand Down Expand Up @@ -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<string, AttributeValue>(0)} },
{ "Headers", new AttributeValue { M = new Dictionary<string, AttributeValue>(0)} },
{ "Properties", new AttributeValue { M = []} },
{ "Headers", new AttributeValue { M = []} },
{ "Body", new AttributeValue { B = new MemoryStream() } }
}
}
Expand Down
Expand Up @@ -9,31 +9,31 @@ namespace NServiceBus.TransactionalSession.AcceptanceTests;
public class TransactionSessionDefaultServer : IEndpointSetupTemplate
{
public virtual async Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor,
EndpointCustomizationConfiguration endpointConfiguration,
EndpointCustomizationConfiguration endpointCustomization,
Func<EndpointConfiguration, Task> configurationBuilderCustomization)
{
var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);
var endpointConfiguration = new EndpointConfiguration(endpointCustomization.EndpointName);

builder.UseTransport<LearningTransport>();
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
endpointConfiguration.UseTransport<LearningTransport>();

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<DynamoPersistence>();
var persistence = endpointConfiguration.UsePersistence<DynamoPersistence>();
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;
}
}
Expand Up @@ -10,15 +10,14 @@

<ItemGroup>
<ProjectReference Include="..\NServiceBus.Persistence.DynamoDB.TransactionalSession\NServiceBus.Persistence.DynamoDB.TransactionalSession.csproj" />
<ProjectReference Include="..\NServiceBus.Persistence.DynamoDB\NServiceBus.Persistence.DynamoDB.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.13" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.18" />
<PackageReference Include="GitHubActionsTestLogger" Version="2.3.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="NServiceBus.AcceptanceTesting" Version="9.0.0-alpha.9" />
<PackageReference Include="NServiceBus.TransactionalSession" Version="3.0.0-alpha.1" />
<PackageReference Include="NServiceBus.AcceptanceTesting" Version="9.0.0" />
<PackageReference Include="NServiceBus.TransactionalSession" Version="3.0.0" />
<PackageReference Include="Nunit" Version="3.14.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
</ItemGroup>
Expand Down
Expand Up @@ -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);
}
Expand Down
Expand Up @@ -19,8 +19,10 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="NServiceBus.TransactionalSession" Version="3.0.0-alpha.1" />
<PackageReference Include="Particular.Approvals" Version="0.6.0" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.301.18" />
<PackageReference Include="NServiceBus" Version="9.0.0" />
<PackageReference Include="NServiceBus.TransactionalSession" Version="3.0.0" />
<PackageReference Include="Particular.Approvals" Version="1.0.0" />
<PackageReference Include="PublicApiGenerator" Version="11.1.0" />
</ItemGroup>

Expand Down
Expand Up @@ -15,8 +15,8 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="NServiceBus.TransactionalSession" Version="3.0.0-alpha.1" />
<PackageReference Include="Particular.Packaging" Version="4.0.0" PrivateAssets="All" />
<PackageReference Include="NServiceBus.TransactionalSession" Version="[3.0.0, 4.0.0)" />
<PackageReference Include="Particular.Packaging" Version="4.1.0" PrivateAssets="All" />
</ItemGroup>

</Project>
4 changes: 3 additions & 1 deletion src/NServiceBus.Persistence.DynamoDB.sln
Expand Up @@ -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}"
Expand All @@ -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
Expand Down
@@ -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;
}
Expand Down
@@ -1,5 +1,6 @@
namespace NServiceBus;

using System;
using Amazon.DynamoDBv2;
using Configuration.AdvancedExtensibility;
using Persistence.DynamoDB;
Expand All @@ -15,8 +16,8 @@ public static class DynamoPersistenceConfigExtensions
/// <remarks>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.</remarks>
public static PersistenceExtensions<DynamoPersistence> DynamoClient(this PersistenceExtensions<DynamoPersistence> persistenceExtensions, IAmazonDynamoDB dynamoClient)
{
Guard.ThrowIfNull(persistenceExtensions);
Guard.ThrowIfNull(dynamoClient);
ArgumentNullException.ThrowIfNull(persistenceExtensions);
ArgumentNullException.ThrowIfNull(dynamoClient);

persistenceExtensions.GetSettings().Set<IDynamoClientProvider>(new DynamoClientProvidedByConfigurationProvider(dynamoClient));
return persistenceExtensions;
Expand All @@ -27,8 +28,8 @@ public static PersistenceExtensions<DynamoPersistence> DynamoClient(this Persist
/// </summary>
public static PersistenceExtensions<DynamoPersistence> UseSharedTable(this PersistenceExtensions<DynamoPersistence> persistenceExtensions, TableConfiguration sharedTableConfiguration)
{
Guard.ThrowIfNull(persistenceExtensions);
Guard.ThrowIfNull(sharedTableConfiguration);
ArgumentNullException.ThrowIfNull(persistenceExtensions);
ArgumentNullException.ThrowIfNull(sharedTableConfiguration);

persistenceExtensions.GetSettings().GetOrCreate<SagaPersistenceConfiguration>().Table = sharedTableConfiguration with { };
persistenceExtensions.GetSettings().GetOrCreate<OutboxPersistenceConfiguration>().Table = sharedTableConfiguration with { };
Expand All @@ -40,7 +41,7 @@ public static PersistenceExtensions<DynamoPersistence> UseSharedTable(this Persi
/// </summary>
public static void DisableTablesCreation(this PersistenceExtensions<DynamoPersistence> persistenceExtensions)
{
Guard.ThrowIfNull(persistenceExtensions);
ArgumentNullException.ThrowIfNull(persistenceExtensions);

persistenceExtensions.GetSettings().GetOrCreate<SagaPersistenceConfiguration>().CreateTable = false;
persistenceExtensions.GetSettings().GetOrCreate<OutboxPersistenceConfiguration>().CreateTable = false;
Expand Down
3 changes: 0 additions & 3 deletions src/NServiceBus.Persistence.DynamoDB/FodyWeavers.xml

This file was deleted.

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
Expand All @@ -9,15 +9,12 @@
</PropertyGroup>

<ItemGroup Label="Public dependencies">
<PackageReference Include="NServiceBus" Version="9.0.0-alpha.6" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="[3.7.201.7, 4.0.0)" />
<PackageReference Include="System.Text.Json" Version="8.0.1" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="[3.7.301.18, 4.0.0)" />
<PackageReference Include="NServiceBus" Version="[9.0.0, 10.0.0)" />
</ItemGroup>

<ItemGroup Label="Private dependencies">
<PackageReference Include="Obsolete.Fody" Version="5.3.0" PrivateAssets="All" />
<PackageReference Include="Particular.Packaging" Version="4.0.0" PrivateAssets="All" />
<PackageReference Include="PolySharp" Version="1.14.1" PrivateAssets="All" />
<PackageReference Include="Particular.Packaging" Version="4.1.0" PrivateAssets="All" />
</ItemGroup>

<ItemGroup>
Expand Down
Expand Up @@ -3,7 +3,6 @@
using System;
using Configuration.AdvancedExtensibility;
using Outbox;
using Persistence.DynamoDB;

/// <summary>
/// Outbox configuration extensions for DynamoDB persistence.
Expand All @@ -15,8 +14,8 @@ public static class DynamoOutboxConfigurationExtensions
/// </summary>
public static OutboxSettings UseTable(this OutboxSettings outboxSettings, TableConfiguration tableConfiguration)
{
Guard.ThrowIfNull(outboxSettings);
Guard.ThrowIfNull(tableConfiguration);
ArgumentNullException.ThrowIfNull(outboxSettings);
ArgumentNullException.ThrowIfNull(tableConfiguration);

outboxSettings.GetSettings().GetOrCreate<OutboxPersistenceConfiguration>().Table = tableConfiguration;
return outboxSettings;
Expand All @@ -27,7 +26,7 @@ public static OutboxSettings UseTable(this OutboxSettings outboxSettings, TableC
/// </summary>
public static OutboxSettings SetTimeToKeepDeduplicationData(this OutboxSettings outboxSettings, TimeSpan timeToKeepDeduplicationData)
{
Guard.ThrowIfNegativeOrZero(timeToKeepDeduplicationData);
ArgumentOutOfRangeException.ThrowIfLessThanOrEqual(timeToKeepDeduplicationData, TimeSpan.Zero);

outboxSettings.GetSettings().GetOrCreate<OutboxPersistenceConfiguration>().TimeToKeepDeduplicationData = timeToKeepDeduplicationData;
return outboxSettings;
Expand All @@ -38,7 +37,7 @@ public static OutboxSettings SetTimeToKeepDeduplicationData(this OutboxSettings
/// </summary>
public static OutboxSettings CreateTable(this OutboxSettings outboxSettings, bool createTable)
{
Guard.ThrowIfNull(outboxSettings);
ArgumentNullException.ThrowIfNull(outboxSettings);

outboxSettings.GetSettings().GetOrCreate<OutboxPersistenceConfiguration>().CreateTable = createTable;
return outboxSettings;
Expand Down
Expand Up @@ -247,7 +247,7 @@ IReadOnlyCollection<TransactWriteItem> Serialize(OutboxMessage outboxMessage, Co
{
if (value == null)
{
return new Dictionary<string, AttributeValue>(0);
return [];
}

var attributeValues = new Dictionary<string, AttributeValue>(value.Count);
Expand Down
Expand Up @@ -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
Expand Down

0 comments on commit 654ff4f

Please sign in to comment.