diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsComponentLoader.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsComponentLoader.java index e481f22ea95d..e199b0763d1e 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsComponentLoader.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsComponentLoader.java @@ -41,6 +41,10 @@ public class JpsComponentLoader { return loadRootElement(file, myMacroExpander); } + public @Nullable Element loadComponent(@NotNull Path file, @NotNull String componentName) { + return JDomSerializationUtil.findComponent(loadRootElement(file), componentName); + } + public void loadComponents(@NotNull Path dir, @NotNull Path defaultConfigFile, JpsElementExtensionSerializerBase serializer, @@ -60,7 +64,7 @@ public class JpsComponentLoader { private @Nullable Element loadComponentData(@NotNull JpsElementExtensionSerializerBase serializer, @NotNull Path configFile) { String componentName = serializer.getComponentName(); - Element component = JDomSerializationUtil.findComponent(loadRootElement(configFile), componentName); + Element component = loadComponent(configFile, componentName); if (!(serializer instanceof JpsProjectExtensionWithExternalDataSerializer) || myExternalConfigurationDirectory == null) { return component; } diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectConfigurationLoading.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectConfigurationLoading.java index f4c2a57f5993..7eac9bfc2640 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectConfigurationLoading.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectConfigurationLoading.java @@ -61,8 +61,7 @@ public final class JpsProjectConfigurationLoading { for (Path configurationFile : listXmlFiles(dir.resolve("runConfigurations"))) { JpsRunConfigurationSerializer.loadRunConfigurations(project, componentLoader.loadRootElement(configurationFile)); } - JpsRunConfigurationSerializer.loadRunConfigurations(project, JDomSerializationUtil.findComponent( - componentLoader.loadRootElement(workspaceFile), "RunManager")); + JpsRunConfigurationSerializer.loadRunConfigurations(project, componentLoader.loadComponent(workspaceFile, "RunManager")); runConfTimingLog.run(); } } @@ -155,7 +154,7 @@ public final class JpsProjectConfigurationLoading { public static @NotNull Set readNamesOfUnloadedModules(@NotNull Path workspaceFile, @NotNull JpsComponentLoader componentLoader) { Set unloadedModules = new HashSet<>(); if (workspaceFile.toFile().exists()) { - Element unloadedModulesList = JDomSerializationUtil.findComponent(componentLoader.loadRootElement(workspaceFile), "UnloadedModulesList"); + Element unloadedModulesList = componentLoader.loadComponent(workspaceFile, "UnloadedModulesList"); for (Element element : JDOMUtil.getChildren(unloadedModulesList, "module")) { unloadedModules.add(element.getAttributeValue("name")); } diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java index 0a5573a58cff..757a2db48c48 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java @@ -158,7 +158,7 @@ public final class JpsProjectLoader { externalConfigDir = null; } - Element moduleData = JDomSerializationUtil.findComponent(myComponentLoader.loadRootElement(dir.resolve("modules.xml")), MODULE_MANAGER_COMPONENT); + Element moduleData = myComponentLoader.loadComponent(dir.resolve("modules.xml"), MODULE_MANAGER_COMPONENT); Element externalModuleData; if (externalConfigDir == null) { externalModuleData = null; diff --git a/platform/workspace/jps/src/com/intellij/platform/workspace/jps/bridge/impl/serialization/GlobalDirectJpsFileContentReader.kt b/platform/workspace/jps/src/com/intellij/platform/workspace/jps/bridge/impl/serialization/GlobalDirectJpsFileContentReader.kt index 91747ef48c18..4acc44e8a5fa 100644 --- a/platform/workspace/jps/src/com/intellij/platform/workspace/jps/bridge/impl/serialization/GlobalDirectJpsFileContentReader.kt +++ b/platform/workspace/jps/src/com/intellij/platform/workspace/jps/bridge/impl/serialization/GlobalDirectJpsFileContentReader.kt @@ -17,8 +17,7 @@ internal class GlobalDirectJpsFileContentReader(private val macroExpander: JpsMa private val componentLoader = JpsComponentLoader(macroExpander, null) override fun loadComponent(fileUrl: String, componentName: String, customModuleFilePath: String?): Element? { - val rootElement = componentLoader.loadRootElement(Path(JpsPathUtil.urlToPath(fileUrl))) ?: return null - return JDomSerializationUtil.findComponent(rootElement, componentName) + return componentLoader.loadComponent(Path(JpsPathUtil.urlToPath(fileUrl)), componentName) } override fun getExpandMacroMap(fileUrl: String): ExpandMacroToPathMap {