mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +07:00
[devkit] add required --add-opens arguments for all Java and Kotlin run configuration started from intellij project (IJPL-150271)
It's possible to disable this behavior by adding '-Dintellij.devkit.skip.automatic.add.opens=true' VM option. GitOrigin-RevId: 001ae2ceccf54332a1a4905b8babe2b41c82b927
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4bf454d200
commit
ea90626490
@@ -27,22 +27,29 @@ internal class DevKitApplicationPatcher : RunConfigurationExtension() {
|
||||
override fun <T : RunConfigurationBase<*>> updateJavaParameters(configuration: T,
|
||||
javaParameters: JavaParameters,
|
||||
runnerSettings: RunnerSettings?) {
|
||||
val appConfiguration = configuration as? ApplicationConfiguration ?: return
|
||||
val project = appConfiguration.project
|
||||
val project = configuration.project
|
||||
if (!PsiUtil.isIdeaProject(project)) {
|
||||
return
|
||||
}
|
||||
if (configuration !is JavaRunConfigurationBase) {
|
||||
return
|
||||
}
|
||||
val mainClass = configuration.runClass ?: return
|
||||
|
||||
passDataAboutBuiltInServer(javaParameters, project)
|
||||
|
||||
val vmParameters = javaParameters.vmParametersList
|
||||
val isDevBuild = configuration.mainClassName == "org.jetbrains.intellij.build.devServer.DevMainKt"
|
||||
val module = configuration.configurationModule.module
|
||||
val jdk = JavaParameters.getJdkToRunModule(module, true) ?: return
|
||||
if (!vmParameters.getPropertyValue("intellij.devkit.skip.automatic.add.opens").toBoolean()) {
|
||||
JUnitDevKitPatcher.appendAddOpensWhenNeeded(project, jdk, vmParameters)
|
||||
}
|
||||
|
||||
val isDevBuild = mainClass == "org.jetbrains.intellij.build.devServer.DevMainKt"
|
||||
val vmParametersAsList = vmParameters.list
|
||||
if (vmParametersAsList.contains("--add-modules") || (!isDevBuild && configuration.mainClassName != "com.intellij.idea.Main")) {
|
||||
if (vmParametersAsList.contains("--add-modules") || (!isDevBuild && mainClass != "com.intellij.idea.Main")) {
|
||||
return
|
||||
}
|
||||
|
||||
val module = configuration.configurationModule.module
|
||||
val jdk = JavaParameters.getJdkToRunModule(module, true) ?: return
|
||||
if (!vmParameters.hasProperty(JUnitDevKitPatcher.SYSTEM_CL_PROPERTY)) {
|
||||
val qualifiedName = "com.intellij.util.lang.PathClassLoader"
|
||||
if (JUnitDevKitPatcher.loaderValid(project, module, qualifiedName)) {
|
||||
@@ -51,8 +58,6 @@ internal class DevKitApplicationPatcher : RunConfigurationExtension() {
|
||||
}
|
||||
}
|
||||
|
||||
JUnitDevKitPatcher.appendAddOpensWhenNeeded(project, jdk, vmParameters)
|
||||
|
||||
val is17 = javaParameters.jdk?.versionString?.contains("17") == true
|
||||
if (!vmParametersAsList.any { it.contains("CICompilerCount") || it.contains("TieredCompilation") }) {
|
||||
vmParameters.addAll("-XX:CICompilerCount=2")
|
||||
@@ -148,6 +153,8 @@ internal class DevKitApplicationPatcher : RunConfigurationExtension() {
|
||||
|
||||
override fun isApplicableFor(configuration: RunConfigurationBase<*>): Boolean {
|
||||
return configuration is ApplicationConfiguration
|
||||
//use this instead of 'is KotlinRunConfiguration' to avoid having dependency on Kotlin plugin here
|
||||
|| configuration.factory?.id == "JetRunConfigurationType"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user