diff --git a/platform/util/src/com/intellij/util/messages/MessageBusFactory.java b/platform/util/src/com/intellij/util/messages/MessageBusFactory.java index f91daed0dd2c..54496579bfca 100644 --- a/platform/util/src/com/intellij/util/messages/MessageBusFactory.java +++ b/platform/util/src/com/intellij/util/messages/MessageBusFactory.java @@ -27,26 +27,16 @@ import java.util.concurrent.atomic.AtomicReference; public class MessageBusFactory { - private static final AtomicReference ourImpl = new AtomicReference(new Impl() { - @NotNull - @Override - public MessageBus newMessageBus(@NotNull Object owner) { - return new MessageBusImpl.RootBus(owner); - } - - @NotNull - @Override - public MessageBus newMessageBus(@NotNull Object owner, @Nullable MessageBus parentBus) { - return parentBus == null ? newMessageBus(owner) : new MessageBusImpl(owner, parentBus); - } - }); + private static final AtomicReference ourImpl = new AtomicReference(Impl.DEFAULT); private MessageBusFactory() {} + @NotNull public static MessageBus newMessageBus(@NotNull Object owner) { return ourImpl.get().newMessageBus(owner); } + @NotNull public static MessageBus newMessageBus(@NotNull Object owner, @Nullable MessageBus parentBus) { return ourImpl.get().newMessageBus(owner, parentBus); } @@ -57,6 +47,20 @@ public class MessageBusFactory { public interface Impl { + Impl DEFAULT = new Impl() { + @NotNull + @Override + public MessageBus newMessageBus(@NotNull Object owner) { + return new MessageBusImpl.RootBus(owner); + } + + @NotNull + @Override + public MessageBus newMessageBus(@NotNull Object owner, @Nullable MessageBus parentBus) { + return parentBus == null ? newMessageBus(owner) : new MessageBusImpl(owner, parentBus); + } + }; + @NotNull MessageBus newMessageBus(@NotNull Object owner);