diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f02ffd00..d116cd705 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,9 +15,9 @@ jobs: strategy: matrix: include: - - os: windows-2019 + - os: windows-2022 name: Windows - - os: ubuntu-20.04 + - os: ubuntu-22.04 name: Linux fail-fast: false steps: @@ -33,9 +33,8 @@ jobs: - name: Setup .NET SDK uses: actions/setup-dotnet@v3.2.0 with: - dotnet-version: | - 7.0.x - 6.0.x + 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 431ca21c6..263aa870c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,7 +8,7 @@ env: DOTNET_NOLOGO: true jobs: release: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v3.6.0 @@ -17,7 +17,8 @@ jobs: - name: Setup .NET SDK uses: actions/setup-dotnet@v3.2.0 with: - dotnet-version: 7.0.x + dotnet-version: 8.0.x + dotnet-quality: 'preview' - name: Build run: dotnet build src --configuration Release - name: Sign NuGet packages diff --git a/src/Custom.Build.props b/src/Custom.Build.props index 5528a3bd0..dc95a5770 100644 --- a/src/Custom.Build.props +++ b/src/Custom.Build.props @@ -1,7 +1,7 @@ - 8.1 + 9.0 minor diff --git a/src/NServiceBus.Transport.RabbitMQ.AcceptanceTests/NServiceBus.Transport.RabbitMQ.AcceptanceTests.csproj b/src/NServiceBus.Transport.RabbitMQ.AcceptanceTests/NServiceBus.Transport.RabbitMQ.AcceptanceTests.csproj index d5ee444a3..b5a4e2e01 100644 --- a/src/NServiceBus.Transport.RabbitMQ.AcceptanceTests/NServiceBus.Transport.RabbitMQ.AcceptanceTests.csproj +++ b/src/NServiceBus.Transport.RabbitMQ.AcceptanceTests/NServiceBus.Transport.RabbitMQ.AcceptanceTests.csproj @@ -1,7 +1,7 @@ - net472;net6.0;net7.0 + net8.0 true ..\NServiceBusTests.snk @@ -12,13 +12,13 @@ - + - + diff --git a/src/NServiceBus.Transport.RabbitMQ.CommandLine.Tests/NServiceBus.Transport.RabbitMQ.CommandLine.Tests.csproj b/src/NServiceBus.Transport.RabbitMQ.CommandLine.Tests/NServiceBus.Transport.RabbitMQ.CommandLine.Tests.csproj index 5621b3b5e..84698d0f6 100644 --- a/src/NServiceBus.Transport.RabbitMQ.CommandLine.Tests/NServiceBus.Transport.RabbitMQ.CommandLine.Tests.csproj +++ b/src/NServiceBus.Transport.RabbitMQ.CommandLine.Tests/NServiceBus.Transport.RabbitMQ.CommandLine.Tests.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0 + net8.0 true ..\NServiceBusTests.snk @@ -12,7 +12,7 @@ - + diff --git a/src/NServiceBus.Transport.RabbitMQ.CommandLine/NServiceBus.Transport.RabbitMQ.CommandLine.csproj b/src/NServiceBus.Transport.RabbitMQ.CommandLine/NServiceBus.Transport.RabbitMQ.CommandLine.csproj index c179a8ff0..289523c6b 100644 --- a/src/NServiceBus.Transport.RabbitMQ.CommandLine/NServiceBus.Transport.RabbitMQ.CommandLine.csproj +++ b/src/NServiceBus.Transport.RabbitMQ.CommandLine/NServiceBus.Transport.RabbitMQ.CommandLine.csproj @@ -1,7 +1,7 @@ - net6.0;net7.0 + net8.0 Exe rabbitmq-transport True @@ -14,7 +14,7 @@ - + diff --git a/src/NServiceBus.Transport.RabbitMQ.Tests/ApprovalFiles/APIApprovals.Approve.approved.txt b/src/NServiceBus.Transport.RabbitMQ.Tests/ApprovalFiles/APIApprovals.Approve.approved.txt index 3e8faf5d7..2c12453b6 100644 --- a/src/NServiceBus.Transport.RabbitMQ.Tests/ApprovalFiles/APIApprovals.Approve.approved.txt +++ b/src/NServiceBus.Transport.RabbitMQ.Tests/ApprovalFiles/APIApprovals.Approve.approved.txt @@ -2,16 +2,6 @@ [assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"NServiceBus.Transport.RabbitMQ.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001007f16e21368ff041183fab592d9e8ed37e7be355e93323147a1d29983d6e591b04282e4da0c9e18bd901e112c0033925eb7d7872c2f1706655891c5c9d57297994f707d16ee9a8f40d978f064ee1ffc73c0db3f4712691b23bf596f75130f4ec978cf78757ec034625a5f27e6bb50c618931ea49f6f628fd74271c32959efb1c5")] namespace NServiceBus { - [System.Obsolete("The transport no longer has configurable settings for delayed delivery. Will be r" + - "emoved in version 9.0.0.", true)] - public class DelayedDeliverySettings - { - public DelayedDeliverySettings() { } - [System.Obsolete("The TimeoutManager has been removed from NServiceBus 8. See the upgrade guide for" + - " details on how to use the timeout migration tool. The member currently throws a" + - " NotImplementedException. Will be removed in version 9.0.0.", true)] - public NServiceBus.DelayedDeliverySettings EnableTimeoutManager() { } - } public static class NonPersistentDeliveryModeExtensions { public static void UseNonPersistentDeliveryMode(this NServiceBus.PublishOptions options) { } @@ -41,8 +31,8 @@ namespace NServiceBus public override System.Threading.Tasks.Task Initialize(NServiceBus.Transport.HostSettings hostSettings, NServiceBus.Transport.ReceiveSettings[] receivers, string[] sendingAddresses, System.Threading.CancellationToken cancellationToken = default) { } [System.Obsolete("Inject the ITransportAddressResolver type to access the address translation mecha" + "nism at runtime. See the NServiceBus version 8 upgrade guide for further details" + - ". Will be treated as an error from version 9.0.0. Will be removed in version 10." + - "0.0.", false)] + ". The member currently throws a NotImplementedException. Will be removed in vers" + + "ion 10.0.0.", true)] public override string ToTransportAddress(NServiceBus.Transport.QueueAddress address) { } } public static class RabbitMQTransportSettingsExtensions @@ -52,9 +42,6 @@ namespace NServiceBus public static NServiceBus.TransportExtensions ConnectionString(this NServiceBus.TransportExtensions transportExtensions, System.Func getConnectionString) { } public static NServiceBus.TransportExtensions ConnectionString(this NServiceBus.TransportExtensions transportExtensions, string connectionString) { } public static NServiceBus.TransportExtensions CustomMessageIdStrategy(this NServiceBus.TransportExtensions transportExtensions, System.Func customIdStrategy) { } - [System.Obsolete("The transport no longer has configurable settings for delayed delivery. The membe" + - "r currently throws a NotImplementedException. Will be removed in version 9.0.0.", true)] - public static NServiceBus.DelayedDeliverySettings DelayedDelivery(this NServiceBus.TransportExtensions transportExtensions) { } public static NServiceBus.TransportExtensions DisableDurableExchangesAndQueues(this NServiceBus.TransportExtensions transportExtensions) { } public static NServiceBus.TransportExtensions DisableRemoteCertificateValidation(this NServiceBus.TransportExtensions transportExtensions) { } public static NServiceBus.TransportExtensions PrefetchCount(this NServiceBus.TransportExtensions transportExtensions, ushort prefetchCount) { } diff --git a/src/NServiceBus.Transport.RabbitMQ.Tests/NServiceBus.Transport.RabbitMQ.Tests.csproj b/src/NServiceBus.Transport.RabbitMQ.Tests/NServiceBus.Transport.RabbitMQ.Tests.csproj index 1cf499d72..30902aba7 100644 --- a/src/NServiceBus.Transport.RabbitMQ.Tests/NServiceBus.Transport.RabbitMQ.Tests.csproj +++ b/src/NServiceBus.Transport.RabbitMQ.Tests/NServiceBus.Transport.RabbitMQ.Tests.csproj @@ -1,7 +1,7 @@ - net472;net6.0;net7.0 + net8.0 true ..\NServiceBusTests.snk @@ -12,13 +12,13 @@ - + - + diff --git a/src/NServiceBus.Transport.RabbitMQ.TransportTests/NServiceBus.Transport.RabbitMQ.TransportTests.csproj b/src/NServiceBus.Transport.RabbitMQ.TransportTests/NServiceBus.Transport.RabbitMQ.TransportTests.csproj index ea91b538a..99ead6551 100644 --- a/src/NServiceBus.Transport.RabbitMQ.TransportTests/NServiceBus.Transport.RabbitMQ.TransportTests.csproj +++ b/src/NServiceBus.Transport.RabbitMQ.TransportTests/NServiceBus.Transport.RabbitMQ.TransportTests.csproj @@ -1,7 +1,7 @@ - net472;net6.0;net7.0 + net8.0 @@ -10,13 +10,13 @@ - + - + diff --git a/src/NServiceBus.Transport.RabbitMQ/Configuration/RabbitMQTransportSettingsExtensions.cs b/src/NServiceBus.Transport.RabbitMQ/Configuration/RabbitMQTransportSettingsExtensions.cs index 3cb33f1f7..62ff923e3 100644 --- a/src/NServiceBus.Transport.RabbitMQ/Configuration/RabbitMQTransportSettingsExtensions.cs +++ b/src/NServiceBus.Transport.RabbitMQ/Configuration/RabbitMQTransportSettingsExtensions.cs @@ -7,15 +7,16 @@ /// /// Adds access to the RabbitMQ transport config to the global Transports object. /// - public static partial class RabbitMQTransportSettingsExtensions + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] + public static class RabbitMQTransportSettingsExtensions { /// /// Configures NServiceBus to use the given transport. /// - [PreObsolete( - RemoveInVersion = "10", - TreatAsErrorFromVersion = "9", - ReplacementTypeOrMember = "EndpointConfiguration.UseTransport(TransportDefinition)")] + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", + ReplacementTypeOrMember = "EndpointConfiguration.UseTransport(TransportDefinition)", + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions UseTransport(this EndpointConfiguration config) where T : RabbitMQTransport { Guard.AgainstNull(nameof(config), config); @@ -35,10 +36,9 @@ public static TransportExtensions UseTransport(this Endpoi /// The transport settings. /// The hostname of the node. /// Indicates if the connection to the node should be secured with TLS. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions AddClusterNode(this TransportExtensions transportExtensions, string hostName, bool useTls) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -55,10 +55,9 @@ public static TransportExtensions AddClusterNode(this Transpo /// The port of the node. /// Indicates if the connection to the node should be secured with TLS. /// - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions AddClusterNode(this TransportExtensions transportExtensions, string hostName, int port, bool useTls) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -70,10 +69,9 @@ public static TransportExtensions AddClusterNode(this Transpo /// /// The connection string to use when connecting to the broker. /// - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions ConnectionString(this TransportExtensions transportExtensions, string connectionString) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -86,10 +84,9 @@ public static TransportExtensions ConnectionString(this Trans /// /// The connection string to use when connecting to the broker. /// - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions ConnectionString(this TransportExtensions transportExtensions, Func getConnectionString) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -104,11 +101,10 @@ public static TransportExtensions ConnectionString(this Trans /// /// The transport settings. /// The user-defined strategy for giving the message a unique ID. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.MessageIdStrategy", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions CustomMessageIdStrategy(this TransportExtensions transportExtensions, Func customIdStrategy) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -122,10 +118,9 @@ public static TransportExtensions CustomMessageIdStrategy(thi /// Specifies that exchanges and queues should be declared as non-durable. /// /// - [PreObsolete( - Message = "This is now part of routing topology configuration, which has been moved to the constructor of the RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", + Message = "This is now part of routing topology configuration, which has been moved to the constructor of the RabbitMQTransport class.", + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions DisableDurableExchangesAndQueues(this TransportExtensions transportExtensions) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -137,11 +132,10 @@ public static TransportExtensions DisableDurableExchangesAndQ /// /// Disables all remote certificate validation when connecting to the broker via TLS. /// - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.ValidateRemoteCertificate", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions DisableRemoteCertificateValidation(this TransportExtensions transportExtensions) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -155,11 +149,10 @@ public static TransportExtensions DisableRemoteCertificateVal /// /// The transport settings. /// The prefetch count to use. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.PrefetchCountCalculation", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions PrefetchCount(this TransportExtensions transportExtensions, ushort prefetchCount) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -173,11 +166,10 @@ public static TransportExtensions PrefetchCount(this Transpor /// /// The transport settings. /// The multiplier value to use in the prefetch calculation. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.PrefetchCountCalculation", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions PrefetchMultiplier(this TransportExtensions transportExtensions, int prefetchMultiplier) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -192,11 +184,10 @@ public static TransportExtensions PrefetchMultiplier(this Tra /// /// The transport settings. /// The certificate to use for client authentication. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.ClientCertificate", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions SetClientCertificate(this TransportExtensions transportExtensions, X509Certificate2 clientCertificate) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -212,11 +203,10 @@ public static TransportExtensions SetClientCertificate(this T /// The transport settings. /// The path to the certificate file. /// The password for the certificate specified in . - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.ClientCertificate", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions SetClientCertificate(this TransportExtensions transportExtensions, string path, string password) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -232,11 +222,10 @@ public static TransportExtensions SetClientCertificate(this T /// /// The transport settings. /// The time interval to use. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.HeartbeatInterval", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions SetHeartbeatInterval(this TransportExtensions transportExtensions, TimeSpan heartbeatInterval) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -251,11 +240,10 @@ public static TransportExtensions SetHeartbeatInterval(this T /// /// The transport settings. /// The time interval to use. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.NetworkRecoveryInterval", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions SetNetworkRecoveryInterval(this TransportExtensions transportExtensions, TimeSpan networkRecoveryInterval) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -270,11 +258,10 @@ public static TransportExtensions SetNetworkRecoveryInterval( /// /// The transport settings. /// The time to wait before triggering the circuit breaker. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.TimeToWaitBeforeTriggeringCircuitBreaker", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions TimeToWaitBeforeTriggeringCircuitBreaker(this TransportExtensions transportExtensions, TimeSpan waitTime) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -289,10 +276,9 @@ public static TransportExtensions TimeToWaitBeforeTriggeringC /// /// The transport settings. /// The type of queue that the endpoint should use. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", Message = "Routing topology configuration has been moved to the constructor of the RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions UseConventionalRoutingTopology(this TransportExtensions transportExtensions, QueueType queueType) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -307,10 +293,9 @@ public static TransportExtensions UseConventionalRoutingTopol /// /// The function used to create the routing topology instance. The parameter of the function indicates whether exchanges and queues declared by the routing topology should be durable. /// - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", Message = "Routing topology configuration has been moved to the constructor of the RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions UseCustomRoutingTopology(this TransportExtensions transportExtensions, Func topologyFactory) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -327,10 +312,9 @@ public static TransportExtensions UseCustomRoutingTopology(th /// The type of queue that the endpoint should use. /// The routing key convention. /// The exchange name convention. - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", Message = "Routing topology configuration has been moved to the constructor of the RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions UseDirectRoutingTopology(this TransportExtensions transportExtensions, QueueType queueType, Func routingKeyConvention = null, Func exchangeNameConvention = null) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); @@ -343,11 +327,10 @@ public static TransportExtensions UseDirectRoutingTopology(th /// Specifies that an external authentication mechanism should be used for client authentication. /// /// - [PreObsolete( + [PreObsolete("https://github.com/Particular/NServiceBus/issues/6811", ReplacementTypeOrMember = "RabbitMQTransport.UseExternalAuthMechanism", Message = "The configuration has been moved to RabbitMQTransport class.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] + Note = "Should not be converted to an ObsoleteEx until API mismatch described in issue is resolved.")] public static TransportExtensions UseExternalAuthMechanism(this TransportExtensions transportExtensions) { Guard.AgainstNull(nameof(transportExtensions), transportExtensions); diff --git a/src/NServiceBus.Transport.RabbitMQ/NServiceBus.Transport.RabbitMQ.csproj b/src/NServiceBus.Transport.RabbitMQ/NServiceBus.Transport.RabbitMQ.csproj index 6dcf561f1..cf31c5c74 100644 --- a/src/NServiceBus.Transport.RabbitMQ/NServiceBus.Transport.RabbitMQ.csproj +++ b/src/NServiceBus.Transport.RabbitMQ/NServiceBus.Transport.RabbitMQ.csproj @@ -1,20 +1,19 @@ - net472;net6.0 + net8.0 true ..\NServiceBus.snk - 10.0 - - - + + + - + diff --git a/src/NServiceBus.Transport.RabbitMQ/PreObsoleteAttribute.cs b/src/NServiceBus.Transport.RabbitMQ/PreObsoleteAttribute.cs index 26427e75a..83b8df9ee 100644 --- a/src/NServiceBus.Transport.RabbitMQ/PreObsoleteAttribute.cs +++ b/src/NServiceBus.Transport.RabbitMQ/PreObsoleteAttribute.cs @@ -3,14 +3,22 @@ using System; /// - /// Meant for staging future obsoletes. Mimics the structure of . + /// Meant for staging future obsoletes. /// + [AttributeUsage(AttributeTargets.All)] sealed class PreObsoleteAttribute : Attribute { - public string RemoveInVersion { get; set; } - public string TreatAsErrorFromVersion { get; set; } + public PreObsoleteAttribute(string contextUrl) + { + ContextUrl = contextUrl; + } + + public string ContextUrl { get; } + public string ReplacementTypeOrMember { get; set; } + public string Message { get; set; } + public string Note { get; set; } } } \ No newline at end of file diff --git a/src/NServiceBus.Transport.RabbitMQ/RabbitMQTransport.cs b/src/NServiceBus.Transport.RabbitMQ/RabbitMQTransport.cs index aee218495..020ed9288 100644 --- a/src/NServiceBus.Transport.RabbitMQ/RabbitMQTransport.cs +++ b/src/NServiceBus.Transport.RabbitMQ/RabbitMQTransport.cs @@ -184,16 +184,44 @@ public override Task Initialize(HostSettings hostSettin return Task.FromResult(infra); } -#pragma warning disable CS0672 // Member overrides obsolete member - /// - [ObsoleteEx( - Message = "Inject the ITransportAddressResolver type to access the address translation mechanism at runtime. See the NServiceBus version 8 upgrade guide for further details.", - TreatAsErrorFromVersion = "9", - RemoveInVersion = "10")] - public override string ToTransportAddress(QueueAddress address) => RabbitMQTransportInfrastructure.TranslateAddress(address); -#pragma warning restore CS0672 // Member overrides obsolete member - /// public override IReadOnlyCollection GetSupportedTransactionModes() => new[] { TransportTransactionMode.ReceiveOnly }; + + // Remove all Legacy API stuff below when PreObsoletes are converted + + internal string LegacyApiConnectionString { get; set; } + + internal Func TopologyFactory { get; set; } + + internal bool UseDurableExchangesAndQueues { get; set; } = true; + + bool legacyMode; + + internal RabbitMQTransport() : base(TransportTransactionMode.ReceiveOnly, true, true, true) + { + legacyMode = true; + } + + void ValidateAndApplyLegacyConfiguration() + { + if (!legacyMode) + { + return; + } + + if (TopologyFactory == null) + { + throw new Exception("A routing topology must be configured with one of the 'EndpointConfiguration.UseTransport().UseXXXXRoutingTopology()` methods. Most new projects should use the Conventional routing topology."); + } + + RoutingTopology = TopologyFactory(UseDurableExchangesAndQueues); + + if (string.IsNullOrEmpty(LegacyApiConnectionString)) + { + throw new Exception("A connection string must be configured with 'EndpointConfiguration.UseTransport().ConnectionString()` method."); + } + + ConnectionConfiguration = ConnectionConfiguration.Create(LegacyApiConnectionString); + } } } \ No newline at end of file diff --git a/src/NServiceBus.Transport.RabbitMQ/obsoletes-v9.cs b/src/NServiceBus.Transport.RabbitMQ/obsoletes-v9.cs index d284880dd..1833ec1f8 100644 --- a/src/NServiceBus.Transport.RabbitMQ/obsoletes-v9.cs +++ b/src/NServiceBus.Transport.RabbitMQ/obsoletes-v9.cs @@ -3,73 +3,19 @@ namespace NServiceBus { using System; - using Transport.RabbitMQ; + using NServiceBus.Transport; - public static partial class RabbitMQTransportSettingsExtensions - { - [ObsoleteEx( - Message = "The transport no longer has configurable settings for delayed delivery.", - TreatAsErrorFromVersion = "8", - RemoveInVersion = "9")] - public static DelayedDeliverySettings DelayedDelivery(this TransportExtensions transportExtensions) - { - throw new NotImplementedException(); - } - } - - [ObsoleteEx( - Message = "The transport no longer has configurable settings for delayed delivery.", - TreatAsErrorFromVersion = "8", - RemoveInVersion = "9")] - public class DelayedDeliverySettings + public partial class RabbitMQTransport { [ObsoleteEx( - Message = "The TimeoutManager has been removed from NServiceBus 8. See the upgrade guide for details on how to use the timeout migration tool.", - TreatAsErrorFromVersion = "8", - RemoveInVersion = "9")] - public DelayedDeliverySettings EnableTimeoutManager() - { - throw new NotImplementedException(); - } + Message = "Inject the ITransportAddressResolver type to access the address translation mechanism at runtime. See the NServiceBus version 8 upgrade guide for further details.", + TreatAsErrorFromVersion = "9", + RemoveInVersion = "10")] +#pragma warning disable CS0672 // Member overrides obsolete member + public override string ToTransportAddress(QueueAddress address) => throw new NotImplementedException(); +#pragma warning restore CS0672 // Member overrides obsolete member } - public partial class RabbitMQTransport - { - internal string LegacyApiConnectionString { get; set; } - - internal Func TopologyFactory { get; set; } - - internal bool UseDurableExchangesAndQueues { get; set; } = true; - - bool legacyMode; - - internal RabbitMQTransport() : base(TransportTransactionMode.ReceiveOnly, true, true, true) - { - legacyMode = true; - } - - void ValidateAndApplyLegacyConfiguration() - { - if (!legacyMode) - { - return; - } - - if (TopologyFactory == null) - { - throw new Exception("A routing topology must be configured with one of the 'EndpointConfiguration.UseTransport().UseXXXXRoutingTopology()` methods. Most new projects should use the Conventional routing topology."); - } - - RoutingTopology = TopologyFactory(UseDurableExchangesAndQueues); - - if (string.IsNullOrEmpty(LegacyApiConnectionString)) - { - throw new Exception("A connection string must be configured with 'EndpointConfiguration.UseTransport().ConnectionString()` method."); - } - - ConnectionConfiguration = ConnectionConfiguration.Create(LegacyApiConnectionString); - } - } } #pragma warning restore 1591 diff --git a/src/targets/Targets.csproj b/src/targets/Targets.csproj index f3f44ff18..b321da8d0 100644 --- a/src/targets/Targets.csproj +++ b/src/targets/Targets.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 Exe