IJI-1546 rd modules shouldn't be put in the same jar with Radler plugin

GitOrigin-RevId: 14cc7da18ab2db803d525ac26c9fe14151852520
This commit is contained in:
Dmitriy.Panov
2024-03-27 22:24:26 +00:00
committed by intellij-monorepo-bot
parent f1b5c7f00e
commit d0b46ce4e0
2 changed files with 9 additions and 5 deletions
@@ -78,10 +78,12 @@ private val notImportantKotlinLibs = java.util.Set.of(
"kotlinx-html-jvm",
)
const val rdJarName = "rd.jar"
private val predefinedMergeRules = HashMap<String, (String, JetBrainsClientModuleFilter) -> Boolean>().let { map ->
map.put("groovy.jar") { it, _ -> it.startsWith("org.codehaus.groovy:") }
map.put("jsch-agent.jar") { it, _ -> it.startsWith("jsch-agent") }
map.put("rd.jar") { it, _ -> it.startsWith("rd-") }
map.put(rdJarName) { it, _ -> it.startsWith("rd-") }
// all grpc garbage into one jar
map.put("grpc.jar") { it, _ -> it.startsWith("grpc-") }
// separate file to use in Gradle Daemon classpath
@@ -180,14 +180,16 @@ class RuntimeModuleRepositoryChecker private constructor(
val included = resourceRoots.find { it in productResourceRoots }
if (included != null && moduleId !in allProductModules) {
val includedModules = productResourceRoots.getValue(included)
val firstIncludedModuleData = includedModules.take(3).joinToString(", ") { includedModuleId ->
"'${includedModuleId.stringId}' (<- ${allProductModules.getValue(includedModuleId).joinToString(" <- ")})"
val displayedModulesCount = 10
val firstIncludedModuleData = includedModules.take(displayedModulesCount).joinToString(separator = System.lineSeparator()) {
"'${it.stringId}' (<- ${allProductModules.getValue(it).joinToString(" <- ")})"
}
val rest = includedModules.size - 3
val rest = includedModules.size - displayedModulesCount
val more = if (rest > 0) " and $rest more ${StringUtil.pluralize("module", rest)}" else ""
softly.collectAssertionError(AssertionError("""
|Module '${moduleId.stringId}' is not part of '$productModulesModule', but it's packed in ${included.pathString},
|which is included in classpath because $firstIncludedModuleData$more are also packed in it, so '${moduleId.stringId}' will be
|which is included in classpath because:
|$firstIncludedModuleData$more are also packed in it, so '${moduleId.stringId}' will be
|included in the classpath as well. Unnecessary code and resources in the classpath may cause performance problems, also, they
|may cause '$productModulesModule' to behave differently in a standalone installation and when invoked from '${context.applicationInfo.fullProductName}'
|so it's better to fix the problem. Usually, to do that you need to change build scripts to put '${moduleId.stringId}' in a