diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 188cc534d5..be7144faf5 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -47,7 +47,7 @@
-
+
diff --git a/src/ServiceControl.AcceptanceTests/Recoverability/When_editing_message_headers.cs b/src/ServiceControl.AcceptanceTests/Recoverability/When_editing_message_headers.cs
index faa49666b8..113d45a820 100644
--- a/src/ServiceControl.AcceptanceTests/Recoverability/When_editing_message_headers.cs
+++ b/src/ServiceControl.AcceptanceTests/Recoverability/When_editing_message_headers.cs
@@ -66,8 +66,8 @@ public async Task A_new_message_with_edited_headers_is_sent()
{
Assert.That(context.EditedMessageId, Is.Not.EqualTo(context.OriginalMessageId));
Assert.That(context.OriginalMessageFailure.Status, Is.EqualTo(FailedMessageStatus.Resolved));
- Assert.That(context.EditedMessageHeaders["AcceptanceTest.NewHeader"], Is.EqualTo("42").AsCollection);
- Assert.That(context.EditedMessageHeaders["ServiceControl.EditOf"], Is.EqualTo(context.UniqueMessageId).AsCollection);
+ Assert.That(context.EditedMessageHeaders["AcceptanceTest.NewHeader"], Is.EqualTo("42"));
+ Assert.That(context.EditedMessageHeaders["ServiceControl.EditOf"], Is.EqualTo(context.UniqueMessageId));
});
}
diff --git a/src/ServiceControl.Persistence.RavenDB/ConnectedApplicationsDataStore.cs b/src/ServiceControl.Persistence.RavenDB/ConnectedApplicationsDataStore.cs
deleted file mode 100644
index 96bc4c1476..0000000000
--- a/src/ServiceControl.Persistence.RavenDB/ConnectedApplicationsDataStore.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace ServiceControl.Persistence.RavenDB
-{
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
-
- class ConnectedApplicationsDataStore(IRavenSessionProvider sessionProvider) : IConnectedApplicationsDataStore
- {
- public async Task Add(string connectedApplication)
- {
- using var session = await sessionProvider.OpenSession();
- var connectedApplications = await session.LoadAsync(StorageKey) ?? new ConnectedApplications();
-
- if (!connectedApplications.Applications.Any(application => string.Equals(application, connectedApplication, System.StringComparison.InvariantCultureIgnoreCase)))
- {
- connectedApplications.Applications.Add(connectedApplication);
- }
-
- await session.StoreAsync(connectedApplications, StorageKey);
- await session.SaveChangesAsync();
- }
-
- public async Task> GetConnectedApplications()
- {
- using var session = await sessionProvider.OpenSession();
- var applications = await session.LoadAsync(StorageKey);
-
- return applications?.Applications;
- }
-
- class ConnectedApplications
- {
- public List Applications { get; set; } = [];
- }
-
- const string StorageKey = "ConnectedApplications";
- }
-}
\ No newline at end of file
diff --git a/src/ServiceControl.Persistence.RavenDB/RavenPersistence.cs b/src/ServiceControl.Persistence.RavenDB/RavenPersistence.cs
index 335e8a8d4f..7b1e07ecbb 100644
--- a/src/ServiceControl.Persistence.RavenDB/RavenPersistence.cs
+++ b/src/ServiceControl.Persistence.RavenDB/RavenPersistence.cs
@@ -66,7 +66,6 @@ public void AddPersistence(IServiceCollection services)
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
- services.AddSingleton();
}
public void AddInstaller(IServiceCollection services)
diff --git a/src/ServiceControl.Persistence.Tests.RavenDB/ConnectedApplications/ConnectedApplicationsTests.cs b/src/ServiceControl.Persistence.Tests.RavenDB/ConnectedApplications/ConnectedApplicationsTests.cs
deleted file mode 100644
index 760279079f..0000000000
--- a/src/ServiceControl.Persistence.Tests.RavenDB/ConnectedApplications/ConnectedApplicationsTests.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-namespace ServiceControl.Persistence.Tests.RavenDB.ConnectedApplications
-{
- using System.Threading.Tasks;
- using Microsoft.Extensions.DependencyInjection;
- using NUnit.Framework;
- using ServiceControl.Persistence.RavenDB;
-
- [TestFixture]
- class ConnectedApplicationsTests : RavenPersistenceTestBase
- {
- public ConnectedApplicationsTests() =>
- RegisterServices = services =>
- {
- services.AddSingleton();
- };
-
- [Test]
- public async Task ConnectedApplications_can_be_saved()
- {
- var connectedApplicationsDataStore = ServiceProvider.GetRequiredService();
-
- var connectedApplication1 = "ServiceControl.Connector.MassTransit";
- var connectedApplication2 = "ServiceControl.Connector.Kafka";
-
- await connectedApplicationsDataStore.Add(connectedApplication1).ConfigureAwait(false);
- await connectedApplicationsDataStore.Add(connectedApplication2).ConfigureAwait(false);
-
- var result = await connectedApplicationsDataStore.GetConnectedApplications();
-
- Assert.That(result, Is.EqualTo(new[] { connectedApplication1, connectedApplication2 }).AsCollection);
- }
- }
-}
\ No newline at end of file
diff --git a/src/ServiceControl.Persistence/IConnectedApplicationsDataStore.cs b/src/ServiceControl.Persistence/IConnectedApplicationsDataStore.cs
deleted file mode 100644
index dd45cc72ca..0000000000
--- a/src/ServiceControl.Persistence/IConnectedApplicationsDataStore.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace ServiceControl.Persistence
-{
- using System.Collections.Generic;
- using System.Threading.Tasks;
-
- public interface IConnectedApplicationsDataStore
- {
- Task Add(string connectedApplication);
- Task> GetConnectedApplications();
- }
-}
\ No newline at end of file
diff --git a/src/ServiceControl.UnitTests/API/APIApprovals.cs b/src/ServiceControl.UnitTests/API/APIApprovals.cs
index 4e8708febb..af4da85885 100644
--- a/src/ServiceControl.UnitTests/API/APIApprovals.cs
+++ b/src/ServiceControl.UnitTests/API/APIApprovals.cs
@@ -19,6 +19,7 @@
using ServiceBus.Management.Infrastructure.Settings;
using ServiceControl.Infrastructure.Api;
using ServiceControl.Infrastructure.WebApi;
+ using ServiceControl.Monitoring.HeartbeatMonitoring;
[TestFixture]
class APIApprovals
@@ -34,7 +35,7 @@ public async Task RootPathValue()
new ActiveLicense(null) { IsValid = true },
new Settings(),
null,
- null
+ new MassTransitConnectorHeartbeatStatus()
)
)
{
diff --git a/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs b/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs
index 4212fc51c5..fa06e80bc9 100644
--- a/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs
+++ b/src/ServiceControl/Infrastructure/Api/ConfigurationApi.cs
@@ -8,16 +8,15 @@
using System.Threading;
using System.Threading.Tasks;
using Configuration;
+using Monitoring.HeartbeatMonitoring;
using Particular.ServiceControl.Licensing;
using ServiceBus.Management.Infrastructure.Settings;
using ServiceControl.Api;
using ServiceControl.Api.Contracts;
-using ServiceControl.Persistence;
class ConfigurationApi(ActiveLicense license,
Settings settings,
- IConnectedApplicationsDataStore connectedApplicationsDataStore,
- IHttpClientFactory httpClientFactory) : IConfigurationApi
+ IHttpClientFactory httpClientFactory, MassTransitConnectorHeartbeatStatus connectorHeartbeatStatus) : IConfigurationApi
{
public Task GetUrls(string baseUrl, CancellationToken cancellationToken)
{
@@ -51,7 +50,7 @@ public Task GetUrls(string baseUrl, CancellationToken cancellationToke
}
- public async Task