[npw] Set context.projectJdk on apply

#IDEA-376432 Fixed

GitOrigin-RevId: 3c38b35d9abfb2523a9e21045c08930aff301d8c
This commit is contained in:
Louis Vignier
2025-08-20 22:04:25 +00:00
committed by intellij-monorepo-bot
parent 2c6c9d7c1d
commit 3a9e5fa18a
5 changed files with 8 additions and 11 deletions
@@ -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<ProjectWizardJdkComboBox> {
val combo = ProjectWizardJdkComboBox(projectJdk, disposable, sdkFilter)
@@ -163,6 +165,7 @@ fun projectWizardJdkComboBox(
else -> Unit
}
PropertiesComponent.getInstance().setValue(selectedJdkProperty, intent.name)
setProjectJdk?.invoke(intent.prepareJdk())
}
}
@@ -213,13 +213,14 @@ abstract class IntelliJNewProjectWizardStep<ParentStep>(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
@@ -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());
}
}
}
}
@@ -493,7 +493,8 @@ abstract class GradleNewProjectWizardStep<ParentStep>(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
@@ -78,17 +78,13 @@ abstract class MavenNewProjectWizardStep<ParentStep>(parent: ParentStep) :
}
protected fun <T : AbstractMavenModuleBuilder> 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)