diff --git a/.github/workflows/pr-gate.yml b/.github/workflows/pr-gate.yml
index 1d19a88..5863c05 100644
--- a/.github/workflows/pr-gate.yml
+++ b/.github/workflows/pr-gate.yml
@@ -11,22 +11,14 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Setup .NET Core 3.1
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: 3.1.x
- - name: Setup .NET 5
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: 5.0.x
- - name: Setup .NET 6
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: 6.0.x
- name: Setup .NET 8
uses: actions/setup-dotnet@v1
with:
dotnet-version: 8.0.x
+ - name: Setup .NET 10
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 10.0.x
- name: Install dependencies
run: dotnet restore
- name: Build
diff --git a/.github/workflows/publish-nugets.yml b/.github/workflows/publish-nugets.yml
index d908ae6..92fa097 100644
--- a/.github/workflows/publish-nugets.yml
+++ b/.github/workflows/publish-nugets.yml
@@ -9,22 +9,14 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- - name: Setup .NET Core 3.1
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: 3.1.x
- - name: Setup .NET 5
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: 5.0.x
- - name: Setup .NET 6
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: 6.0.x
- name: Setup .NET 8
uses: actions/setup-dotnet@v1
with:
dotnet-version: 8.0.x
+ - name: Setup .NET 10
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 10.0.x
- name: Install dependencies
run: dotnet restore
- name: Build
diff --git a/Directory.Build.props b/Directory.Build.props
index 6fb4881..2c22d1d 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -26,20 +26,20 @@
-
+
all
runtime; build; native; contentfiles; analyzers
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index 4412da1..704ee23 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## 5.8.0
+- Added
+ - `net10.0` added as an additional target framework across `Ev.ServiceBus`, `Ev.ServiceBus.Abstractions`, `Ev.ServiceBus.Apm`, `Ev.ServiceBus.AsyncApi`, `Ev.ServiceBus.HealthChecks`, `Ev.ServiceBus.Mvc`, and `Ev.ServiceBus.Prometheus`, alongside the existing `net8.0` (and `netstandard2.0`/`netstandard2.1` on the core packages). Non-breaking — existing net8.0 consumers are unaffected.
+- Changed
+ - `Ev.ServiceBus.Mvc` no longer references the legacy `Microsoft.AspNetCore.Mvc.Abstractions`/`Microsoft.AspNetCore.Mvc.Core` 2.2.x NuGet packages — it now uses a `FrameworkReference` to `Microsoft.AspNetCore.App`, matching the ASP.NET Core shared-framework model used since .NET Core 3.0.
+ - Bumped `Azure.Identity` to 1.17.1 (1.17.0 was deprecated), `Elastic.Apm` to 1.34.5, `AspNetCore.HealthChecks.AzureServiceBus` to 9.0.0.
+
## 5.7.5
- Fixed
- `ApmTransactionManager` now registers the APM error filter **at construction time** (application startup) instead of lazily inside `OnReceiveCancelled()`. The lazy approach lost a race: during pod graceful shutdown the APM agent flushes its internal buffer concurrently with Service Bus processor teardown, so error events could be sent to APM before `ReceiverWrapper.OnExceptionOccured` ran and had a chance to register the filter. Registering at construction time — before any message processing starts — closes this window.
diff --git a/samples/Ev.ServiceBus.Aspire.Host/Ev.ServiceBus.Aspire.Host.csproj b/samples/Ev.ServiceBus.Aspire.Host/Ev.ServiceBus.Aspire.Host.csproj
index 225854e..d02ab2b 100644
--- a/samples/Ev.ServiceBus.Aspire.Host/Ev.ServiceBus.Aspire.Host.csproj
+++ b/samples/Ev.ServiceBus.Aspire.Host/Ev.ServiceBus.Aspire.Host.csproj
@@ -1,17 +1,17 @@
-
+
Exe
- net8.0
+ net10.0
enable
enable
107e167e-5575-4f6e-8661-fe8d2c335f7a
-
+
diff --git a/samples/Ev.ServiceBus.Aspire.ServiceDefault/Ev.ServiceBus.Aspire.ServiceDefault.csproj b/samples/Ev.ServiceBus.Aspire.ServiceDefault/Ev.ServiceBus.Aspire.ServiceDefault.csproj
index 8cdb216..a33acc7 100644
--- a/samples/Ev.ServiceBus.Aspire.ServiceDefault/Ev.ServiceBus.Aspire.ServiceDefault.csproj
+++ b/samples/Ev.ServiceBus.Aspire.ServiceDefault/Ev.ServiceBus.Aspire.ServiceDefault.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net10.0
enable
enable
true
diff --git a/samples/Ev.ServiceBus.Sample.Contracts/Ev.ServiceBus.Sample.Contracts.csproj b/samples/Ev.ServiceBus.Sample.Contracts/Ev.ServiceBus.Sample.Contracts.csproj
index 9a10cbf..d67bff2 100644
--- a/samples/Ev.ServiceBus.Sample.Contracts/Ev.ServiceBus.Sample.Contracts.csproj
+++ b/samples/Ev.ServiceBus.Sample.Contracts/Ev.ServiceBus.Sample.Contracts.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net10.0
diff --git a/samples/Ev.ServiceBus.Samples.Receiver/Ev.ServiceBus.Samples.Receiver.csproj b/samples/Ev.ServiceBus.Samples.Receiver/Ev.ServiceBus.Samples.Receiver.csproj
index 6588b73..979a27a 100644
--- a/samples/Ev.ServiceBus.Samples.Receiver/Ev.ServiceBus.Samples.Receiver.csproj
+++ b/samples/Ev.ServiceBus.Samples.Receiver/Ev.ServiceBus.Samples.Receiver.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net10.0
true
enable
diff --git a/samples/Ev.ServiceBus.Samples.Sender/Ev.ServiceBus.Samples.Sender.csproj b/samples/Ev.ServiceBus.Samples.Sender/Ev.ServiceBus.Samples.Sender.csproj
index a1e1c72..1fb41e7 100644
--- a/samples/Ev.ServiceBus.Samples.Sender/Ev.ServiceBus.Samples.Sender.csproj
+++ b/samples/Ev.ServiceBus.Samples.Sender/Ev.ServiceBus.Samples.Sender.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net10.0
true
enable
diff --git a/src/Ev.ServiceBus.Abstractions/Ev.ServiceBus.Abstractions.csproj b/src/Ev.ServiceBus.Abstractions/Ev.ServiceBus.Abstractions.csproj
index cdf7a91..dacdabf 100644
--- a/src/Ev.ServiceBus.Abstractions/Ev.ServiceBus.Abstractions.csproj
+++ b/src/Ev.ServiceBus.Abstractions/Ev.ServiceBus.Abstractions.csproj
@@ -1,7 +1,7 @@
- netstandard2.1;netstandard2.0;net8.0
+ netstandard2.1;netstandard2.0;net8.0;net10.0
true
MIT
@@ -14,7 +14,7 @@
enable
-
+
@@ -27,4 +27,7 @@
+
+
+
\ No newline at end of file
diff --git a/src/Ev.ServiceBus.Apm/Ev.ServiceBus.Apm.csproj b/src/Ev.ServiceBus.Apm/Ev.ServiceBus.Apm.csproj
index c5bf004..f73b851 100644
--- a/src/Ev.ServiceBus.Apm/Ev.ServiceBus.Apm.csproj
+++ b/src/Ev.ServiceBus.Apm/Ev.ServiceBus.Apm.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net8.0;net10.0
true
MIT
This package helps you add instrumentation to message handling with Elastic APM.
@@ -15,7 +15,7 @@
-
+
diff --git a/src/Ev.ServiceBus.AsyncApi/Ev.ServiceBus.AsyncApi.csproj b/src/Ev.ServiceBus.AsyncApi/Ev.ServiceBus.AsyncApi.csproj
index 6e4798f..8134868 100644
--- a/src/Ev.ServiceBus.AsyncApi/Ev.ServiceBus.AsyncApi.csproj
+++ b/src/Ev.ServiceBus.AsyncApi/Ev.ServiceBus.AsyncApi.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net8.0;net10.0
true
MIT
This package helps you generate an Async API Schema.
diff --git a/src/Ev.ServiceBus.HealthChecks/Ev.ServiceBus.HealthChecks.csproj b/src/Ev.ServiceBus.HealthChecks/Ev.ServiceBus.HealthChecks.csproj
index 462b6a2..1490c2f 100644
--- a/src/Ev.ServiceBus.HealthChecks/Ev.ServiceBus.HealthChecks.csproj
+++ b/src/Ev.ServiceBus.HealthChecks/Ev.ServiceBus.HealthChecks.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net8.0;net10.0
true
MIT
This package links Ev.ServiceBus and Microsoft.Extensions.Diagnostics.HealthChecks NuGet packages.
@@ -12,8 +12,14 @@
-
-
+
+
+
+
+
+
+
+
diff --git a/src/Ev.ServiceBus.Mvc/Ev.ServiceBus.Mvc.csproj b/src/Ev.ServiceBus.Mvc/Ev.ServiceBus.Mvc.csproj
index bac4ed8..8408259 100644
--- a/src/Ev.ServiceBus.Mvc/Ev.ServiceBus.Mvc.csproj
+++ b/src/Ev.ServiceBus.Mvc/Ev.ServiceBus.Mvc.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net8.0;net10.0
true
MIT
This NuGet contains helpers to better integrate Ev.ServiceBus with Mvc projects.
@@ -15,8 +15,7 @@
-
-
+
diff --git a/src/Ev.ServiceBus.Prometheus/Ev.ServiceBus.Prometheus.csproj b/src/Ev.ServiceBus.Prometheus/Ev.ServiceBus.Prometheus.csproj
index 7794efa..6392def 100644
--- a/src/Ev.ServiceBus.Prometheus/Ev.ServiceBus.Prometheus.csproj
+++ b/src/Ev.ServiceBus.Prometheus/Ev.ServiceBus.Prometheus.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net8.0;net10.0
true
MIT
This package helps you add prometheus meters on top of servicebus messaging.
@@ -11,10 +11,16 @@
-
+
+
+
+
+
+
+
diff --git a/src/Ev.ServiceBus/Ev.ServiceBus.csproj b/src/Ev.ServiceBus/Ev.ServiceBus.csproj
index 416260e..f4b9099 100644
--- a/src/Ev.ServiceBus/Ev.ServiceBus.csproj
+++ b/src/Ev.ServiceBus/Ev.ServiceBus.csproj
@@ -1,7 +1,7 @@
- netstandard2.1;netstandard2.0;net8.0
+ netstandard2.1;netstandard2.0;net8.0;net10.0
true
MIT
This is a wrapper around Microsoft Azure Service Bus
@@ -31,6 +31,11 @@ Its goal to is make it the easiest possible to connect and handle an Azure Servi
+
+
+
+
+
diff --git a/tests/Ev.ServiceBus.AsyncApi.UnitTests/DocumentFilterTest.cs b/tests/Ev.ServiceBus.AsyncApi.UnitTests/DocumentFilterTest.cs
index 736334b..241c09c 100644
--- a/tests/Ev.ServiceBus.AsyncApi.UnitTests/DocumentFilterTest.cs
+++ b/tests/Ev.ServiceBus.AsyncApi.UnitTests/DocumentFilterTest.cs
@@ -1,7 +1,7 @@
+using System.Net;
using System.Text.Json;
using System.Threading.Tasks;
using FluentAssertions;
-using Microsoft.AspNetCore.Http;
using Xunit;
namespace Ev.ServiceBus.AsyncApi.UnitTests;
@@ -15,7 +15,7 @@ public async Task CheckStateOfSenderApp()
var client = factory.CreateClient();
var response = await client.GetAsync("/asyncapi/asyncapi.json");
- response.StatusCode.Should().Be(StatusCodes.Status200OK);
+ response.StatusCode.Should().Be(HttpStatusCode.OK);
var json = await response.Content.ReadAsStringAsync();
var actualDoc = JsonDocument.Parse(json);
@@ -295,7 +295,7 @@ public async Task CheckStateOfReceiverApp()
var factory = new ReceiverAppFactory();
var client = factory.CreateClient();
var response = await client.GetAsync("/asyncapi/asyncapi.json");
- response.StatusCode.Should().Be(StatusCodes.Status200OK);
+ response.StatusCode.Should().Be(HttpStatusCode.OK);
var json = await response.Content.ReadAsStringAsync();
var actualDoc = JsonDocument.Parse(json);
diff --git a/tests/Ev.ServiceBus.AsyncApi.UnitTests/Ev.ServiceBus.AsyncApi.UnitTests.csproj b/tests/Ev.ServiceBus.AsyncApi.UnitTests/Ev.ServiceBus.AsyncApi.UnitTests.csproj
index 786cb25..83fa8d1 100644
--- a/tests/Ev.ServiceBus.AsyncApi.UnitTests/Ev.ServiceBus.AsyncApi.UnitTests.csproj
+++ b/tests/Ev.ServiceBus.AsyncApi.UnitTests/Ev.ServiceBus.AsyncApi.UnitTests.csproj
@@ -1,12 +1,12 @@
- net8.0
+ net10.0
false
-
+
diff --git a/tests/Ev.ServiceBus.HealthChecks.UnitTests/Ev.ServiceBus.HealthChecks.UnitTests.csproj b/tests/Ev.ServiceBus.HealthChecks.UnitTests/Ev.ServiceBus.HealthChecks.UnitTests.csproj
index 42cbac7..ecede8a 100644
--- a/tests/Ev.ServiceBus.HealthChecks.UnitTests/Ev.ServiceBus.HealthChecks.UnitTests.csproj
+++ b/tests/Ev.ServiceBus.HealthChecks.UnitTests/Ev.ServiceBus.HealthChecks.UnitTests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net8.0;net10.0
false
@@ -10,7 +10,10 @@
-
+
+
+
+
diff --git a/tests/Ev.ServiceBus.Mvc.UnitTests/DispatchTest.cs b/tests/Ev.ServiceBus.Mvc.UnitTests/DispatchTest.cs
index 53f5610..357916c 100644
--- a/tests/Ev.ServiceBus.Mvc.UnitTests/DispatchTest.cs
+++ b/tests/Ev.ServiceBus.Mvc.UnitTests/DispatchTest.cs
@@ -1,11 +1,11 @@
-using System.Threading;
+using System.Net;
+using System.Threading;
using System.Threading.Tasks;
using Azure.Messaging.ServiceBus;
using Ev.ServiceBus.Samples.Sender;
using Ev.ServiceBus.UnitTests.Helpers;
using FluentAssertions;
using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Testing;
using Microsoft.AspNetCore.TestHost;
using Microsoft.Extensions.Logging;
@@ -23,7 +23,7 @@ public async Task EventsAreSentAtTheEndOfTheRequestExecution()
var client = factory.CreateClient();
var response = await client.GetAsync("weatherforecast/pushWeather");
- response.StatusCode.Should().Be(StatusCodes.Status200OK);
+ response.StatusCode.Should().Be(HttpStatusCode.OK);
var queue = factory.Services.GetSenderMock("myqueue");
queue.Mock.Verify(o => o.SendMessagesAsync(It.IsAny(), It.IsAny()), Times.Once);
@@ -38,7 +38,7 @@ public async Task FailingRequestsDoNotSendEvents()
var client = factory.CreateClient();
var response = await client.GetAsync("failing/pushWeather");
- response.StatusCode.Should().Be(StatusCodes.Status500InternalServerError);
+ response.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
var queue = factory.Services.GetSenderMock("myqueue");
queue.Mock.Verify(o => o.SendMessagesAsync(It.IsAny(), It.IsAny()), Times.Never);
diff --git a/tests/Ev.ServiceBus.Mvc.UnitTests/Ev.ServiceBus.Mvc.UnitTests.csproj b/tests/Ev.ServiceBus.Mvc.UnitTests/Ev.ServiceBus.Mvc.UnitTests.csproj
index fd5c83e..fa60fb4 100644
--- a/tests/Ev.ServiceBus.Mvc.UnitTests/Ev.ServiceBus.Mvc.UnitTests.csproj
+++ b/tests/Ev.ServiceBus.Mvc.UnitTests/Ev.ServiceBus.Mvc.UnitTests.csproj
@@ -1,12 +1,12 @@
- net8.0
+ net10.0
false
-
+
diff --git a/tests/Ev.ServiceBus.TestHelpers/Ev.ServiceBus.TestHelpers.csproj b/tests/Ev.ServiceBus.TestHelpers/Ev.ServiceBus.TestHelpers.csproj
index 7da80a8..ea8a43f 100644
--- a/tests/Ev.ServiceBus.TestHelpers/Ev.ServiceBus.TestHelpers.csproj
+++ b/tests/Ev.ServiceBus.TestHelpers/Ev.ServiceBus.TestHelpers.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net8.0;net10.0
@@ -9,10 +9,13 @@
-
+
-
+
+
+
+
diff --git a/tests/Ev.ServiceBus.UnitTests/Ev.ServiceBus.UnitTests.csproj b/tests/Ev.ServiceBus.UnitTests/Ev.ServiceBus.UnitTests.csproj
index 4ef7907..8040fc9 100644
--- a/tests/Ev.ServiceBus.UnitTests/Ev.ServiceBus.UnitTests.csproj
+++ b/tests/Ev.ServiceBus.UnitTests/Ev.ServiceBus.UnitTests.csproj
@@ -2,13 +2,13 @@
false
- net8.0
+ net8.0;net10.0
CS0618
enable
-
+