From fa18d853f39d09fad5f92fb3d1676f3afafa6b47 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 19 Jul 2013 21:07:30 +0200 Subject: [PATCH] store runner ID directly in ExecutionEnvironment, remove it from ConfigurationPerRunnerSettings --- .../intellij/execution/JavaExecutionUtil.java | 2 +- .../javadoc/JavadocGenerationManager.java | 2 +- .../intellij/debugger/DebuggerTestCase.java | 4 +- .../ConfigurationPerRunnerSettings.java | 8 +-- .../runners/ExecutionEnvironment.java | 67 ++++--------------- .../runners/ExecutionEnvironmentBuilder.java | 9 ++- .../execution/impl/ExecutionManagerImpl.java | 6 +- .../RunnerAndConfigurationSettingsImpl.java | 6 +- .../AbstractRerunFailedTestsAction.java | 3 +- .../compiler/GroovyCompilerTestCase.java | 2 +- .../intellij/execution/junit/TestObject.java | 11 ++- .../intellij/execution/junit/TestPackage.java | 4 +- .../maven/execution/MavenResumeAction.java | 4 +- .../uiDesigner/actions/PreviewFormAction.java | 3 +- 14 files changed, 49 insertions(+), 82 deletions(-) diff --git a/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java b/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java index 5180ee291211..8638d01ba4d2 100644 --- a/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java +++ b/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java @@ -59,7 +59,7 @@ public class JavaExecutionUtil { final DefaultRunProfile profile = new DefaultRunProfile(project, cmdLine, contentName, icon, filters); final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(DefaultRunExecutor.EXECUTOR_ID, profile); if (runner != null) { - runner.execute(DefaultRunExecutor.getRunExecutorInstance(), new ExecutionEnvironment(profile, project, null, null, null)); + runner.execute(DefaultRunExecutor.getRunExecutorInstance(), new ExecutionEnvironment(profile, project, null)); return true; } diff --git a/java/java-impl/src/com/intellij/javadoc/JavadocGenerationManager.java b/java/java-impl/src/com/intellij/javadoc/JavadocGenerationManager.java index ecebc06f9555..af5645f1037c 100644 --- a/java/java-impl/src/com/intellij/javadoc/JavadocGenerationManager.java +++ b/java/java-impl/src/com/intellij/javadoc/JavadocGenerationManager.java @@ -83,7 +83,7 @@ public final class JavadocGenerationManager implements PersistentStateComponent< try { final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(DefaultRunExecutor.EXECUTOR_ID, myConfiguration); assert runner != null; - runner.execute(DefaultRunExecutor.getRunExecutorInstance(), new ExecutionEnvironment(myConfiguration, myProject, null, null, null)); + runner.execute(DefaultRunExecutor.getRunExecutorInstance(), new ExecutionEnvironment(myConfiguration, myProject, null)); } catch (ExecutionException e) { ExecutionErrorDialog.show(e, CommonBundle.getErrorTitle(), myProject); diff --git a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java index e1f9857e3ba2..c79502b59c85 100644 --- a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java +++ b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java @@ -131,7 +131,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas RunnerSettings runnerSettings = new RunnerSettings(debuggerRunnerSettings, null); final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(new ExecutionEnvironment(new MockConfiguration(), myProject, - runnerSettings, null, null)){ + runnerSettings)){ @Override protected JavaParameters createJavaParameters() { return javaParameters; @@ -189,7 +189,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas RunnerSettings runnerSettings = new RunnerSettings(debuggerRunnerSettings, null); final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(new ExecutionEnvironment(new MockConfiguration(), myProject, - runnerSettings, null, null)) { + runnerSettings)) { @Override protected JavaParameters createJavaParameters() { return javaParameters; diff --git a/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationPerRunnerSettings.java b/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationPerRunnerSettings.java index 32dccb124274..38cfcbc89e77 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationPerRunnerSettings.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/ConfigurationPerRunnerSettings.java @@ -22,15 +22,9 @@ import org.jdom.Element; public final class ConfigurationPerRunnerSettings implements JDOMExternalizable { private final JDOMExternalizable mySettings; - private final String myRunnerId; - public ConfigurationPerRunnerSettings(String runnerId, JDOMExternalizable settings) { + public ConfigurationPerRunnerSettings(JDOMExternalizable settings) { mySettings = settings; - myRunnerId = runnerId; - } - - public String getRunnerId() { - return myRunnerId; } public JDOMExternalizable getSettings() { 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 1a0b35b70aed..60c586410dd7 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironment.java @@ -48,6 +48,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { @Nullable private ConfigurationPerRunnerSettings myConfigurationSettings; @Nullable private final RunnerAndConfigurationSettings myRunnerAndConfigurationSettings; @Nullable private RunContentDescriptor myContentToReuse; + @Nullable private String myRunnerId; private long myExecutionId = 0; @TestOnly @@ -66,7 +67,8 @@ public class ExecutionEnvironment extends UserDataHolderBase { configuration.getRunnerSettings(runner), configuration.getConfigurationSettings(runner), null, - null); + null, + runner.getRunnerId()); } /** @@ -83,7 +85,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { configuration.getRunnerSettings(runner), configuration.getConfigurationSettings(runner), contentToReuse, - configuration); + configuration, runner.getRunnerId()); } /** @@ -100,18 +102,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { configuration.getRunnerSettings(runner), configuration.getConfigurationSettings(runner), null, - configuration); - } - - /** - * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead - */ - @Deprecated - public ExecutionEnvironment(@NotNull final RunProfile runProfile, - @Nullable final RunnerSettings runnerSettings, - @Nullable final ConfigurationPerRunnerSettings configurationSettings, - @NotNull final DataContext dataContext) { - this(runProfile, DefaultExecutionTarget.INSTANCE, PlatformDataKeys.PROJECT.getData(dataContext), runnerSettings, configurationSettings, null, null); + configuration, runner.getRunnerId()); } /** @@ -119,34 +110,8 @@ public class ExecutionEnvironment extends UserDataHolderBase { */ public ExecutionEnvironment(@NotNull RunProfile runProfile, @Nullable Project project, - @Nullable RunnerSettings runnerSettings, - @Nullable ConfigurationPerRunnerSettings configurationSettings, - @Nullable RunContentDescriptor contentToReuse) { - this(runProfile, DefaultExecutionTarget.INSTANCE, project, runnerSettings, configurationSettings, contentToReuse, null); - } - - /** - * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead - */ - public ExecutionEnvironment(@NotNull RunProfile runProfile, - @NotNull ExecutionTarget target, - @Nullable Project project, - @Nullable RunnerSettings runnerSettings, - @Nullable ConfigurationPerRunnerSettings configurationSettings, - @Nullable RunContentDescriptor contentToReuse) { - this(runProfile, target, project, runnerSettings, configurationSettings, contentToReuse, null); - } - - /** - * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead - */ - public ExecutionEnvironment(@NotNull RunProfile runProfile, - @Nullable Project project, - @Nullable RunnerSettings runnerSettings, - @Nullable ConfigurationPerRunnerSettings configurationSettings, - @Nullable RunContentDescriptor contentToReuse, - @Nullable RunnerAndConfigurationSettings settings) { - this(runProfile, DefaultExecutionTarget.INSTANCE, project, runnerSettings, configurationSettings, contentToReuse, settings); + @Nullable RunnerSettings runnerSettings) { + this(runProfile, DefaultExecutionTarget.INSTANCE, project, runnerSettings, null, null, null, null); } public ExecutionEnvironment(@NotNull RunProfile runProfile, @@ -155,7 +120,8 @@ public class ExecutionEnvironment extends UserDataHolderBase { @Nullable RunnerSettings runnerSettings, @Nullable ConfigurationPerRunnerSettings configurationSettings, @Nullable RunContentDescriptor contentToReuse, - @Nullable RunnerAndConfigurationSettings settings) { + @Nullable RunnerAndConfigurationSettings settings, + @Nullable String runnerId) { myTarget = target; myRunProfile = runProfile; myRunnerSettings = runnerSettings; @@ -163,6 +129,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { myProject = project; myContentToReuse = contentToReuse; myRunnerAndConfigurationSettings = settings; + myRunnerId = runnerId; if (myContentToReuse != null) { Disposer.register(myContentToReuse, new Disposable() { @Override @@ -186,15 +153,8 @@ public class ExecutionEnvironment extends UserDataHolderBase { configuration.getRunnerSettings(runner), configuration.getConfigurationSettings(runner), null, - configuration); - } - - /** - * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead - */ - public ExecutionEnvironment(@NotNull final RunProfile profile, - @NotNull final DataContext dataContext) { - this(profile, PlatformDataKeys.PROJECT.getData(dataContext), null, null, null); + configuration, + runner.getRunnerId()); } @Nullable @@ -202,7 +162,6 @@ public class ExecutionEnvironment extends UserDataHolderBase { return myProject; } - @NotNull public ExecutionTarget getExecutionTarget() { return myTarget; @@ -238,7 +197,7 @@ public class ExecutionEnvironment extends UserDataHolderBase { @Nullable public String getRunnerId() { - return myConfigurationSettings == null ? null : myConfigurationSettings.getRunnerId(); + return myRunnerId; } @Nullable 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 6f1017af470b..e58c6d868ac9 100644 --- a/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java +++ b/platform/lang-api/src/com/intellij/execution/runners/ExecutionEnvironmentBuilder.java @@ -41,6 +41,7 @@ public final class ExecutionEnvironmentBuilder { @Nullable private ConfigurationPerRunnerSettings myConfigurationSettings; @Nullable private RunContentDescriptor myContentToReuse; @Nullable private RunnerAndConfigurationSettings myRunnerAndConfigurationSettings; + @Nullable private String myRunnerId; private boolean myAssignNewId; public ExecutionEnvironmentBuilder() { @@ -64,6 +65,7 @@ public final class ExecutionEnvironmentBuilder { setRunProfile(settings.getConfiguration()); setRunnerSettings(settings.getRunnerSettings(programRunner)); setConfigurationSettings(settings.getConfigurationSettings(programRunner)); + setRunnerId(programRunner.getRunnerId()); return this; } @@ -91,6 +93,11 @@ public final class ExecutionEnvironmentBuilder { return this; } + public ExecutionEnvironmentBuilder setRunnerId(String runnerId) { + myRunnerId = runnerId; + return this; + } + public ExecutionEnvironmentBuilder assignNewId() { myAssignNewId = true; return this; @@ -100,7 +107,7 @@ public final class ExecutionEnvironmentBuilder { public ExecutionEnvironment build() { ExecutionEnvironment environment = new ExecutionEnvironment(myRunProfile, myTarget, myProject, myRunnerSettings, myConfigurationSettings, myContentToReuse, - myRunnerAndConfigurationSettings); + myRunnerAndConfigurationSettings, myRunnerId); if (myAssignNewId) { environment.assignNewExecutionId(); } 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 f9372e04ec3e..6e52bca1d19d 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/ExecutionManagerImpl.java @@ -154,7 +154,8 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom env.getRunnerSettings(), env.getConfigurationSettings(), null, - env.getRunnerAndConfigurationSettings()); + env.getRunnerAndConfigurationSettings(), + env.getRunnerId()); taskEnvironment.setExecutionId(finalId); if (!provider.executeTask(dataContext, runConfiguration, taskEnvironment, task)) { if (onCancelRunnable != null) { @@ -369,7 +370,8 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom runnerSettings, configurationPerRunnerSettings, descriptor, - configuration)); + configuration, + runner.getRunnerId())); } catch (RunCanceledByUserException ignore) { } diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java index 8772fb8f97b2..53d96a71986f 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunnerAndConfigurationSettingsImpl.java @@ -225,7 +225,7 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C ProgramRunner runner = RunnerRegistry.getInstance().findRunnerById(id); if (runner != null) { ConfigurationPerRunnerSettings settings = - new ConfigurationPerRunnerSettings(id, myConfiguration.createRunnerSettings(new InfoProvider(runner))); + new ConfigurationPerRunnerSettings(myConfiguration.createRunnerSettings(new InfoProvider(runner))); settings.readExternal(configurationElement); myConfigurationPerRunnerSettings.put(runner, settings); } else { @@ -374,7 +374,7 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C public ConfigurationPerRunnerSettings getConfigurationSettings(@NotNull ProgramRunner runner) { ConfigurationPerRunnerSettings settings = myConfigurationPerRunnerSettings.get(runner); if (settings == null) { - settings = new ConfigurationPerRunnerSettings(runner.getRunnerId(), myConfiguration.createRunnerSettings(new InfoProvider(runner))); + settings = new ConfigurationPerRunnerSettings(myConfiguration.createRunnerSettings(new InfoProvider(runner))); myConfigurationPerRunnerSettings.put(runner, settings); } return settings; @@ -405,7 +405,7 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C for (ProgramRunner runner : template.myConfigurationPerRunnerSettings.keySet()) { ConfigurationPerRunnerSettings data = - new ConfigurationPerRunnerSettings(runner.getRunnerId(), myConfiguration.createRunnerSettings(new InfoProvider(runner))); + new ConfigurationPerRunnerSettings(myConfiguration.createRunnerSettings(new InfoProvider(runner))); myConfigurationPerRunnerSettings.put(runner, data); Element temp = new Element(DUMMY_ELEMENT_NANE); template.myConfigurationPerRunnerSettings.get(runner).writeExternal(temp); 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 8b945eb9203a..32216788dfac 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/actions/AbstractRerunFailedTestsAction.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/actions/AbstractRerunFailedTestsAction.java @@ -175,7 +175,8 @@ public class AbstractRerunFailedTestsAction extends AnAction implements AnAction myEnvironment.getRunnerSettings(), myEnvironment.getConfigurationSettings(), myEnvironment.getContentToReuse(), - null)); + null, + myEnvironment.getRunnerId())); } catch (ExecutionException e1) { LOG.error(e1); diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java index dc6ec8466ee0..5d1d4fa0f4b7 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java @@ -222,7 +222,7 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC RunProfile configuration) throws ExecutionException { final Executor executor = Executor.EXECUTOR_EXTENSION_NAME.findExtension(executorClass); final ExecutionEnvironment environment = new ExecutionEnvironment(configuration, getProject(), - new RunnerSettings(null, null), null, null); + new RunnerSettings(null, null)); final Semaphore semaphore = new Semaphore(); semaphore.down(); diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index 84937d5b0852..fdf6d1af2bdc 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java @@ -48,8 +48,6 @@ import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.module.Module; -import com.intellij.openapi.module.ModuleManager; -import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.JavaSdkType; @@ -57,7 +55,10 @@ import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.ex.JavaSdkUtil; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ProjectRootManager; -import com.intellij.openapi.util.*; +import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.Getter; +import com.intellij.openapi.util.Key; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.registry.Registry; import com.intellij.psi.PsiClass; @@ -136,6 +137,10 @@ 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 d157cabf58ca..7fcf1115bc9c 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestPackage.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java @@ -37,7 +37,6 @@ import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.progress.Task; import com.intellij.openapi.progress.impl.BackgroundableProcessIndicator; -import com.intellij.openapi.project.DumbModeAction; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.MessageType; @@ -447,7 +446,8 @@ public class TestPackage extends TestObject { final ProgramRunner runner = RunnerRegistry.getInstance().getRunner(executor.getId(), myConfiguration); assert runner != null; runner.execute(executor, - new ExecutionEnvironment(myConfiguration, myProject, getRunnerSettings(), getConfigurationSettings(), null)); + new ExecutionEnvironment(myConfiguration, DefaultExecutionTarget.INSTANCE, myProject, getRunnerSettings(), getConfigurationSettings(), + null, null, getRunnerId())); 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 9d0ae21b8ddd..01e94c5f9142 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 @@ -300,8 +300,8 @@ public class MavenResumeAction extends AnAction { goals.add(myResumeModuleId); } - myRunner.execute(myExecutor, new ExecutionEnvironment(runConfiguration, project, myEnvironment.getRunnerSettings(), - myEnvironment.getConfigurationSettings(), null)); + myRunner.execute(myExecutor, new ExecutionEnvironment(runConfiguration, myEnvironment.getExecutionTarget(), project, myEnvironment.getRunnerSettings(), + myEnvironment.getConfigurationSettings(), null, null, myEnvironment.getRunnerId())); } catch (RunCanceledByUserException ignore) { } 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 152a3d005a9b..8b22df10ab29 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/actions/PreviewFormAction.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/actions/PreviewFormAction.java @@ -300,8 +300,7 @@ 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, null, - null)); + defaultRunner.execute(DefaultRunExecutor.getRunExecutorInstance(), new ExecutionEnvironment(profile, module.getProject(), null)); } catch (ExecutionException e) { Messages.showErrorDialog(