mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Add possibility to explicitly mark plugin as requiring restart on load/unload
GitOrigin-RevId: 0cd92fdd5e3ff329c71403eb9a30a64dcb736cc2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
cd6e317dc8
commit
a81cf72dac
@@ -77,6 +77,7 @@ public final class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor {
|
||||
private boolean myUseCoreClassLoader;
|
||||
boolean myAllowBundledUpdate;
|
||||
boolean myImplementationDetail;
|
||||
boolean myRequireRestart;
|
||||
private String mySinceBuild;
|
||||
private String myUntilBuild;
|
||||
|
||||
@@ -909,6 +910,11 @@ public final class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor {
|
||||
return myImplementationDetail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRequireRestart() {
|
||||
return myRequireRestart;
|
||||
}
|
||||
|
||||
public @NotNull List<PluginId> getModules() {
|
||||
return myModules == null ? Collections.emptyList() : myModules;
|
||||
}
|
||||
|
||||
@@ -170,6 +170,10 @@ final class XmlReader {
|
||||
descriptor.myImplementationDetail = Boolean.parseBoolean(attribute.getValue());
|
||||
break;
|
||||
|
||||
case "require-restart":
|
||||
descriptor.myRequireRestart = Boolean.parseBoolean(attribute.getValue());
|
||||
break;
|
||||
|
||||
case "version":
|
||||
String internalVersionString = StringUtil.nullize(attribute.getValue());
|
||||
if (internalVersionString != null) {
|
||||
|
||||
@@ -101,6 +101,11 @@ public interface PluginDescriptor {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* If true, this plugin requires restart even if it otherwise fulfills the requirements of dynamic plugins.
|
||||
*/
|
||||
default boolean isRequireRestart() { return false; }
|
||||
|
||||
boolean isEnabled();
|
||||
|
||||
void setEnabled(boolean enabled);
|
||||
|
||||
@@ -120,6 +120,10 @@ object DynamicPlugins {
|
||||
return null
|
||||
}
|
||||
|
||||
if (descriptor.isRequireRestart) {
|
||||
return "Plugin ${descriptor.pluginId} is explicitly marked as requiring restart";
|
||||
}
|
||||
|
||||
val loadedPluginDescriptor = if (descriptor.pluginId == null) null else PluginManagerCore.getPlugin(descriptor.pluginId) as? IdeaPluginDescriptorImpl
|
||||
|
||||
val app = ApplicationManager.getApplication()
|
||||
|
||||
Reference in New Issue
Block a user