From 3a9e5fa18ad55e8cf69607de0a829d88f85f09f9 Mon Sep 17 00:00:00 2001 From: Louis Vignier Date: Fri, 15 Aug 2025 18:59:16 +0900 Subject: [PATCH] [npw] Set context.projectJdk on apply #IDEA-376432 Fixed GitOrigin-RevId: 3c38b35d9abfb2523a9e21045c08930aff301d8c --- .../intellij/ide/projectWizard/ProjectWizardJdkComboBox.kt | 3 +++ .../generators/IntelliJNewProjectWizardStep.kt | 3 ++- .../intellij/ide/util/projectWizard/JavaModuleBuilder.java | 4 ---- .../service/project/wizard/GradleNewProjectWizardStep.kt | 3 ++- .../idea/maven/wizards/MavenNewProjectWizardStep.kt | 6 +----- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectWizardJdkComboBox.kt b/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectWizardJdkComboBox.kt index 1abfacb05779..2852d06f0f28 100644 --- a/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectWizardJdkComboBox.kt +++ b/java/idea-ui/src/com/intellij/ide/projectWizard/ProjectWizardJdkComboBox.kt @@ -91,6 +91,7 @@ fun NewProjectWizardStep.projectWizardJdkComboBox( context.projectJdk, sdkFilter, jdkPredicate, + { jdk -> if (jdk != null && context.isCreatingNewProject) context.projectJdk = jdk } ) } @@ -107,6 +108,7 @@ fun projectWizardJdkComboBox( projectJdk: Sdk? = null, sdkFilter: (Sdk) -> Boolean = { true }, jdkPredicate: ProjectWizardJdkPredicate? = ProjectWizardJdkPredicate.IsJdkSupported(), + setProjectJdk: ((Sdk?) -> Unit)? = null, ): Cell { val combo = ProjectWizardJdkComboBox(projectJdk, disposable, sdkFilter) @@ -163,6 +165,7 @@ fun projectWizardJdkComboBox( else -> Unit } PropertiesComponent.getInstance().setValue(selectedJdkProperty, intent.name) + setProjectJdk?.invoke(intent.prepareJdk()) } } diff --git a/java/idea-ui/src/com/intellij/ide/projectWizard/generators/IntelliJNewProjectWizardStep.kt b/java/idea-ui/src/com/intellij/ide/projectWizard/generators/IntelliJNewProjectWizardStep.kt index 45ae2a6b93f9..5e305f555b6d 100644 --- a/java/idea-ui/src/com/intellij/ide/projectWizard/generators/IntelliJNewProjectWizardStep.kt +++ b/java/idea-ui/src/com/intellij/ide/projectWizard/generators/IntelliJNewProjectWizardStep.kt @@ -213,13 +213,14 @@ abstract class IntelliJNewProjectWizardStep(val parent: ParentStep) } private fun configureSdk(project: Project, builder: ModuleBuilder) { - val sdk = jdkIntent?.prepareJdk() if (context.isCreatingNewProject) { + val sdk = context.projectJdk // New project with a single module: set project JDK context.projectJdk = sdk } else { + val sdk = jdkIntent?.prepareJdk() // New module in an existing project: set module JDK val isSameSdk = ProjectRootManager.getInstance(project).projectSdk?.name == sdk?.name builder.moduleJdk = if (isSameSdk) null else sdk diff --git a/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java b/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java index 8ee9b3ae883d..892b968d533f 100644 --- a/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java +++ b/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java @@ -173,16 +173,12 @@ public class JavaModuleBuilder extends ModuleBuilder implements SourcePathsBuild instance.setLanguageLevel(extension.getLanguageLevel()); } else { - //setup default flag and language level according to jdk instance.setDefault(true); Sdk sdk = ProjectRootManager.getInstance(project).getProjectSdk(); LOG.debug("commit: projectSdk=" + sdk); if (sdk != null) { JavaSdkVersion version = JavaSdk.getInstance().getVersion(sdk); LOG.debug("commit: sdk.version=" + version); - if (version != null) { - instance.setLanguageLevel(version.getMaxLanguageLevel()); - } } } } diff --git a/plugins/gradle/java/src/service/project/wizard/GradleNewProjectWizardStep.kt b/plugins/gradle/java/src/service/project/wizard/GradleNewProjectWizardStep.kt index 553ee91d9ede..d96443a592d4 100644 --- a/plugins/gradle/java/src/service/project/wizard/GradleNewProjectWizardStep.kt +++ b/plugins/gradle/java/src/service/project/wizard/GradleNewProjectWizardStep.kt @@ -493,7 +493,8 @@ abstract class GradleNewProjectWizardStep(parent: ParentStep) : fun setupProjectFromBuilder(project: Project) { val builder = object : AbstractGradleModuleBuilder() {} - builder.moduleJdk = jdkIntent?.prepareJdk() + val sdk = if (context.isCreatingNewProject) { context.projectJdk } else { jdkIntent?.prepareJdk() } + builder.moduleJdk = sdk builder.sdkDownloadTask = jdkIntent?.downloadTask builder.name = parentStep.name diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenNewProjectWizardStep.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenNewProjectWizardStep.kt index 67ccc15d9f1a..9d25089871c4 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenNewProjectWizardStep.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenNewProjectWizardStep.kt @@ -78,17 +78,13 @@ abstract class MavenNewProjectWizardStep(parent: ParentStep) : } protected fun linkMavenProject(project: Project, builder: T, configure: (T) -> Unit = {}): Module? { - val sdk = jdkIntent?.prepareJdk() + val sdk = if (context.isCreatingNewProject) context.projectJdk else jdkIntent?.prepareJdk() builder.moduleJdk = sdk builder.name = parentStep.name builder.contentEntryPath = "${parentStep.path}/${parentStep.name}" builder.isCreatingNewProject = context.isCreatingNewProject - if (context.isCreatingNewProject) { - context.projectJdk = sdk - } - builder.parentProject = parentData builder.aggregatorProject = parentData builder.projectId = MavenId(groupId, artifactId, version)