Skip to content

Commit 23c0966

Browse files
Merge branch 'dev'
2 parents 685a5c4 + e5f900a commit 23c0966

13 files changed

Lines changed: 181 additions & 27 deletions

File tree

.github/workflows/aws-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- name: Configure AWS Credentials
19-
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 #v4
19+
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 #v4
2020
with:
2121
role-to-assume: ${{ secrets.CI_MAIN_TESTING_ACCOUNT_ROLE_ARN }}
2222
role-duration-seconds: 7200
@@ -29,7 +29,7 @@ jobs:
2929
$roleArn=$(cat ./response.json)
3030
"roleArn=$($roleArn -replace '"', '')" >> $env:GITHUB_OUTPUT
3131
- name: Configure Test Runner Credentials
32-
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 #v4
32+
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 #v4
3333
with:
3434
role-to-assume: ${{ steps.lambda.outputs.roleArn }}
3535
role-duration-seconds: 7200

.github/workflows/change-file-in-pr.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515

1616
steps:
1717
- name: Checkout PR code
18-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
18+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
1919

2020
- name: Get List of Changed Files
2121
id: changed-files
22-
uses: tj-actions/changed-files@e0021407031f5be11a464abee9a0776171c79891 #v45
22+
uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 #v45
2323

2424
- name: Check for Change File(s) in .autover/changes/
2525
run: |

.github/workflows/create-release-pr.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,26 @@ jobs:
2525
steps:
2626
# Assume an AWS Role that provides access to the Access Token
2727
- name: Configure AWS Credentials
28-
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 #v4
28+
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 #v4
2929
with:
3030
role-to-assume: ${{ secrets.RELEASE_WORKFLOW_ACCESS_TOKEN_ROLE_ARN }}
3131
aws-region: us-west-2
3232
# Retrieve the Access Token from Secrets Manager
3333
- name: Retrieve secret from AWS Secrets Manager
34-
uses: aws-actions/aws-secretsmanager-get-secrets@a9a7eb4e2f2871d30dc5b892576fde60a2ecc802 #v2.0.10
34+
uses: aws-actions/aws-secretsmanager-get-secrets@3a411b6ec5cace3d626412dd917e7bfeac242cfa #v3.0.0
3535
with:
3636
secret-ids: |
3737
AWS_SECRET, ${{ secrets.RELEASE_WORKFLOW_ACCESS_TOKEN_NAME }}
3838
parse-json-secrets: true
3939
# Checkout a full clone of the repo
4040
- name: Checkout
41-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
41+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
4242
with:
4343
fetch-depth: '0'
4444
token: ${{ env.AWS_SECRET_TOKEN }}
4545
# Install .NET8 which is needed for AutoVer
4646
- name: Setup .NET 8.0
47-
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 #v5.0.1
47+
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 #v5.2.0
4848
with:
4949
dotnet-version: 8.0.x
5050
# Install AutoVer to automate versioning and changelog creation

.github/workflows/doc-site.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,24 @@ jobs:
2626
runs-on: ubuntu-latest
2727
steps:
2828
- name: Checkout
29-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # pinning V4 #v6.0.1
29+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pinning V4 #v6.0.2
3030
- name: Dotnet Setup
31-
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 # pinning V4 #v5.0.1
31+
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # pinning V4 #v5.2.0
3232
with:
3333
dotnet-version: 8.x
3434

3535
- run: dotnet tool update -g docfx --version 2.78.3
3636
- run: docfx docs/docfx.json
3737

3838
- name: Setup Pages
39-
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # pinning V5 #v5.0.0
39+
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # pinning V5 #v6.0.0
4040
- name: Upload artifact
4141
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # pinning V3 #v4.0.0
4242
with:
4343
# Upload entire repository
4444
path: "docs/_site"
4545
- name: Deploy to GitHub Pages
4646
id: deployment
47-
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # pinning V4 #v4.0.5
47+
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # pinning V4 #v5.0.0
4848

4949

.github/workflows/semgrep-analysis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
if: (github.actor != 'dependabot[bot]')
2626
steps:
2727
# Fetch project source
28-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
28+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
2929

3030
- run: semgrep ci --sarif > semgrep.sarif
3131
env:
@@ -35,7 +35,7 @@ jobs:
3535
p/owasp-top-ten
3636
3737
- name: Upload SARIF file for GitHub Advanced Security Dashboard
38-
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 #v4.31.9
38+
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 #v4.35.1
3939
with:
4040
sarif_file: semgrep.sarif
4141
if: always()

