[modular loader] diagnostics: provide more information in the exception message if plugin.xml cannot be found

GitOrigin-RevId: c9e5962ee5374fe4494d788ebe20ffa21f2cad8f
This commit is contained in:
Nikolay Chashnikov
2024-06-10 17:35:46 +02:00
committed by intellij-monorepo-bot
parent e3e3bdedcd
commit 7360d9e266
4 changed files with 15 additions and 2 deletions

View File

@@ -49,6 +49,10 @@ class OriginalModuleRepositoryImpl(private val context: CompilationContext) : Or
override fun readResourceFile(moduleId: RuntimeModuleId, relativePath: String): InputStream? {
return context.findFileInModuleSources(context.findRequiredModule(moduleId.stringId), relativePath)?.inputStream()
}
override fun toString(): String {
return "source file based resolver for '${context.paths.projectHome}' project"
}
}
return ProductModulesSerialization.readProductModulesAndMergeIncluded(productModulesFile.inputStream(), productModulesFile.pathString,
resolver)

View File

@@ -33,7 +33,11 @@ interface ResourceFileResolver {
return object : ResourceFileResolver {
override fun readResourceFile(moduleId: RuntimeModuleId, relativePath: String): InputStream? {
return moduleRepository.getModule(moduleId).readFile(relativePath)
}
}
override fun toString(): String {
return "default resolver"
}
}
}
}

View File

@@ -29,7 +29,8 @@ public final class PluginXmlReader {
addedModules.add(mainModule.getModuleId().getStringId());
try (InputStream inputStream = resourceFileResolver.readResourceFile(mainModule.getModuleId(), PLUGIN_XML_PATH)) {
if (inputStream == null) {
throw new MalformedRepositoryException(PLUGIN_XML_PATH + " is not found in '" + mainModule.getModuleId().getStringId() + "' module in " + repository);
throw new MalformedRepositoryException(PLUGIN_XML_PATH + " is not found in '" + mainModule.getModuleId().getStringId() + "' module in "
+ repository + " using " + resourceFileResolver + "; resources roots: " + mainModule.getResourceRootPaths());
}
XMLStreamReader reader = XMLInputFactory.newDefaultFactory().createXMLStreamReader(inputStream);
int level = 0;

View File

@@ -67,6 +67,10 @@ private fun loadProductModules(moduleRepository: RuntimeModuleRepository, projec
override fun readResourceFile(moduleId: RuntimeModuleId, relativePath: String): InputStream? {
return resourceFileFinder.findResourceFile(moduleId.stringId, relativePath)?.inputStream()
}
override fun toString(): String {
return "source file based resolver for '$projectHome' project"
}
}
val productModulesPath = "META-INF/$rootModuleName/product-modules.xml"
val productModulesXmlStream = resourceFileResolver.readResourceFile(RuntimeModuleId.module(rootModuleName), productModulesPath)