From 159f74bf8f2c4dfee7d72f9bc35ce31cfb4aec42 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Thu, 6 Aug 2015 13:59:56 +0300 Subject: [PATCH] external system api: do not postpone modules import till all project startup activities passed (see project.isInitialized() method for details) --- .../project/manage/ModuleDataService.java | 52 ------------------- .../project/manage/ProjectDataManager.java | 4 ++ 2 files changed, 4 insertions(+), 52 deletions(-) diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ModuleDataService.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ModuleDataService.java index 8f63cd1237c1..065c29d8d4ef 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ModuleDataService.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ModuleDataService.java @@ -38,7 +38,6 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.ui.CheckBoxList; import com.intellij.ui.IdeBorderFactory; import com.intellij.ui.components.JBScrollPane; -import com.intellij.util.Alarm; import com.intellij.util.Consumer; import com.intellij.util.Function; import com.intellij.util.SmartList; @@ -54,7 +53,6 @@ import java.io.File; import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.concurrent.TimeUnit; /** * Encapsulates functionality of importing external system module to the intellij project. @@ -69,14 +67,6 @@ public class ModuleDataService extends AbstractProjectDataService getTargetDataKey() { @@ -92,12 +82,6 @@ public class ModuleDataService extends AbstractProjectDataService> myModules; - @Nullable - private final ProjectData myProjectData; - private final PlatformFacade myPlatformFacade; - private final boolean mySynchronous; - - ImportModulesTask(@NotNull Project project, - @NotNull Collection> modules, - @Nullable ProjectData projectData, - @NotNull PlatformFacade platformFacade, - boolean synchronous) { - myProject = project; - myModules = modules; - myProjectData = projectData; - myPlatformFacade = platformFacade; - mySynchronous = synchronous; - } - - @Override - public void run() { - myAlarm.cancelAllRequests(); - if (!myProject.isInitialized()) { - myAlarm.addRequest( - new ImportModulesTask(myProject, myModules, myProjectData, myPlatformFacade, mySynchronous), - PROJECT_INITIALISATION_DELAY_MS - ); - return; - } - - importData(myModules, myProjectData, myProject, myPlatformFacade, mySynchronous); - } - } - private static void setModuleOptions(Module module, DataNode moduleDataNode) { ModuleData moduleData = moduleDataNode.getData(); module.putUserData(MODULE_DATA_KEY, moduleData); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ProjectDataManager.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ProjectDataManager.java index 9c23ca8577c8..d1a8457fda11 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ProjectDataManager.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ProjectDataManager.java @@ -24,6 +24,7 @@ import com.intellij.openapi.externalSystem.service.project.PlatformFacade; import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil; import com.intellij.openapi.externalSystem.util.ExternalSystemUtil; import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.impl.ProjectImpl; import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.NotNullLazyValue; import com.intellij.util.Consumer; @@ -170,6 +171,9 @@ public class ProjectDataManager { @NotNull PlatformFacade platformFacade, boolean synchronous) { if (project.isDisposed()) return; + if(project instanceof ProjectImpl) { + assert ((ProjectImpl)project).isComponentsCreated(); + } final List> toImport = ContainerUtil.newSmartList(); final List> toIgnore = ContainerUtil.newSmartList();