mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
AppCode: device selection
AppCode: tests optimization Platform: further ExecutionTarget support
This commit is contained in:
+5
-1
@@ -20,6 +20,7 @@ import com.intellij.execution.BeforeRunTaskProvider;
|
||||
import com.intellij.execution.RunManagerEx;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.impl.ConfigurationSettingsEditorWrapper;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -161,7 +162,10 @@ public class BuildArtifactsBeforeRunTaskProvider extends BeforeRunTaskProvider<B
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean executeTask(DataContext context, RunConfiguration configuration, final BuildArtifactsBeforeRunTask task) {
|
||||
public boolean executeTask(DataContext context,
|
||||
RunConfiguration configuration,
|
||||
ExecutionEnvironment env,
|
||||
final BuildArtifactsBeforeRunTask task) {
|
||||
final Ref<Boolean> result = Ref.create(false);
|
||||
final Semaphore finished = new Semaphore();
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.configurations.RunConfigurationBase;
|
||||
import com.intellij.execution.configurations.RunProfileWithCompileBeforeLaunchOption;
|
||||
import com.intellij.execution.remote.RemoteConfiguration;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.compiler.CompileContext;
|
||||
@@ -98,7 +99,7 @@ public class CompileStepBeforeRun extends BeforeRunTaskProvider<CompileStepBefor
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean executeTask(DataContext context, final RunConfiguration configuration, MakeBeforeRunTask task) {
|
||||
public boolean executeTask(DataContext context, final RunConfiguration configuration, ExecutionEnvironment env, MakeBeforeRunTask task) {
|
||||
if (!(configuration instanceof RunProfileWithCompileBeforeLaunchOption)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
+6
-8
@@ -52,14 +52,11 @@ public class AbstractRerunFailedTestsAction extends AnAction {
|
||||
private TestFrameworkRunningModel myModel;
|
||||
private Getter<TestFrameworkRunningModel> myModelProvider;
|
||||
protected TestConsoleProperties myConsoleProperties;
|
||||
protected RunnerSettings myRunnerSettings;
|
||||
protected ConfigurationPerRunnerSettings myConfigurationPerRunnerSettings;
|
||||
protected ExecutionEnvironment myEnvironment;
|
||||
|
||||
public void init(final TestConsoleProperties consoleProperties,
|
||||
final RunnerSettings runnerSettings,
|
||||
final ConfigurationPerRunnerSettings configurationSettings) {
|
||||
myConfigurationPerRunnerSettings = configurationSettings;
|
||||
myRunnerSettings = runnerSettings;
|
||||
final ExecutionEnvironment environment) {
|
||||
myEnvironment = environment;
|
||||
myConsoleProperties = consoleProperties;
|
||||
}
|
||||
|
||||
@@ -99,8 +96,9 @@ public class AbstractRerunFailedTestsAction extends 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, profile.getProject(), myRunnerSettings, myConfigurationPerRunnerSettings,
|
||||
null));
|
||||
runner.execute(executor, new ExecutionEnvironment(runner, myEnvironment.getExecutionTarget(),
|
||||
myEnvironment.getRunnerAndConfigurationSettings(),
|
||||
myEnvironment.getProject()));
|
||||
}
|
||||
catch (ExecutionException e1) {
|
||||
LOG.error(e1);
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
package com.intellij.execution;
|
||||
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
@@ -69,7 +70,7 @@ public abstract class BeforeRunTaskProvider<T extends BeforeRunTask> {
|
||||
|
||||
public abstract boolean canExecuteTask(RunConfiguration configuration, T task);
|
||||
|
||||
public abstract boolean executeTask(DataContext context, RunConfiguration configuration, T task);
|
||||
public abstract boolean executeTask(DataContext context, RunConfiguration configuration, ExecutionEnvironment env, T task);
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -79,16 +80,6 @@ public abstract class BeforeRunTaskProvider<T extends BeforeRunTask> {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get runner id that current run is about to be made by
|
||||
* @param context data context that is passed to <code>{@link #executeTask(com.intellij.openapi.actionSystem.DataContext, com.intellij.execution.configurations.RunConfiguration, BeforeRunTask)}</code>
|
||||
* @return runner id
|
||||
*/
|
||||
@Nullable
|
||||
public static String getRunnerId(DataContext context) {
|
||||
return (String)context.getData(RUNNER_ID);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static <T extends BeforeRunTask> BeforeRunTaskProvider<T> getProvider(Project project, Key<T> key) {
|
||||
BeforeRunTaskProvider<BeforeRunTask>[] providers = Extensions.getExtensions(BeforeRunTaskProvider.EXTENSION_POINT_NAME, project);
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.execution;
|
||||
|
||||
import com.intellij.execution.configurations.RunProfile;
|
||||
import com.intellij.execution.configurations.RunProfileState;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
@@ -23,10 +22,11 @@ import com.intellij.execution.ui.RunContentManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.messages.Topic;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public abstract class ExecutionManager {
|
||||
public static final Topic<ExecutionListener> EXECUTION_TOPIC = new Topic<ExecutionListener>("configuration executed", ExecutionListener.class,
|
||||
Topic.BroadcastDirection.TO_PARENT);
|
||||
public static final Topic<ExecutionListener> EXECUTION_TOPIC
|
||||
= new Topic<ExecutionListener>("configuration executed", ExecutionListener.class, Topic.BroadcastDirection.TO_PARENT);
|
||||
|
||||
public static ExecutionManager getInstance(final Project project) {
|
||||
return project.getComponent(ExecutionManager.class);
|
||||
@@ -34,16 +34,21 @@ public abstract class ExecutionManager {
|
||||
|
||||
public abstract RunContentManager getContentManager();
|
||||
|
||||
public abstract void compileAndRun(Runnable startRunnable, RunProfile configuration, RunProfileState state, Runnable onCancelRunnable);
|
||||
public abstract void compileAndRun(@NotNull Runnable startRunnable,
|
||||
@NotNull ExecutionEnvironment env,
|
||||
@Nullable RunProfileState state,
|
||||
@Nullable Runnable onCancelRunnable);
|
||||
|
||||
public abstract ProcessHandler[] getRunningProcesses();
|
||||
|
||||
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 Project project,
|
||||
@NotNull Executor executor,
|
||||
@NotNull ExecutionEnvironment env);
|
||||
|
||||
public abstract void restartRunProfile(@NotNull Project project,
|
||||
@NotNull Executor executor,
|
||||
@NotNull ExecutionTarget target,
|
||||
@NotNull RunnerAndConfigurationSettings configuration);
|
||||
|
||||
}
|
||||
|
||||
@@ -42,4 +42,9 @@ public abstract class ExecutionTarget {
|
||||
public int hashCode() {
|
||||
return getId().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.execution;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface ExecutionTargetListener {
|
||||
void activeTargetChanged(@NotNull ExecutionTarget newTarget);
|
||||
}
|
||||
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
package com.intellij.execution;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.messages.Topic;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -24,9 +24,12 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ExecutionTargetManager {
|
||||
public static final Topic<ExecutionTargetListener> TOPIC = Topic.create("ExecutionTarget topic", ExecutionTargetListener.class);
|
||||
|
||||
|
||||
@NotNull
|
||||
public static ExecutionTargetManager getInstance(@NotNull Project project) {
|
||||
return ServiceManager.getService(project, ExecutionTargetManager.class);
|
||||
return project.getComponent(ExecutionTargetManager.class);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -39,9 +39,11 @@ public interface RunnerAndConfigurationSettings {
|
||||
|
||||
String getName();
|
||||
|
||||
RunnerSettings getRunnerSettings(ProgramRunner runner);
|
||||
@NotNull
|
||||
RunnerSettings getRunnerSettings(@NotNull ProgramRunner runner);
|
||||
|
||||
ConfigurationPerRunnerSettings getConfigurationSettings(ProgramRunner runner);
|
||||
@NotNull
|
||||
ConfigurationPerRunnerSettings getConfigurationSettings(@NotNull ProgramRunner runner);
|
||||
|
||||
@Nullable
|
||||
ConfigurationType getType();
|
||||
|
||||
@@ -43,6 +43,10 @@ public abstract class CommandLineState implements RunnableState {
|
||||
myEnvironment = environment;
|
||||
}
|
||||
|
||||
public ExecutionEnvironment getEnvironment() {
|
||||
return myEnvironment;
|
||||
}
|
||||
|
||||
public RunnerSettings getRunnerSettings() {
|
||||
return myEnvironment.getRunnerSettings();
|
||||
}
|
||||
@@ -51,6 +55,11 @@ public abstract class CommandLineState implements RunnableState {
|
||||
return myEnvironment.getConfigurationSettings();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ExecutionTarget getExecutionTarget() {
|
||||
return myEnvironment.getExecutionTarget();
|
||||
}
|
||||
|
||||
public ExecutionResult execute(@NotNull final Executor executor, @NotNull final ProgramRunner runner) throws ExecutionException {
|
||||
final ProcessHandler processHandler = startProcess();
|
||||
final ConsoleView console = createConsole(executor);
|
||||
|
||||
@@ -30,17 +30,17 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
|
||||
/**
|
||||
* @author spleaner
|
||||
*/
|
||||
|
||||
public class ExecutionEnvironment {
|
||||
private final Project myProject;
|
||||
private final RunContentDescriptor myContentToReuse;
|
||||
@Nullable private final Project myProject;
|
||||
|
||||
@NotNull private RunProfile myRunProfile;
|
||||
@NotNull private ExecutionTarget myTarget;
|
||||
private RunProfile myRunProfile;
|
||||
private RunnerSettings myRunnerSettings;
|
||||
private ConfigurationPerRunnerSettings myConfigurationSettings;
|
||||
|
||||
@Nullable private RunnerSettings myRunnerSettings;
|
||||
@Nullable private ConfigurationPerRunnerSettings myConfigurationSettings;
|
||||
@Nullable private RunnerAndConfigurationSettings myRunnerAndConfigurationSettings;
|
||||
@Nullable private final RunContentDescriptor myContentToReuse;
|
||||
|
||||
@TestOnly
|
||||
public ExecutionEnvironment() {
|
||||
@@ -50,7 +50,7 @@ public class ExecutionEnvironment {
|
||||
|
||||
public ExecutionEnvironment(@NotNull final ProgramRunner runner,
|
||||
@NotNull final RunnerAndConfigurationSettings configuration,
|
||||
Project project) {
|
||||
@Nullable Project project) {
|
||||
this(runner, DefaultExecutionTarget.INSTANCE, configuration, project);
|
||||
}
|
||||
|
||||
@@ -59,8 +59,8 @@ public class ExecutionEnvironment {
|
||||
@NotNull final RunnerAndConfigurationSettings configuration,
|
||||
Project project) {
|
||||
this(configuration.getConfiguration(),
|
||||
project,
|
||||
target,
|
||||
project,
|
||||
configuration.getRunnerSettings(runner),
|
||||
configuration.getConfigurationSettings(runner),
|
||||
null,
|
||||
@@ -68,27 +68,27 @@ public class ExecutionEnvironment {
|
||||
}
|
||||
|
||||
public ExecutionEnvironment(@NotNull RunProfile runProfile,
|
||||
Project project,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings,
|
||||
@Nullable Project project,
|
||||
@Nullable RunnerSettings runnerSettings,
|
||||
@Nullable ConfigurationPerRunnerSettings configurationSettings,
|
||||
@Nullable RunContentDescriptor contentToReuse) {
|
||||
this(runProfile, project, runnerSettings, configurationSettings, contentToReuse, null);
|
||||
}
|
||||
|
||||
public ExecutionEnvironment(@NotNull RunProfile runProfile,
|
||||
Project project,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings,
|
||||
@Nullable RunContentDescriptor contentToReuse,
|
||||
@Nullable RunnerAndConfigurationSettings settings) {
|
||||
this(runProfile, project, DefaultExecutionTarget.INSTANCE, runnerSettings, configurationSettings, contentToReuse, settings);
|
||||
@Nullable Project project,
|
||||
@Nullable RunnerSettings runnerSettings,
|
||||
@Nullable ConfigurationPerRunnerSettings configurationSettings,
|
||||
@Nullable RunContentDescriptor contentToReuse,
|
||||
@Nullable RunnerAndConfigurationSettings settings) {
|
||||
this(runProfile, DefaultExecutionTarget.INSTANCE, project, runnerSettings, configurationSettings, contentToReuse, settings);
|
||||
}
|
||||
|
||||
public ExecutionEnvironment(@NotNull RunProfile runProfile,
|
||||
Project project,
|
||||
@NotNull ExecutionTarget target,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings,
|
||||
@Nullable Project project,
|
||||
@Nullable RunnerSettings runnerSettings,
|
||||
@Nullable ConfigurationPerRunnerSettings configurationSettings,
|
||||
@Nullable RunContentDescriptor contentToReuse,
|
||||
@Nullable RunnerAndConfigurationSettings settings) {
|
||||
myTarget = target;
|
||||
@@ -104,15 +104,23 @@ public class ExecutionEnvironment {
|
||||
* @deprecated use {@link #ExecutionEnvironment(ProgramRunner, com.intellij.execution.RunnerAndConfigurationSettings, com.intellij.openapi.project.Project)}
|
||||
*/
|
||||
@Deprecated
|
||||
public ExecutionEnvironment(@NotNull final ProgramRunner runner, @NotNull final RunnerAndConfigurationSettings configuration, final DataContext context) {
|
||||
this(configuration.getConfiguration(), PlatformDataKeys.PROJECT.getData(context), configuration.getRunnerSettings(runner), configuration.getConfigurationSettings(runner), null, configuration);
|
||||
public ExecutionEnvironment(@NotNull final ProgramRunner runner,
|
||||
@NotNull final RunnerAndConfigurationSettings configuration,
|
||||
@NotNull final DataContext context) {
|
||||
this(configuration.getConfiguration(),
|
||||
PlatformDataKeys.PROJECT.getData(context),
|
||||
configuration.getRunnerSettings(runner),
|
||||
configuration.getConfigurationSettings(runner),
|
||||
null,
|
||||
configuration);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #ExecutionEnvironment(com.intellij.execution.configurations.RunProfile, com.intellij.openapi.project.Project, com.intellij.execution.configurations.RunnerSettings, com.intellij.execution.configurations.ConfigurationPerRunnerSettings, com.intellij.execution.ui.RunContentDescriptor)}
|
||||
*/
|
||||
@Deprecated
|
||||
public ExecutionEnvironment(@NotNull final RunProfile profile, final DataContext dataContext) {
|
||||
public ExecutionEnvironment(@NotNull final RunProfile profile,
|
||||
@NotNull final DataContext dataContext) {
|
||||
this(profile, PlatformDataKeys.PROJECT.getData(dataContext), null, null, null);
|
||||
}
|
||||
|
||||
@@ -121,9 +129,9 @@ public class ExecutionEnvironment {
|
||||
*/
|
||||
@Deprecated
|
||||
public ExecutionEnvironment(@NotNull final RunProfile runProfile,
|
||||
final RunnerSettings runnerSettings,
|
||||
final ConfigurationPerRunnerSettings configurationSettings,
|
||||
final DataContext dataContext) {
|
||||
@Nullable final RunnerSettings runnerSettings,
|
||||
@Nullable final ConfigurationPerRunnerSettings configurationSettings,
|
||||
@NotNull final DataContext dataContext) {
|
||||
this(runProfile, PlatformDataKeys.PROJECT.getData(dataContext), runnerSettings, configurationSettings, null);
|
||||
}
|
||||
|
||||
@@ -165,16 +173,23 @@ public class ExecutionEnvironment {
|
||||
return myContentToReuse;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getRunnerId() {
|
||||
return myConfigurationSettings == null ? null : myConfigurationSettings.getRunnerId();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public RunnerSettings getRunnerSettings() {
|
||||
return myRunnerSettings;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ConfigurationPerRunnerSettings getConfigurationSettings() {
|
||||
return myConfigurationSettings;
|
||||
}
|
||||
|
||||
@Nullable public RunProfileState getState(final Executor executor) throws ExecutionException {
|
||||
@Nullable
|
||||
public RunProfileState getState(final Executor executor) throws ExecutionException {
|
||||
return myRunProfile.getState(executor, this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,10 +17,11 @@ package com.intellij.execution;
|
||||
|
||||
import com.intellij.execution.impl.RunManagerImpl;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.ProjectComponent;
|
||||
import com.intellij.openapi.components.*;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -28,11 +29,15 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ExecutionTargetManagerImpl extends ExecutionTargetManager implements ProjectComponent {
|
||||
|
||||
@State(name = "XcodeMetaData", storages = {@Storage(file = StoragePathMacros.WORKSPACE_FILE, scheme = StorageScheme.DEFAULT)})
|
||||
public class ExecutionTargetManagerImpl extends ExecutionTargetManager implements ProjectComponent, PersistentStateComponent<Element> {
|
||||
@NotNull private final Project myProject;
|
||||
@NotNull private final Object myActiveTargetLock = new Object();
|
||||
@Nullable private ExecutionTarget myActiveTarget;
|
||||
|
||||
@Nullable private String mySavedActiveTargetId;
|
||||
|
||||
public ExecutionTargetManagerImpl(@NotNull Project project) {
|
||||
myProject = project;
|
||||
}
|
||||
@@ -45,12 +50,34 @@ public class ExecutionTargetManagerImpl extends ExecutionTargetManager implement
|
||||
public void projectClosed() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element getState() {
|
||||
synchronized (myActiveTargetLock) {
|
||||
Element state = new Element("state");
|
||||
|
||||
String id = myActiveTarget == null ? mySavedActiveTargetId : myActiveTarget.getId();
|
||||
if (id != null) state.setAttribute("SELECTED_TARGET", id);
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadState(Element state) {
|
||||
synchronized (myActiveTargetLock) {
|
||||
if (myActiveTarget == null && mySavedActiveTargetId == null) {
|
||||
mySavedActiveTargetId = state.getAttributeValue("SELECTED_TARGET");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initComponent() {
|
||||
RunManagerImpl.getInstanceImpl(myProject).addRunManagerListener(new RunManagerAdapter() {
|
||||
@Override
|
||||
public void runConfigurationChanged(@NotNull RunnerAndConfigurationSettings settings) {
|
||||
updateActiveTarget(settings);
|
||||
if (settings == RunManager.getInstance(myProject).getSelectedConfiguration()) {
|
||||
updateActiveTarget(settings);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -86,7 +113,7 @@ public class ExecutionTargetManagerImpl extends ExecutionTargetManager implement
|
||||
public void setActiveTarget(@NotNull ExecutionTarget target) {
|
||||
ApplicationManager.getApplication().assertIsDispatchThread();
|
||||
synchronized (myActiveTargetLock) {
|
||||
myActiveTarget = target;
|
||||
doSetActiveTarget(target);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,12 +122,32 @@ public class ExecutionTargetManagerImpl extends ExecutionTargetManager implement
|
||||
}
|
||||
|
||||
private void updateActiveTarget(@Nullable RunnerAndConfigurationSettings settings) {
|
||||
if (settings == null) return;
|
||||
|
||||
List<ExecutionTarget> suitable = getTargetsFor(settings);
|
||||
List<ExecutionTarget> suitable = settings == null ? Collections.singletonList(DefaultExecutionTarget.INSTANCE)
|
||||
: getTargetsFor(settings);
|
||||
synchronized (myActiveTargetLock) {
|
||||
int index = suitable.indexOf(myActiveTarget);
|
||||
myActiveTarget = index >= 0 ? suitable.get(index) : ContainerUtil.getFirstItem(suitable, DefaultExecutionTarget.INSTANCE);
|
||||
int index = -1;
|
||||
if (myActiveTarget != null) {
|
||||
index = suitable.indexOf(myActiveTarget);
|
||||
}
|
||||
else if (mySavedActiveTargetId != null) {
|
||||
for (int i = 0, size = suitable.size(); i < size; i++) {
|
||||
if (suitable.get(i).getId().equals(mySavedActiveTargetId)) {
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
doSetActiveTarget(index >= 0 ? suitable.get(index) : ContainerUtil.getFirstItem(suitable, DefaultExecutionTarget.INSTANCE));
|
||||
}
|
||||
}
|
||||
|
||||
private void doSetActiveTarget(@NotNull ExecutionTarget newTarget) {
|
||||
mySavedActiveTargetId = null;
|
||||
|
||||
ExecutionTarget prev = myActiveTarget;
|
||||
myActiveTarget = newTarget;
|
||||
if (prev != null && !prev.equals(myActiveTarget)) {
|
||||
myProject.getMessageBus().syncPublisher(TOPIC).activeTargetChanged(myActiveTarget);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-7
@@ -269,13 +269,11 @@ public class RunConfigurationsComboBoxAction extends ComboBoxAction implements D
|
||||
|
||||
@Override
|
||||
public void setSelected(AnActionEvent e, boolean state) {
|
||||
if (state) {
|
||||
ExecutionTargetManager.setActiveTarget(myProject, myTarget);
|
||||
updateButton(ExecutionTargetManager.getActiveTarget(myProject),
|
||||
RunManagerEx.getInstanceEx(myProject).getSelectedConfiguration(),
|
||||
myProject,
|
||||
e.getPresentation());
|
||||
}
|
||||
ExecutionTargetManager.setActiveTarget(myProject, myTarget);
|
||||
updateButton(ExecutionTargetManager.getActiveTarget(myProject),
|
||||
RunManagerEx.getInstanceEx(myProject).getSelectedConfiguration(),
|
||||
myProject,
|
||||
e.getPresentation());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,10 @@ package com.intellij.execution.impl;
|
||||
|
||||
import com.intellij.CommonBundle;
|
||||
import com.intellij.execution.*;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.configurations.ConfigurationPerRunnerSettings;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.configurations.RunProfile;
|
||||
import com.intellij.execution.configurations.RunProfileState;
|
||||
import com.intellij.execution.process.ProcessAdapter;
|
||||
import com.intellij.execution.process.ProcessEvent;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
@@ -101,9 +104,11 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom
|
||||
return handlers.toArray(new ProcessHandler[handlers.size()]);
|
||||
}
|
||||
|
||||
public void compileAndRun(final Runnable startRunnable, final RunProfile configuration, final @Nullable RunProfileState state, @Nullable final Runnable onCancelRunnable) {
|
||||
if (configuration instanceof RunConfiguration) {
|
||||
final RunConfiguration runConfiguration = (RunConfiguration)configuration;
|
||||
public void compileAndRun(@NotNull final Runnable startRunnable, @NotNull final ExecutionEnvironment env, final @Nullable RunProfileState state, @Nullable final Runnable onCancelRunnable) {
|
||||
RunProfile profile = env.getRunProfile();
|
||||
|
||||
if (profile instanceof RunConfiguration) {
|
||||
final RunConfiguration runConfiguration = (RunConfiguration)profile;
|
||||
final RunManagerImpl runManager = RunManagerImpl.getInstanceImpl(myProject);
|
||||
|
||||
final List<BeforeRunTask> activeTasks = new ArrayList<BeforeRunTask>();
|
||||
@@ -120,7 +125,7 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom
|
||||
public void run() {
|
||||
for (BeforeRunTask task : activeTasks) {
|
||||
BeforeRunTaskProvider<BeforeRunTask> provider = BeforeRunTaskProvider.getProvider(myProject, task.getProviderId());
|
||||
if(provider != null && !provider.executeTask(dataContext, runConfiguration, task)) {
|
||||
if(provider != null && !provider.executeTask(dataContext, runConfiguration, env, task)) {
|
||||
if (onCancelRunnable != null) {
|
||||
SwingUtilities.invokeLater(onCancelRunnable);
|
||||
}
|
||||
@@ -194,8 +199,7 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom
|
||||
startRunnable.run();
|
||||
}
|
||||
else {
|
||||
final RunnerSettings runnerSettings = env.getRunnerSettings();
|
||||
compileAndRun(startRunnable, runnerSettings != null ? runnerSettings.getRunProfile() : profile, state, new Runnable() {
|
||||
compileAndRun(startRunnable, env, state, new Runnable() {
|
||||
public void run() {
|
||||
if (!project.isDisposed()) {
|
||||
project.getMessageBus().syncPublisher(EXECUTION_TOPIC).processNotStarted(executor.getId(), env);
|
||||
|
||||
+9
-1
@@ -152,7 +152,10 @@ extends BeforeRunTaskProvider<RunConfigurationBeforeRunProvider.RunConfigurableB
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean executeTask(final DataContext dataContext, RunConfiguration configuration, RunConfigurableBeforeRunTask task) {
|
||||
public boolean executeTask(final DataContext dataContext,
|
||||
RunConfiguration configuration,
|
||||
final ExecutionEnvironment env,
|
||||
RunConfigurableBeforeRunTask task) {
|
||||
RunnerAndConfigurationSettings settings = task.getSettings();
|
||||
if (settings == null) {
|
||||
return false;
|
||||
@@ -163,9 +166,14 @@ extends BeforeRunTaskProvider<RunConfigurationBeforeRunProvider.RunConfigurableB
|
||||
if (runner == null)
|
||||
return false;
|
||||
final ExecutionEnvironment environment = new ExecutionEnvironment(runner, settings, myProject);
|
||||
if (!ExecutionTargetManager.canRun(settings, env.getExecutionTarget())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!runner.canRun(executorId, environment.getRunProfile())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
else {
|
||||
final Semaphore targetDone = new Semaphore();
|
||||
final boolean[] result = new boolean[1];
|
||||
|
||||
+4
-2
@@ -320,7 +320,8 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
};
|
||||
}
|
||||
|
||||
public RunnerSettings getRunnerSettings(ProgramRunner runner) {
|
||||
@NotNull
|
||||
public RunnerSettings getRunnerSettings(@NotNull ProgramRunner runner) {
|
||||
RunnerSettings settings = myRunnerSettings.get(runner);
|
||||
if (settings == null) {
|
||||
settings = createRunnerSettings(runner);
|
||||
@@ -329,7 +330,8 @@ public class RunnerAndConfigurationSettingsImpl implements JDOMExternalizable, C
|
||||
return settings;
|
||||
}
|
||||
|
||||
public ConfigurationPerRunnerSettings getConfigurationSettings(ProgramRunner runner) {
|
||||
@NotNull
|
||||
public ConfigurationPerRunnerSettings getConfigurationSettings(@NotNull ProgramRunner runner) {
|
||||
ConfigurationPerRunnerSettings settings = myConfigurationPerRunnerSettings.get(runner);
|
||||
if (settings == null) {
|
||||
settings = new ConfigurationPerRunnerSettings(runner.getRunnerId(), myConfiguration.createRunnerSettings(new InfoProvider(runner)));
|
||||
|
||||
+2
-1
@@ -20,6 +20,7 @@ import com.intellij.execution.BeforeRunTask;
|
||||
import com.intellij.execution.BeforeRunTaskProvider;
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import com.intellij.openapi.util.Key;
|
||||
@@ -62,7 +63,7 @@ public class UnknownBeforeRunTaskProvider extends BeforeRunTaskProvider<UnknownB
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean executeTask(DataContext context, RunConfiguration configuration, UnknownTask task) {
|
||||
public boolean executeTask(DataContext context, RunConfiguration configuration, ExecutionEnvironment env, UnknownTask task) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -78,8 +78,8 @@ public class RestartAction extends AnAction implements DumbAware {
|
||||
try {
|
||||
final ExecutionEnvironment old = myEnvironment;
|
||||
myRunner.execute(myExecutor, new ExecutionEnvironment(old.getRunProfile(),
|
||||
project,
|
||||
old.getExecutionTarget(),
|
||||
project,
|
||||
old.getRunnerSettings(),
|
||||
old.getConfigurationSettings(),
|
||||
myDescriptor,
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.mock;
|
||||
|
||||
import com.intellij.execution.DefaultExecutionTarget;
|
||||
import com.intellij.execution.ExecutionTarget;
|
||||
import com.intellij.execution.ExecutionTargetManager;
|
||||
import com.intellij.execution.RunnerAndConfigurationSettings;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class MockExecutionTargetManager extends ExecutionTargetManager {
|
||||
private ExecutionTarget myTarget = DefaultExecutionTarget.INSTANCE;
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ExecutionTarget getActiveTarget() {
|
||||
return myTarget;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setActiveTarget(@NotNull ExecutionTarget target) {
|
||||
myTarget = target;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<ExecutionTarget> getTargetsFor(@Nullable RunnerAndConfigurationSettings settings) {
|
||||
return Collections.singletonList(DefaultExecutionTarget.INSTANCE);
|
||||
}
|
||||
}
|
||||
@@ -920,7 +920,7 @@ public class AllIcons {
|
||||
public static final Icon HidePassed = IconLoader.getIcon("/runConfigurations/hidePassed.png"); // 16x16
|
||||
public static final Icon IgnoredTest = IconLoader.getIcon("/runConfigurations/ignoredTest.png"); // 16x16
|
||||
public static final Icon InvalidConfigurationLayer = IconLoader.getIcon("/runConfigurations/invalidConfigurationLayer.png"); // 16x16
|
||||
public static final Icon Junit = IconLoader.getIcon("/runConfigurations/junit.png"); // 16x16
|
||||
public static final Icon UnitTest = IconLoader.getIcon("/runConfigurations/junit.png"); // 16x16
|
||||
public static final Icon LoadingTree = IconLoader.getIcon("/runConfigurations/loadingTree.png"); // 16x16
|
||||
public static final Icon Ql_console = IconLoader.getIcon("/runConfigurations/ql_console.png"); // 16x16
|
||||
public static final Icon Remote = IconLoader.getIcon("/runConfigurations/remote.png"); // 16x16
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ public class TestDataHighlightingPass extends TextEditorHighlightingPass {
|
||||
private static final Key<Object> KEY = Key.create("TestDataHighlighterKey");
|
||||
private static final Object VALUE = new Object();
|
||||
|
||||
private static final Icon ICON = AllIcons.RunConfigurations.Junit;
|
||||
private static final Icon ICON = AllIcons.RunConfigurations.UnitTest;
|
||||
private static final GutterIconRenderer ICON_RENDERER = new MyGutterIconRenderer();
|
||||
|
||||
private static final TextAttributes CARET_ATTRIBUTES = new TextAttributes(Color.BLUE, null, null, null, Font.BOLD);
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.intellij.lang.ant.config.impl;
|
||||
import com.intellij.execution.BeforeRunTaskProvider;
|
||||
import com.intellij.execution.RunManagerEx;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.lang.ant.AntBundle;
|
||||
import com.intellij.lang.ant.AntIcons;
|
||||
import com.intellij.lang.ant.config.AntBuildFile;
|
||||
@@ -105,7 +106,7 @@ public class AntBeforeRunTaskProvider extends BeforeRunTaskProvider<AntBeforeRun
|
||||
return findTargetToExecute(task) != null;
|
||||
}
|
||||
|
||||
public boolean executeTask(DataContext context, RunConfiguration configuration, AntBeforeRunTask task) {
|
||||
public boolean executeTask(DataContext context, RunConfiguration configuration, ExecutionEnvironment env, AntBeforeRunTask task) {
|
||||
final AntBuildTarget target = findTargetToExecute(task);
|
||||
if (target != null) {
|
||||
return AntConfigurationImpl.executeTargetSynchronously(context, target);
|
||||
|
||||
@@ -78,7 +78,7 @@ public class JUnitConfiguration extends ModuleBasedConfiguration<JavaRunConfigur
|
||||
}
|
||||
|
||||
public RunProfileState getState(@NotNull final Executor executor, @NotNull final ExecutionEnvironment env) throws ExecutionException {
|
||||
return TestObject.fromString(myData.TEST_OBJECT, getProject(), this, env.getRunnerSettings(), env.getConfigurationSettings());
|
||||
return TestObject.fromString(myData.TEST_OBJECT, getProject(), this, env);
|
||||
}
|
||||
|
||||
|
||||
@@ -548,7 +548,7 @@ public class JUnitConfiguration extends ModuleBasedConfiguration<JavaRunConfigur
|
||||
|
||||
public TestObject getTestObject(final Project project, final JUnitConfiguration configuration) {
|
||||
//TODO[dyoma]!
|
||||
return TestObject.fromString(TEST_OBJECT, project, configuration, null, null);
|
||||
return TestObject.fromString(TEST_OBJECT, project, configuration, null);
|
||||
}
|
||||
|
||||
public Module setMainClass(final PsiClass testClass) {
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import javax.swing.*;
|
||||
|
||||
public class JUnitConfigurationType implements ConfigurationType {
|
||||
public static final Icon ICON = AllIcons.RunConfigurations.Junit;
|
||||
public static final Icon ICON = AllIcons.RunConfigurations.UnitTest;
|
||||
private final ConfigurationFactory myFactory;
|
||||
|
||||
/**reflection*/
|
||||
|
||||
@@ -20,7 +20,11 @@ import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.JavaExecutionUtil;
|
||||
import com.intellij.execution.ProgramRunnerUtil;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.configurations.JavaRunConfigurationModule;
|
||||
import com.intellij.execution.configurations.RunConfigurationModule;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationException;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationWarning;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.psi.PsiClass;
|
||||
@@ -32,9 +36,8 @@ import com.intellij.refactoring.listeners.RefactoringElementListener;
|
||||
class TestClass extends TestObject {
|
||||
public TestClass(final Project project,
|
||||
final JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings) {
|
||||
super(project, configuration, runnerSettings, configurationSettings);
|
||||
ExecutionEnvironment environment) {
|
||||
super(project, configuration, environment);
|
||||
}
|
||||
|
||||
protected void initialize() throws ExecutionException {
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
package com.intellij.execution.junit;
|
||||
|
||||
import com.intellij.execution.CantRunException;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationError;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationException;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationWarning;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.testframework.SourceScope;
|
||||
import com.intellij.execution.util.JavaParametersUtil;
|
||||
import com.intellij.execution.util.ProgramParametersUtil;
|
||||
@@ -43,9 +46,8 @@ class TestDirectory extends TestPackage {
|
||||
|
||||
public TestDirectory(Project project,
|
||||
JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings) {
|
||||
super(project, configuration, runnerSettings, configurationSettings);
|
||||
ExecutionEnvironment environment) {
|
||||
super(project, configuration, environment);
|
||||
myProject = project;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.intellij.execution.junit;
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.execution.*;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.psi.PsiClass;
|
||||
@@ -35,9 +36,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
class TestMethod extends TestObject {
|
||||
public TestMethod(final Project project,
|
||||
final JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings) {
|
||||
super(project, configuration, runnerSettings, configurationSettings);
|
||||
ExecutionEnvironment environment) {
|
||||
super(project, configuration, environment);
|
||||
}
|
||||
|
||||
protected void initialize() throws ExecutionException {
|
||||
|
||||
@@ -20,12 +20,11 @@ import com.intellij.execution.CantRunException;
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.JavaExecutionUtil;
|
||||
import com.intellij.execution.Location;
|
||||
import com.intellij.execution.configurations.ConfigurationPerRunnerSettings;
|
||||
import com.intellij.execution.configurations.RunConfigurationModule;
|
||||
import com.intellij.execution.configurations.RunnerSettings;
|
||||
import com.intellij.execution.junit2.TestProxy;
|
||||
import com.intellij.execution.junit2.info.MethodLocation;
|
||||
import com.intellij.execution.junit2.info.TestInfo;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.testframework.AbstractTestProxy;
|
||||
import com.intellij.idea.ActionsBundle;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -45,10 +44,9 @@ public class TestMethods extends TestMethod {
|
||||
|
||||
public TestMethods(final Project project,
|
||||
final JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings,
|
||||
ExecutionEnvironment environment,
|
||||
Collection<AbstractTestProxy> failedTests) {
|
||||
super(project, configuration, runnerSettings, configurationSettings);
|
||||
super(project, configuration, environment);
|
||||
myFailedTests = failedTests;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import com.intellij.execution.junit2.ui.model.RootTestInfo;
|
||||
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.ProgramRunner;
|
||||
import com.intellij.execution.testframework.*;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
@@ -81,26 +82,25 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
protected JavaParameters myJavaParameters;
|
||||
private final Project myProject;
|
||||
protected final JUnitConfiguration myConfiguration;
|
||||
private final RunnerSettings myRunnerSettings;
|
||||
private final ConfigurationPerRunnerSettings myConfigurationSettings;
|
||||
private final ExecutionEnvironment myEnvironment;
|
||||
protected File myTempFile = null;
|
||||
public File myListenersFile;
|
||||
|
||||
public static TestObject fromString(final String id,
|
||||
final Project project,
|
||||
final JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings, ConfigurationPerRunnerSettings configurationSettings) {
|
||||
ExecutionEnvironment environment) {
|
||||
if (JUnitConfiguration.TEST_METHOD.equals(id))
|
||||
return new TestMethod(project, configuration, runnerSettings, configurationSettings);
|
||||
return new TestMethod(project, configuration, environment);
|
||||
if (JUnitConfiguration.TEST_CLASS.equals(id))
|
||||
return new TestClass(project, configuration, runnerSettings, configurationSettings);
|
||||
return new TestClass(project, configuration, environment);
|
||||
if (JUnitConfiguration.TEST_PACKAGE.equals(id))
|
||||
return new TestPackage(project, configuration, runnerSettings, configurationSettings);
|
||||
return new TestPackage(project, configuration, environment);
|
||||
else if (JUnitConfiguration.TEST_DIRECTORY.equals(id)) {
|
||||
return new TestDirectory(project, configuration, runnerSettings, configurationSettings);
|
||||
return new TestDirectory(project, configuration, environment);
|
||||
}
|
||||
if (JUnitConfiguration.TEST_PATTERN.equals(id)) {
|
||||
return new TestsPattern(project, configuration, runnerSettings, configurationSettings);
|
||||
return new TestsPattern(project, configuration, environment);
|
||||
}
|
||||
return NOT_CONFIGURED;
|
||||
}
|
||||
@@ -112,24 +112,22 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
|
||||
protected TestObject(final Project project,
|
||||
final JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings) {
|
||||
ExecutionEnvironment environment) {
|
||||
myProject = project;
|
||||
myConfiguration = configuration;
|
||||
myRunnerSettings = runnerSettings;
|
||||
myConfigurationSettings = configurationSettings;
|
||||
myEnvironment = environment;
|
||||
}
|
||||
|
||||
public abstract String suggestActionName();
|
||||
|
||||
@Override
|
||||
public RunnerSettings getRunnerSettings() {
|
||||
return myRunnerSettings;
|
||||
return myEnvironment.getRunnerSettings();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigurationPerRunnerSettings getConfigurationSettings() {
|
||||
return myConfigurationSettings;
|
||||
return myEnvironment.getConfigurationSettings();
|
||||
}
|
||||
|
||||
public abstract RefactoringElementListener getListener(PsiElement element, JUnitConfiguration configuration);
|
||||
@@ -146,7 +144,7 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
myConfiguration.isAlternativeJrePathEnabled() ? myConfiguration.getAlternativeJrePath() : null);
|
||||
}
|
||||
|
||||
private static final TestObject NOT_CONFIGURED = new TestObject(null, null, null, null) {
|
||||
private static final TestObject NOT_CONFIGURED = new TestObject(null, null, null) {
|
||||
@Override
|
||||
public RefactoringElementListener getListener(final PsiElement element, final JUnitConfiguration configuration) {
|
||||
return null;
|
||||
@@ -204,7 +202,7 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
myJavaParameters.getClassPath().add(PathUtil.getJarPathForClass(JUnitStarter.class));
|
||||
myJavaParameters.getProgramParametersList().add(JUnitStarter.IDE_VERSION + JUnitStarter.VERSION);
|
||||
for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
ext.updateJavaParameters(myConfiguration, myJavaParameters, myRunnerSettings);
|
||||
ext.updateJavaParameters(myConfiguration, myJavaParameters, getRunnerSettings());
|
||||
}
|
||||
|
||||
final Object[] listeners = Extensions.getExtensions(IDEAJUnitListener.EP_NAME);
|
||||
@@ -212,7 +210,7 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
for (final Object listener : listeners) {
|
||||
boolean enabled = true;
|
||||
for (RunConfigurationExtension ext : Extensions.getExtensions(RunConfigurationExtension.EP_NAME)) {
|
||||
if (ext.isListenerDisabled(myConfiguration, listener, myRunnerSettings)) {
|
||||
if (ext.isListenerDisabled(myConfiguration, listener, getRunnerSettings())) {
|
||||
enabled = false;
|
||||
break;
|
||||
}
|
||||
@@ -344,7 +342,7 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
}
|
||||
|
||||
final RerunFailedTestsAction rerunFailedTestsAction = new RerunFailedTestsAction(consoleView.getComponent());
|
||||
rerunFailedTestsAction.init(consoleProperties, myRunnerSettings, myConfigurationSettings);
|
||||
rerunFailedTestsAction.init(consoleProperties, myEnvironment);
|
||||
rerunFailedTestsAction.setModelProvider(new Getter<TestFrameworkRunningModel>() {
|
||||
@Override
|
||||
public TestFrameworkRunningModel get() {
|
||||
@@ -372,7 +370,7 @@ public abstract class TestObject implements JavaCommandLine {
|
||||
return;
|
||||
}
|
||||
|
||||
if (myRunnerSettings.getData() != null) {
|
||||
if (getRunnerSettings().getData() != null) {
|
||||
final String actionName = executor.getActionName();
|
||||
throw new CantRunException(actionName + " is disabled in fork mode.<br/>Please change fork mode to <none> to " + actionName.toLowerCase() + ".");
|
||||
}
|
||||
|
||||
@@ -17,8 +17,6 @@
|
||||
package com.intellij.execution.junit;
|
||||
|
||||
import com.intellij.execution.*;
|
||||
import com.intellij.execution.configurations.ConfigurationPerRunnerSettings;
|
||||
import com.intellij.execution.configurations.RunnerSettings;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationException;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationWarning;
|
||||
import com.intellij.execution.executors.DefaultDebugExecutor;
|
||||
@@ -75,9 +73,8 @@ public class TestPackage extends TestObject {
|
||||
|
||||
public TestPackage(final Project project,
|
||||
final JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings) {
|
||||
super(project, configuration, runnerSettings, configurationSettings);
|
||||
ExecutionEnvironment environment) {
|
||||
super(project, configuration, environment);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,10 @@ package com.intellij.execution.junit;
|
||||
|
||||
import com.intellij.execution.CantRunException;
|
||||
import com.intellij.execution.JavaExecutionUtil;
|
||||
import com.intellij.execution.configurations.*;
|
||||
import com.intellij.execution.configurations.JavaParameters;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationException;
|
||||
import com.intellij.execution.configurations.RuntimeConfigurationWarning;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.util.JavaParametersUtil;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
@@ -50,9 +53,8 @@ import java.util.Set;
|
||||
public class TestsPattern extends TestPackage {
|
||||
public TestsPattern(final Project project,
|
||||
final JUnitConfiguration configuration,
|
||||
RunnerSettings runnerSettings,
|
||||
ConfigurationPerRunnerSettings configurationSettings) {
|
||||
super(project, configuration, runnerSettings, configurationSettings);
|
||||
ExecutionEnvironment environment) {
|
||||
super(project, configuration, environment);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ public class RerunFailedTestsAction extends AbstractRerunFailedTestsAction {
|
||||
@Override
|
||||
public MyRunProfile getRunProfile() {
|
||||
final JUnitConfiguration configuration = (JUnitConfiguration)getModel().getProperties().getConfiguration();
|
||||
final TestMethods testMethods = new TestMethods(configuration.getProject(), configuration, myRunnerSettings, myConfigurationPerRunnerSettings, getFailedTests(configuration.getProject()));
|
||||
final TestMethods testMethods = new TestMethods(configuration.getProject(), configuration, myEnvironment, getFailedTests(configuration.getProject()));
|
||||
return new MyRunProfile(configuration) {
|
||||
@NotNull
|
||||
public Module[] getModules() {
|
||||
|
||||
+5
-1
@@ -17,6 +17,7 @@ package org.jetbrains.idea.maven.tasks;
|
||||
|
||||
import com.intellij.execution.BeforeRunTaskProvider;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -117,7 +118,10 @@ public class MavenBeforeRunTasksProvider extends BeforeRunTaskProvider<MavenBefo
|
||||
return task.getGoal() != null && task.getProjectPath() != null;
|
||||
}
|
||||
|
||||
public boolean executeTask(final DataContext context, RunConfiguration configuration, final MavenBeforeRunTask task) {
|
||||
public boolean executeTask(final DataContext context,
|
||||
RunConfiguration configuration,
|
||||
ExecutionEnvironment env,
|
||||
final MavenBeforeRunTask task) {
|
||||
final Semaphore targetDone = new Semaphore();
|
||||
final boolean[] result = new boolean[]{true};
|
||||
try {
|
||||
|
||||
+1
-1
@@ -208,7 +208,7 @@ public class TestNGRunnableState extends JavaCommandLineState {
|
||||
console.attachToProcess(processHandler);
|
||||
|
||||
RerunFailedTestsAction rerunFailedTestsAction = new RerunFailedTestsAction(console.getComponent());
|
||||
rerunFailedTestsAction.init(console.getProperties(), runnerSettings, myConfigurationPerRunnerSettings);
|
||||
rerunFailedTestsAction.init(console.getProperties(), getEnvironment());
|
||||
rerunFailedTestsAction.setModelProvider(new Getter<TestFrameworkRunningModel>() {
|
||||
public TestFrameworkRunningModel get() {
|
||||
return console.getResultsView();
|
||||
|
||||
Reference in New Issue
Block a user