Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
feb2215
Update the transport manifest
Jan 29, 2025
b7f1039
Use alpha version of RabbitMQ transport
Jan 29, 2025
e1d3e74
Update RabbitMQ manifest example
Jan 29, 2025
bc70e39
Check connection string to disable management API
Jan 29, 2025
b75a058
Change lock to semaphoreSlim
Jan 30, 2025
af318eb
Update async/await for createConnection
Jan 30, 2025
87a10c8
Cleanup transport method call
Jan 30, 2025
93ea8be
Update RabbitMQQuery with managementApiUrl for throughput
Feb 2, 2025
850d370
Add functionality for RabbitMQ connection string management options
Feb 2, 2025
b2e595c
Fix diagnostic log text
Feb 2, 2025
7c4e120
Add functionality for management options for direct routing
Feb 2, 2025
2e7dee7
Allow RabbitMQQuery to access the transport
Feb 4, 2025
18e3c87
Update alpha version
Feb 4, 2025
2dcb623
Update transport creation with new API surface
Feb 4, 2025
f8939c0
Remove connection string parsing
Feb 4, 2025
3f079f4
Enable strong naming
Feb 7, 2025
6edd196
Change connection string option to ValidateDeliveryLimit
Feb 11, 2025
316d6ab
Make RabbitMQ transport internals visible to RabbitMQ transport tests
Feb 12, 2025
70e062b
Remove disableManagementApi
Feb 12, 2025
8584013
Update RabbitMQQuery to use the transport management client
Feb 12, 2025
8afde0c
Fix text
Feb 22, 2025
b8fa270
Update API calls
Feb 26, 2025
7b5bb3b
Remove HttpClient and testing for it
Feb 26, 2025
cea5d62
Comment out Vhost property for now
Feb 26, 2025
1e0a1c7
Update transport package
bording Feb 26, 2025
6289b46
Get code compiling
bording Feb 26, 2025
bce209d
Remove InternalsVisibleTo
bording Feb 26, 2025
95777ec
Fix formatting error
bording Feb 26, 2025
07c9c37
First pass cleanup
bording Feb 26, 2025
15e69de
Update to 10.0.0-beta.1
bording Feb 26, 2025
93d0e44
Improve how custom connection string settings are set
bording Feb 26, 2025
39b2807
Change how ManagementClient gets passed in
bording Feb 26, 2025
8290324
Wire up settings that apparently have been lost
bording Feb 26, 2025
a6c4fe2
Use classes from transport
bording Feb 26, 2025
5b45224
Formatting
bording Feb 27, 2025
84b0332
Fix text for transport manifest
Feb 27, 2025
1f712c1
Fix connection string examples
bording Feb 27, 2025
e3b7c85
Remove signing from TestHelper
bording Feb 27, 2025
ece2a41
Remove approval files for deleted tests
bording Feb 27, 2025
8965b45
Update QueueLengthProvider to use management client
bording Feb 27, 2025
94728c8
Get RabbitMQQuery tests working
bording Feb 27, 2025
c69587f
Remove unused parameter from RabbitMQQuery ctor
bording Feb 27, 2025
0a5c9ab
Get QueueLengthProvider tests working
bording Feb 28, 2025
d02e60e
Make IManagementClientProvider lazy to ensure endpoints have started
bording Feb 28, 2025
be035ca
Remove old settings
bording Mar 3, 2025
2f68449
Reorder methods
bording Mar 3, 2025
5d41a6c
Make GetPage private
bording Mar 3, 2025
5ce6b8f
Remove unneeded conversion to RabbitMQBrokerQueueDetails
bording Mar 3, 2025
8f89398
Remove GetPage
bording Mar 3, 2025
b996030
Check for DisableStats in TestConnectionCore
bording Mar 3, 2025
00a6668
Update to 10.0.0-beta.3
bording Mar 3, 2025
ea59075
Migrate RabbitMQ management API settings into connection string
abparticular Mar 4, 2025
cff47bc
Rename extension method
bording Mar 4, 2025
fcb217c
Improve names
bording Mar 4, 2025
a33446b
Update to 10.0.0-beta.4
bording Mar 7, 2025
126c117
Update to RTM
bording Mar 12, 2025
9ba6316
Ensure connection string settings are migrated during upgrade
bording Mar 13, 2025
d4b114d
Make customize methods consistent
bording Mar 13, 2025
ab97415
Update the RabbitMQ prereq prompts
bording Mar 13, 2025
c1e1622
Update wording of prerequisites
bording Mar 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .reposync.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
exclusions:
- src/NServiceBus.snk

