store runner ID directly in ExecutionEnvironment, remove it from ConfigurationPerRunnerSettings

This commit is contained in:
Dmitry Jemerov
2013-07-22 10:05:52 +02:00
parent 548ba0e3e3
commit fa18d853f3
14 changed files with 49 additions and 82 deletions
@@ -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;
}
@@ -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);
@@ -131,7 +131,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
RunnerSettings<JDOMExternalizable> runnerSettings = new RunnerSettings<JDOMExternalizable>(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<JDOMExternalizable> runnerSettings = new RunnerSettings<JDOMExternalizable>(debuggerRunnerSettings, null);
final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(new ExecutionEnvironment(new MockConfiguration(), myProject,
runnerSettings, null, null)) {
runnerSettings)) {
@Override
protected JavaParameters createJavaParameters() {
return javaParameters;
@@ -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() {
@@ -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
@@ -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();
}
@@ -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) {
}
@@ -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);
@@ -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);
@@ -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<JDOMExternalizable>(null, null), null, null);
new RunnerSettings<JDOMExternalizable>(null, null));
final Semaphore semaphore = new Semaphore();
semaphore.down();
@@ -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,
@@ -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();
@@ -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) {
}
@@ -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(