diff --git a/src/Umbraco.Core/Components/CompositionExtensions.cs b/src/Umbraco.Core/Components/CompositionExtensions.cs
index 1bbb3faff0..abc0fa3862 100644
--- a/src/Umbraco.Core/Components/CompositionExtensions.cs
+++ b/src/Umbraco.Core/Components/CompositionExtensions.cs
@@ -172,23 +172,16 @@ namespace Umbraco.Core.Components
composition.Container.RegisterSingleton(_ => registrar);
}
-
- // review since only one is called in the core for now, I remove this
- // it allows us to wrap the factory to "allow re-registration".
- /////
- ///// Sets the server messenger.
- /////
- ///// The type of the server registrar.
- ///// The composition.
- //public static void SetServerMessenger(this Composition composition)
- // where T : IServerMessenger
- //{
- // composition.Container.Register(Lifetime.Singleton);
- //}
-
- private static Func serverMessengerFactory = null;
- private static bool serverMessengerIsRegistered = false;
- private static Func wrappedServerMessengerFactory = c => serverMessengerFactory(c);
+ ///
+ /// Sets the server messenger.
+ ///
+ /// The type of the server registrar.
+ /// The composition.
+ public static void SetServerMessenger(this Composition composition)
+ where T : IServerMessenger
+ {
+ composition.Container.Register(Lifetime.Singleton);
+ }
///
/// Sets the server messenger.
@@ -197,13 +190,7 @@ namespace Umbraco.Core.Components
/// A function creating a server messenger.
public static void SetServerMessenger(this Composition composition, Func factory)
{
- if (!serverMessengerIsRegistered)
- {
- serverMessengerIsRegistered = true;
- composition.Container.RegisterSingleton(wrappedServerMessengerFactory);
- }
-
- serverMessengerFactory = factory;
+ composition.Container.RegisterSingleton(factory);
}
///
@@ -213,13 +200,7 @@ namespace Umbraco.Core.Components
/// A server messenger.
public static void SetServerMessenger(this Composition composition, IServerMessenger registrar)
{
- if (!serverMessengerIsRegistered)
- {
- serverMessengerIsRegistered = true;
- composition.Container.RegisterSingleton(wrappedServerMessengerFactory);
- }
-
- serverMessengerFactory = c => registrar;
+ composition.Container.RegisterSingleton(_ => registrar);
}
///
diff --git a/src/Umbraco.Core/Runtime/CoreRuntimeComponent.cs b/src/Umbraco.Core/Runtime/CoreRuntimeComponent.cs
index ae9955706c..9d7c3e5a6a 100644
--- a/src/Umbraco.Core/Runtime/CoreRuntimeComponent.cs
+++ b/src/Umbraco.Core/Runtime/CoreRuntimeComponent.cs
@@ -74,8 +74,7 @@ namespace Umbraco.Core.Runtime
// by default we'll use the database server messenger with default options (no callbacks),
// this will be overridden by either the legacy thing or the db thing in the corresponding
// components in the web project - fixme - should obsolete the legacy thing
- composition.SetServerMessenger(
- factory
+ composition.Container.RegisterSingleton(factory
=> new DatabaseServerMessenger(
factory.GetInstance(),
factory.GetInstance(),