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/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 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 getConfigurationEditor() { diff --git a/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java b/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java index 8638d01ba4d2..2ef195bb2da3 100644 --- a/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java +++ b/java/execution/openapi/src/com/intellij/execution/JavaExecutionUtil.java @@ -59,7 +59,8 @@ 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)); + Executor executor = DefaultRunExecutor.getRunExecutorInstance(); + runner.execute(new ExecutionEnvironment(profile, executor, 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 af5645f1037c..e34cafbbb10c 100644 --- a/java/java-impl/src/com/intellij/javadoc/JavadocGenerationManager.java +++ b/java/java-impl/src/com/intellij/javadoc/JavadocGenerationManager.java @@ -18,6 +18,7 @@ package com.intellij.javadoc; import com.intellij.CommonBundle; import com.intellij.analysis.AnalysisScope; import com.intellij.execution.ExecutionException; +import com.intellij.execution.Executor; import com.intellij.execution.RunnerRegistry; import com.intellij.execution.executors.DefaultRunExecutor; import com.intellij.execution.runners.ExecutionEnvironment; @@ -83,7 +84,8 @@ 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)); + Executor executor = DefaultRunExecutor.getRunExecutorInstance(); + runner.execute(new ExecutionEnvironment(myConfiguration ,executor, myProject, null)); } catch (ExecutionException e) { ExecutionErrorDialog.show(e, CommonBundle.getErrorTitle(), myProject); 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('/', '.')); } diff --git a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java index be3b7964dece..f15207a584ab 100644 --- a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java +++ b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java @@ -128,8 +128,9 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas final RemoteConnection debugParameters = DebuggerManagerImpl.createDebugParameters(javaParameters, debuggerRunnerSettings, false); - final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(new ExecutionEnvironment(new MockConfiguration(), myProject, - debuggerRunnerSettings)){ + ExecutionEnvironment environment = new ExecutionEnvironment(new MockConfiguration(), new DefaultDebugExecutor(), myProject, + debuggerRunnerSettings); + final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(environment){ @Override protected JavaParameters createJavaParameters() { return javaParameters; @@ -184,8 +185,9 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas debuggerRunnerSettings.LOCAL = true; debuggerRunnerSettings.DEBUG_PORT = "3456"; - final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(new ExecutionEnvironment(new MockConfiguration(), myProject, - debuggerRunnerSettings)) { + ExecutionEnvironment environment = new ExecutionEnvironment(new MockConfiguration(), new DefaultDebugExecutor(), myProject, + debuggerRunnerSettings); + final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(environment) { @Override protected JavaParameters createJavaParameters() { return javaParameters; @@ -276,7 +278,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() { diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskDebugRunner.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskDebugRunner.java index eb1b98627828..b0d18c6da9c5 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskDebugRunner.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskDebugRunner.java @@ -52,7 +52,6 @@ public class ExternalSystemTaskDebugRunner extends GenericDebuggerRunner { @Nullable @Override protected RunContentDescriptor createContentDescriptor(Project project, - Executor executor, RunProfileState state, RunContentDescriptor contentToReuse, ExecutionEnvironment env) throws ExecutionException @@ -61,7 +60,7 @@ public class ExternalSystemTaskDebugRunner extends GenericDebuggerRunner { int port = ((ExternalSystemRunConfiguration.MyRunnableState)state).getDebugPort(); if (port > 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..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; @@ -50,15 +49,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(this, 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/BeforeRunTaskProvider.java b/platform/lang-api/src/com/intellij/execution/BeforeRunTaskProvider.java index b4c84a65d3d5..f3331f899ff1 100644 --- a/platform/lang-api/src/com/intellij/execution/BeforeRunTaskProvider.java +++ b/platform/lang-api/src/com/intellij/execution/BeforeRunTaskProvider.java @@ -36,8 +36,6 @@ import javax.swing.*; public abstract class 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-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/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/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..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,9 +39,10 @@ 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; @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) { + @NotNull Project project) { this(configuration.getConfiguration(), + executor, DefaultExecutionTarget.INSTANCE, project, configuration.getRunnerSettings(runner), @@ -71,32 +75,17 @@ 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 */ @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) { + @NotNull Project project) { this(configuration.getConfiguration(), + executor, target, project, configuration.getRunnerSettings(runner), @@ -109,12 +98,14 @@ public class ExecutionEnvironment extends UserDataHolderBase { * @deprecated, use {@link com.intellij.execution.runners.ExecutionEnvironmentBuilder} instead */ public ExecutionEnvironment(@NotNull RunProfile runProfile, - @Nullable Project project, + @NotNull Executor executor, + @NotNull 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, @@ -122,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; @@ -140,24 +132,7 @@ 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 + @NotNull public Project getProject() { return myProject; } @@ -211,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() { @@ -228,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 e58c6d868ac9..e4741b423556 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,16 +44,39 @@ public final class ExecutionEnvironmentBuilder { @Nullable private RunnerAndConfigurationSettings myRunnerAndConfigurationSettings; @Nullable private String myRunnerId; private boolean myAssignNewId; + @NotNull private Executor myExecutor; 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()); + setExecutor(copySource.getExecutor()); + } + + public ExecutionEnvironmentBuilder setExecutor(@NotNull Executor executor) { + myExecutor = executor; + return this; + } + public ExecutionEnvironmentBuilder setTarget(@NotNull ExecutionTarget target) { myTarget = target; return this; } - public ExecutionEnvironmentBuilder setProject(@Nullable Project project) { + public ExecutionEnvironmentBuilder setProject(@NotNull Project project) { check(myProject, "Project"); myProject = project; return this; @@ -106,7 +130,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..04b64dbd4e4c 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,20 +57,17 @@ 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(); - if (project == null) { - return; - } - final RunProfileState state = env.getState(executor); + final RunProfileState state = env.getState(); if (state == null) { return; } @@ -85,19 +81,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, 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-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/ProgramRunnerUtil.java b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java index ff773d6d42b3..a2a06258dc8e 100644 --- a/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java +++ b/platform/lang-impl/src/com/intellij/execution/ProgramRunnerUtil.java @@ -98,8 +98,8 @@ public class ProgramRunnerUtil { } try { - runner.execute(executor, new ExecutionEnvironmentBuilder().setRunnerAndSettings(runner, configuration).setTarget(target) - .setContentToReuse(contentToReuse).setProject(project).assignNewId().build()); + runner.execute(new ExecutionEnvironmentBuilder().setRunnerAndSettings(runner, configuration).setTarget(target) + .setContentToReuse(contentToReuse).setProject(project).setExecutor(executor).assignNewId().build()); } catch (ExecutionException e) { ExecutionUtil.handleExecutionError(project, executor.getToolWindowId(), configuration.getConfiguration(), 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 6e52bca1d19d..06939bba0dfc 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; @@ -132,7 +133,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; @@ -148,16 +148,9 @@ 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(dataContext, runConfiguration, taskEnvironment, task)) { + if (!provider.executeTask(projectContext, runConfiguration, taskEnvironment, task)) { if (onCancelRunnable != null) { SwingUtilities.invokeLater(onCancelRunnable); } @@ -190,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()); } @@ -255,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, @@ -283,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); } @@ -364,14 +360,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 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/actions/AbstractRerunFailedTestsAction.java b/platform/testRunner/src/com/intellij/execution/testframework/actions/AbstractRerunFailedTestsAction.java index 3ae1af1a7283..3618486607b5 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(new ExecutionEnvironmentBuilder(myEnvironment).build()); } catch (ExecutionException e1) { LOG.error(e1); 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/groovy/src/org/jetbrains/plugins/groovy/griffon/GriffonDebuggerRunner.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/griffon/GriffonDebuggerRunner.java index 6553c8bf3335..123ebec8709f 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/griffon/GriffonDebuggerRunner.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/griffon/GriffonDebuggerRunner.java @@ -3,7 +3,6 @@ package org.jetbrains.plugins.groovy.griffon; import com.intellij.debugger.engine.DebuggerUtils; import com.intellij.debugger.impl.GenericDebuggerRunner; import com.intellij.execution.ExecutionException; -import com.intellij.execution.Executor; import com.intellij.execution.configurations.*; import com.intellij.execution.executors.DefaultDebugExecutor; import com.intellij.execution.runners.ExecutionEnvironment; @@ -27,7 +26,6 @@ public class GriffonDebuggerRunner extends GenericDebuggerRunner { @Override protected RunContentDescriptor createContentDescriptor(Project project, - Executor executor, RunProfileState state, RunContentDescriptor contentToReuse, ExecutionEnvironment env) throws ExecutionException { @@ -53,11 +51,11 @@ public class GriffonDebuggerRunner extends GenericDebuggerRunner { } if (address == null) { - return super.createContentDescriptor(project, executor, state, contentToReuse, env); + return super.createContentDescriptor(project, state, contentToReuse, env); } RemoteConnection connection = new RemoteConnection(true, "127.0.0.1", address, false); - return attachVirtualMachine(project, executor, state, contentToReuse, env, connection, true); + return attachVirtualMachine(project, state, contentToReuse, env, connection, true); } } 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 073cc342e91e..205d3fceae7d 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java @@ -219,12 +219,12 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC ProgramRunner runner, RunProfile configuration) throws ExecutionException { final Executor executor = Executor.EXECUTOR_EXTENSION_NAME.findExtension(executorClass); - final ExecutionEnvironment environment = new ExecutionEnvironment(configuration, getProject(), null); + final ExecutionEnvironment environment = new ExecutionEnvironment(configuration, executor, getProject(), null); final Semaphore semaphore = new Semaphore(); semaphore.down(); final AtomicReference 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/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index f496c86c9506..071429050545 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; @@ -131,14 +131,6 @@ public abstract class TestObject implements JavaCommandLine { return myEnvironment.getRunnerSettings(); } - public ConfigurationPerRunnerSettings getConfigurationSettings() { - return myEnvironment.getConfigurationSettings(); - } - - public String getRunnerId() { - return myEnvironment.getRunnerId(); - } - public abstract RefactoringElementListener getListener(PsiElement element, JUnitConfiguration configuration); public abstract boolean isConfiguredByElement(JUnitConfiguration configuration, @@ -274,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()); @@ -383,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/junit/TestPackage.java b/plugins/junit/src/com/intellij/execution/junit/TestPackage.java index 7fcf1115bc9c..6f0b13403213 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(new ExecutionEnvironmentBuilder(myEnvironment).setContentToReuse(null).build()); final Balloon balloon = myToolWindowManager.getToolWindowBalloon(myTestRunDebugId); if (balloon != null) { balloon.hide(); 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/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..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 @@ -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(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/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, 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();