run configuration extensions: remove duplicates

This commit is contained in:
anna
2011-10-04 14:31:06 +02:00
parent 735da93290
commit 7d821337c4
20 changed files with 120 additions and 102 deletions
@@ -0,0 +1,47 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.execution;
import com.intellij.execution.configuration.RunConfigurationExtensionsManager;
import com.intellij.execution.configurations.RunConfigurationBase;
import com.intellij.execution.configurations.RuntimeConfigurationException;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
/**
* User: anna
* Date: 10/4/11
*/
public class JavaRunConfigurationExtensionManager extends RunConfigurationExtensionsManager<RunConfigurationBase, RunConfigurationExtension> {
private static final Logger LOG = Logger.getInstance("#" + RunConfigurationExtension.class.getName());
public JavaRunConfigurationExtensionManager() {
super(RunConfigurationExtension.EP_NAME);
}
public static JavaRunConfigurationExtensionManager getInstance() {
return ServiceManager.getService(JavaRunConfigurationExtensionManager.class);
}
public static void checkConfigurationIsValid(RunConfigurationBase configuration) throws RuntimeConfigurationException {
try {
getInstance().validateConfiguration(configuration, false);
}
catch (Exception e) {
LOG.error(e);
}
}
}
@@ -22,44 +22,50 @@
*/
package com.intellij.execution;
import com.intellij.execution.configurations.*;
import com.intellij.execution.process.OSProcessHandler;
import com.intellij.execution.configuration.AbstractRunConfiguration;
import com.intellij.execution.configuration.RunConfigurationExtensionBase;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.JavaParameters;
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.options.SettingsEditor;
import com.intellij.openapi.options.SettingsEditorGroup;
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 com.intellij.ui.LayeredIcon;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public abstract class RunConfigurationExtension {
public abstract class RunConfigurationExtension extends RunConfigurationExtensionBase<RunConfigurationBase>{
public static final ExtensionPointName<RunConfigurationExtension> EP_NAME = new ExtensionPointName<RunConfigurationExtension>("com.intellij.runConfigurationExtension");
public static final Key<List> RUN_EXTENSIONS = Key.create("run.extension.elemnts");
public abstract void handleStartProcess(final RunConfigurationBase configuration,
final OSProcessHandler handler,
RunnerSettings runnerSettings);
@Nullable
public abstract SettingsEditor createEditor(RunConfigurationBase configuration);
public abstract String getEditorTitle();
public abstract String getName();
public abstract <T extends RunConfigurationBase > void updateJavaParameters(final T configuration, final JavaParameters params, RunnerSettings runnerSettings);
protected abstract void readExternal(RunConfigurationBase runConfiguration, Element element) throws InvalidDataException;
protected abstract void writeExternal(RunConfigurationBase runConfiguration, Element element) throws WriteExternalException;
public abstract void patchConfiguration(RunConfigurationBase runJavaConfiguration);
public abstract void checkConfiguration(RunConfigurationBase runJavaConfiguration) throws RuntimeConfigurationException;
@Override
protected void patchCommandLine(@NotNull RunConfigurationBase configuration,
RunnerSettings runnerSettings,
@NotNull GeneralCommandLine cmdLine,
@NotNull AbstractRunConfiguration.RunnerType type) {}
@Override
protected boolean isEnabledFor(@NotNull RunConfigurationBase applicableConfiguration, @Nullable RunnerSettings runnerSettings) {
return true;
}
@Override
protected void extendTemplateConfiguration(@NotNull RunConfigurationBase configuration) {
}
public void cleanUserData(RunConfigurationBase runConfigurationBase) {}
@@ -84,22 +90,12 @@ public abstract class RunConfigurationExtension {
return listener;
}
public static void appendEditors(RunConfigurationBase configuration, SettingsEditorGroup group) {
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
final SettingsEditor editor = extension.createEditor(configuration);
if (editor != null) {
group.addEditor(extension.getEditorTitle(), editor);
}
}
}
public static void readSettings(RunConfigurationBase runConfiguration, Element parentNode) throws InvalidDataException {
final List children = parentNode.getChildren("extension");
final Map<String, RunConfigurationExtension> extensions = new HashMap<String, RunConfigurationExtension>();
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
extensions.put(extension.getName(), extension);
extensions.put(extension.getSerializationId(), extension);
}
for (Object o : children) {
final Element element = (Element)o;
@@ -128,15 +124,15 @@ public abstract class RunConfigurationExtension {
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
Element el = new Element("extension");
el.setAttribute("name", extension.getName());
el.setAttribute("name", extension.getSerializationId());
try {
extension.writeExternal(runConfiguration, el);
}
catch (WriteExternalException e) {
map.remove(extension.getName());
map.remove(extension.getSerializationId());
continue;
}
map.put(extension.getName(), el);
map.put(extension.getSerializationId(), el);
}
for (Element val : map.values()) {
@@ -145,18 +141,6 @@ public abstract class RunConfigurationExtension {
}
public static void patchCreatedConfiguration(RunConfigurationBase configuration) {
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
extension.patchConfiguration(configuration);
}
}
public static void checkConfigurationIsValid(RunConfigurationBase configuration) throws RuntimeConfigurationException {
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
extension.checkConfiguration(configuration);
}
}
public boolean isListenerDisabled(RunConfigurationBase configuration, Object listener) {
return false;
}
@@ -84,7 +84,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
public SettingsEditor<? extends RunConfiguration> getConfigurationEditor() {
SettingsEditorGroup<ApplicationConfiguration> group = new SettingsEditorGroup<ApplicationConfiguration>();
group.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), new ApplicationConfigurable(getProject()));
RunConfigurationExtension.appendEditors(this, group);
JavaRunConfigurationExtensionManager.getInstance().appendEditors(this, group);
group.addEditor(ExecutionBundle.message("logs.tab.title"), new LogConfigurationPanel<ApplicationConfiguration>());
return group;
}
@@ -147,7 +147,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
throw new RuntimeConfigurationWarning(ExecutionBundle.message("main.method.not.found.in.class.error.message", MAIN_CLASS_NAME));
}
RunConfigurationExtension.checkConfigurationIsValid(this);
JavaRunConfigurationExtensionManager.checkConfigurationIsValid(this);
}
public void setVMParameters(String value) {
@@ -267,10 +267,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
protected OSProcessHandler startProcess() throws ExecutionException {
final OSProcessHandler handler = super.startProcess();
RunnerSettings runnerSettings = getRunnerSettings();
for(RunConfigurationExtension ext: Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
ext.handleStartProcess(ApplicationConfiguration.this, handler, runnerSettings);
}
JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(ApplicationConfiguration.this, handler, runnerSettings);
return handler;
}
}
@@ -54,24 +54,24 @@ public class ApplicationConfigurationProducer extends JavaRuntimeConfigurationPr
final PsiClass aClass = method.getContainingClass();
if (ConfigurationUtil.MAIN_CLASS.value(aClass)) {
myPsiElement = method;
return createConfiguration(aClass, context);
return createConfiguration(aClass, context, location);
}
currentElement = method.getParent();
}
final PsiClass aClass = ApplicationConfigurationType.getMainClass(element);
if (aClass == null) return null;
myPsiElement = aClass;
return createConfiguration(aClass, context);
return createConfiguration(aClass, context, location);
}
private RunnerAndConfigurationSettings createConfiguration(final PsiClass aClass, final ConfigurationContext context) {
private RunnerAndConfigurationSettings createConfiguration(final PsiClass aClass, final ConfigurationContext context, Location location) {
final Project project = aClass.getProject();
RunnerAndConfigurationSettings settings = cloneTemplateConfiguration(project, context);
final ApplicationConfiguration configuration = (ApplicationConfiguration)settings.getConfiguration();
configuration.MAIN_CLASS_NAME = JavaExecutionUtil.getRuntimeQualifiedName(aClass);
configuration.setName(configuration.getGeneratedName());
setupConfigurationModule(context, configuration);
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -17,6 +17,7 @@ package com.intellij.execution.configuration;
import com.intellij.execution.Location;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.RunConfigurationBase;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.openapi.options.SettingsEditor;
@@ -26,12 +27,10 @@ import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
/**
* @author traff
*/
public abstract class RunConfigurationExtension<T extends AbstractRunConfiguration> {
public abstract class RunConfigurationExtensionBase<T extends RunConfigurationBase> {
@NotNull
protected abstract String getSerializationId();
@@ -3,6 +3,7 @@ package com.intellij.execution.configuration;
import com.google.common.collect.Maps;
import com.intellij.execution.Location;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.RunConfigurationBase;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.openapi.extensions.ExtensionPointName;
@@ -24,7 +25,7 @@ import java.util.TreeMap;
/**
* @author traff
*/
public class RunConfigurationExtensionsManager<U extends AbstractRunConfiguration, T extends RunConfigurationExtension<U>> {
public class RunConfigurationExtensionsManager<U extends RunConfigurationBase, T extends RunConfigurationExtensionBase<U>> {
public static final Key<List<Element>> RUN_EXTENSIONS = Key.create("run.extension.elements");
private static final String EXT_ID_ATTR = "ID";
private static final String EXTENSION_ROOT_ATTR = "EXTENSION";
@@ -697,5 +697,5 @@
<editorTabTitleProvider implementation="com.intellij.openapi.fileEditor.impl.UniqueNameEditorTabTitleProvider"/>
<fileDocumentManagerListener implementation="com.intellij.openapi.fileEditor.impl.TrailingSpacesStripper"/>
<applicationService serviceImplementation="com.intellij.execution.JavaRunConfigurationExtensionManager"/>
</extensions>
@@ -273,10 +273,7 @@ public abstract class MvcRunConfiguration extends ModuleBasedConfiguration<RunCo
protected OSProcessHandler startProcess() throws ExecutionException {
final OSProcessHandler handler = super.startProcess();
final RunnerSettings runnerSettings = getRunnerSettings();
for(RunConfigurationExtension ext: Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
ext.handleStartProcess(MvcRunConfiguration.this, handler, runnerSettings);
}
JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(MvcRunConfiguration.this, handler, runnerSettings);
return handler;
}
@@ -16,8 +16,8 @@
package com.intellij.execution.junit;
import com.intellij.execution.JavaRunConfigurationExtensionManager;
import com.intellij.execution.Location;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.openapi.module.Module;
@@ -57,7 +57,7 @@ public class AllInPackageConfigurationProducer extends JUnitConfigurationProduce
data.TEST_OBJECT = JUnitConfiguration.TEST_PACKAGE;
data.setScope(setupPackageConfiguration(context, project, configuration, data.getScope()));
configuration.setGeneratedName();
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -85,7 +85,7 @@ public class JUnitConfiguration extends ModuleBasedConfiguration<JavaRunConfigur
public SettingsEditor<? extends RunConfiguration> getConfigurationEditor() {
SettingsEditorGroup<JUnitConfiguration> group = new SettingsEditorGroup<JUnitConfiguration>();
group.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), new JUnitConfigurable(getProject()));
RunConfigurationExtension.appendEditors(this, group);
JavaRunConfigurationExtensionManager.getInstance().appendEditors(this, group);
group.addEditor(ExecutionBundle.message("logs.tab.title"), new LogConfigurationPanel<JUnitConfiguration>());
return group;
}
@@ -105,7 +105,7 @@ public class JUnitConfiguration extends ModuleBasedConfiguration<JavaRunConfigur
public void checkConfiguration() throws RuntimeConfigurationException {
myData.getTestObject(getProject(), this).checkConfiguration();
RunConfigurationExtension.checkConfigurationIsValid(this);
JavaRunConfigurationExtensionManager.checkConfigurationIsValid(this);
}
public Collection<Module> getValidModules() {
@@ -16,8 +16,8 @@
package com.intellij.execution.junit;
import com.intellij.execution.JavaRunConfigurationExtensionManager;
import com.intellij.execution.Location;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.openapi.actionSystem.DataContext;
@@ -47,7 +47,7 @@ public class PatternConfigurationProducer extends JUnitConfigurationProducer {
data.TEST_OBJECT = JUnitConfiguration.TEST_PATTERN;
data.setScope(setupPackageConfiguration(context, project, configuration, data.getScope()));
configuration.setGeneratedName();
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -16,10 +16,7 @@
package com.intellij.execution.junit;
import com.intellij.execution.JavaExecutionUtil;
import com.intellij.execution.Location;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.*;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.module.Module;
@@ -47,7 +44,7 @@ public class TestClassConfigurationProducer extends JUnitConfigurationProducer {
final Module originalModule = configuration.getConfigurationModule().getModule();
configuration.beClassConfiguration(myTestClass);
configuration.restoreOriginalModule(originalModule);
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -16,8 +16,8 @@
package com.intellij.execution.junit;
import com.intellij.execution.JavaRunConfigurationExtensionManager;
import com.intellij.execution.Location;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.openapi.module.Module;
@@ -41,7 +41,7 @@ public class TestMethodConfigurationProducer extends JUnitConfigurationProducer
final Module originalModule = configuration.getConfigurationModule().getModule();
configuration.beMethodConfiguration(myMethodLocation);
configuration.restoreOriginalModule(originalModule);
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -255,9 +255,7 @@ public abstract class TestObject implements JavaCommandLine {
public ExecutionResult execute(final Executor executor, @NotNull final ProgramRunner runner) throws ExecutionException {
final JUnitProcessHandler handler = createHandler();
final RunnerSettings runnerSettings = getRunnerSettings();
for(final RunConfigurationExtension ext: Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
ext.handleStartProcess(myConfiguration, handler, runnerSettings);
}
JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(myConfiguration, handler, runnerSettings);
final TestProxy unboundOutputRoot = new TestProxy(new RootTestInfo());
final JUnitConsoleProperties consoleProperties = new JUnitConsoleProperties(myConfiguration, executor);
final JUnitTreeConsoleView consoleView = new JUnitTreeConsoleView(consoleProperties, runnerSettings, getConfigurationSettings(), unboundOutputRoot);
@@ -29,7 +29,6 @@ import com.intellij.execution.configurations.*;
import com.intellij.execution.junit.RefactoringListeners;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.testframework.SourceScope;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.PathMacroManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.SettingsEditor;
@@ -265,7 +264,7 @@ public class TestNGConfiguration extends ModuleBasedConfiguration<JavaRunConfigu
public SettingsEditor<? extends RunConfiguration> getConfigurationEditor() {
SettingsEditorGroup<TestNGConfiguration> group = new SettingsEditorGroup<TestNGConfiguration>();
group.addEditor(ExecutionBundle.message("run.configuration.configuration.tab.title"), new TestNGConfigurationEditor(getProject()));
RunConfigurationExtension.appendEditors(this, group);
JavaRunConfigurationExtensionManager.getInstance().appendEditors(this, group);
group.addEditor(ExecutionBundle.message("logs.tab.title"), new LogConfigurationPanel<TestNGConfiguration>());
return group;
}
@@ -307,7 +306,7 @@ public class TestNGConfiguration extends ModuleBasedConfiguration<JavaRunConfigu
throw new RuntimeConfigurationException("Unable to parse '" + data.getSuiteName() + "' specified");
}
}
RunConfigurationExtension.checkConfigurationIsValid(this);
JavaRunConfigurationExtensionManager.checkConfigurationIsValid(this);
//TODO add various checks here
}
@@ -20,10 +20,7 @@
*/
package com.theoryinpractice.testng.configuration;
import com.intellij.execution.Location;
import com.intellij.execution.PsiLocation;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.*;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
@@ -80,7 +77,7 @@ public class TestNGInClassConfigurationProducer extends TestNGConfigurationProdu
configuration.restoreOriginalModule(originalModule);
settings.setName(configuration.getName());
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -15,11 +15,10 @@
*/
package com.theoryinpractice.testng.configuration;
import com.intellij.execution.JavaRunConfigurationExtensionManager;
import com.intellij.execution.Location;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.execution.junit.JUnitUtil;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtil;
import com.intellij.openapi.project.Project;
@@ -59,7 +58,7 @@ public class TestNGPackageConfigurationProducer extends TestNGConfigurationProdu
data.TEST_OBJECT = TestType.PACKAGE.getType();
data.setScope(setupPackageConfiguration(context, project, configuration, data.getScope()));
configuration.setGeneratedName();
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -131,9 +131,7 @@ public class TestNGRunnableState extends JavaCommandLineState {
console.initUI();
unboundOutputRoot.setPrinter(console.getPrinter());
Disposer.register(console, unboundOutputRoot);
for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
ext.handleStartProcess(config, processHandler, runnerSettings);
}
JavaRunConfigurationExtensionManager.getInstance().attachExtensionsToProcess(config, processHandler, runnerSettings);
final SearchingForTestsTask task = createSearchingForTestsTask(myServerSocket, config, myTempFile);
processHandler.addProcessListener(new ProcessAdapter() {
@Override
@@ -20,9 +20,9 @@
*/
package com.theoryinpractice.testng.configuration;
import com.intellij.execution.JavaRunConfigurationExtensionManager;
import com.intellij.execution.Location;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
@@ -60,7 +60,7 @@ public class TestNGSuiteConfigurationProducer extends TestNGConfigurationProduce
configuration.restoreOriginalModule(originalModule);
configuration.setGeneratedName();
settings.setName(configuration.getName());
RunConfigurationExtension.patchCreatedConfiguration(configuration);
JavaRunConfigurationExtensionManager.getInstance().extendCreatedConfiguration(configuration, location);
return settings;
}
@@ -16,15 +16,16 @@
package com.intellij.uiDesigner.snapShooter;
import com.intellij.execution.Location;
import com.intellij.execution.RunConfigurationExtension;
import com.intellij.execution.application.ApplicationConfiguration;
import com.intellij.execution.configurations.JavaParameters;
import com.intellij.execution.configurations.RunConfigurationBase;
import com.intellij.execution.configurations.RunnerSettings;
import com.intellij.execution.configurations.RuntimeConfigurationException;
import com.intellij.execution.process.OSProcessHandler;
import com.intellij.execution.process.ProcessAdapter;
import com.intellij.execution.process.ProcessEvent;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.ide.ui.LafManagerListener;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.components.BaseComponent;
@@ -44,6 +45,7 @@ import com.jgoodies.forms.layout.FormLayout;
import gnu.trove.THashMap;
import org.jdom.Document;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.util.Set;
@@ -55,7 +57,7 @@ import java.util.TreeSet;
public class SnapShooterConfigurationExtension extends RunConfigurationExtension {
@Override
public void updateJavaParameters(RunConfigurationBase configuration, JavaParameters params, RunnerSettings runnerSettings) {
if (!(configuration instanceof ApplicationConfiguration)) {
if (!isApplicableFor(configuration)) {
return;
}
ApplicationConfiguration appConfiguration = (ApplicationConfiguration) configuration;
@@ -100,7 +102,11 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
}
}
public void handleStartProcess(final RunConfigurationBase configuration, final OSProcessHandler handler, RunnerSettings runnerSettings) {
protected boolean isApplicableFor(@NotNull RunConfigurationBase configuration) {
return configuration instanceof ApplicationConfiguration;
}
public void attachToProcess(final RunConfigurationBase configuration, final ProcessHandler handler, RunnerSettings runnerSettings) {
SnapShooterConfigurationSettings settings = configuration.getUserData(SnapShooterConfigurationSettings.SNAP_SHOOTER_KEY);
if (settings != null) {
final Runnable runnable = settings.getNotifyRunnable();
@@ -126,13 +132,12 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
}
@Override
public String getName() {
public String getSerializationId() {
return "snapshooter";
}
@Override
public void readExternal(RunConfigurationBase runConfiguration, Element element) throws InvalidDataException {
}
@Override
@@ -141,11 +146,11 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
}
@Override
public void patchConfiguration(RunConfigurationBase runJavaConfiguration) {
public void extendCreatedConfiguration(RunConfigurationBase runJavaConfiguration, Location location) {
}
@Override
public void checkConfiguration(RunConfigurationBase runJavaConfiguration)
public void validateConfiguration(RunConfigurationBase runJavaConfiguration, boolean isExecution)
throws RuntimeConfigurationException {
}