From 7b43da35b23580c8ca4c6428d80dc3edfe5ed979 Mon Sep 17 00:00:00 2001 From: Michael Golubev Date: Mon, 18 May 2020 12:42:59 +0200 Subject: [PATCH] IDEA-231537 - Make App Server plugins dynamic - make `descriptorMetaDataProvider` EP dynamic GitOrigin-RevId: 0fe489dc0c62df8b5782946429a5105bc81d1c0d --- .../impl/ConfigFileMetaDataRegistryImpl.java | 10 ++++++++++ .../util/descriptors/ConfigFileMetaDataRegistry.java | 1 + 2 files changed, 11 insertions(+) diff --git a/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileMetaDataRegistryImpl.java b/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileMetaDataRegistryImpl.java index 2c620e752621..1f7dff44f14c 100644 --- a/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileMetaDataRegistryImpl.java +++ b/java/idea-ui/src/com/intellij/util/descriptors/impl/ConfigFileMetaDataRegistryImpl.java @@ -63,4 +63,14 @@ public class ConfigFileMetaDataRegistryImpl implements ConfigFileMetaDataRegistr } myCachedMetaData = null; } + + @Override + public void unregisterMetaData(@NotNull ConfigFileMetaData metaData) { + boolean changed = myMetaData.remove(metaData); + ConfigFileMetaData actual = myId2MetaData.remove(metaData.getId()); + changed |= (actual != null); + if (changed) { + myCachedMetaData = null; + } + } } diff --git a/java/openapi/src/com/intellij/util/descriptors/ConfigFileMetaDataRegistry.java b/java/openapi/src/com/intellij/util/descriptors/ConfigFileMetaDataRegistry.java index 3eed3ab6c67a..80659ab0aa29 100644 --- a/java/openapi/src/com/intellij/util/descriptors/ConfigFileMetaDataRegistry.java +++ b/java/openapi/src/com/intellij/util/descriptors/ConfigFileMetaDataRegistry.java @@ -22,4 +22,5 @@ public interface ConfigFileMetaDataRegistry extends ConfigFileMetaDataProvider { void registerMetaData(ConfigFileMetaData @NotNull ... metaData); + void unregisterMetaData(@NotNull ConfigFileMetaData metaData); }