From 486f610720cf4dab7b5ff565242b24e573fe54bf Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 13:21:12 +0200 Subject: [PATCH 01/10] remove some obsolete usages of runner ID --- .../com/intellij/compiler/options/CompileStepBeforeRun.java | 2 -- .../src/com/intellij/execution/BeforeRunTaskProvider.java | 2 -- .../src/com/intellij/execution/impl/ExecutionManagerImpl.java | 3 +-- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/java/execution/impl/src/com/intellij/compiler/options/CompileStepBeforeRun.java b/java/execution/impl/src/com/intellij/compiler/options/CompileStepBeforeRun.java index dd5baa6fa70e..21e25afb4e81 100644 --- a/java/execution/impl/src/com/intellij/compiler/options/CompileStepBeforeRun.java +++ b/java/execution/impl/src/com/intellij/compiler/options/CompileStepBeforeRun.java @@ -49,7 +49,6 @@ public class CompileStepBeforeRun extends BeforeRunTaskProvider ID = Key.create("Make"); private static final Key RUN_CONFIGURATION = Key.create("RUN_CONFIGURATION"); private static final Key RUN_CONFIGURATION_TYPE_ID = Key.create("RUN_CONFIGURATION_TYPE_ID"); - private static final Key RUNNER_ID = Key.create("RUNNER_ID"); @NonNls protected static final String MAKE_PROJECT_ON_RUN_KEY = "makeProjectOnRun"; @@ -153,7 +152,6 @@ public class CompileStepBeforeRun extends BeforeRunTaskProvider { public static final ExtensionPointName> EXTENSION_POINT_NAME = new ExtensionPointName>("com.intellij.stepsBeforeRunProvider"); - public static final String RUNNER_ID = "RunnerId"; - public abstract Key getId(); public abstract String getName(); diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java index 6e52bca1d19d..a3dd27f99515 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java @@ -132,7 +132,6 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom activeTasks.addAll(runManager.getBeforeRunTasks(runConfiguration)); final DataContext projectContext = SimpleDataContext.getProjectContext(myProject); - final DataContext dataContext = SimpleDataContext.getSimpleContext(BeforeRunTaskProvider.RUNNER_ID, env.getRunnerId(), projectContext); if (!activeTasks.isEmpty()) { final long finalId = id; @@ -157,7 +156,7 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom env.getRunnerAndConfigurationSettings(), env.getRunnerId()); taskEnvironment.setExecutionId(finalId); - if (!provider.executeTask(dataContext, runConfiguration, taskEnvironment, task)) { + if (!provider.executeTask(projectContext, runConfiguration, taskEnvironment, task)) { if (onCancelRunnable != null) { SwingUtilities.invokeLater(onCancelRunnable); } From ec6bf2e3f6e0a0ce20a56f58a0834c1a11c6b57e Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 13:39:12 +0200 Subject: [PATCH 02/10] introduce and use API for copying an ExecutionEnvironment --- .../configurations/RunProfileState.java | 1 + .../execution/runners/ExecutionEnvironment.java | 17 ----------------- .../runners/ExecutionEnvironmentBuilder.java | 16 ++++++++++++++++ .../execution/impl/ExecutionManagerImpl.java | 10 ++-------- .../actions/AbstractRerunFailedTestsAction.java | 15 ++++++--------- .../intellij/execution/junit/TestObject.java | 6 +----- .../intellij/execution/junit/TestPackage.java | 5 ++--- .../idea/maven/execution/MavenResumeAction.java | 4 ++-- 8 files changed, 30 insertions(+), 44 deletions(-) diff --git a/platform/lang-api/src/com/intellij/execution/configurations/RunProfileState.java b/platform/lang-api/src/com/intellij/execution/configurations/RunProfileState.java index 42282b39f063..5abaa75f29ab 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/RunProfileState.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/RunProfileState.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.Nullable; * variables, working directory etc. * * @see CommandLineState + * @see RunConfiguration#getState(com.intellij.execution.Executor, com.intellij.execution.runners.ExecutionEnvironment) */ public interface RunProfileState { /** diff --git a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java index 60c586410dd7..8eb0b326195d 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java @@ -71,23 +71,6 @@ public class ExecutionEnvironment extends UserDataHolderBase { runner.getRunnerId()); } - /** - * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead - */ - public ExecutionEnvironment(@NotNull final ProgramRunner runner, - @NotNull final ExecutionTarget target, - @NotNull final RunnerAndConfigurationSettings configuration, - @Nullable RunContentDescriptor contentToReuse, - Project project) { - this(configuration.getConfiguration(), - target, - project, - configuration.getRunnerSettings(runner), - configuration.getConfigurationSettings(runner), - contentToReuse, - configuration, runner.getRunnerId()); - } - /** * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead */ diff --git a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java index e58c6d868ac9..4ece488aadd8 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java @@ -47,6 +47,22 @@ public final class ExecutionEnvironmentBuilder { public ExecutionEnvironmentBuilder() { } + /** + * Creates an execution environment builder initialized with a copy of the specified environment. + * + * @param copySource the environment to copy from. + */ + public ExecutionEnvironmentBuilder(@NotNull ExecutionEnvironment copySource) { + setTarget(copySource.getExecutionTarget()); + setProject(copySource.getProject()); + myRunnerAndConfigurationSettings = copySource.getRunnerAndConfigurationSettings(); + myRunProfile = copySource.getRunProfile(); + myRunnerSettings = copySource.getRunnerSettings(); + myConfigurationSettings = copySource.getConfigurationSettings(); + myRunnerId = copySource.getRunnerId(); + setContentToReuse(copySource.getContentToReuse()); + } + public ExecutionEnvironmentBuilder setTarget(@NotNull ExecutionTarget target) { myTarget = target; return this; diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java index a3dd27f99515..b3a0d5d7e39a 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java @@ -23,6 +23,7 @@ import com.intellij.execution.process.ProcessAdapter; import com.intellij.execution.process.ProcessEvent; import com.intellij.execution.process.ProcessHandler; import com.intellij.execution.runners.ExecutionEnvironment; +import com.intellij.execution.runners.ExecutionEnvironmentBuilder; import com.intellij.execution.runners.ExecutionUtil; import com.intellij.execution.runners.ProgramRunner; import com.intellij.execution.ui.RunContentDescriptor; @@ -147,14 +148,7 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom LOG.warn("Cannot find BeforeRunTaskProvider for id='" + task.getProviderId() + "'"); continue; } - ExecutionEnvironment taskEnvironment = new ExecutionEnvironment(env.getRunProfile(), - env.getExecutionTarget(), - env.getProject(), - env.getRunnerSettings(), - env.getConfigurationSettings(), - null, - env.getRunnerAndConfigurationSettings(), - env.getRunnerId()); + ExecutionEnvironment taskEnvironment = new ExecutionEnvironmentBuilder(env).setContentToReuse(null).build(); taskEnvironment.setExecutionId(finalId); if (!provider.executeTask(projectContext, runConfiguration, taskEnvironment, task)) { if (onCancelRunnable != null) { diff --git a/platform/testRunner/src/com/intellij/execution/testframework/actions/AbstractRerunFailedTestsAction.java b/platform/testRunner/src/com/intellij/execution/testframework/actions/AbstractRerunFailedTestsAction.java index 3ae1af1a7283..4e18ae7ff542 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/actions/AbstractRerunFailedTestsAction.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/actions/AbstractRerunFailedTestsAction.java @@ -27,6 +27,7 @@ import com.intellij.execution.configurations.*; import com.intellij.execution.executors.DefaultDebugExecutor; import com.intellij.execution.executors.DefaultRunExecutor; import com.intellij.execution.runners.ExecutionEnvironment; +import com.intellij.execution.runners.ExecutionEnvironmentBuilder; import com.intellij.execution.runners.ProgramRunner; import com.intellij.execution.testframework.AbstractTestProxy; import com.intellij.execution.testframework.Filter; @@ -39,7 +40,10 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.ComponentContainer; -import com.intellij.openapi.util.*; +import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.Getter; +import com.intellij.openapi.util.InvalidDataException; +import com.intellij.openapi.util.WriteExternalException; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.util.containers.ContainerUtil; import org.jdom.Element; @@ -169,14 +173,7 @@ public class AbstractRerunFailedTestsAction extends AnAction implements AnAction final Executor executor = isDebug ? DefaultDebugExecutor.getDebugExecutorInstance() : DefaultRunExecutor.getRunExecutorInstance(); final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(executor.getId(), profile); assert runner != null; - runner.execute(executor, new ExecutionEnvironment(profile, - myEnvironment.getExecutionTarget(), - profile.getProject(), - myEnvironment.getRunnerSettings(), - myEnvironment.getConfigurationSettings(), - myEnvironment.getContentToReuse(), - null, - myEnvironment.getRunnerId())); + runner.execute(executor, new ExecutionEnvironmentBuilder(myEnvironment).build()); } catch (ExecutionException e1) { LOG.error(e1); diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index f496c86c9506..4dd05842aa7e 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java @@ -88,7 +88,7 @@ public abstract class TestObject implements JavaCommandLine { protected JavaParameters myJavaParameters; private final Project myProject; protected final JUnitConfiguration myConfiguration; - private final ExecutionEnvironment myEnvironment; + protected final ExecutionEnvironment myEnvironment; protected File myTempFile = null; protected File myWorkingDirsFile = null; public File myListenersFile; @@ -135,10 +135,6 @@ public abstract class TestObject implements JavaCommandLine { return myEnvironment.getConfigurationSettings(); } - public String getRunnerId() { - return myEnvironment.getRunnerId(); - } - public abstract RefactoringElementListener getListener(PsiElement element, JUnitConfiguration configuration); public abstract boolean isConfiguredByElement(JUnitConfiguration configuration, diff --git a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java index 7fcf1115bc9c..58cd5cff7ea4 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java @@ -26,6 +26,7 @@ import com.intellij.execution.junit2.ui.properties.JUnitConsoleProperties; import com.intellij.execution.process.ProcessAdapter; import com.intellij.execution.process.ProcessEvent; import com.intellij.execution.runners.ExecutionEnvironment; +import com.intellij.execution.runners.ExecutionEnvironmentBuilder; import com.intellij.execution.runners.ProgramRunner; import com.intellij.execution.testframework.SourceScope; import com.intellij.execution.testframework.TestSearchScope; @@ -445,9 +446,7 @@ public class TestPackage extends TestObject { : DefaultRunExecutor.getRunExecutorInstance(); final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(executor.getId(), myConfiguration); assert runner != null; - runner.execute(executor, - new ExecutionEnvironment(myConfiguration, DefaultExecutionTarget.INSTANCE, myProject, getRunnerSettings(), getConfigurationSettings(), - null, null, getRunnerId())); + runner.execute(executor, new ExecutionEnvironmentBuilder(myEnvironment).setContentToReuse(null).build()); final Balloon balloon = myToolWindowManager.getToolWindowBalloon(myTestRunDebugId); if (balloon != null) { balloon.hide(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java index 01e94c5f9142..7e9adb5d13dc 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java @@ -25,6 +25,7 @@ import com.intellij.execution.process.ProcessEvent; import com.intellij.execution.process.ProcessHandler; import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.runners.ExecutionEnvironment; +import com.intellij.execution.runners.ExecutionEnvironmentBuilder; import com.intellij.execution.runners.ProgramRunner; import com.intellij.icons.AllIcons; import com.intellij.openapi.actionSystem.AnAction; @@ -300,8 +301,7 @@ public class MavenResumeAction extends AnAction { goals.add(myResumeModuleId); } - myRunner.execute(myExecutor, new ExecutionEnvironment(runConfiguration, myEnvironment.getExecutionTarget(), project, myEnvironment.getRunnerSettings(), - myEnvironment.getConfigurationSettings(), null, null, myEnvironment.getRunnerId())); + myRunner.execute(myExecutor, new ExecutionEnvironmentBuilder(myEnvironment).setContentToReuse(null).build()); } catch (RunCanceledByUserException ignore) { } From 402f7b2466744e5c5b5bdb8e02ddf6dab3bd31c3 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 14:05:36 +0200 Subject: [PATCH 03/10] delete some unused implementations of getRunnerSettings() and getConfigurationSettings() --- .../debugger/engine/RemoteStateState.java | 18 +----------------- .../execution/remote/RemoteConfiguration.java | 2 +- .../intellij/debugger/DebuggerTestCase.java | 2 +- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java b/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java index 4205f24ddeaf..253ccc167eb9 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/RemoteStateState.java @@ -19,10 +19,8 @@ import com.intellij.execution.DefaultExecutionResult; import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionResult; import com.intellij.execution.Executor; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; import com.intellij.execution.configurations.RemoteConnection; import com.intellij.execution.configurations.RemoteState; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.impl.ConsoleViewImpl; import com.intellij.execution.runners.ProgramRunner; import com.intellij.openapi.project.Project; @@ -34,25 +32,11 @@ import org.jetbrains.annotations.NotNull; public class RemoteStateState implements RemoteState { private final Project myProject; private final RemoteConnection myConnection; - private final RunnerSettings myRunnerSettings; - private final ConfigurationPerRunnerSettings myConfigurationSettings; public RemoteStateState(Project project, - RemoteConnection connection, - RunnerSettings runnerSettings, - ConfigurationPerRunnerSettings configurationSettings) { + RemoteConnection connection) { myProject = project; myConnection = connection; - myRunnerSettings = runnerSettings; - myConfigurationSettings = configurationSettings; - } - - public RunnerSettings getRunnerSettings() { - return myRunnerSettings; - } - - public ConfigurationPerRunnerSettings getConfigurationSettings() { - return myConfigurationSettings; } public ExecutionResult execute(final Executor executor, @NotNull final ProgramRunner runner) throws ExecutionException { diff --git a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java index 0c261a64cb79..efac18a921ca 100644 --- a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java +++ b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfiguration.java @@ -78,7 +78,7 @@ public class RemoteConfiguration extends ModuleBasedConfiguration getConfigurationEditor() { diff --git a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java index be3b7964dece..7fd793fd0761 100644 --- a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java +++ b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java @@ -276,7 +276,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas protected DebuggerSession attachVM(final RemoteConnection remoteConnection, final boolean pollConnection) throws InvocationTargetException, InterruptedException { - final RemoteState remoteState = new RemoteStateState(myProject, remoteConnection, null, null); + final RemoteState remoteState = new RemoteStateState(myProject, remoteConnection); final DebuggerSession[] debuggerSession = new DebuggerSession[1]; UIUtil.invokeAndWaitIfNeeded(new Runnable() { From 60851a9f9f0c567599dc4837d05f699a9f3c77d8 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 16:21:33 +0200 Subject: [PATCH 04/10] test console view receives entire ExecutionEnvironment, not separate RunnerSettings and ConfigurationPerRunnerSettings --- .../configurations/CommandLineState.java | 4 --- .../sm/SMTestRunnerConnectionUtil.java | 32 +++++++------------ .../sm/runner/ui/SMTRunnerConsoleView.java | 20 +++++------- .../sm/runner/ui/SMTRunnerToolbarPanel.java | 16 ++-------- .../sm/runner/ui/SMTestRunnerResultsForm.java | 15 ++++----- ...GeneralToSMTRunnerEventsConvertorTest.java | 11 +++---- .../sm/runner/SMTRunnerConsoleTest.java | 9 ++---- .../ui/SMTestRunnerResultsFormTest.java | 2 +- .../SMTRunnerStatisticsPanelTest.java | 3 +- .../execution/testframework/ToolbarPanel.java | 13 +++----- .../testframework/ui/TestResultsPanel.java | 13 +++----- .../intellij/execution/junit/TestObject.java | 9 ++---- .../execution/junit2/ui/ConsolePanel.java | 11 +++---- .../junit2/ui/JUnitTreeConsoleView.java | 14 +++----- .../junit2/ui/actions/JUnitToolbarPanel.java | 16 ++++------ .../configuration/TestNGRunnableState.java | 8 ++--- .../testng/ui/TestNGConsoleView.java | 14 +++----- .../testng/ui/TestNGResults.java | 16 ++++------ 18 files changed, 78 insertions(+), 148 deletions(-) diff --git a/platform/lang-api/src/com/intellij/execution/configurations/CommandLineState.java b/platform/lang-api/src/com/intellij/execution/configurations/CommandLineState.java index 6d86e3185c16..18ba833de398 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/CommandLineState.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/CommandLineState.java @@ -51,10 +51,6 @@ public abstract class CommandLineState implements RunProfileState { return myEnvironment.getRunnerSettings(); } - public ConfigurationPerRunnerSettings getConfigurationSettings() { - return myEnvironment.getConfigurationSettings(); - } - @NotNull public ExecutionTarget getExecutionTarget() { return myEnvironment.getExecutionTarget(); diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/SMTestRunnerConnectionUtil.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/SMTestRunnerConnectionUtil.java index 57f52efda607..6d3f202ccb57 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/SMTestRunnerConnectionUtil.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/SMTestRunnerConnectionUtil.java @@ -18,15 +18,13 @@ package com.intellij.execution.testframework.sm; import com.intellij.execution.ExecutionException; import com.intellij.execution.Executor; import com.intellij.execution.configurations.CommandLineState; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.configurations.RuntimeConfiguration; import com.intellij.execution.process.ProcessAdapter; import com.intellij.execution.process.ProcessEvent; import com.intellij.execution.process.ProcessHandler; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.TestConsoleProperties; import com.intellij.execution.testframework.sm.runner.*; -import com.intellij.execution.testframework.sm.runner.TestProxyFilterProvider; import com.intellij.execution.testframework.sm.runner.ui.*; import com.intellij.execution.testframework.sm.runner.ui.statistics.StatisticsPanel; import com.intellij.execution.testframework.ui.BaseTestsOutputConsoleView; @@ -70,23 +68,20 @@ public class SMTestRunnerConnectionUtil { public static BaseTestsOutputConsoleView createAndAttachConsole(@NotNull final String testFrameworkName, @NotNull final ProcessHandler processHandler, @NotNull final TestConsoleProperties consoleProperties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings + ExecutionEnvironment environment ) throws ExecutionException { - BaseTestsOutputConsoleView console = createConsole(testFrameworkName, consoleProperties, runnerSettings, configurationSettings); + BaseTestsOutputConsoleView console = createConsole(testFrameworkName, consoleProperties, environment); console.attachToProcess(processHandler); return console; } public static BaseTestsOutputConsoleView createConsoleWithCustomLocator(@NotNull final String testFrameworkName, @NotNull final TestConsoleProperties consoleProperties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, + ExecutionEnvironment environment, @Nullable final TestLocationProvider locator) { return createConsoleWithCustomLocator(testFrameworkName, consoleProperties, - runnerSettings, - configurationSettings, + environment, new CompositeTestLocationProvider(locator), false, null); @@ -94,15 +89,13 @@ public class SMTestRunnerConnectionUtil { public static SMTRunnerConsoleView createConsoleWithCustomLocator(@NotNull final String testFrameworkName, @NotNull final TestConsoleProperties consoleProperties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, + ExecutionEnvironment environment, @Nullable final TestLocationProvider locator, final boolean idBasedTreeConstruction, @Nullable final TestProxyFilterProvider filterProvider) { String splitterPropertyName = getSplitterPropertyName(testFrameworkName); SMTRunnerConsoleView consoleView = new SMTRunnerConsoleView(consoleProperties, - runnerSettings, - configurationSettings, + environment, splitterPropertyName); initConsoleView(consoleView, testFrameworkName, locator, idBasedTreeConstruction, filterProvider); return consoleView; @@ -142,10 +135,9 @@ public class SMTestRunnerConnectionUtil { public static BaseTestsOutputConsoleView createConsole(@NotNull final String testFrameworkName, @NotNull final TestConsoleProperties consoleProperties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings) { + ExecutionEnvironment environment) { - return createConsoleWithCustomLocator(testFrameworkName, consoleProperties, runnerSettings, configurationSettings, null); + return createConsoleWithCustomLocator(testFrameworkName, consoleProperties, environment, null); } /** @@ -203,8 +195,7 @@ public class SMTestRunnerConnectionUtil { final TestConsoleProperties consoleProperties = new SMTRunnerConsoleProperties(config, testFrameworkName, executor); return createAndAttachConsole(testFrameworkName, processHandler, consoleProperties, - commandLineState.getRunnerSettings(), - commandLineState.getConfigurationSettings()); + commandLineState.getEnvironment()); } public static ConsoleView createConsole(@NotNull final String testFrameworkName, @@ -217,8 +208,7 @@ public class SMTestRunnerConnectionUtil { return createConsole(testFrameworkName, consoleProperties, - commandLineState.getRunnerSettings(), - commandLineState.getConfigurationSettings()); + commandLineState.getEnvironment()); } /** diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerConsoleView.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerConsoleView.java index 1dd668b198dc..c30f85a058b2 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerConsoleView.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerConsoleView.java @@ -15,10 +15,9 @@ */ package com.intellij.execution.testframework.sm.runner.ui; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.filters.HyperlinkInfo; import com.intellij.execution.process.ProcessHandler; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.*; import com.intellij.execution.testframework.sm.SMRunnerUtil; import com.intellij.execution.testframework.sm.runner.SMTestProxy; @@ -36,15 +35,13 @@ import java.util.List; * @author: Roman Chernyatchik */ public class SMTRunnerConsoleView extends BaseTestsOutputConsoleView { + private final ExecutionEnvironment myEnvironment; private SMTestRunnerResultsForm myResultsViewer; - private final RunnerSettings myRunnerSettings; - private final ConfigurationPerRunnerSettings myConfigurationPerRunnerSettings; @Nullable private final String mySplitterProperty; private final List myAttachToProcessListeners = ContainerUtil.createEmptyCOWList(); - public SMTRunnerConsoleView(final TestConsoleProperties consoleProperties, final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationPerRunnerSettings) { - this(consoleProperties, runnerSettings, configurationPerRunnerSettings, null); + public SMTRunnerConsoleView(final TestConsoleProperties consoleProperties, final ExecutionEnvironment environment) { + this(consoleProperties, environment, null); } /** @@ -53,12 +50,11 @@ public class SMTRunnerConsoleView extends BaseTestsOutputConsoleView { * @param configurationPerRunnerSettings * @param splitterProperty Key to store(project level) latest value of testTree/consoleTab splitter. E.g. "RSpec.Splitter.Proportion" */ - public SMTRunnerConsoleView(final TestConsoleProperties consoleProperties, final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationPerRunnerSettings, + public SMTRunnerConsoleView(final TestConsoleProperties consoleProperties, + final ExecutionEnvironment environment, @Nullable final String splitterProperty) { super(consoleProperties, null); - myRunnerSettings = runnerSettings; - myConfigurationPerRunnerSettings = configurationPerRunnerSettings; + myEnvironment = environment; mySplitterProperty = splitterProperty; } @@ -68,7 +64,7 @@ public class SMTRunnerConsoleView extends BaseTestsOutputConsoleView { getConsole().getComponent(), getConsole().createConsoleActions(), myProperties, - myRunnerSettings, myConfigurationPerRunnerSettings, + myEnvironment, mySplitterProperty); return myResultsViewer; } diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerToolbarPanel.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerToolbarPanel.java index 6d76e5d990ec..9d6fa6c990bd 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerToolbarPanel.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTRunnerToolbarPanel.java @@ -15,12 +15,10 @@ */ package com.intellij.execution.testframework.sm.runner.ui; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.TestConsoleProperties; import com.intellij.execution.testframework.TestFrameworkRunningModel; import com.intellij.execution.testframework.ToolbarPanel; -import com.intellij.openapi.actionSystem.DefaultActionGroup; import javax.swing.*; @@ -29,22 +27,14 @@ import javax.swing.*; */ public class SMTRunnerToolbarPanel extends ToolbarPanel { public SMTRunnerToolbarPanel(final TestConsoleProperties properties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, + final ExecutionEnvironment environment, final TestFrameworkRunningModel model, JComponent contentPane) { - super(properties, runnerSettings, configurationSettings, contentPane); + super(properties, environment, contentPane); //TODO rerun failed test //TODO coverage setModel(model); } - protected void appendAdditionalActions(final DefaultActionGroup actionGroup, - final TestConsoleProperties properties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, JComponent parent) { - //To change body of implemented methods use File | Settings | File Templates. - } - @Override public void setModel(final TestFrameworkRunningModel model) { //TODO: RunningTestTracker - for tracking current test diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java index ea0395789e0d..052401dd7502 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java @@ -15,9 +15,8 @@ */ package com.intellij.execution.testframework.sm.runner.ui; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; import com.intellij.execution.configurations.RunConfigurationBase; -import com.intellij.execution.configurations.RunnerSettings; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.*; import com.intellij.execution.testframework.sm.SMRunnerUtil; import com.intellij.execution.testframework.sm.runner.SMTRunnerEventsListener; @@ -93,19 +92,17 @@ public class SMTestRunnerResultsForm extends TestResultsPanel public SMTestRunnerResultsForm(final RunConfigurationBase runConfiguration, @NotNull final JComponent console, final TestConsoleProperties consoleProperties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings) { - this(runConfiguration, console, AnAction.EMPTY_ARRAY, consoleProperties, runnerSettings, configurationSettings, null); + final ExecutionEnvironment environment) { + this(runConfiguration, console, AnAction.EMPTY_ARRAY, consoleProperties, environment, null); } public SMTestRunnerResultsForm(final RunConfigurationBase runConfiguration, @NotNull final JComponent console, AnAction[] consoleActions, final TestConsoleProperties consoleProperties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, + final ExecutionEnvironment environment, final String splitterPropertyName) { - super(console, consoleActions, consoleProperties, runnerSettings, configurationSettings, + super(console, consoleActions, consoleProperties, environment, splitterPropertyName != null ? DEFAULT_SM_RUNNER_SPLITTER_PROPERTY : splitterPropertyName, 0.5f); myConsoleProperties = consoleProperties; @@ -142,7 +139,7 @@ public class SMTestRunnerResultsForm extends TestResultsPanel } protected ToolbarPanel createToolbarPanel() { - return new SMTRunnerToolbarPanel(myConsoleProperties, myRunnerSettings, myConfigurationSettings, this, this); + return new SMTRunnerToolbarPanel(myConsoleProperties, myEnvironment, this, this); } protected JComponent createTestTreeView() { diff --git a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java index dd6ed12ebb9c..aadd499db254 100644 --- a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java +++ b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java @@ -15,8 +15,6 @@ */ package com.intellij.execution.testframework.sm.runner; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.AbstractTestProxy; import com.intellij.execution.testframework.TestConsoleProperties; @@ -29,8 +27,8 @@ import com.intellij.execution.testframework.sm.runner.ui.SMTestRunnerResultsForm import com.intellij.execution.testframework.ui.TestsOutputConsolePrinter; import com.intellij.execution.ui.ConsoleViewContentType; import com.intellij.openapi.util.Disposer; -import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeModel; @@ -50,9 +48,8 @@ public class GeneralToSMTRunnerEventsConvertorTest extends BaseSMTRunnerTestCase private class MyConsoleView extends SMTRunnerConsoleView { private final TestsOutputConsolePrinter myTestsOutputConsolePrinter; - private MyConsoleView(final TestConsoleProperties consoleProperties, final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationPerRunnerSettings) { - super(consoleProperties, runnerSettings, configurationPerRunnerSettings); + private MyConsoleView(final TestConsoleProperties consoleProperties, final ExecutionEnvironment environment) { + super(consoleProperties, environment); myTestsOutputConsolePrinter = new TestsOutputConsolePrinter(MyConsoleView.this, consoleProperties, null) { @Override @@ -81,7 +78,7 @@ public class GeneralToSMTRunnerEventsConvertorTest extends BaseSMTRunnerTestCase final ExecutionEnvironment environment = new ExecutionEnvironment(); myMockResettablePrinter = new MockPrinter(true); - myConsole = new MyConsoleView(consoleProperties, environment.getRunnerSettings(), environment.getConfigurationSettings()); + myConsole = new MyConsoleView(consoleProperties, environment); myConsole.initUI(); myResultsViewer = myConsole.getResultsViewer(); myEventsProcessor = new GeneralToSMTRunnerEventsConvertor(myResultsViewer.getTestsRootNode(), "SMTestFramework"); diff --git a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleTest.java b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleTest.java index a51741050efc..4593c6f46777 100644 --- a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleTest.java +++ b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/SMTRunnerConsoleTest.java @@ -15,8 +15,6 @@ */ package com.intellij.execution.testframework.sm.runner; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.process.ProcessOutputTypes; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.Printable; @@ -44,9 +42,8 @@ public class SMTRunnerConsoleTest extends BaseSMTRunnerTestCase { private class MyConsoleView extends SMTRunnerConsoleView { private final TestsOutputConsolePrinter myTestsOutputConsolePrinter; - private MyConsoleView(final TestConsoleProperties consoleProperties, final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationPerRunnerSettings) { - super(consoleProperties, runnerSettings, configurationPerRunnerSettings); + private MyConsoleView(final TestConsoleProperties consoleProperties, final ExecutionEnvironment environment) { + super(consoleProperties, environment); myTestsOutputConsolePrinter = new TestsOutputConsolePrinter(MyConsoleView.this, consoleProperties, null) { @Override @@ -70,7 +67,7 @@ public class SMTRunnerConsoleTest extends BaseSMTRunnerTestCase { final ExecutionEnvironment environment = new ExecutionEnvironment(); myMockResettablePrinter = new MockPrinter(true); - myConsole = new MyConsoleView(consoleProperties, environment.getRunnerSettings(), environment.getConfigurationSettings()); + myConsole = new MyConsoleView(consoleProperties, environment); myConsole.initUI(); myResultsViewer = myConsole.getResultsViewer(); myRootSuite = myResultsViewer.getTestsRootNode(); diff --git a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsFormTest.java b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsFormTest.java index b4aa1ee7148c..499b2e40209c 100644 --- a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsFormTest.java +++ b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsFormTest.java @@ -57,7 +57,7 @@ public class SMTestRunnerResultsFormTest extends BaseSMTRunnerTestCase { final ExecutionEnvironment environment = new ExecutionEnvironment(); - myConsole = new SMTRunnerConsoleView(myConsoleProperties, environment.getRunnerSettings(), environment.getConfigurationSettings()); + myConsole = new SMTRunnerConsoleView(myConsoleProperties, environment); myConsole.initUI(); myResultsViewer = myConsole.getResultsViewer(); myTestsRootNode = myResultsViewer.getTestsRootNode(); diff --git a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/statistics/SMTRunnerStatisticsPanelTest.java b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/statistics/SMTRunnerStatisticsPanelTest.java index 586ac08e8bb3..b70697bc3872 100644 --- a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/statistics/SMTRunnerStatisticsPanelTest.java +++ b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/ui/statistics/SMTRunnerStatisticsPanelTest.java @@ -51,8 +51,7 @@ public class SMTRunnerStatisticsPanelTest extends BaseSMTRunnerTestCase { myResultsForm = new SMTestRunnerResultsForm(consoleProperties.getConfiguration(), new JLabel(), consoleProperties, - environment.getRunnerSettings(), - environment.getConfigurationSettings()); + environment); myResultsForm.initUI(); myStatisticsPanel = myResultsForm.getStatisticsPane(); myTestEventsListener = myStatisticsPanel.createTestEventsListener(); diff --git a/platform/testRunner/src/com/intellij/execution/testframework/ToolbarPanel.java b/platform/testRunner/src/com/intellij/execution/testframework/ToolbarPanel.java index 5b2526781e0e..3cd96220348d 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/ToolbarPanel.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/ToolbarPanel.java @@ -21,8 +21,7 @@ package com.intellij.execution.testframework; import com.intellij.execution.ExecutionBundle; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.actions.ScrollToTestSourceAction; import com.intellij.execution.testframework.actions.ShowStatisticsAction; import com.intellij.execution.testframework.actions.TestFrameworkActions; @@ -53,8 +52,7 @@ public class ToolbarPanel extends JPanel implements OccurenceNavigator, Disposab private final ArrayList myActions = new ArrayList(); public ToolbarPanel(final TestConsoleProperties properties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, JComponent parent) { + ExecutionEnvironment environment, JComponent parent) { super(new BorderLayout()); final DefaultActionGroup actionGroup = new DefaultActionGroup(null, false); actionGroup.addAction(new ToggleBooleanProperty(ExecutionBundle.message("junit.run.hide.passed.action.name"), @@ -116,16 +114,15 @@ public class ToolbarPanel extends JPanel implements OccurenceNavigator, Disposab myExportAction = ExportTestResultsAction.create(properties.getExecutor().getToolWindowId(), properties.getConfiguration()); actionGroup.addAction(myExportAction); - appendAdditionalActions(actionGroup, properties, runnerSettings, configurationSettings, parent); + appendAdditionalActions(actionGroup, properties, environment, parent); add(ActionManager.getInstance(). createActionToolbar(ActionPlaces.TESTTREE_VIEW_TOOLBAR, actionGroup, true). getComponent(), BorderLayout.CENTER); } - protected void appendAdditionalActions(DefaultActionGroup actionGroup, TestConsoleProperties properties, RunnerSettings runnerSettings, - ConfigurationPerRunnerSettings configurationSettings, - JComponent parent) { + protected void appendAdditionalActions(DefaultActionGroup actionGroup, TestConsoleProperties properties, + ExecutionEnvironment environment, JComponent parent) { } public void setModel(final TestFrameworkRunningModel model) { diff --git a/platform/testRunner/src/com/intellij/execution/testframework/ui/TestResultsPanel.java b/platform/testRunner/src/com/intellij/execution/testframework/ui/TestResultsPanel.java index cf3bed4b403d..5a7814f5fa6a 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/ui/TestResultsPanel.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/ui/TestResultsPanel.java @@ -15,8 +15,7 @@ */ package com.intellij.execution.testframework.ui; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.TestConsoleProperties; import com.intellij.execution.testframework.TestFrameworkPropertyListener; import com.intellij.execution.testframework.ToolbarPanel; @@ -45,27 +44,25 @@ public abstract class TestResultsPanel extends JPanel implements Disposable { private Splitter myStatisticsSplitter; protected final JComponent myConsole; protected ToolbarPanel myToolbarPanel; + protected final ExecutionEnvironment myEnvironment; private final String mySplitterProportionProperty; private final String myStatisticsSplitterProportionProperty; private final float mySplitterDefaultProportion; - protected final RunnerSettings myRunnerSettings; - protected final ConfigurationPerRunnerSettings myConfigurationSettings; protected final AnAction[] myConsoleActions; protected final TestConsoleProperties myProperties; protected TestStatusLine myStatusLine; protected TestResultsPanel(@NotNull JComponent console, AnAction[] consoleActions, TestConsoleProperties properties, - RunnerSettings runnerSettings, ConfigurationPerRunnerSettings configurationSettings, + ExecutionEnvironment environment, String splitterProportionProperty, float splitterDefaultProportion) { super(new BorderLayout(0,1)); myConsole = console; myConsoleActions = consoleActions; myProperties = properties; + myEnvironment = environment; mySplitterProportionProperty = splitterProportionProperty; mySplitterDefaultProportion = splitterDefaultProportion; myStatisticsSplitterProportionProperty = mySplitterProportionProperty + "_Statistics"; - myRunnerSettings = runnerSettings; - myConfigurationSettings = configurationSettings; } public void initUI() { @@ -128,7 +125,7 @@ public abstract class TestResultsPanel extends JPanel implements Disposable { protected abstract JComponent createStatisticsPanel(); protected ToolbarPanel createToolbarPanel() { - return new ToolbarPanel(myProperties, myRunnerSettings, myConfigurationSettings, this); + return new ToolbarPanel(myProperties, myEnvironment, this); } protected TestStatusLine createStatusLine() { diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index 4dd05842aa7e..071429050545 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java @@ -131,10 +131,6 @@ public abstract class TestObject implements JavaCommandLine { return myEnvironment.getRunnerSettings(); } - public ConfigurationPerRunnerSettings getConfigurationSettings() { - return myEnvironment.getConfigurationSettings(); - } - public abstract RefactoringElementListener getListener(PsiElement element, JUnitConfiguration configuration); public abstract boolean isConfiguredByElement(JUnitConfiguration configuration, @@ -270,7 +266,7 @@ public abstract class TestObject implements JavaCommandLine { } final TestProxy unboundOutputRoot = new TestProxy(new RootTestInfo()); final JUnitConsoleProperties consoleProperties = new JUnitConsoleProperties(myConfiguration, executor); - final JUnitTreeConsoleView consoleView = new JUnitTreeConsoleView(consoleProperties, runnerSettings, getConfigurationSettings(), unboundOutputRoot); + final JUnitTreeConsoleView consoleView = new JUnitTreeConsoleView(consoleProperties, myEnvironment, unboundOutputRoot); consoleView.initUI(); consoleView.attachToProcess(handler); unboundOutputRoot.setPrinter(consoleView.getPrinter()); @@ -379,8 +375,7 @@ public abstract class TestObject implements JavaCommandLine { BaseTestsOutputConsoleView smtConsoleView = SMTestRunnerConnectionUtil.createConsoleWithCustomLocator( JUNIT_TEST_FRAMEWORK_NAME, testConsoleProperties, - myEnvironment.getRunnerSettings(), - myEnvironment.getConfigurationSettings(), null); + myEnvironment, null); Disposer.register(myProject, smtConsoleView); diff --git a/plugins/junit/src/com/intellij/execution/junit2/ui/ConsolePanel.java b/plugins/junit/src/com/intellij/execution/junit2/ui/ConsolePanel.java index 1a8f75e82ce6..3fe67a6d5e1b 100644 --- a/plugins/junit/src/com/intellij/execution/junit2/ui/ConsolePanel.java +++ b/plugins/junit/src/com/intellij/execution/junit2/ui/ConsolePanel.java @@ -17,8 +17,6 @@ package com.intellij.execution.junit2.ui; import com.intellij.execution.ExecutionBundle; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.junit2.TestProxy; import com.intellij.execution.junit2.ui.actions.JUnitToolbarPanel; import com.intellij.execution.junit2.ui.model.JUnitAdapter; @@ -27,6 +25,7 @@ import com.intellij.execution.junit2.ui.properties.JUnitConsoleProperties; import com.intellij.execution.process.ProcessAdapter; import com.intellij.execution.process.ProcessEvent; import com.intellij.execution.process.ProcessHandler; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.PoolOfTestIcons; import com.intellij.execution.testframework.Printer; import com.intellij.execution.testframework.TestTreeView; @@ -64,9 +63,9 @@ public class ConsolePanel extends TestResultsPanel { public ConsolePanel(final JComponent console, final TestsOutputConsolePrinter printer, final JUnitConsoleProperties properties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, AnAction[] consoleActions) { - super(console, consoleActions, properties, runnerSettings, configurationSettings, PROPORTION_PROPERTY, DEFAULT_PROPORTION); + final ExecutionEnvironment environment, + AnAction[] consoleActions) { + super(console, consoleActions, properties, environment, PROPORTION_PROPERTY, DEFAULT_PROPORTION); myPrinter = printer; } @@ -81,7 +80,7 @@ public class ConsolePanel extends TestResultsPanel { } protected ToolbarPanel createToolbarPanel() { - return new JUnitToolbarPanel(myProperties, myRunnerSettings, myConfigurationSettings, this); + return new JUnitToolbarPanel(myProperties, myEnvironment, this); } protected TestStatusLine createStatusLine() { diff --git a/plugins/junit/src/com/intellij/execution/junit2/ui/JUnitTreeConsoleView.java b/plugins/junit/src/com/intellij/execution/junit2/ui/JUnitTreeConsoleView.java index 567aafbc5397..b311002027b1 100644 --- a/plugins/junit/src/com/intellij/execution/junit2/ui/JUnitTreeConsoleView.java +++ b/plugins/junit/src/com/intellij/execution/junit2/ui/JUnitTreeConsoleView.java @@ -16,12 +16,11 @@ package com.intellij.execution.junit2.ui; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.junit2.ui.model.JUnitRunningModel; import com.intellij.execution.junit2.ui.model.TreeCollapser; import com.intellij.execution.junit2.ui.properties.JUnitConsoleProperties; import com.intellij.execution.process.ProcessHandler; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.AbstractTestProxy; import com.intellij.execution.testframework.ui.BaseTestsOutputConsoleView; import com.intellij.execution.testframework.ui.TestResultsPanel; @@ -32,21 +31,18 @@ import javax.swing.*; public class JUnitTreeConsoleView extends BaseTestsOutputConsoleView { private ConsolePanel myConsolePanel; private final JUnitConsoleProperties myProperties; - private final RunnerSettings myRunnerSettings; - private final ConfigurationPerRunnerSettings myConfigurationSettings; + private final ExecutionEnvironment myEnvironment; public JUnitTreeConsoleView(final JUnitConsoleProperties properties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, + final ExecutionEnvironment environment, final AbstractTestProxy unboundOutputRoot) { super(properties, unboundOutputRoot); myProperties = properties; - myRunnerSettings = runnerSettings; - myConfigurationSettings = configurationSettings; + myEnvironment = environment; } protected TestResultsPanel createTestResultsPanel() { - myConsolePanel = new ConsolePanel(getConsole().getComponent(), getPrinter(), myProperties, myRunnerSettings, myConfigurationSettings, + myConsolePanel = new ConsolePanel(getConsole().getComponent(), getPrinter(), myProperties, myEnvironment, getConsole().createConsoleActions()); return myConsolePanel; } diff --git a/plugins/junit/src/com/intellij/execution/junit2/ui/actions/JUnitToolbarPanel.java b/plugins/junit/src/com/intellij/execution/junit2/ui/actions/JUnitToolbarPanel.java index 03c223eac4f6..5cb455a8d0f9 100644 --- a/plugins/junit/src/com/intellij/execution/junit2/ui/actions/JUnitToolbarPanel.java +++ b/plugins/junit/src/com/intellij/execution/junit2/ui/actions/JUnitToolbarPanel.java @@ -18,11 +18,10 @@ package com.intellij.execution.junit2.ui.actions; import com.intellij.execution.ExecutionBundle; import com.intellij.execution.Location; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.junit2.TestProxy; import com.intellij.execution.junit2.ui.model.JUnitAdapter; import com.intellij.execution.junit2.ui.model.JUnitRunningModel; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.TestConsoleProperties; import com.intellij.execution.testframework.TestFrameworkRunningModel; import com.intellij.execution.testframework.TestsUIUtil; @@ -42,19 +41,16 @@ public class JUnitToolbarPanel extends ToolbarPanel { @NonNls protected static final String TEST_SUITE_CLASS_NAME = "junit.framework.TestSuite"; public JUnitToolbarPanel(final TestConsoleProperties properties, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings, - final JComponent parentComponent) { - super(properties, runnerSettings, configurationSettings, parentComponent); + final ExecutionEnvironment environment, + final JComponent parentComponent) { + super(properties, environment, parentComponent); } @Override protected void appendAdditionalActions(DefaultActionGroup actionGroup, TestConsoleProperties properties, - RunnerSettings runnerSettings, - ConfigurationPerRunnerSettings configurationSettings, - JComponent parent) { - super.appendAdditionalActions(actionGroup, properties, runnerSettings, configurationSettings, parent); + ExecutionEnvironment environment, JComponent parent) { + super.appendAdditionalActions(actionGroup, properties, environment, parent); actionGroup.addAction(new ToggleBooleanProperty( ExecutionBundle.message("junit.runing.info.include.non.started.in.rerun.failed.action.name"), null, diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java index 7078f4576e89..5fbf20c7c506 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGRunnableState.java @@ -88,7 +88,6 @@ import java.net.UnknownHostException; public class TestNGRunnableState extends JavaCommandLineState { private static final Logger LOG = Logger.getInstance("TestNG Runner"); private static final String TESTNG_TEST_FRAMEWORK_NAME = "TestNG"; - private final ConfigurationPerRunnerSettings myConfigurationPerRunnerSettings; private final TestNGConfiguration config; private final RunnerSettings runnerSettings; protected final IDEARemoteTestRunnerClient client; @@ -101,7 +100,6 @@ public class TestNGRunnableState extends JavaCommandLineState { public TestNGRunnableState(ExecutionEnvironment environment, TestNGConfiguration config) { super(environment); this.runnerSettings = environment.getRunnerSettings(); - myConfigurationPerRunnerSettings = environment.getConfigurationSettings(); this.config = config; //TODO need to narrow this down a bit //setModulesToCompile(ModuleManager.getInstance(config.getProject()).getModules()); @@ -131,8 +129,7 @@ public class TestNGRunnableState extends JavaCommandLineState { } OSProcessHandler processHandler = startProcess(); final TreeRootNode unboundOutputRoot = new TreeRootNode(); - final TestNGConsoleView console = new TestNGConsoleView(config, runnerSettings, myConfigurationPerRunnerSettings, unboundOutputRoot, - executor); + final TestNGConsoleView console = new TestNGConsoleView(config, getEnvironment(), unboundOutputRoot, executor); console.initUI(); unboundOutputRoot.setPrinter(console.getPrinter()); Disposer.register(console, unboundOutputRoot); @@ -235,8 +232,7 @@ public class TestNGRunnableState extends JavaCommandLineState { final BaseTestsOutputConsoleView smtConsoleView = SMTestRunnerConnectionUtil.createConsoleWithCustomLocator( TESTNG_TEST_FRAMEWORK_NAME, testConsoleProperties, - getEnvironment().getRunnerSettings(), - getEnvironment().getConfigurationSettings(), null); + getEnvironment(), null); Disposer.register(getEnvironment().getProject(), smtConsoleView); diff --git a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java index ec08cbfcc025..c551c8d0d807 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java +++ b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGConsoleView.java @@ -23,8 +23,7 @@ package com.theoryinpractice.testng.ui; import com.intellij.execution.Executor; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.TestTreeView; import com.intellij.execution.testframework.ui.BaseTestsOutputConsoleView; import com.intellij.execution.testframework.ui.TestResultsPanel; @@ -43,24 +42,21 @@ public class TestNGConsoleView extends BaseTestsOutputConsoleView { private int myExceptionalMark = -1; private final TestNGConfiguration myConfiguration; - private final RunnerSettings myRunnerSettings; - private final ConfigurationPerRunnerSettings myConfigurationPerRunnerSettings; + private final ExecutionEnvironment myEnvironment; private final TreeRootNode myUnboundOutput; public TestNGConsoleView(TestNGConfiguration config, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationPerRunnerSettings, + ExecutionEnvironment environment, final TreeRootNode unboundOutputRoot, Executor executor) { super(new TestNGConsoleProperties(config, executor), unboundOutputRoot); myConfiguration = config; - myRunnerSettings = runnerSettings; - myConfigurationPerRunnerSettings = configurationPerRunnerSettings; + myEnvironment = environment; myUnboundOutput = unboundOutputRoot; } protected TestResultsPanel createTestResultsPanel() { - testNGResults = new TestNGResults(getConsole().getComponent(), myConfiguration, this, myRunnerSettings, myConfigurationPerRunnerSettings); + testNGResults = new TestNGResults(getConsole().getComponent(), myConfiguration, this, myEnvironment); return testNGResults; } diff --git a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java index 509eeec541f5..70887084e121 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java +++ b/plugins/testng/src/com/theoryinpractice/testng/ui/TestNGResults.java @@ -24,8 +24,7 @@ package com.theoryinpractice.testng.ui; import com.intellij.codeInsight.AnnotationUtil; import com.intellij.execution.ExecutionBundle; -import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; -import com.intellij.execution.configurations.RunnerSettings; +import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.testframework.*; import com.intellij.execution.testframework.actions.ScrollToTestSourceAction; import com.intellij.execution.testframework.ui.TestResultsPanel; @@ -91,10 +90,9 @@ public class TestNGResults extends TestResultsPanel implements TestFrameworkRunn public TestNGResults(final JComponent component, final TestNGConfiguration configuration, final TestNGConsoleView console, - final RunnerSettings runnerSettings, - final ConfigurationPerRunnerSettings configurationSettings) { + final ExecutionEnvironment environment) { super(component, console.getConsole().createConsoleActions(), console.getProperties(), - runnerSettings, configurationSettings, TESTNG_SPLITTER_PROPERTY, 0.5f); + environment, TESTNG_SPLITTER_PROPERTY, 0.5f); this.project = configuration.getProject(); model = new TestNGResultsTableModel(project); @@ -151,14 +149,12 @@ public class TestNGResults extends TestResultsPanel implements TestFrameworkRunn @Override protected ToolbarPanel createToolbarPanel() { - final ToolbarPanel panel = new ToolbarPanel(getProperties(), myRunnerSettings, myConfigurationSettings, this){ + final ToolbarPanel panel = new ToolbarPanel(getProperties(), myEnvironment, this){ @Override protected void appendAdditionalActions(DefaultActionGroup actionGroup, TestConsoleProperties properties, - RunnerSettings runnerSettings, - ConfigurationPerRunnerSettings configurationSettings, - JComponent parent) { - super.appendAdditionalActions(actionGroup, properties, runnerSettings, configurationSettings, parent); + ExecutionEnvironment environment, JComponent parent) { + super.appendAdditionalActions(actionGroup, properties, environment, parent); actionGroup.addAction(new ToggleBooleanProperty( ExecutionBundle.message("junit.runing.info.include.non.started.in.rerun.failed.action.name"), null, From 88aafb5d3cf1e6dfe1c4a7811cecc9638482fab8 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 16:23:39 +0200 Subject: [PATCH 05/10] https://github.com/JetBrains/intellij-community/pull/86 --- .../src/com/intellij/core/CoreJavaFileManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java b/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java index 1df60969e17e..1821e812f3cd 100644 --- a/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java +++ b/java/java-psi-impl/src/com/intellij/core/CoreJavaFileManager.java @@ -31,6 +31,8 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import static com.intellij.openapi.util.io.FileUtilRt.toSystemIndependentName; + /** * @author yole */ @@ -75,7 +77,7 @@ public class CoreJavaFileManager implements JavaFileManager { final VirtualFile file = dir.getVirtualFile(); for (VirtualFile root : myClasspath) { if (VfsUtilCore.isAncestor(root, file, false)) { - String relativePath = FileUtil.getRelativePath(root.getPath(), file.getPath(), '/'); + String relativePath = FileUtil.getRelativePath(toSystemIndependentName(root.getPath()), toSystemIndependentName(file.getPath()), '/'); if (relativePath == null) continue; return new PsiPackageImpl(myPsiManager, relativePath.replace('/', '.')); } From 83ed95fb570d34ef8b3c7e5a897a3780a40a6ad5 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 17:57:35 +0200 Subject: [PATCH 06/10] store Executor instance in ExecutionEnvironment; don't pass it to ProgramRunner.execute() separately --- .../debugger/impl/GenericDebuggerRunner.java | 20 +++++---- .../impl/DefaultJavaProgramRunner.java | 10 +++-- .../intellij/execution/JavaExecutionUtil.java | 3 +- .../javadoc/JavadocGenerationManager.java | 4 +- .../intellij/debugger/DebuggerTestCase.java | 10 +++-- .../ExternalSystemTaskDebugRunner.java | 3 +- .../execution/ExternalSystemTaskRunner.java | 5 +-- .../util/ExternalSystemUtil.java | 4 +- .../runners/ExecutionEnvironment.java | 41 +++++++++---------- .../runners/ExecutionEnvironmentBuilder.java | 9 +++- .../runners/GenericProgramRunner.java | 19 ++++----- .../execution/runners/ProgramRunner.java | 4 +- .../intellij/execution/ProgramRunnerUtil.java | 2 +- .../execution/impl/ExecutionManagerImpl.java | 17 ++++---- .../RunConfigurationBeforeRunProvider.java | 4 +- .../runners/DefaultProgramRunner.java | 8 ++-- .../src/com/intellij/tools/Tool.java | 2 +- .../AbstractRerunFailedTestsAction.java | 2 +- .../groovy/griffon/GriffonDebuggerRunner.java | 6 +-- .../compiler/GroovyCompilerTestCase.java | 4 +- .../intellij/execution/junit/TestPackage.java | 2 +- .../maven/execution/MavenResumeAction.java | 2 +- .../execution/MavenRunConfigurationType.java | 4 +- .../uiDesigner/actions/PreviewFormAction.java | 3 +- .../snapShooter/CreateSnapShotAction.java | 10 ++--- .../xsltDebugger/XsltDebuggerRunner.java | 8 ++-- 26 files changed, 107 insertions(+), 99 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/GenericDebuggerRunner.java b/java/debugger/impl/src/com/intellij/debugger/impl/GenericDebuggerRunner.java index fe463376e9b4..0d2c516a55f6 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/GenericDebuggerRunner.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/GenericDebuggerRunner.java @@ -43,41 +43,43 @@ public class GenericDebuggerRunner extends JavaPatchableProgramRunner 0) { RemoteConnection connection = new RemoteConnection(true, "127.0.0.1", String.valueOf(port), false); - return attachVirtualMachine(project, executor, state, contentToReuse, env, connection, true); + return attachVirtualMachine(project, state, contentToReuse, env, connection, true); } else { LOG.warn("Can't attach debugger to external system task execution. Reason: target debug port is unknown"); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java index 9ecec598550a..ae32734d0421 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java @@ -50,15 +50,14 @@ public class ExternalSystemTaskRunner extends GenericProgramRunner { @Nullable @Override protected RunContentDescriptor doExecute(Project project, - Executor executor, RunProfileState state, RunContentDescriptor contentToReuse, ExecutionEnvironment env) throws ExecutionException { - ExecutionResult executionResult = state.execute(executor, this); + ExecutionResult executionResult = state.execute(env.getExecutor(), this); if (executionResult == null) return null; - final RunContentBuilder contentBuilder = new RunContentBuilder(project, this, executor, executionResult, env); + final RunContentBuilder contentBuilder = new RunContentBuilder(project, this, env.getExecutor(), executionResult, env); return contentBuilder.showRunContent(contentToReuse); } } diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/util/ExternalSystemUtil.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/util/ExternalSystemUtil.java index 9ade559abe3f..396fb33f6fea 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/util/ExternalSystemUtil.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/util/ExternalSystemUtil.java @@ -481,10 +481,10 @@ public class ExternalSystemUtil { runConfiguration.getSettings().setTaskNames(taskSettings.getTaskNames()); - ExecutionEnvironment env = new ExecutionEnvironment(runner, settings, project); + ExecutionEnvironment env = new ExecutionEnvironment(executor, runner, settings, project); try { - runner.execute(executor, env, null); + runner.execute(env, null); } catch (ExecutionException e) { LOG.warn("Can't execute task " + taskSettings, e); diff --git a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java index 8eb0b326195d..725cc3639d94 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java @@ -42,6 +42,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { @Nullable private final Project myProject; @NotNull private RunProfile myRunProfile; + @NotNull private final Executor myExecutor; @NotNull private ExecutionTarget myTarget; @Nullable private RunnerSettings myRunnerSettings; @@ -56,12 +57,15 @@ public class ExecutionEnvironment extends UserDataHolderBase { myProject = null; myContentToReuse = null; myRunnerAndConfigurationSettings = null; + myExecutor = null; } - public ExecutionEnvironment(@NotNull final ProgramRunner runner, + public ExecutionEnvironment(@NotNull Executor executor, + @NotNull final ProgramRunner runner, @NotNull final RunnerAndConfigurationSettings configuration, @Nullable Project project) { this(configuration.getConfiguration(), + executor, DefaultExecutionTarget.INSTANCE, project, configuration.getRunnerSettings(runner), @@ -75,11 +79,13 @@ public class ExecutionEnvironment extends UserDataHolderBase { * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead */ @TestOnly - public ExecutionEnvironment(@NotNull final ProgramRunner runner, + public ExecutionEnvironment(@NotNull Executor executor, + @NotNull final ProgramRunner runner, @NotNull final ExecutionTarget target, @NotNull final RunnerAndConfigurationSettings configuration, Project project) { this(configuration.getConfiguration(), + executor, target, project, configuration.getRunnerSettings(runner), @@ -92,12 +98,14 @@ public class ExecutionEnvironment extends UserDataHolderBase { * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead */ public ExecutionEnvironment(@NotNull RunProfile runProfile, + @NotNull Executor executor, @Nullable Project project, @Nullable RunnerSettings runnerSettings) { - this(runProfile, DefaultExecutionTarget.INSTANCE, project, runnerSettings, null, null, null, null); + this(runProfile, executor, DefaultExecutionTarget.INSTANCE, project, runnerSettings, null, null, null, null); } public ExecutionEnvironment(@NotNull RunProfile runProfile, + @NotNull Executor executor, @NotNull ExecutionTarget target, @Nullable Project project, @Nullable RunnerSettings runnerSettings, @@ -105,6 +113,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { @Nullable RunContentDescriptor contentToReuse, @Nullable RunnerAndConfigurationSettings settings, @Nullable String runnerId) { + myExecutor = executor; myTarget = target; myRunProfile = runProfile; myRunnerSettings = runnerSettings; @@ -123,23 +132,6 @@ public class ExecutionEnvironment extends UserDataHolderBase { } } - /** - * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead - */ - @Deprecated - public ExecutionEnvironment(@NotNull final ProgramRunner runner, - @NotNull final RunnerAndConfigurationSettings configuration, - @NotNull final DataContext context) { - this(configuration.getConfiguration(), - DefaultExecutionTarget.INSTANCE, - PlatformDataKeys.PROJECT.getData(context), - configuration.getRunnerSettings(runner), - configuration.getConfigurationSettings(runner), - null, - configuration, - runner.getRunnerId()); - } - @Nullable public Project getProject() { return myProject; @@ -194,8 +186,8 @@ public class ExecutionEnvironment extends UserDataHolderBase { } @Nullable - public RunProfileState getState(final Executor executor) throws ExecutionException { - return myRunProfile.getState(executor, this); + public RunProfileState getState() throws ExecutionException { + return myRunProfile.getState(myExecutor, this); } public long assignNewExecutionId() { @@ -211,6 +203,11 @@ public class ExecutionEnvironment extends UserDataHolderBase { return myExecutionId; } + @NotNull + public Executor getExecutor() { + return myExecutor; + } + @Override public String toString() { if (myRunnerAndConfigurationSettings != null) { diff --git a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java index 4ece488aadd8..0f07c7121407 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java @@ -17,6 +17,7 @@ package com.intellij.execution.runners; import com.intellij.execution.DefaultExecutionTarget; import com.intellij.execution.ExecutionTarget; +import com.intellij.execution.Executor; import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.configurations.ConfigurationPerRunnerSettings; import com.intellij.execution.configurations.RunProfile; @@ -43,6 +44,7 @@ public final class ExecutionEnvironmentBuilder { @Nullable private RunnerAndConfigurationSettings myRunnerAndConfigurationSettings; @Nullable private String myRunnerId; private boolean myAssignNewId; + @NotNull private Executor myExecutor; public ExecutionEnvironmentBuilder() { } @@ -63,6 +65,11 @@ public final class ExecutionEnvironmentBuilder { setContentToReuse(copySource.getContentToReuse()); } + public ExecutionEnvironmentBuilder setExecutor(@NotNull Executor executor) { + myExecutor = executor; + return this; + } + public ExecutionEnvironmentBuilder setTarget(@NotNull ExecutionTarget target) { myTarget = target; return this; @@ -122,7 +129,7 @@ public final class ExecutionEnvironmentBuilder { @NotNull public ExecutionEnvironment build() { ExecutionEnvironment environment = - new ExecutionEnvironment(myRunProfile, myTarget, myProject, myRunnerSettings, myConfigurationSettings, myContentToReuse, + new ExecutionEnvironment(myRunProfile, myExecutor, myTarget, myProject, myRunnerSettings, myConfigurationSettings, myContentToReuse, myRunnerAndConfigurationSettings, myRunnerId); if (myAssignNewId) { environment.assignNewExecutionId(); diff --git a/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java b/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java index 1e8f72abc3f9..cc9358536175 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java +++ b/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java @@ -19,7 +19,6 @@ package com.intellij.execution.runners; import com.intellij.execution.*; import com.intellij.execution.configurations.*; import com.intellij.execution.ui.RunContentDescriptor; -import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.DataKey; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.project.Project; @@ -58,12 +57,12 @@ public abstract class GenericProgramRunner impl } @Override - public void execute(@NotNull final Executor executor, @NotNull final ExecutionEnvironment environment) throws ExecutionException { - execute(executor, environment, null); + public void execute(@NotNull final ExecutionEnvironment environment) throws ExecutionException { + execute(environment, null); } @Override - public void execute(@NotNull final Executor executor, @NotNull final ExecutionEnvironment env, @Nullable final Callback callback) + public void execute(@NotNull final ExecutionEnvironment env, @Nullable final Callback callback) throws ExecutionException { final Project project = env.getProject(); @@ -71,7 +70,7 @@ public abstract class GenericProgramRunner impl return; } - final RunProfileState state = env.getState(executor); + final RunProfileState state = env.getState(); if (state == null) { return; } @@ -85,19 +84,19 @@ public abstract class GenericProgramRunner impl @NotNull RunProfileState state, @Nullable RunContentDescriptor contentToReuse, @NotNull ExecutionEnvironment env) throws ExecutionException { - final RunContentDescriptor descriptor = doExecute(project, executor, state, contentToReuse, env); + final RunContentDescriptor descriptor = doExecute(project, state, contentToReuse, env); if (descriptor != null) { descriptor.setExecutionId(env.getExecutionId()); } if (callback != null) callback.processStarted(descriptor); return descriptor; } - }, state, project, executor, env); + }, state, project, env.getExecutor(), env); } @Nullable - protected abstract RunContentDescriptor doExecute(final Project project, final Executor executor, final RunProfileState state, - final RunContentDescriptor contentToReuse, - final ExecutionEnvironment env) throws ExecutionException; + protected abstract RunContentDescriptor doExecute(final Project project, final RunProfileState state, + final RunContentDescriptor contentToReuse, + final ExecutionEnvironment env) throws ExecutionException; } diff --git a/platform/lang-api/src/com/intellij/execution/runners/ProgramRunner.java b/platform/lang-api/src/com/intellij/execution/runners/ProgramRunner.java index 84d3d3354749..79350df5f295 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ProgramRunner.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ProgramRunner.java @@ -81,6 +81,6 @@ public interface ProgramRunner { @Nullable SettingsEditor getSettingsEditor(Executor executor, RunConfiguration configuration); - void execute(@NotNull Executor executor, @NotNull ExecutionEnvironment environment) throws ExecutionException; - void execute(@NotNull Executor executor, @NotNull ExecutionEnvironment environment, @Nullable Callback callback) throws ExecutionException; + void execute(@NotNull ExecutionEnvironment environment) throws ExecutionException; + void execute(@NotNull ExecutionEnvironment environment, @Nullable Callback callback) throws ExecutionException; } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java index ff773d6d42b3..420b3c27d90c 100644 --- a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java +++ b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java @@ -98,7 +98,7 @@ public class ProgramRunnerUtil { } try { - runner.execute(executor, new ExecutionEnvironmentBuilder().setRunnerAndSettings(runner, configuration).setTarget(target) + runner.execute(new ExecutionEnvironmentBuilder().setRunnerAndSettings(runner, configuration).setTarget(target) .setContentToReuse(contentToReuse).setProject(project).assignNewId().build()); } catch (ExecutionException e) { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java index b3a0d5d7e39a..dddbc4df382f 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java @@ -357,14 +357,15 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom Runnable restarter = descriptor != null ? descriptor.getRestarter() : null; if (runner != null && runProfile != null) { try { - runner.execute(executor, new ExecutionEnvironment(runProfile, - target, - project, - runnerSettings, - configurationPerRunnerSettings, - descriptor, - configuration, - runner.getRunnerId())); + runner.execute(new ExecutionEnvironment(runProfile, + executor, + target, + project, + runnerSettings, + configurationPerRunnerSettings, + descriptor, + configuration, + runner.getRunnerId())); } catch (RunCanceledByUserException ignore) { } diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationBeforeRunProvider.java b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationBeforeRunProvider.java index 9e678445bae9..d386ef1443f7 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationBeforeRunProvider.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationBeforeRunProvider.java @@ -179,7 +179,7 @@ extends BeforeRunTaskProvider processHandler = new AtomicReference(); - runner.execute(executor, environment, new ProgramRunner.Callback() { + runner.execute(environment, new ProgramRunner.Callback() { @Override public void processStarted(final RunContentDescriptor descriptor) { disposeOnTearDown(new Disposable() { diff --git a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java index 58cd5cff7ea4..6f0b13403213 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java @@ -446,7 +446,7 @@ public class TestPackage extends TestObject { : DefaultRunExecutor.getRunExecutorInstance(); final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(executor.getId(), myConfiguration); assert runner != null; - runner.execute(executor, new ExecutionEnvironmentBuilder(myEnvironment).setContentToReuse(null).build()); + runner.execute(new ExecutionEnvironmentBuilder(myEnvironment).setContentToReuse(null).build()); final Balloon balloon = myToolWindowManager.getToolWindowBalloon(myTestRunDebugId); if (balloon != null) { balloon.hide(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java index 7e9adb5d13dc..eccf04e0df56 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenResumeAction.java @@ -301,7 +301,7 @@ public class MavenResumeAction extends AnAction { goals.add(myResumeModuleId); } - myRunner.execute(myExecutor, new ExecutionEnvironmentBuilder(myEnvironment).setContentToReuse(null).build()); + myRunner.execute(new ExecutionEnvironmentBuilder(myEnvironment).setContentToReuse(null).build()); } catch (RunCanceledByUserException ignore) { } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfigurationType.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfigurationType.java index 6dd8743a227e..6fadaa9f96a6 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfigurationType.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfigurationType.java @@ -185,11 +185,11 @@ public class MavenRunConfigurationType implements ConfigurationType { project); ProgramRunner runner = RunnerRegistry.getInstance().findRunnerById(DefaultRunExecutor.EXECUTOR_ID); - ExecutionEnvironment env = new ExecutionEnvironment(runner, configSettings, project); Executor executor = DefaultRunExecutor.getRunExecutorInstance(); + ExecutionEnvironment env = new ExecutionEnvironment(executor, runner, configSettings, project); try { - runner.execute(executor, env, callback); + runner.execute(env, callback); } catch (ExecutionException e) { MavenUtil.showError(project, "Failed to execute Maven goal", e); diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/actions/PreviewFormAction.java b/plugins/ui-designer/src/com/intellij/uiDesigner/actions/PreviewFormAction.java index 8b22df10ab29..3d72ef06a640 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/actions/PreviewFormAction.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/actions/PreviewFormAction.java @@ -300,7 +300,8 @@ public final class PreviewFormAction extends AnAction{ UIDesignerBundle.message("progress.preview.started", formFile.getPresentableUrl())); ProgramRunner defaultRunner = RunnerRegistry.getInstance().getRunner(DefaultRunExecutor.EXECUTOR_ID, profile); LOG.assertTrue(defaultRunner != null); - defaultRunner.execute(DefaultRunExecutor.getRunExecutorInstance(), new ExecutionEnvironment(profile, module.getProject(), null)); + Executor executor = DefaultRunExecutor.getRunExecutorInstance(); + defaultRunner.execute(new ExecutionEnvironment(profile, executor, module.getProject(), null)); } catch (ExecutionException e) { Messages.showErrorDialog( diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/snapShooter/CreateSnapShotAction.java b/plugins/ui-designer/src/com/intellij/uiDesigner/snapShooter/CreateSnapShotAction.java index c0a151bae963..3e37f00a02a9 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/snapShooter/CreateSnapShotAction.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/snapShooter/CreateSnapShotAction.java @@ -16,10 +16,7 @@ package com.intellij.uiDesigner.snapShooter; -import com.intellij.execution.ExecutionException; -import com.intellij.execution.RunManagerEx; -import com.intellij.execution.RunnerAndConfigurationSettings; -import com.intellij.execution.RunnerRegistry; +import com.intellij.execution.*; import com.intellij.execution.application.ApplicationConfiguration; import com.intellij.execution.application.ApplicationConfigurationType; import com.intellij.execution.executors.DefaultRunExecutor; @@ -175,8 +172,9 @@ public class CreateSnapShotAction extends AnAction { try { final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(DefaultRunExecutor.EXECUTOR_ID, appConfig); LOG.assertTrue(runner != null, "Runner MUST not be null!"); - runner.execute(DefaultRunExecutor.getRunExecutorInstance(), - new ExecutionEnvironment(runner, snapshotConfiguration, project)); + Executor executor = DefaultRunExecutor.getRunExecutorInstance(); + runner.execute( + new ExecutionEnvironment(executor, runner, snapshotConfiguration, project)); } catch (ExecutionException ex) { Messages.showMessageDialog(project, UIDesignerBundle.message("snapshot.run.error", ex.getMessage()), diff --git a/plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerRunner.java b/plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerRunner.java index b0b1939d56e3..7e72316d7f7a 100644 --- a/plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerRunner.java +++ b/plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerRunner.java @@ -45,19 +45,17 @@ public class XsltDebuggerRunner extends DefaultProgramRunner { @Override protected RunContentDescriptor doExecute(Project project, - Executor executor, RunProfileState state, RunContentDescriptor contentToReuse, ExecutionEnvironment env) throws ExecutionException { FileDocumentManager.getInstance().saveAllDocuments(); - return createContentDescriptor(project, executor, state, contentToReuse, env); + return createContentDescriptor(project, state, contentToReuse, env); } protected RunContentDescriptor createContentDescriptor(Project project, - final Executor executor, final RunProfileState runProfileState, RunContentDescriptor contentToReuse, - ExecutionEnvironment executionEnvironment) throws ExecutionException { + final ExecutionEnvironment executionEnvironment) throws ExecutionException { final XDebugSession debugSession = XDebuggerManager.getInstance(project).startSession(this, executionEnvironment, contentToReuse, new XDebugProcessStarter() { @NotNull @@ -65,7 +63,7 @@ public class XsltDebuggerRunner extends DefaultProgramRunner { ACTIVE.set(Boolean.TRUE); try { final XsltCommandLineState c = (XsltCommandLineState)runProfileState; - final ExecutionResult result = runProfileState.execute(executor, XsltDebuggerRunner.this); + final ExecutionResult result = runProfileState.execute(executionEnvironment.getExecutor(), XsltDebuggerRunner.this); return new XsltDebugProcess(session, result, c.getExtensionData().getUserData(XsltDebuggerExtension.VERSION)); } finally { ACTIVE.remove(); From 54ffbdc3c7af7a15a4523700b7cb5d99630388e2 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 18:37:56 +0200 Subject: [PATCH 07/10] Project in ExecutionEnvironment is @NotNull; remove some redundant usages of Executor --- .../execution/impl/DefaultJavaProgramRunner.java | 2 +- .../execution/ExternalSystemTaskRunner.java | 3 +-- .../com/intellij/execution/ExecutionManager.java | 11 ++++++++--- .../execution/runners/ExecutionEnvironment.java | 10 +++++----- .../runners/ExecutionEnvironmentBuilder.java | 2 +- .../execution/runners/GenericProgramRunner.java | 5 +---- .../intellij/execution/ui/RunContentManager.java | 9 ++++++++- .../execution/impl/ExecutionManagerImpl.java | 15 +++++++++------ .../execution/runners/DefaultProgramRunner.java | 3 +-- .../intellij/execution/runners/RestartAction.java | 4 ++-- .../execution/runners/RunContentBuilder.java | 15 ++++++++++++--- .../execution/ui/RunContentManagerImpl.java | 8 +++++++- 12 files changed, 56 insertions(+), 31 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/impl/DefaultJavaProgramRunner.java b/java/execution/impl/src/com/intellij/execution/impl/DefaultJavaProgramRunner.java index a4f43f740d9f..6db25e1d4c58 100644 --- a/java/execution/impl/src/com/intellij/execution/impl/DefaultJavaProgramRunner.java +++ b/java/execution/impl/src/com/intellij/execution/impl/DefaultJavaProgramRunner.java @@ -96,7 +96,7 @@ public class DefaultJavaProgramRunner extends JavaPatchableProgramRunner { onProcessStarted(env.getRunnerSettings(), executionResult); - final RunContentBuilder contentBuilder = new RunContentBuilder(project, this, env.getExecutor(), executionResult, env); + final RunContentBuilder contentBuilder = new RunContentBuilder(this, executionResult, env); Disposer.register(project, contentBuilder); if (shouldAddDefaultActions) { addDefaultActions(contentBuilder); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java index ae32734d0421..18e84d26c036 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskRunner.java @@ -17,7 +17,6 @@ package com.intellij.openapi.externalSystem.service.execution; import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionResult; -import com.intellij.execution.Executor; import com.intellij.execution.configurations.RunProfile; import com.intellij.execution.configurations.RunProfileState; import com.intellij.execution.executors.DefaultRunExecutor; @@ -57,7 +56,7 @@ public class ExternalSystemTaskRunner extends GenericProgramRunner { ExecutionResult executionResult = state.execute(env.getExecutor(), this); if (executionResult == null) return null; - final RunContentBuilder contentBuilder = new RunContentBuilder(project, this, env.getExecutor(), executionResult, env); + final RunContentBuilder contentBuilder = new RunContentBuilder(this, executionResult, env); return contentBuilder.showRunContent(contentToReuse); } } diff --git a/platform/lang-api/src/com/intellij/execution/ExecutionManager.java b/platform/lang-api/src/com/intellij/execution/ExecutionManager.java index c8554e8a413f..196daf57502f 100644 --- a/platform/lang-api/src/com/intellij/execution/ExecutionManager.java +++ b/platform/lang-api/src/com/intellij/execution/ExecutionManager.java @@ -43,12 +43,19 @@ public abstract class ExecutionManager { public abstract ProcessHandler[] getRunningProcesses(); + /** + * @deprecated use {@link #startRunProfile(RunProfileStarter, com.intellij.execution.configurations.RunProfileState, com.intellij.execution.runners.ExecutionEnvironment)} + */ public abstract void startRunProfile(@NotNull RunProfileStarter starter, @NotNull RunProfileState state, @NotNull Project project, @NotNull Executor executor, @NotNull ExecutionEnvironment env); + public abstract void startRunProfile(@NotNull RunProfileStarter starter, + @NotNull RunProfileState state, + @NotNull ExecutionEnvironment env); + public abstract void restartRunProfile(@NotNull Project project, @NotNull Executor executor, @NotNull ExecutionTarget target, @@ -62,9 +69,7 @@ public abstract class ExecutionManager { @Nullable RunnerAndConfigurationSettings configuration, @Nullable RunContentDescriptor currentDescriptor); - public abstract void restartRunProfile(@NotNull Project project, - @NotNull Executor executor, - @Nullable ProgramRunner runner, + public abstract void restartRunProfile(@Nullable ProgramRunner runner, @NotNull ExecutionEnvironment environment, @Nullable RunContentDescriptor currentDescriptor); } diff --git a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java index 725cc3639d94..f3ab264e00ca 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java @@ -39,7 +39,7 @@ import java.util.concurrent.atomic.AtomicLong; public class ExecutionEnvironment extends UserDataHolderBase { private static final AtomicLong myIdHolder = new AtomicLong(1L); - @Nullable private final Project myProject; + @NotNull private final Project myProject; @NotNull private RunProfile myRunProfile; @NotNull private final Executor myExecutor; @@ -63,7 +63,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { public ExecutionEnvironment(@NotNull Executor executor, @NotNull final ProgramRunner runner, @NotNull final RunnerAndConfigurationSettings configuration, - @Nullable Project project) { + @NotNull Project project) { this(configuration.getConfiguration(), executor, DefaultExecutionTarget.INSTANCE, @@ -83,7 +83,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { @NotNull final ProgramRunner runner, @NotNull final ExecutionTarget target, @NotNull final RunnerAndConfigurationSettings configuration, - Project project) { + @NotNull Project project) { this(configuration.getConfiguration(), executor, target, @@ -99,7 +99,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { */ public ExecutionEnvironment(@NotNull RunProfile runProfile, @NotNull Executor executor, - @Nullable Project project, + @NotNull Project project, @Nullable RunnerSettings runnerSettings) { this(runProfile, executor, DefaultExecutionTarget.INSTANCE, project, runnerSettings, null, null, null, null); } @@ -132,7 +132,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { } } - @Nullable + @NotNull public Project getProject() { return myProject; } diff --git a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java index 0f07c7121407..157c917b5143 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java @@ -75,7 +75,7 @@ public final class ExecutionEnvironmentBuilder { return this; } - public ExecutionEnvironmentBuilder setProject(@Nullable Project project) { + public ExecutionEnvironmentBuilder setProject(@NotNull Project project) { check(myProject, "Project"); myProject = project; return this; diff --git a/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java b/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java index cc9358536175..04b64dbd4e4c 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java +++ b/platform/lang-api/src/com/intellij/execution/runners/GenericProgramRunner.java @@ -66,9 +66,6 @@ public abstract class GenericProgramRunner impl throws ExecutionException { final Project project = env.getProject(); - if (project == null) { - return; - } final RunProfileState state = env.getState(); if (state == null) { @@ -91,7 +88,7 @@ public abstract class GenericProgramRunner impl if (callback != null) callback.processStarted(descriptor); return descriptor; } - }, state, project, env.getExecutor(), env); + }, state, env); } @Nullable diff --git a/platform/lang-api/src/com/intellij/execution/ui/RunContentManager.java b/platform/lang-api/src/com/intellij/execution/ui/RunContentManager.java index 8028144ba84c..4f192197b0f9 100644 --- a/platform/lang-api/src/com/intellij/execution/ui/RunContentManager.java +++ b/platform/lang-api/src/com/intellij/execution/ui/RunContentManager.java @@ -47,11 +47,18 @@ public interface RunContentManager { @Nullable RunContentDescriptor getReuseContent(Executor requestor, @Nullable RunContentDescriptor contentToReuse); + /** + * @deprecated use {@link #getReuseContent(ExecutionEnvironment)} + */ + @Deprecated @Nullable RunContentDescriptor getReuseContent(Executor requestor, @NotNull ExecutionEnvironment executionEnvironment); + @Nullable + RunContentDescriptor getReuseContent(@NotNull ExecutionEnvironment executionEnvironment); + /** - * @deprecated use {@link #getReuseContent(com.intellij.execution.Executor, ExecutionEnvironment)} + * @deprecated use {@link #getReuseContent(ExecutionEnvironment)} */ @Deprecated @Nullable diff --git a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java index dddbc4df382f..06939bba0dfc 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java @@ -183,7 +183,7 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom public void startRunProfile(@NotNull final RunProfileStarter starter, @NotNull final RunProfileState state, @NotNull final Project project, @NotNull final Executor executor, @NotNull final ExecutionEnvironment env) { final RunContentDescriptor reuseContent = - ExecutionManager.getInstance(project).getContentManager().getReuseContent(executor, env); + ExecutionManager.getInstance(project).getContentManager().getReuseContent(env); if (reuseContent != null) { reuseContent.setExecutionId(env.getExecutionId()); } @@ -248,6 +248,11 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom } } + @Override + public void startRunProfile(@NotNull RunProfileStarter starter, @NotNull RunProfileState state, @NotNull ExecutionEnvironment env) { + startRunProfile(starter, state, env.getProject(), env.getExecutor(), env); + } + @Override public void restartRunProfile(@NotNull final Project project, @NotNull final Executor executor, @@ -276,17 +281,15 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom } @Override - public void restartRunProfile(@NotNull Project project, - @NotNull Executor executor, - @Nullable ProgramRunner runner, + public void restartRunProfile(@Nullable ProgramRunner runner, @NotNull ExecutionEnvironment environment, @Nullable RunContentDescriptor currentDescriptor) { - restartRunProfile(project, + restartRunProfile(environment.getProject(), runner, environment.getRunProfile(), environment.getRunnerSettings(), environment.getConfigurationSettings(), - executor, + environment.getExecutor(), environment.getExecutionTarget(), environment.getRunnerAndConfigurationSettings(), currentDescriptor); } diff --git a/platform/lang-impl/src/com/intellij/execution/runners/DefaultProgramRunner.java b/platform/lang-impl/src/com/intellij/execution/runners/DefaultProgramRunner.java index eee5adc0ca32..6be1ad45f409 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/DefaultProgramRunner.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/DefaultProgramRunner.java @@ -18,7 +18,6 @@ package com.intellij.execution.runners; import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionResult; -import com.intellij.execution.Executor; import com.intellij.execution.configurations.RunProfileState; import com.intellij.execution.ui.RunContentDescriptor; import com.intellij.openapi.fileEditor.FileDocumentManager; @@ -38,7 +37,7 @@ public abstract class DefaultProgramRunner extends GenericProgramRunner { ExecutionResult executionResult = state.execute(env.getExecutor(), this); if (executionResult == null) return null; - final RunContentBuilder contentBuilder = new RunContentBuilder(project, this, env.getExecutor(), executionResult, env); + final RunContentBuilder contentBuilder = new RunContentBuilder(this, executionResult, env); return contentBuilder.showRunContent(contentToReuse); } diff --git a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java index 126aa490f172..507864126430 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java @@ -105,8 +105,8 @@ public class RestartAction extends FakeRerunAction implements DumbAware, AnActio public void restart() { Project project = myEnvironment.getProject(); - if (project != null && !ExecutorRegistry.getInstance().isStarting(project, myExecutor.getId(), myRunner.getRunnerId())) - ExecutionManager.getInstance(project).restartRunProfile(project, myExecutor, myRunner, myEnvironment, myDescriptor); + if (!ExecutorRegistry.getInstance().isStarting(project, myExecutor.getId(), myRunner.getRunnerId())) + ExecutionManager.getInstance(project).restartRunProfile(myRunner, myEnvironment, myDescriptor); } @Override diff --git a/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java b/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java index ecea85eeff3d..4dad34eb6a1b 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/RunContentBuilder.java @@ -60,15 +60,24 @@ public class RunContentBuilder extends LogConsoleManagerBase { private RunnerLayoutUi myUi; private final Executor myExecutor; + /** + * @deprecated use {@link #RunContentBuilder(ProgramRunner, com.intellij.execution.ExecutionResult, ExecutionEnvironment)} + */ public RunContentBuilder(@NotNull Project project, ProgramRunner runner, Executor executor, ExecutionResult executionResult, @NotNull ExecutionEnvironment environment) { - super(project, createSearchScope(project, environment.getRunProfile())); + this(runner, executionResult, environment); + } + + public RunContentBuilder(ProgramRunner runner, + ExecutionResult executionResult, + @NotNull ExecutionEnvironment environment) { + super(environment.getProject(), createSearchScope(environment.getProject(), environment.getRunProfile())); myRunner = runner; - myExecutor = executor; - myManager = new LogFilesManager(project, this, this); + myExecutor = environment.getExecutor(); + myManager = new LogFilesManager(environment.getProject(), this, this); myExecutionResult = executionResult; setEnvironment(environment); } diff --git a/platform/lang-impl/src/com/intellij/execution/ui/RunContentManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/ui/RunContentManagerImpl.java index ad7962fff66f..73ec463954cd 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/RunContentManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/RunContentManagerImpl.java @@ -392,11 +392,17 @@ public class RunContentManagerImpl implements RunContentManager, Disposable { @Nullable @Override public RunContentDescriptor getReuseContent(Executor requestor, @NotNull ExecutionEnvironment executionEnvironment) { + return getReuseContent(executionEnvironment); + } + + @Nullable + @Override + public RunContentDescriptor getReuseContent(@NotNull ExecutionEnvironment executionEnvironment) { if (ApplicationManager.getApplication().isUnitTestMode()) return null; RunContentDescriptor contentToReuse = executionEnvironment.getContentToReuse(); if (contentToReuse != null) return contentToReuse; - final ContentManager contentManager = getContentManagerForRunner(requestor); + final ContentManager contentManager = getContentManagerForRunner(executionEnvironment.getExecutor()); return chooseReuseContentForDescriptor(contentManager, contentToReuse, executionEnvironment.getExecutionId(), executionEnvironment.toString()); } From 555f6ddb37b76e1da77368cfb49d5f19c114c105 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 18:44:50 +0200 Subject: [PATCH 08/10] add missing setExecutor() --- .../lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java index 420b3c27d90c..a2a06258dc8e 100644 --- a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java +++ b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java @@ -99,7 +99,7 @@ public class ProgramRunnerUtil { try { runner.execute(new ExecutionEnvironmentBuilder().setRunnerAndSettings(runner, configuration).setTarget(target) - .setContentToReuse(contentToReuse).setProject(project).assignNewId().build()); + .setContentToReuse(contentToReuse).setProject(project).setExecutor(executor).assignNewId().build()); } catch (ExecutionException e) { ExecutionUtil.handleExecutionError(project, executor.getToolWindowId(), configuration.getConfiguration(), e); From 4efa459c3068cc840f8a3cf5d72a3935815d9676 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 18:46:50 +0200 Subject: [PATCH 09/10] couple more forgotten setExecutor() calls --- platform/lang-impl/src/com/intellij/tools/Tool.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/tools/Tool.java b/platform/lang-impl/src/com/intellij/tools/Tool.java index e0d7c79f031a..4dd908b83343 100644 --- a/platform/lang-impl/src/com/intellij/tools/Tool.java +++ b/platform/lang-impl/src/com/intellij/tools/Tool.java @@ -279,7 +279,11 @@ public class Tool implements SchemeElement { final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(DefaultRunExecutor.EXECUTOR_ID, profile); assert runner != null; - ExecutionEnvironment executionEnvironment = new ExecutionEnvironmentBuilder().setRunProfile(profile).setProject(project).build(); + ExecutionEnvironment executionEnvironment = new ExecutionEnvironmentBuilder() + .setRunProfile(profile) + .setProject(project) + .setExecutor(new DefaultRunExecutor()) + .build(); executionEnvironment.setExecutionId(executionId); runner.execute(executionEnvironment, new ProgramRunner.Callback() { @Override From 5473b285ce5a592062c819af4c0959847fc46355 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 24 Jul 2013 18:53:09 +0200 Subject: [PATCH 10/10] forgot to copy executor --- .../intellij/execution/runners/ExecutionEnvironmentBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java index 157c917b5143..e4741b423556 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java @@ -63,6 +63,7 @@ public final class ExecutionEnvironmentBuilder { myConfigurationSettings = copySource.getConfigurationSettings(); myRunnerId = copySource.getRunnerId(); setContentToReuse(copySource.getContentToReuse()); + setExecutor(copySource.getExecutor()); } public ExecutionEnvironmentBuilder setExecutor(@NotNull Executor executor) {