mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-05 01:50:56 +07:00
[external system api] ExternalSystemApiUtil.executeProjectChangeAction(DisposeAwareProjectChange) deprecation
GitOrigin-RevId: 37d6edcc3ae271691aea8bb643aaae29634d6f8f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
86d6ad6f6e
commit
c05b3b603e
@@ -2,13 +2,11 @@
|
||||
package com.intellij.externalSystem
|
||||
|
||||
import com.intellij.compiler.CompilerConfiguration
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.externalSystem.model.DataNode
|
||||
import com.intellij.openapi.externalSystem.model.Key
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectData
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||
import com.intellij.openapi.externalSystem.service.project.manage.AbstractProjectDataService
|
||||
import com.intellij.openapi.externalSystem.util.DisposeAwareProjectChange
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.projectRoots.JavaSdkVersionUtil
|
||||
@@ -33,13 +31,11 @@ internal class JavaProjectDataService : AbstractProjectDataService<JavaProjectDa
|
||||
if (!ExternalSystemApiUtil.isOneToOneMapping(project, projectData, modelsProvider.modules)) return
|
||||
val javaProjectData = toImport.first().data
|
||||
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(object : DisposeAwareProjectChange(project) {
|
||||
override fun execute() {
|
||||
importProjectSdk(project, javaProjectData)
|
||||
importLanguageLevel(project, javaProjectData)
|
||||
importTargetBytecodeVersion(project, javaProjectData)
|
||||
}
|
||||
})
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(project) {
|
||||
importProjectSdk(project, javaProjectData)
|
||||
importLanguageLevel(project, javaProjectData)
|
||||
importTargetBytecodeVersion(project, javaProjectData)
|
||||
}
|
||||
}
|
||||
|
||||
private fun importProjectSdk(project: Project, javaProjectData: JavaProjectData) {
|
||||
|
||||
@@ -4,7 +4,11 @@ package com.intellij.openapi.externalSystem.util;
|
||||
import com.intellij.execution.rmi.RemoteUtil;
|
||||
import com.intellij.ide.highlighter.ArchiveFileType;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.*;
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.TransactionGuard;
|
||||
import com.intellij.openapi.components.ComponentManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.externalSystem.ExternalSystemAutoImportAware;
|
||||
import com.intellij.openapi.externalSystem.ExternalSystemManager;
|
||||
@@ -46,7 +50,10 @@ import com.intellij.util.concurrency.EdtExecutorService;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.*;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.PrintWriter;
|
||||
@@ -342,10 +349,33 @@ public final class ExternalSystemApiUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void executeProjectChangeAction(@NotNull ComponentManager componentManager, @NotNull Runnable task) {
|
||||
executeProjectChangeAction(true, componentManager, task);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use executeProjectChangeAction(ComponentManager, Runnable) instead.
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public static void executeProjectChangeAction(final @NotNull DisposeAwareProjectChange task) {
|
||||
executeProjectChangeAction(true, task);
|
||||
}
|
||||
|
||||
public static void executeProjectChangeAction(boolean synchronous, @NotNull ComponentManager componentManager, @NotNull Runnable task) {
|
||||
if (!ApplicationManager.getApplication().isDispatchThread()) {
|
||||
TransactionGuard.getInstance().assertWriteSafeContext(ModalityState.defaultModalityState());
|
||||
}
|
||||
executeOnEdt(synchronous, () -> ApplicationManager.getApplication().runWriteAction(() -> {
|
||||
if (!componentManager.isDisposed()) {
|
||||
task.run();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use executeProjectChangeAction(boolean, ComponentManager, Runnable) instead.
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public static void executeProjectChangeAction(boolean synchronous, final @NotNull DisposeAwareProjectChange task) {
|
||||
if (!ApplicationManager.getApplication().isDispatchThread()) {
|
||||
TransactionGuard.getInstance().assertWriteSafeContext(ModalityState.defaultModalityState());
|
||||
|
||||
@@ -12,7 +12,10 @@ import com.intellij.openapi.externalSystem.model.project.ProjectData;
|
||||
import com.intellij.openapi.externalSystem.service.project.*;
|
||||
import com.intellij.openapi.externalSystem.statistics.ExternalSystemSyncActionsCollector;
|
||||
import com.intellij.openapi.externalSystem.statistics.Phase;
|
||||
import com.intellij.openapi.externalSystem.util.*;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemTelemetryUtil;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemUtil;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -472,35 +475,27 @@ public final class ProjectDataManagerImpl implements ProjectDataManager {
|
||||
@Nullable Long activityId,
|
||||
@Nullable ProjectSystemId projectSystemId) {
|
||||
Span parentSpan = Span.current();
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(synchronous, new DisposeAwareProjectChange(project) {
|
||||
@Override
|
||||
public void execute() {
|
||||
syncMetrics.getOrStartSpan(Phase.WORKSPACE_MODEL_APPLY.name(), ExternalSystemSyncDiagnostic.gradleSyncSpanName);
|
||||
ExternalSystemTelemetryUtil.runWithSpan(projectSystemId, "WorkspaceModelApply", parentSpan, (ignore) -> {
|
||||
if (activityId != null) {
|
||||
ExternalSystemSyncActionsCollector.logPhaseStarted(project, activityId, Phase.WORKSPACE_MODEL_APPLY);
|
||||
}
|
||||
final long startTime = System.currentTimeMillis();
|
||||
modelsProvider.commit();
|
||||
final long timeInMs = System.currentTimeMillis() - startTime;
|
||||
if (activityId != null) {
|
||||
syncMetrics.endSpan(Phase.WORKSPACE_MODEL_APPLY.name());
|
||||
ExternalSystemSyncActionsCollector.logPhaseFinished(project, activityId, Phase.WORKSPACE_MODEL_APPLY, timeInMs);
|
||||
}
|
||||
LOG.debug(String.format("%s committed in %d ms", commitDesc, timeInMs));
|
||||
});
|
||||
}
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(synchronous, project, () -> {
|
||||
syncMetrics.getOrStartSpan(Phase.WORKSPACE_MODEL_APPLY.name(), ExternalSystemSyncDiagnostic.gradleSyncSpanName);
|
||||
ExternalSystemTelemetryUtil.runWithSpan(projectSystemId, "WorkspaceModelApply", parentSpan, (ignore) -> {
|
||||
if (activityId != null) {
|
||||
ExternalSystemSyncActionsCollector.logPhaseStarted(project, activityId, Phase.WORKSPACE_MODEL_APPLY);
|
||||
}
|
||||
final long startTime = System.currentTimeMillis();
|
||||
modelsProvider.commit();
|
||||
final long timeInMs = System.currentTimeMillis() - startTime;
|
||||
if (activityId != null) {
|
||||
syncMetrics.endSpan(Phase.WORKSPACE_MODEL_APPLY.name());
|
||||
ExternalSystemSyncActionsCollector.logPhaseFinished(project, activityId, Phase.WORKSPACE_MODEL_APPLY, timeInMs);
|
||||
}
|
||||
LOG.debug(String.format("%s committed in %d ms", commitDesc, timeInMs));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private static void dispose(@NotNull final IdeModifiableModelsProvider modelsProvider,
|
||||
@NotNull Project project,
|
||||
boolean synchronous) {
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(synchronous, new DisposeAwareProjectChange(project) {
|
||||
@Override
|
||||
public void execute() {
|
||||
modelsProvider.dispose();
|
||||
}
|
||||
});
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(synchronous, project, () -> modelsProvider.dispose());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.intellij.openapi.externalSystem.model.ProjectKeys;
|
||||
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectData;
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider;
|
||||
import com.intellij.openapi.externalSystem.util.DisposeAwareProjectChange;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemConstants;
|
||||
import com.intellij.openapi.externalSystem.util.Order;
|
||||
@@ -57,13 +56,10 @@ public final class ProjectDataServiceImpl extends AbstractProjectDataService<Pro
|
||||
if (!(project instanceof ProjectEx) || newName.equals(project.getName())) {
|
||||
return;
|
||||
}
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(true, new DisposeAwareProjectChange(project) {
|
||||
@Override
|
||||
public void execute() {
|
||||
String oldName = project.getName();
|
||||
((ProjectEx)project).setProjectName(newName);
|
||||
ExternalSystemApiUtil.getSettings(project, externalSystemId).getPublisher().onProjectRenamed(oldName, newName);
|
||||
}
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(true, project, () -> {
|
||||
String oldName = project.getName();
|
||||
((ProjectEx)project).setProjectName(newName);
|
||||
ExternalSystemApiUtil.getSettings(project, externalSystemId).getPublisher().onProjectRenamed(oldName, newName);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.intellij.openapi.externalSystem.model.project.ModuleSdkData
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectData
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectSdkData
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||
import com.intellij.openapi.externalSystem.util.DisposeAwareProjectChange
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle
|
||||
import com.intellij.openapi.module.Module
|
||||
@@ -28,11 +27,9 @@ internal class ProjectSdkDataService : AbstractProjectDataService<ProjectSdkData
|
||||
require(toImport.size == 1) { String.format("Expected to get a single project but got %d: %s", toImport.size, toImport) }
|
||||
if (!ExternalSystemApiUtil.isOneToOneMapping(project, projectData, modelsProvider.modules)) return
|
||||
for (sdkDataNode in toImport) {
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(object : DisposeAwareProjectChange(project) {
|
||||
override fun execute() {
|
||||
importProjectSdk(project, sdkDataNode.data)
|
||||
}
|
||||
})
|
||||
ExternalSystemApiUtil.executeProjectChangeAction(project) {
|
||||
importProjectSdk(project, sdkDataNode.data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user