[remote dev] don't remove JARs of embedded modules from the plugin main module's classpath (IJPL-179421)

Otherwise, if an embedded module is included in the same JAR file as the main plugin module, it'll be removed from the classpath, and the plugin will fail to load.

GitOrigin-RevId: bcf1e54fcb088749da4be35ae192304c677c032b
This commit is contained in:
Nikolay Chashnikov
2025-03-18 21:11:52 +00:00
committed by intellij-monorepo-bot
parent 44fad3ea7a
commit 01d4250084
@@ -259,7 +259,10 @@ internal class ModuleBasedProductLoadingStrategy(internal val moduleRepository:
val pluginDir = pluginDir ?: mainResourceRoot.parent.parent
loadDescriptorFromJar(mainResourceRoot, context, zipFilePool, pathResolver, isBundled = isBundled, pluginDir = pluginDir)
}
val modulesWithJarFiles = descriptor?.content?.modules?.flatMap { it.requireDescriptor().jarFiles ?: emptyList() }
val modulesWithJarFiles = descriptor?.content?.modules?.flatMap { moduleItem ->
val jarFiles = moduleItem.requireDescriptor().jarFiles
if (moduleItem.loadingRule != ModuleLoadingRule.EMBEDDED && jarFiles != null) jarFiles else emptyList()
}
descriptor?.jarFiles = allResourceRootsList.filter { modulesWithJarFiles == null || it !in modulesWithJarFiles }
return descriptor
}