diff --git a/azure-toolkit-libs/azure-toolkit-common-lib/src/main/java/com/microsoft/azure/toolkit/lib/common/messager/AzureMessager.java b/azure-toolkit-libs/azure-toolkit-common-lib/src/main/java/com/microsoft/azure/toolkit/lib/common/messager/AzureMessager.java index 8a5938d57..7b0481018 100644 --- a/azure-toolkit-libs/azure-toolkit-common-lib/src/main/java/com/microsoft/azure/toolkit/lib/common/messager/AzureMessager.java +++ b/azure-toolkit-libs/azure-toolkit-common-lib/src/main/java/com/microsoft/azure/toolkit/lib/common/messager/AzureMessager.java @@ -19,7 +19,7 @@ private static final class Holder { private static IAzureMessager defaultMessager = null; @Nonnull - private static IAzureMessager loadMessager() { + public static IAzureMessager loadMessager() { final ClassLoader current = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(AzureMessager.class.getClassLoader()); @@ -44,28 +44,11 @@ public static void setDefaultMessager(@Nonnull final IAzureMessager defaultMessa @Nonnull public static synchronized IAzureMessager getDefaultMessager() { if (Holder.defaultMessager == null) { - Holder.defaultMessager = loadMessager(); + Holder.defaultMessager = Holder.loadMessager(); } return Holder.defaultMessager; } - @Nullable - private static IAzureMessager loadMessager() { - final ClassLoader current = Thread.currentThread().getContextClassLoader(); - try { - Thread.currentThread().setContextClassLoader(AzureMessager.class.getClassLoader()); - // don't use "IAzureMessager" as SPI interface to be compatible with IntelliJ's "Service" mechanism. - final ServiceLoader loader = ServiceLoader.load(AzureMessagerProvider.class, AzureMessager.class.getClassLoader()); - final Iterator iterator = loader.iterator(); - if (iterator.hasNext()) { - return iterator.next().getMessager(); - } - return null; - } finally { - Thread.currentThread().setContextClassLoader(current); - } - } - @Nonnull public static IAzureMessager getMessager() { return OperationContext.current().getMessager();