2 changes: 1 addition & 1 deletion src/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
<PackageVersion Include="NServiceBus.Metrics" Version="5.0.1" />
<PackageVersion Include="NServiceBus.Metrics.ServiceControl" Version="5.0.0" />
<PackageVersion Include="NServiceBus.Persistence.NonDurable" Version="2.0.1" />
<PackageVersion Include="NServiceBus.RabbitMQ" Version="9.2.0" />
<PackageVersion Include="NServiceBus.RabbitMQ" Version="10.0.0" />
<PackageVersion Include="NServiceBus.SagaAudit" Version="5.0.2" />
<PackageVersion Include="NServiceBus.Testing" Version="9.0.1" />
<PackageVersion Include="NServiceBus.Transport.AzureServiceBus" Version="5.0.0" />
Expand Down
Binary file added src/NServiceBus.snk
Binary file not shown.
12 changes: 10 additions & 2 deletions src/ServiceControl.Config/Commands/ScmuCommandChecks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{
using System;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;
using ServiceControl.Config.Framework;
using ServiceControlInstaller.Engine;
Expand All @@ -21,12 +22,19 @@ protected override async Task<bool> PromptForRabbitMqCheck(bool isUpgrade)
{
var title = isUpgrade ? "UPGRADE WARNING" : "INSTALL WARNING";
var beforeWhat = isUpgrade ? "upgrading" : "installing";
var message = $"ServiceControl version {Constants.CurrentVersion} requires RabbitMQ broker version 3.10.0 or higher. Also, the stream_queue and quorum_queue feature flags must be enabled on the broker. Please confirm your broker meets the minimum requirements before {beforeWhat}.";
var question = "Do you want to proceed?";
var yes = "Yes, my RabbitMQ broker meets the minimum requirements";
var no = "No, cancel the install";

var continueInstall = await windowManager.ShowYesNoDialog(title, message, question, yes, no);
var message = new StringBuilder();
message.AppendLine($"ServiceControl version {Constants.CurrentVersion} requires:");
message.AppendLine("• RabbitMQ broker version 3.10.0 or higher");
message.AppendLine("• The stream_queue and quorum_queue feature flags must be enabled");
message.AppendLine($"• The management plugin API must be enabled and accessible. This might require custom settings to be added to the connection string before {beforeWhat}. See the ServiceControl documentation for details.");
message.AppendLine();
message.AppendLine($"Please confirm your broker meets the minimum requirements before {beforeWhat}.");

var continueInstall = await windowManager.ShowYesNoDialog(title, message.ToString(), question, yes, no);
return continueInstall;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
static class AcknowledgementValues
{
public const string RabbitMQBrokerVersion310 = "RabbitMQBrokerVersion310";
public const string RabbitMQManagementApi = "RabbitMQManagementApi";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,23 @@ protected override Task NotifyForMissingSystemPrerequisites(string missingPrereq

protected override Task<bool> PromptForRabbitMqCheck(bool isUpgrade)
{
if (acknowledgements.Any(ack => ack.Equals(AcknowledgementValues.RabbitMQBrokerVersion310, StringComparison.OrdinalIgnoreCase)))
if (!acknowledgements.Any(ack => ack.Equals(AcknowledgementValues.RabbitMQBrokerVersion310, StringComparison.OrdinalIgnoreCase)))
{
return Task.FromResult(true);
var terminateMsg = $"ServiceControl version {Constants.CurrentVersion} requires RabbitMQ broker version 3.10.0 or higher. Also, the stream_queue and quorum_queue feature flags must be enabled on the broker. Use -Acknowledgements {AcknowledgementValues.RabbitMQBrokerVersion310} if you are sure your broker meets these requirements.";

Terminate(terminateMsg, "Install Error", ErrorCategory.InvalidArgument);
return Task.FromResult(false);
}

var terminateMsg = $"ServiceControl version {Constants.CurrentVersion} requires RabbitMQ broker version 3.10.0 or higher. Also, the stream_queue and quorum_queue feature flags must be enabled on the broker. Use -Acknowledgements {AcknowledgementValues.RabbitMQBrokerVersion310} if you are sure your broker meets these requirements.";
if (!acknowledgements.Any(ack => ack.Equals(AcknowledgementValues.RabbitMQManagementApi, StringComparison.OrdinalIgnoreCase)))
{
var terminateMsg = $"ServiceControl version {Constants.CurrentVersion} requires that the management plugin API must be enabled and accessible. This might require custom settings to be added to the connection string. See the ServiceControl documentation for details. Use -Acknowledgements {AcknowledgementValues.RabbitMQManagementApi} if you are sure your broker meets these requirements.";

Terminate(terminateMsg, "Install Error", ErrorCategory.InvalidArgument);
return Task.FromResult(false);
Terminate(terminateMsg, "Install Error", ErrorCategory.InvalidArgument);
return Task.FromResult(false);
}

return Task.FromResult(true);
}

protected override Task<bool> PromptToStopRunningInstance(BaseService instance)
Expand Down
286 changes: 0 additions & 286 deletions src/ServiceControl.Transports.RabbitMQ/ConnectionConfiguration.cs

This file was deleted.

Loading