diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt
index 7af15ff512ce..c43fad433abb 100644
--- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt
+++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt
@@ -87,6 +87,8 @@ private val PLATFORM_IMPLEMENTATION_MODULES = java.util.List.of(
"intellij.platform.markdown.utils",
"intellij.platform.util.commonsLangV2Shim",
+ "intellij.platform.externalSystem.impl",
+
// do we need it?
"intellij.platform.sqlite",
//"fleet.rpc.server",
diff --git a/platform/platform-impl/intellij.platform.ide.impl.iml b/platform/platform-impl/intellij.platform.ide.impl.iml
index 54c3b91ea58d..3be00deb4da5 100644
--- a/platform/platform-impl/intellij.platform.ide.impl.iml
+++ b/platform/platform-impl/intellij.platform.ide.impl.iml
@@ -69,7 +69,6 @@
-
diff --git a/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/IdeSerializationContext.kt b/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/IdeSerializationContext.kt
index e52137400c13..b626a9c9a8ba 100644
--- a/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/IdeSerializationContext.kt
+++ b/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/IdeSerializationContext.kt
@@ -36,8 +36,8 @@ internal class IdeSerializationContext(
override val virtualFileUrlManager: VirtualFileUrlManager,
override val fileContentReader: JpsFileContentReader,
override val fileInDirectorySourceNames: FileInDirectorySourceNames,
- private val externalStorageConfigurationManager: ExternalStorageConfigurationManager
+ private val externalStorageConfigurationManager: ExternalStorageConfigurationManager?
) : BaseIdeSerializationContext() {
override val isExternalStorageEnabled: Boolean
- get() = externalStorageConfigurationManager.isEnabled
+ get() = externalStorageConfigurationManager?.isEnabled == true
}
\ No newline at end of file
diff --git a/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt b/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt
index c9b058822e45..cbd55b9ea0bf 100644
--- a/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt
+++ b/platform/platform-impl/src/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectModelSynchronizer.kt
@@ -12,6 +12,7 @@ import com.intellij.openapi.application.writeAction
import com.intellij.openapi.components.Service
import com.intellij.openapi.components.service
import com.intellij.openapi.components.serviceIfCreated
+import com.intellij.openapi.components.serviceOrNull
import com.intellij.openapi.diagnostic.debug
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.module.ProjectLoadingErrorsNotifier
@@ -38,7 +39,10 @@ import com.intellij.platform.workspace.jps.*
import com.intellij.platform.workspace.jps.entities.ModuleEntity
import com.intellij.platform.workspace.jps.serialization.impl.*
import com.intellij.platform.workspace.jps.serialization.impl.JpsProjectEntitiesLoader.createProjectSerializers
-import com.intellij.platform.workspace.storage.*
+import com.intellij.platform.workspace.storage.DummyParentEntitySource
+import com.intellij.platform.workspace.storage.EntitySource
+import com.intellij.platform.workspace.storage.MutableEntityStorage
+import com.intellij.platform.workspace.storage.VersionedStorageChange
import com.intellij.platform.workspace.storage.impl.VersionedStorageChangeInternal
import com.intellij.platform.workspace.storage.instrumentation.EntityStorageInstrumentationApi
import com.intellij.platform.workspace.storage.instrumentation.MutableEntityStorageInstrumentation
@@ -424,10 +428,14 @@ class JpsProjectModelSynchronizer(private val project: Project) : Disposable {
val configLocation: JpsProjectConfigLocation = getJpsProjectConfigLocation(project)!!
fileContentReader = (project.stateStore as ProjectStoreWithJpsContentReader).createContentReader()
val externalStoragePath = project.getExternalConfigurationDir()
- val externalStorageConfigurationManager = ExternalStorageConfigurationManager.getInstance(project)
+ val externalStorageConfigurationManager = project.serviceOrNull()
val fileInDirectorySourceNames = FileInDirectorySourceNames.from(WorkspaceModel.getInstance(project).currentSnapshot)
- val context = IdeSerializationContext(virtualFileManager, fileContentReader, fileInDirectorySourceNames,
- externalStorageConfigurationManager)
+ val context = IdeSerializationContext(
+ virtualFileUrlManager = virtualFileManager,
+ fileContentReader = fileContentReader,
+ fileInDirectorySourceNames = fileInDirectorySourceNames,
+ externalStorageConfigurationManager = externalStorageConfigurationManager,
+ )
return createProjectSerializers(configLocation, externalStoragePath, context)
}