From fe1b7a61304e038fce489ad05b6311d0a8baa45d Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Tue, 20 Sep 2016 18:18:48 +0300 Subject: [PATCH] gradle: es_aware_run_make cleanup --- ...a => ExecuteRunConfigurationTaskImpl.java} | 26 ++++++------------- .../ExecutionEnvironmentProviderImpl.java | 7 ++--- .../task/impl/InternalProjectTaskRunner.java | 5 +++- ....java => ExecuteRunConfigurationTask.java} | 6 +---- .../com/intellij/task/ProjectTaskRunner.java | 5 +++- .../ExternalSystemRunConfiguration.java | 2 ++ .../GradleApplicationEnvironmentBuilder.java | 13 ++++++---- .../build/GradleProjectTaskRunner.java | 11 +++++--- 8 files changed, 38 insertions(+), 37 deletions(-) rename java/compiler/impl/src/com/intellij/task/impl/{RunProjectTaskImpl.java => ExecuteRunConfigurationTaskImpl.java} (73%) rename java/compiler/openapi/src/com/intellij/task/{RunProjectTask.java => ExecuteRunConfigurationTask.java} (91%) diff --git a/java/compiler/impl/src/com/intellij/task/impl/RunProjectTaskImpl.java b/java/compiler/impl/src/com/intellij/task/impl/ExecuteRunConfigurationTaskImpl.java similarity index 73% rename from java/compiler/impl/src/com/intellij/task/impl/RunProjectTaskImpl.java rename to java/compiler/impl/src/com/intellij/task/impl/ExecuteRunConfigurationTaskImpl.java index c18d782c72dd..0edd5d1360ec 100644 --- a/java/compiler/impl/src/com/intellij/task/impl/RunProjectTaskImpl.java +++ b/java/compiler/impl/src/com/intellij/task/impl/ExecuteRunConfigurationTaskImpl.java @@ -16,12 +16,11 @@ package com.intellij.task.impl; 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; import com.intellij.execution.configurations.RunnerSettings; -import com.intellij.task.RunProjectTask; +import com.intellij.task.ExecuteRunConfigurationTask; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -29,26 +28,23 @@ import org.jetbrains.annotations.Nullable; * @author Vladislav.Soroka * @since 7/13/2016 */ -public class RunProjectTaskImpl extends AbstractProjectTask implements RunProjectTask { +public class ExecuteRunConfigurationTaskImpl extends AbstractProjectTask implements ExecuteRunConfigurationTask { @NotNull private final RunProfile myRunProfile; - @Nullable private Executor myExecutor; @Nullable private ExecutionTarget myTarget; @Nullable private RunnerSettings myRunnerSettings; @Nullable private ConfigurationPerRunnerSettings myConfigurationSettings; @Nullable private RunnerAndConfigurationSettings mySettings; - public RunProjectTaskImpl(@NotNull RunProfile runProfile) { + public ExecuteRunConfigurationTaskImpl(@NotNull RunProfile runProfile) { myRunProfile = runProfile; } - public RunProjectTaskImpl(@NotNull RunProfile runProfile, - @NotNull Executor executor, - @NotNull ExecutionTarget target, - @Nullable RunnerSettings runnerSettings, - @Nullable ConfigurationPerRunnerSettings configurationSettings, - @Nullable RunnerAndConfigurationSettings settings) { + public ExecuteRunConfigurationTaskImpl(@NotNull RunProfile runProfile, + @NotNull ExecutionTarget target, + @Nullable RunnerSettings runnerSettings, + @Nullable ConfigurationPerRunnerSettings configurationSettings, + @Nullable RunnerAndConfigurationSettings settings) { myRunProfile = runProfile; - myExecutor = executor; myTarget = target; myRunnerSettings = runnerSettings; myConfigurationSettings = configurationSettings; @@ -61,12 +57,6 @@ public class RunProjectTaskImpl extends AbstractProjectTask implements RunProjec return myRunProfile; } - @Nullable - @Override - public Executor getExecutor() { - return myExecutor; - } - @Nullable @Override public ExecutionTarget getExecutionTarget() { diff --git a/java/compiler/impl/src/com/intellij/task/impl/ExecutionEnvironmentProviderImpl.java b/java/compiler/impl/src/com/intellij/task/impl/ExecutionEnvironmentProviderImpl.java index 59456a9f53a2..ed04c87d677e 100644 --- a/java/compiler/impl/src/com/intellij/task/impl/ExecutionEnvironmentProviderImpl.java +++ b/java/compiler/impl/src/com/intellij/task/impl/ExecutionEnvironmentProviderImpl.java @@ -24,8 +24,8 @@ import com.intellij.execution.configurations.RunnerSettings; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.runners.ExecutionEnvironmentProvider; import com.intellij.openapi.project.Project; +import com.intellij.task.ExecuteRunConfigurationTask; import com.intellij.task.ProjectTaskRunner; -import com.intellij.task.RunProjectTask; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -45,10 +45,11 @@ public class ExecutionEnvironmentProviderImpl implements ExecutionEnvironmentPro @Nullable ConfigurationPerRunnerSettings configurationSettings, @Nullable RunnerAndConfigurationSettings settings) { - RunProjectTask runTask = new RunProjectTaskImpl(runProfile, executor, target, runnerSettings, configurationSettings, settings); + ExecuteRunConfigurationTask + runTask = new ExecuteRunConfigurationTaskImpl(runProfile, target, runnerSettings, configurationSettings, settings); for (ProjectTaskRunner projectTaskRunner : ProjectTaskRunner.EP_NAME.getExtensions()) { if (projectTaskRunner.canRun(runTask)) { - return projectTaskRunner.createExecutionEnvironment(project, runTask); + return projectTaskRunner.createExecutionEnvironment(project, runTask, executor); } } return null; diff --git a/java/compiler/impl/src/com/intellij/task/impl/InternalProjectTaskRunner.java b/java/compiler/impl/src/com/intellij/task/impl/InternalProjectTaskRunner.java index 55513759142f..646594e2d4f8 100644 --- a/java/compiler/impl/src/com/intellij/task/impl/InternalProjectTaskRunner.java +++ b/java/compiler/impl/src/com/intellij/task/impl/InternalProjectTaskRunner.java @@ -15,6 +15,7 @@ */ package com.intellij.task.impl; +import com.intellij.execution.Executor; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.impl.ExecutionManagerImpl; import com.intellij.execution.runners.ExecutionEnvironment; @@ -65,7 +66,9 @@ public class InternalProjectTaskRunner extends ProjectTaskRunner { } @Override - public ExecutionEnvironment createExecutionEnvironment(@NotNull Project project, @NotNull RunProjectTask task) { + public ExecutionEnvironment createExecutionEnvironment(@NotNull Project project, + @NotNull ExecuteRunConfigurationTask task, + @Nullable Executor executor) { return null; } diff --git a/java/compiler/openapi/src/com/intellij/task/RunProjectTask.java b/java/compiler/openapi/src/com/intellij/task/ExecuteRunConfigurationTask.java similarity index 91% rename from java/compiler/openapi/src/com/intellij/task/RunProjectTask.java rename to java/compiler/openapi/src/com/intellij/task/ExecuteRunConfigurationTask.java index de5402f87560..8ca7d5481131 100644 --- a/java/compiler/openapi/src/com/intellij/task/RunProjectTask.java +++ b/java/compiler/openapi/src/com/intellij/task/ExecuteRunConfigurationTask.java @@ -16,7 +16,6 @@ package com.intellij.task; 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; @@ -28,14 +27,11 @@ import org.jetbrains.annotations.Nullable; * @author Vladislav.Soroka * @since 5/11/2016 */ -public interface RunProjectTask extends ProjectTask { +public interface ExecuteRunConfigurationTask extends ProjectTask { @NotNull RunProfile getRunProfile(); - @Nullable - Executor getExecutor(); - @Nullable ExecutionTarget getExecutionTarget(); diff --git a/java/compiler/openapi/src/com/intellij/task/ProjectTaskRunner.java b/java/compiler/openapi/src/com/intellij/task/ProjectTaskRunner.java index 5d1eec85c138..b3dc313504e9 100644 --- a/java/compiler/openapi/src/com/intellij/task/ProjectTaskRunner.java +++ b/java/compiler/openapi/src/com/intellij/task/ProjectTaskRunner.java @@ -15,6 +15,7 @@ */ package com.intellij.task; +import com.intellij.execution.Executor; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.project.Project; @@ -46,5 +47,7 @@ public abstract class ProjectTaskRunner { public abstract boolean canRun(@NotNull ProjectTask projectTask); - public abstract ExecutionEnvironment createExecutionEnvironment(@NotNull Project project, @NotNull RunProjectTask task); + public abstract ExecutionEnvironment createExecutionEnvironment(@NotNull Project project, + @NotNull ExecuteRunConfigurationTask task, + @Nullable Executor executor); } diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java index d05bf7a385dd..0a15a9e3663d 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemRunConfiguration.java @@ -274,6 +274,8 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase { } if (consoleViewImpl != null) { consoleViewImpl.performWhenNoDeferredOutput(() -> { + if(!ApplicationManager.getApplication().isDispatchThread()) return; + Document document = consoleViewImpl.getEditor().getDocument(); int line = isGreeting ? 0 : document.getLineCount() - 2; if (CharArrayUtil.regionMatches(document.getCharsSequence(), document.getLineStartOffset(line), text)) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleApplicationEnvironmentBuilder.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleApplicationEnvironmentBuilder.java index 9350ccaa7b77..a210d5202e2a 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleApplicationEnvironmentBuilder.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleApplicationEnvironmentBuilder.java @@ -15,6 +15,7 @@ */ package org.jetbrains.plugins.gradle.execution.build; +import com.intellij.execution.Executor; import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.application.ApplicationConfiguration; import com.intellij.execution.configurations.JavaParameters; @@ -29,7 +30,7 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.psi.PsiClass; -import com.intellij.task.RunProjectTask; +import com.intellij.task.ExecuteRunConfigurationTask; import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -48,10 +49,12 @@ import java.util.Collections; public class GradleApplicationEnvironmentBuilder { @Nullable - public ExecutionEnvironment build(@NotNull Project project, @NotNull RunProjectTask runProjectTask) { - if (!(runProjectTask.getRunProfile() instanceof ApplicationConfiguration)) return null; + public ExecutionEnvironment build(@NotNull Project project, + @NotNull ExecuteRunConfigurationTask executeRunConfigurationTask, + @Nullable Executor executor) { + if (!(executeRunConfigurationTask.getRunProfile() instanceof ApplicationConfiguration)) return null; - ApplicationConfiguration applicationConfiguration = (ApplicationConfiguration)runProjectTask.getRunProfile(); + ApplicationConfiguration applicationConfiguration = (ApplicationConfiguration)executeRunConfigurationTask.getRunProfile(); PsiClass mainClass = applicationConfiguration.getMainClass(); if(mainClass == null) return null; @@ -79,7 +82,7 @@ public class GradleApplicationEnvironmentBuilder { final String runAppTaskName = "run " + mainClass.getName(); taskSettings.setTaskNames(Collections.singletonList(runAppTaskName)); - String executorId = runProjectTask.getExecutor() == null ? DefaultRunExecutor.EXECUTOR_ID : runProjectTask.getExecutor().getId(); + String executorId = executor == null ? DefaultRunExecutor.EXECUTOR_ID : executor.getId(); ExecutionEnvironment environment = ExternalSystemUtil.createExecutionEnvironment(project, GradleConstants.SYSTEM_ID, taskSettings, executorId); if (environment != null) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleProjectTaskRunner.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleProjectTaskRunner.java index a1bcbb2e76ee..1efab6ea1ff7 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleProjectTaskRunner.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/execution/build/GradleProjectTaskRunner.java @@ -15,6 +15,7 @@ */ package org.jetbrains.plugins.gradle.execution.build; +import com.intellij.execution.Executor; import com.intellij.execution.application.ApplicationConfiguration; import com.intellij.execution.configurations.JavaRunConfigurationModule; import com.intellij.execution.configurations.RunProfile; @@ -132,10 +133,10 @@ public class GradleProjectTaskRunner extends ProjectTaskRunner { } } - if (projectTask instanceof RunProjectTask) { + if (projectTask instanceof ExecuteRunConfigurationTask) { if (!GradleSystemRunningSettings.getInstance().isUseGradleAwareMake()) return false; - RunProfile runProfile = ((RunProjectTask)projectTask).getRunProfile(); + RunProfile runProfile = ((ExecuteRunConfigurationTask)projectTask).getRunProfile(); if (runProfile instanceof ApplicationConfiguration) { JavaRunConfigurationModule module = ((ApplicationConfiguration)runProfile).getConfigurationModule(); return ExternalSystemApiUtil.isExternalSystemAwareModule(GradleConstants.SYSTEM_ID, module.getModule()); @@ -146,9 +147,11 @@ public class GradleProjectTaskRunner extends ProjectTaskRunner { @Override - public ExecutionEnvironment createExecutionEnvironment(@NotNull Project project, @NotNull RunProjectTask task) { + public ExecutionEnvironment createExecutionEnvironment(@NotNull Project project, + @NotNull ExecuteRunConfigurationTask task, + @Nullable Executor executor) { if (task.getRunProfile() instanceof ApplicationConfiguration) { - return new GradleApplicationEnvironmentBuilder().build(project, task); + return new GradleApplicationEnvironmentBuilder().build(project, task, executor); } return null; }