diff --git a/java/execution/impl/src/com/intellij/execution/JavaRunConfigurationExtensionManager.java b/java/execution/impl/src/com/intellij/execution/JavaRunConfigurationExtensionManager.java index e9de18b08ec8..556027008efd 100644 --- a/java/execution/impl/src/com/intellij/execution/JavaRunConfigurationExtensionManager.java +++ b/java/execution/impl/src/com/intellij/execution/JavaRunConfigurationExtensionManager.java @@ -44,4 +44,14 @@ public class JavaRunConfigurationExtensionManager extends RunConfigurationExtens LOG.error(e); } } + + @Override + protected String getIdAttrName() { + return "name"; + } + + @Override + protected String getExtensionRootAttr() { + return "extension"; + } } diff --git a/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java b/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java index 7b962fef9473..9975df8c0c9a 100644 --- a/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java +++ b/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java @@ -30,24 +30,13 @@ import com.intellij.execution.configurations.RunConfigurationBase; import com.intellij.execution.configurations.RunnerSettings; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.extensions.Extensions; -import com.intellij.openapi.util.InvalidDataException; -import com.intellij.openapi.util.Key; -import com.intellij.openapi.util.WriteExternalException; import com.intellij.psi.PsiElement; import com.intellij.refactoring.listeners.RefactoringElementListener; -import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - public abstract class RunConfigurationExtension extends RunConfigurationExtensionBase{ public static final ExtensionPointName EP_NAME = new ExtensionPointName("com.intellij.runConfigurationExtension"); - public static final Key RUN_EXTENSIONS = Key.create("run.extension.elemnts"); - public abstract void updateJavaParameters(final T configuration, final JavaParameters params, RunnerSettings runnerSettings); @@ -90,57 +79,6 @@ public abstract class RunConfigurationExtension extends RunConfigurationExtensio return listener; } - - public static void readSettings(RunConfigurationBase runConfiguration, Element parentNode) throws InvalidDataException { - final List children = parentNode.getChildren("extension"); - final Map extensions = new HashMap(); - for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) { - extensions.put(extension.getSerializationId(), extension); - } - for (Object o : children) { - final Element element = (Element)o; - final String extensionName = element.getAttributeValue("name"); - final RunConfigurationExtension extension = extensions.remove(extensionName); - if (extension != null) { - extension.readExternal(runConfiguration, element); - } - } - //try to read from old format if possible - for (RunConfigurationExtension extension : extensions.values()) { - extension.readExternal(runConfiguration, parentNode); - } - runConfiguration.putCopyableUserData(RUN_EXTENSIONS, children); - } - - public static void writeSettings(RunConfigurationBase runConfiguration, Element element) throws WriteExternalException { - final TreeMap map = new TreeMap(); - final List elements = runConfiguration.getCopyableUserData(RUN_EXTENSIONS); - if (elements != null) { - for (Element el : elements) { - final String name = el.getAttributeValue("name"); - map.put(name, (Element)el.clone()); - } - } - - for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) { - Element el = new Element("extension"); - el.setAttribute("name", extension.getSerializationId()); - try { - extension.writeExternal(runConfiguration, el); - } - catch (WriteExternalException e) { - map.remove(extension.getSerializationId()); - continue; - } - map.put(extension.getSerializationId(), el); - } - - for (Element val : map.values()) { - element.addContent(val); - } - } - - public boolean isListenerDisabled(RunConfigurationBase configuration, Object listener) { return false; } diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java index 61d6588e1d9d..f9bfceffa3ba 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfiguration.java @@ -228,7 +228,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration children = parentNode.getChildren(EXTENSION_ROOT_ATTR); + final List children = parentNode.getChildren(getExtensionRootAttr()); final Map extensions = Maps.newHashMap(); for (T extension : getApplicableExtensions(configuration)) { extensions.put(extension.getSerializationId(), extension); @@ -48,7 +45,7 @@ public class RunConfigurationExtensionsManager map = Maps.newTreeMap(); final List elements = configuration.getCopyableUserData(RUN_EXTENSIONS); if (elements != null) { for (Element el : elements) { - final String name = el.getAttributeValue(EXT_ID_ATTR); + final String name = el.getAttributeValue(getIdAttrName()); map.put(name, (Element)el.clone()); } } for (T extension : getApplicableExtensions(configuration)) { - Element el = new Element(EXTENSION_ROOT_ATTR); - el.setAttribute(EXT_ID_ATTR, extension.getSerializationId()); + Element el = new Element(getExtensionRootAttr()); + el.setAttribute(getIdAttrName(), extension.getSerializationId()); extension.writeExternal(configuration, el); map.put(extension.getSerializationId(), el); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfiguration.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfiguration.java index 841b896c7db0..3d55c4161749 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfiguration.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/mvc/MvcRunConfiguration.java @@ -159,7 +159,7 @@ public abstract class MvcRunConfiguration extends ModuleBasedConfiguration