coverage: replace check if coverage is enabled for configuration with executor check

This commit is contained in:
anna
2011-10-04 11:38:33 +02:00
parent 760647fd95
commit f23b5a61bc
8 changed files with 25 additions and 17 deletions
@@ -46,7 +46,9 @@ import java.util.TreeMap;
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 RunConfigurationBase configuration, final OSProcessHandler handler);
public abstract void handleStartProcess(final RunConfigurationBase configuration,
final OSProcessHandler handler,
RunnerSettings runnerSettings);
@Nullable
public abstract SettingsEditor createEditor(RunConfigurationBase configuration);
public abstract String getEditorTitle();
@@ -266,8 +266,9 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
@Override
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);
ext.handleStartProcess(ApplicationConfiguration.this, handler, runnerSettings);
}
return handler;
@@ -58,11 +58,13 @@ public abstract class RunConfigurationExtension<T extends AbstractRunConfigurati
protected abstract boolean isApplicableFor(@NotNull final T configuration);
/**
*
* @param applicableConfiguration Applicable run configuration
* @param runnerSettings
* @return True if extension is tuned on in configuration extension settings.
* E.g. RCov is turned on for given run configuration.
*/
protected abstract boolean isEnabledFor(@NotNull final T applicableConfiguration);
protected abstract boolean isEnabledFor(@NotNull final T applicableConfiguration, @Nullable RunnerSettings runnerSettings);
protected abstract void patchCommandLine(@NotNull final T configuration,
RunnerSettings runnerSettings, @NotNull final GeneralCommandLine cmdLine,
@@ -93,5 +95,5 @@ public abstract class RunConfigurationExtension<T extends AbstractRunConfigurati
protected abstract void attachToProcess(@NotNull final T configuration,
@NotNull final ProcessHandler handler,
@NotNull final AbstractRunConfiguration.RunnerType type);
@NotNull final AbstractRunConfiguration.RunnerType type, RunnerSettings runnerSettings);
}
@@ -15,6 +15,7 @@ import com.intellij.openapi.util.WriteExternalException;
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.ArrayList;
@@ -109,7 +110,7 @@ public class RunConfigurationExtensionsManager<U extends AbstractRunConfiguratio
public void validateConfiguration(@NotNull final U configuration,
final boolean isExecution) throws Exception {
// only for enabled extensions
for (T extension : getEnabledExtensions(configuration)) {
for (T extension : getEnabledExtensions(configuration, null)) {
extension.validateConfiguration(configuration, isExecution);
}
}
@@ -128,20 +129,20 @@ public class RunConfigurationExtensionsManager<U extends AbstractRunConfiguratio
}
public void patchCommandLine(@NotNull final U configuration,
RunnerSettings runnerSettings, @NotNull final GeneralCommandLine cmdLine,
final RunnerSettings runnerSettings, @NotNull final GeneralCommandLine cmdLine,
@NotNull final AbstractRunConfiguration.RunnerType type) {
// only for enabled extensions
for (T extension : getEnabledExtensions(configuration)) {
for (T extension : getEnabledExtensions(configuration, runnerSettings)) {
extension.patchCommandLine(configuration, runnerSettings, cmdLine, type);
}
}
public void attachExtensionsToProcess(@NotNull final U configuration,
@NotNull final ProcessHandler handler,
@NotNull final AbstractRunConfiguration.RunnerType type) {
@NotNull final AbstractRunConfiguration.RunnerType type, RunnerSettings runnerSettings) {
// only for enabled extensions
for (T extension : getEnabledExtensions(configuration)) {
extension.attachToProcess(configuration, handler, type);
for (T extension : getEnabledExtensions(configuration, runnerSettings)) {
extension.attachToProcess(configuration, handler, type, runnerSettings);
}
}
@@ -155,10 +156,10 @@ public class RunConfigurationExtensionsManager<U extends AbstractRunConfiguratio
return extensions;
}
private List<T> getEnabledExtensions(@NotNull final U configuration) {
private List<T> getEnabledExtensions(@NotNull final U configuration, @Nullable RunnerSettings runnerSettings) {
final List<T> extensions = new ArrayList<T>();
for (T extension : Extensions.getExtensions(myExtensionPointName)) {
if (extension.isApplicableFor(configuration) && extension.isEnabledFor(configuration)) {
if (extension.isApplicableFor(configuration) && extension.isEnabledFor(configuration, runnerSettings)) {
extensions.add(extension);
}
}
@@ -272,8 +272,9 @@ public abstract class MvcRunConfiguration extends ModuleBasedConfiguration<RunCo
@Override
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);
ext.handleStartProcess(MvcRunConfiguration.this, handler, runnerSettings);
}
return handler;
@@ -254,12 +254,13 @@ 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);
ext.handleStartProcess(myConfiguration, handler, runnerSettings);
}
final TestProxy unboundOutputRoot = new TestProxy(new RootTestInfo());
final JUnitConsoleProperties consoleProperties = new JUnitConsoleProperties(myConfiguration, executor);
final JUnitTreeConsoleView consoleView = new JUnitTreeConsoleView(consoleProperties, getRunnerSettings(), getConfigurationSettings(), unboundOutputRoot);
final JUnitTreeConsoleView consoleView = new JUnitTreeConsoleView(consoleProperties, runnerSettings, getConfigurationSettings(), unboundOutputRoot);
consoleView.initUI();
consoleView.attachToProcess(handler);
unboundOutputRoot.setPrinter(consoleView.getPrinter());
@@ -132,7 +132,7 @@ public class TestNGRunnableState extends JavaCommandLineState {
unboundOutputRoot.setPrinter(console.getPrinter());
Disposer.register(console, unboundOutputRoot);
for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
ext.handleStartProcess(config, processHandler);
ext.handleStartProcess(config, processHandler, runnerSettings);
}
final SearchingForTestsTask task = createSearchingForTestsTask(myServerSocket, config, myTempFile);
processHandler.addProcessListener(new ProcessAdapter() {
@@ -101,7 +101,7 @@ public class SnapShooterConfigurationExtension extends RunConfigurationExtension
}
}
public void handleStartProcess(final RunConfigurationBase configuration, final OSProcessHandler handler) {
public void handleStartProcess(final RunConfigurationBase configuration, final OSProcessHandler handler, RunnerSettings runnerSettings) {
SnapShooterConfigurationSettings settings = configuration.getUserData(SnapShooterConfigurationSettings.SNAP_SHOOTER_KEY);
if (settings != null) {
final Runnable runnable = settings.getNotifyRunnable();