Do not use hardcoded plugin ID for update checks

When Kotlin plugin is bundled into another plugin, there won't be a plugin with ID org.jetbrains.kotlin registered in PluginManager, which leads to runtime exceptions. To fix that let's determine the plugin ID dynamically instead.
This commit is contained in:
Vyacheslav Karpukhin
2018-01-30 18:46:03 +01:00
committed by Nikolay Krasko
parent f5e78a89bc
commit 53946456cf
3 changed files with 18 additions and 5 deletions
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea;
import com.intellij.ide.plugins.IdeaPluginDescriptor;
import com.intellij.ide.plugins.PluginManager;
import com.intellij.ide.plugins.PluginManagerCore;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.extensions.PluginId;
import org.jetbrains.annotations.NotNull;
@@ -15,7 +16,15 @@ import java.util.Arrays;
public class KotlinPluginUtil {
public static final PluginId KOTLIN_PLUGIN_ID = PluginId.getId("org.jetbrains.kotlin");
public static final PluginId KOTLIN_PLUGIN_ID;
static {
PluginId pluginId = PluginManagerCore.getPluginByClassName(KotlinPluginUtil.class.getName());
if (pluginId == null && ApplicationManager.getApplication().isUnitTestMode()) {
pluginId = PluginId.getId("org.jetbrains.kotlin");
}
KOTLIN_PLUGIN_ID = pluginId;
}
@NotNull
public static String getPluginVersion() {