.github/workflows/sync-main-dev.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,27 @@ jobs:
2727
steps:
2828
# Assume an AWS Role that provides access to the Access Token
2929
- name: Configure AWS Credentials
30-
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 #v4
30+
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 #v4
3131
with:
3232
role-to-assume: ${{ secrets.RELEASE_WORKFLOW_ACCESS_TOKEN_ROLE_ARN }}
3333
aws-region: us-west-2
3434
# Retrieve the Access Token from Secrets Manager
3535
- name: Retrieve secret from AWS Secrets Manager
36-
uses: aws-actions/aws-secretsmanager-get-secrets@a9a7eb4e2f2871d30dc5b892576fde60a2ecc802 #v2.0.10
36+
uses: aws-actions/aws-secretsmanager-get-secrets@3a411b6ec5cace3d626412dd917e7bfeac242cfa #v3.0.0
3737
with:
3838
secret-ids: |
3939
AWS_SECRET, ${{ secrets.RELEASE_WORKFLOW_ACCESS_TOKEN_NAME }}
4040
parse-json-secrets: true
4141
# Checkout a full clone of the repo
4242
- name: Checkout code
43-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
43+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
4444
with:
4545
ref: dev
4646
fetch-depth: 0
4747
token: ${{ env.AWS_SECRET_TOKEN }}
4848
# Install .NET8 which is needed for AutoVer
4949
- name: Setup .NET 8.0
50-
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 #v5.0.1
50+
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 #v5.2.0
5151
with:
5252
dotnet-version: 8.0.x
5353
# Install AutoVer which is needed to retrieve information about the current release.
@@ -107,13 +107,13 @@ jobs:
107107
steps:
108108
# Checkout a full clone of the repo
109109
- name: Checkout code
110-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
110+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
111111
with:
112112
ref: releases/next-release
113113
fetch-depth: 0
114114
# Install .NET8 which is needed for AutoVer
115115
- name: Setup .NET 8.0
116-
uses: actions/setup-dotnet@2016bd2012dba4e32de620c46fe006a3ac9f0602 #v5.0.1
116+
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 #v5.2.0
117117
with:
118118
dotnet-version: 8.0.x
119119
# Install AutoVer which is needed to retrieve information about the current release.

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## Release 2026-04-06
2+
3+
### AWS.Messaging (1.3.0)
4+
* Added ISerializationCallback<T> generic interface for type-specific serialization callbacks. Callbacks registered via AddSerializationCallback<TCallback, TMessage>() are only invoked when the message type matches, providing direct typed access to the message payload with zero casting. Also fixed ArgumentNullException constructor usage in EnvelopeSerializer.
5+
16
## Release 2026-03-31
27

38
### AWS.Messaging (1.2.0)

src/AWS.Messaging/AWS.Messaging.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<NoWarn>CS1591</NoWarn>
1919
<SignAssembly>true</SignAssembly>
2020
<AssemblyOriginatorKeyFile>..\..\public.snk</AssemblyOriginatorKeyFile>
21-
<Version>1.2.0</Version>
21+
<Version>1.3.0</Version>
2222
<PublishRepositoryUrl>true</PublishRepositoryUrl>
2323
<EmbedUntrackedSources>true</EmbedUntrackedSources>
2424
<IncludeSymbols>true</IncludeSymbols>

src/AWS.Messaging/Configuration/IMessageBusBuilder.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,16 @@ public interface IMessageBusBuilder
9191
/// <param name="serializationCallback">An instance of <see cref="ISerializationCallback"/>that lets users inject their own metadata to incoming and outgoing messages.</param>
9292
IMessageBusBuilder AddSerializationCallback(ISerializationCallback serializationCallback);
9393

94+
/// <summary>
95+
/// Adds a type-specific serialization callback that is only invoked when the message being
96+
/// serialized matches <typeparamref name="TMessage"/>. This provides direct typed access to
97+
/// the message payload without requiring any casting.
98+
/// </summary>
99+
/// <typeparam name="TCallback">The callback implementation type.</typeparam>
100+
/// <typeparam name="TMessage">The message type this callback handles.</typeparam>
101+
IMessageBusBuilder AddSerializationCallback<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TCallback, TMessage>()
102+
where TCallback : class, ISerializationCallback<TMessage>;
103+
94104
/// <summary>
95105
/// Adds a global message source to the message bus.
96106
/// This source will be added to the message envelope of all the messages sent through the framework.

src/AWS.Messaging/Configuration/MessageBusBuilder.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,14 @@ public IMessageBusBuilder AddSerializationCallback(ISerializationCallback serial
184184
return this;
185185
}
186186

187+
/// <inheritdoc/>
188+
public IMessageBusBuilder AddSerializationCallback<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TCallback, TMessage>()
189+
where TCallback : class, ISerializationCallback<TMessage>
190+
{
191+
_serviceCollection.AddSingleton<ISerializationCallback<TMessage>, TCallback>();
192+
return this;
193+
}
194+
187195
/// <inheritdoc/>
188196
public IMessageBusBuilder AddMessageSource(string messageSource)
189197
{

0 commit comments

Comments
 (0)