From 43db6f1cf9f66e7fae4693b8381fb7a7d9800a3d Mon Sep 17 00:00:00 2001 From: Andrei Klunnyi Date: Tue, 6 Jul 2021 11:44:35 +0000 Subject: [PATCH] KTIJ-18974 [New Project Wizard]: remove 'withJava' setting Prior to this commit 'withJava' was an explicit setting applicable to project level. Some module templates (e.g. 'Web server') though couldn't be used without it and therefore set it implicitly under the hood. As a result, resulting Gradle script could differ from what the user selected. Not to confuse users 'withJava' is now automatically applied to all jvm modules/targets excluding those having 'Android' plugin configured. 'Android' and 'Java' plugins cannot to used together. ^KTIJ-18974 Fixed GitOrigin-RevId: 518d83dc0db1ebe79739e9397fdab6acc3f804f7 --- .../jvmTarget/build.gradle | 1 + .../jvmTarget/build.gradle.kts | 1 + .../simpleMultiplatform/build.gradle | 1 + .../simpleMultiplatform/build.gradle.kts | 1 + .../expected/desktop/build.gradle.kts | 1 + .../fullStackWebApplication/build.gradle | 1 + .../fullStackWebApplication/build.gradle.kts | 1 + .../multiplatformApplication/build.gradle | 1 + .../multiplatformApplication/build.gradle.kts | 1 + .../multiplatformLibrary/build.gradle | 1 + .../multiplatformLibrary/build.gradle.kts | 1 + .../KotlinNewProjectWizardBundle.properties | 2 -- .../moduleConfigurators/TargetConfigurator.kt | 21 ++++--------------- 13 files changed, 15 insertions(+), 19 deletions(-) diff --git a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle index 86f239592175..b0e630b3be9e 100644 --- a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle +++ b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = '1.8' } + withJava() testRuns["test"].executionTask.configure { useJUnit() } diff --git a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle.kts b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle.kts index eb167639bdb7..07a17fa096cf 100644 --- a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle.kts +++ b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/jvmTarget/build.gradle.kts @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = "1.8" } + withJava() testRuns["test"].executionTask.configure { useJUnit() } diff --git a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle index 3d098423b1f9..ffe79abd2712 100644 --- a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle +++ b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = '9' } + withJava() testRuns["test"].executionTask.configure { useJUnit() } diff --git a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts index 9a09b6969f28..d65b29568255 100644 --- a/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts +++ b/plugins/kotlin/project-wizard/cli/testData/buildFileGeneration/simpleMultiplatform/build.gradle.kts @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = "9" } + withJava() testRuns["test"].executionTask.configure { useJUnit() } diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeMultiplatformApplication/expected/desktop/build.gradle.kts b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeMultiplatformApplication/expected/desktop/build.gradle.kts index 96d5dc2b06b8..31ee89cbd9ea 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeMultiplatformApplication/expected/desktop/build.gradle.kts +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/composeMultiplatformApplication/expected/desktop/build.gradle.kts @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = "11" } + withJava() } sourceSets { val jvmMain by getting { diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle index eb0d8b4c0efc..8a97a485cb8a 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle @@ -16,6 +16,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = '1.8' } + withJava() testRuns["test"].executionTask.configure { useJUnitPlatform() } diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts index 99cd0e4fee8f..bb042dabe3f7 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/fullStackWebApplication/build.gradle.kts @@ -16,6 +16,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = "1.8" } + withJava() testRuns["test"].executionTask.configure { useJUnitPlatform() } diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle index abdf9b37821f..74f907a1949a 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = '1.8' } + withJava() testRuns["test"].executionTask.configure { useJUnitPlatform() } diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle.kts b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle.kts index 36002aad3b94..4533b3db832f 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle.kts +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformApplication/build.gradle.kts @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = "1.8" } + withJava() testRuns["test"].executionTask.configure { useJUnitPlatform() } diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle index 292e2e52747b..d417826f4538 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = '1.8' } + withJava() testRuns["test"].executionTask.configure { useJUnitPlatform() } diff --git a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts index 30bfd7972f52..a86457ffc6b6 100644 --- a/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts +++ b/plugins/kotlin/project-wizard/cli/testData/projectTemplatesBuildFileGeneration/multiplatformLibrary/build.gradle.kts @@ -14,6 +14,7 @@ kotlin { compilations.all { kotlinOptions.jvmTarget = "1.8" } + withJava() testRuns["test"].executionTask.configure { useJUnitPlatform() } diff --git a/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties b/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties index d94f187ea0e3..e55e8756d92a 100644 --- a/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties +++ b/plugins/kotlin/project-wizard/core/resources/messages/KotlinNewProjectWizardBundle.properties @@ -89,8 +89,6 @@ module.configurator.common=Common module.configurator.jvm=JVM module.configurator.jvm.setting.target.jvm.version=Target JVM version module.configurator.jvm.setting.target.jvm.version.description= The version of the JVM bytecode that will be produced as the result of compiling this module -module.configurator.jvm.setting.java.support=Java language support -module.configurator.jvm.setting.java.support.description=Allows you to write Java code in the selected target. module.configurator.mpp=Multiplatform module.configurator.ios=IOS diff --git a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt index d521657f9143..b730da926ebf 100644 --- a/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt +++ b/plugins/kotlin/project-wizard/core/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt @@ -17,12 +17,9 @@ import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JSConfigurat import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.browserSubTarget import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.cssSupport import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsNodeBasedConfigurator.Companion.nodejsSubTarget -import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsNodeTargetConfigurator.createTargetIrs -import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.buildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType -import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind @@ -170,7 +167,7 @@ object JvmTargetConfigurator : JvmModuleConfigurator, } } - if (Settings.javaSupport.reference.settingValue) { + if (!module.hasAndroidSibling()) { "withJava"() } } @@ -185,17 +182,7 @@ object JvmTargetConfigurator : JvmModuleConfigurator, } } - override fun getConfiguratorSettings(): List> = - super.getConfiguratorSettings() + - Settings.javaSupport - - object Settings : ModuleConfiguratorSettings() { - val javaSupport by booleanSetting( - KotlinNewProjectWizardBundle.message("module.configurator.jvm.setting.java.support"), - GenerationPhase.PROJECT_GENERATION - ) { - description = KotlinNewProjectWizardBundle.message("module.configurator.jvm.setting.java.support.description") - defaultValue = value(false) - } - } + private fun Module.hasAndroidSibling(): Boolean = + configurator is TargetConfigurator + && parent?.subModules?.any { it.configurator is AndroidModuleConfigurator } ?: false }