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(),