mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
skip coverage
This commit is contained in:
@@ -25,24 +25,32 @@ package com.intellij.execution;
|
||||
import com.intellij.execution.configurations.JavaParameters;
|
||||
import com.intellij.execution.configurations.ModuleBasedConfiguration;
|
||||
import com.intellij.execution.configurations.RunnerSettings;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationException;
|
||||
import com.intellij.execution.process.OSProcessHandler;
|
||||
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.Comparing;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.ui.LayeredIcon;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jdom.Content;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class RunConfigurationExtension {
|
||||
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 ModuleBasedConfiguration configuration, final OSProcessHandler handler);
|
||||
public abstract <T extends ModuleBasedConfiguration & RunJavaConfiguration> SettingsEditor createEditor(T configuration);
|
||||
public abstract String getEditorTitle();
|
||||
public abstract String getName();
|
||||
@Nullable
|
||||
public abstract <T extends ModuleBasedConfiguration & RunJavaConfiguration> Icon getIcon(T runConfiguration);
|
||||
|
||||
@@ -67,15 +75,68 @@ public abstract class RunConfigurationExtension {
|
||||
|
||||
public abstract <T extends ModuleBasedConfiguration & RunJavaConfiguration> void updateJavaParameters(final T configuration, final JavaParameters params, RunnerSettings runnerSettings);
|
||||
|
||||
public abstract void readExternal(ModuleBasedConfiguration runConfiguration, Element element) throws InvalidDataException;
|
||||
protected abstract void readExternal(ModuleBasedConfiguration runConfiguration, Element element) throws InvalidDataException;
|
||||
|
||||
public abstract void writeExternal(ModuleBasedConfiguration runConfiguration, Element element) throws WriteExternalException;
|
||||
public static void readSettings(ModuleBasedConfiguration runConfiguration, Element parentNode) throws InvalidDataException {
|
||||
List children = parentNode.getChildren("extension");
|
||||
boolean found = true;
|
||||
ext: for (Object o : children) {
|
||||
final Element element = (Element)o;
|
||||
final String extensionName = element.getAttributeValue("name");
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
if (Comparing.strEqual(extensionName, extension.getName())) {
|
||||
extension.readExternal(runConfiguration, element);
|
||||
continue ext;
|
||||
}
|
||||
}
|
||||
found = false;
|
||||
}
|
||||
if (!found) {
|
||||
runConfiguration.putCopyableUserData(RUN_EXTENSIONS, children);
|
||||
}
|
||||
}
|
||||
|
||||
public static void writeSettings(ModuleBasedConfiguration runConfiguration, Element element) throws WriteExternalException {
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
Element el = new Element("extension");
|
||||
el.setAttribute("name", extension.getName());
|
||||
extension.writeExternal(runConfiguration, el);
|
||||
element.addContent(el);
|
||||
}
|
||||
List<Element> elements = runConfiguration.getCopyableUserData(RUN_EXTENSIONS);
|
||||
if (elements != null && !elements.isEmpty()) {
|
||||
final List<String> foundNames = new ArrayList<String>();
|
||||
final List children = element.getChildren("extension");
|
||||
for (Object o : children) {
|
||||
foundNames.add(((Element)o).getAttributeValue("name"));
|
||||
}
|
||||
|
||||
int idx = children.isEmpty() ? element.getContentSize() : element.indexOf((Content)children.get(0));
|
||||
for (Element el : elements) {
|
||||
final String name = el.getAttributeValue("name");
|
||||
int i = foundNames.indexOf(name);
|
||||
if (i == -1) {
|
||||
element.addContent(idx, (Content)el.clone());
|
||||
}
|
||||
idx ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void writeExternal(ModuleBasedConfiguration runConfiguration, Element element) throws WriteExternalException;
|
||||
|
||||
public abstract <T extends ModuleBasedConfiguration & RunJavaConfiguration> void patchConfiguration(T runJavaConfiguration);
|
||||
public abstract <T extends ModuleBasedConfiguration & RunJavaConfiguration> void checkConfiguration(T runJavaConfiguration) throws RuntimeConfigurationException;
|
||||
|
||||
public static <T extends ModuleBasedConfiguration & RunJavaConfiguration> void patchCreatedConfiguration(T configuration) {
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
extension.patchConfiguration(configuration);
|
||||
}
|
||||
}
|
||||
|
||||
public static <T extends ModuleBasedConfiguration & RunJavaConfiguration> void checkConfigurationIsValid(T configuration) throws RuntimeConfigurationException {
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) {
|
||||
extension.checkConfiguration(configuration);
|
||||
}
|
||||
}
|
||||
}
|
||||
+4
-6
@@ -125,6 +125,8 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
|
||||
if (!PsiMethodUtil.hasMainMethod(psiClass)) {
|
||||
throw new RuntimeConfigurationWarning(ExecutionBundle.message("main.method.not.found.in.class.error.message", MAIN_CLASS_NAME));
|
||||
}
|
||||
|
||||
RunConfigurationExtension.checkConfigurationIsValid(this);
|
||||
}
|
||||
|
||||
public void setProperty(final int property, final String value) {
|
||||
@@ -199,9 +201,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
|
||||
public void readExternal(final Element element) throws InvalidDataException {
|
||||
PathMacroManager.getInstance(getProject()).expandPaths(element);
|
||||
super.readExternal(element);
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
extension.readExternal(this, element);
|
||||
}
|
||||
RunConfigurationExtension.readSettings(this, element);
|
||||
DefaultJDOMExternalizer.readExternal(this, element);
|
||||
readModule(element);
|
||||
EnvironmentVariablesComponent.readExternal(element, getEnvs());
|
||||
@@ -209,9 +209,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
|
||||
|
||||
public void writeExternal(final Element element) throws WriteExternalException {
|
||||
super.writeExternal(element);
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
extension.writeExternal(this, element);
|
||||
}
|
||||
RunConfigurationExtension.writeSettings(this, element);
|
||||
DefaultJDOMExternalizer.writeExternal(this, element);
|
||||
writeModule(element);
|
||||
EnvironmentVariablesComponent.writeExternal(element, getEnvs());
|
||||
|
||||
@@ -27,7 +27,6 @@ import com.intellij.execution.testframework.TestSearchScope;
|
||||
import com.intellij.execution.util.JavaParametersUtil;
|
||||
import com.intellij.openapi.components.PathMacroManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.options.SettingsEditor;
|
||||
@@ -98,6 +97,7 @@ public class JUnitConfiguration extends ModuleBasedConfiguration<JavaRunConfigur
|
||||
|
||||
public void checkConfiguration() throws RuntimeConfigurationException {
|
||||
myData.getTestObject(getProject(), this).checkConfiguration();
|
||||
RunConfigurationExtension.checkConfigurationIsValid(this);
|
||||
}
|
||||
|
||||
public Collection<Module> getValidModules() {
|
||||
@@ -211,9 +211,7 @@ public class JUnitConfiguration extends ModuleBasedConfiguration<JavaRunConfigur
|
||||
public void readExternal(final Element element) throws InvalidDataException {
|
||||
PathMacroManager.getInstance(getProject()).expandPaths(element);
|
||||
super.readExternal(element);
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
extension.readExternal(this, element);
|
||||
}
|
||||
RunConfigurationExtension.readSettings(this, element);
|
||||
readModule(element);
|
||||
DefaultJDOMExternalizer.readExternal(this, element);
|
||||
DefaultJDOMExternalizer.readExternal(getPersistentData(), element);
|
||||
@@ -222,9 +220,7 @@ public class JUnitConfiguration extends ModuleBasedConfiguration<JavaRunConfigur
|
||||
|
||||
public void writeExternal(final Element element) throws WriteExternalException {
|
||||
super.writeExternal(element);
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
extension.writeExternal(this, element);
|
||||
}
|
||||
RunConfigurationExtension.writeSettings(this, element);
|
||||
writeModule(element);
|
||||
DefaultJDOMExternalizer.writeExternal(this, element);
|
||||
DefaultJDOMExternalizer.writeExternal(getPersistentData(), element);
|
||||
|
||||
+4
-8
@@ -21,7 +21,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.DefaultJDOMExternalizer;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
@@ -32,10 +31,10 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.testng.xml.Parser;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.io.FileInputStream;
|
||||
|
||||
public class TestNGConfiguration extends ModuleBasedConfiguration<JavaRunConfigurationModule> implements RunJavaConfiguration, RefactoringListenerProvider {
|
||||
//private TestNGResultsContainer resultsContainer;
|
||||
@@ -260,6 +259,7 @@ public class TestNGConfiguration extends ModuleBasedConfiguration<JavaRunConfigu
|
||||
throw new RuntimeConfigurationException("Unable to parse '" + data.getSuiteName() + "' specified");
|
||||
}
|
||||
}
|
||||
RunConfigurationExtension.checkConfigurationIsValid(this);
|
||||
//TODO add various checks here
|
||||
}
|
||||
|
||||
@@ -267,9 +267,7 @@ public class TestNGConfiguration extends ModuleBasedConfiguration<JavaRunConfigu
|
||||
public void readExternal(Element element) throws InvalidDataException {
|
||||
PathMacroManager.getInstance(getProject()).expandPaths(element);
|
||||
super.readExternal(element);
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
extension.readExternal(this, element);
|
||||
}
|
||||
RunConfigurationExtension.readSettings(this, element);
|
||||
readModule(element);
|
||||
DefaultJDOMExternalizer.readExternal(this, element);
|
||||
DefaultJDOMExternalizer.readExternal(getPersistantData(), element);
|
||||
@@ -299,9 +297,7 @@ public class TestNGConfiguration extends ModuleBasedConfiguration<JavaRunConfigu
|
||||
@Override
|
||||
public void writeExternal(Element element) throws WriteExternalException {
|
||||
super.writeExternal(element);
|
||||
for (RunConfigurationExtension extension : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
extension.writeExternal(this, element);
|
||||
}
|
||||
RunConfigurationExtension.writeSettings(this, element);
|
||||
writeModule(element);
|
||||
DefaultJDOMExternalizer.writeExternal(this, element);
|
||||
DefaultJDOMExternalizer.writeExternal(getPersistantData(), element);
|
||||
|
||||
+11
@@ -112,6 +112,11 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
|
||||
return null; //To change body of implemented methods use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "snapshooter";
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & RunJavaConfiguration> Icon getIcon(T runConfiguration) {
|
||||
return null; //To change body of implemented methods use File | Settings | File Templates.
|
||||
@@ -130,4 +135,10 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & RunJavaConfiguration> void patchConfiguration(T runJavaConfiguration) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ModuleBasedConfiguration & RunJavaConfiguration> void checkConfiguration(T runJavaConfiguration)
|
||||
throws RuntimeConfigurationException {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user