diff --git a/platform/platform-resources/src/componentSets/Lang.xml b/platform/platform-resources/src/componentSets/Lang.xml
index ee2a74dc45aa..531a3d4e546c 100644
--- a/platform/platform-resources/src/componentSets/Lang.xml
+++ b/platform/platform-resources/src/componentSets/Lang.xml
@@ -68,7 +68,7 @@
com.intellij.openapi.module.impl.ExternalModuleListStorage
- com.intellij.openapi.module.impl.ExternalModuleListStorage
+ com.intellij.openapi.module.impl.ExternalModuleListStorageImpl
diff --git a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt
index 9ea239100535..f79735615f32 100644
--- a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt
+++ b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ExternalModuleListStorage.kt
@@ -13,14 +13,22 @@ import com.intellij.openapi.roots.ProjectModelElement
import com.intellij.openapi.roots.ProjectModelExternalSource
import org.jdom.Element
+interface ExternalModuleListStorage {
+ fun getExternalModules(): Set?
+}
+
/**
* todo rename component state name to "ExternalProjectModuleManager" for consistency (2018.1 release)
*/
@State(name = "ExternalModuleListStorage", storages = [(Storage("modules.xml"))], externalStorageOnly = true)
-internal class ExternalModuleListStorage(private val project: Project) : PersistentStateComponent, ProjectModelElement {
+internal class ExternalModuleListStorageImpl(private val project: Project)
+ : PersistentStateComponent, ProjectModelElement, ExternalModuleListStorage {
+
var loadedState: Set? = null
private set
+ override fun getExternalModules(): Set? = loadedState
+
override fun getState(): Element {
val e = Element("state")
if (!project.isExternalStorageEnabled) {
diff --git a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java
index 4c4e349ae553..1db40d457de4 100644
--- a/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java
+++ b/platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java
@@ -154,7 +154,7 @@ public abstract class ModuleManagerImpl extends ModuleManager implements Disposa
@Override
public void loadState(@NotNull Element state) {
Set files = getPathsToModuleFiles(state);
- Set externalModules = myProject.getComponent(ExternalModuleListStorage.class).getLoadedState();
+ Set externalModules = myProject.getComponent(ExternalModuleListStorage.class).getExternalModules();
if (externalModules != null) {
files.addAll(externalModules);
}
@@ -164,7 +164,7 @@ public abstract class ModuleManagerImpl extends ModuleManager implements Disposa
@Override
public void noStateLoaded() {
// if there are only external modules, loadState will be not called
- Set externalModules = myProject.getComponent(ExternalModuleListStorage.class).getLoadedState();
+ Set externalModules = myProject.getComponent(ExternalModuleListStorage.class).getExternalModules();
if (externalModules != null) {
loadState(new LinkedHashSet<>(externalModules));
}