From d716c47f1763a61ba467083df8150052b93c610a Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Tue, 28 Apr 2020 19:28:59 +0300 Subject: [PATCH] Gradle Project importing: move ModelBuilders and ModelProviders to kotlin-gradle-tooling ^KT-36673 Fixed --- idea/idea-gradle/build.gradle.kts | 3 --- ...tbrains.plugins.gradle.tooling.ModelBuilderService | 2 +- .../gradle/importing/KotlinDslScriptModelResolver.kt | 2 ++ .../importing/KotlinDslScriptModelResolver.kt.192 | 2 ++ .../importing/KotlinDslScriptModelResolver.kt.201 | 2 ++ .../importing/KotlinDslScriptModelResolverCommon.kt | 5 +++++ .../importing/KotlinDslScrtiptModelProcessor.kt | 1 + idea/kotlin-gradle-tooling/build.gradle.kts | 3 +++ .../src}/BrokenKotlinDslScriptsModel.kt | 2 +- .../src/KotlinDslScriptAdditionalTask.kt | 8 ++++++++ .../src}/KotlinDslScriptModelProvider.kt | 9 ++++++--- .../src}/KotlinDslScriptModelProvider.kt.191 | 0 .../src}/KotlinDslScriptTaskModelBuilder.kt | 11 +++++++---- .../src}/KotlinDslScriptTaskModelBuilder.kt.191 | 0 14 files changed, 38 insertions(+), 12 deletions(-) rename idea/{idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing => kotlin-gradle-tooling/src}/BrokenKotlinDslScriptsModel.kt (92%) create mode 100644 idea/kotlin-gradle-tooling/src/KotlinDslScriptAdditionalTask.kt rename idea/{idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing => kotlin-gradle-tooling/src}/KotlinDslScriptModelProvider.kt (82%) rename idea/{idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing => kotlin-gradle-tooling/src}/KotlinDslScriptModelProvider.kt.191 (100%) rename idea/{idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing => kotlin-gradle-tooling/src}/KotlinDslScriptTaskModelBuilder.kt (84%) rename idea/{idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing => kotlin-gradle-tooling/src}/KotlinDslScriptTaskModelBuilder.kt.191 (100%) diff --git a/idea/idea-gradle/build.gradle.kts b/idea/idea-gradle/build.gradle.kts index 66b0418b6b3..323cd11eb9c 100644 --- a/idea/idea-gradle/build.gradle.kts +++ b/idea/idea-gradle/build.gradle.kts @@ -10,9 +10,6 @@ dependencies { compileOnly(project(":idea:idea-jvm")) compileOnly(project(":idea:idea-native")) compile(project(":idea:kotlin-gradle-tooling")) - Platform[193].orLower { - compile(project(":idea:idea-gradle-tooling-api")) - } compile(project(":compiler:frontend")) compile(project(":compiler:frontend.java")) diff --git a/idea/idea-gradle/res/META-INF/services/org.jetbrains.plugins.gradle.tooling.ModelBuilderService b/idea/idea-gradle/res/META-INF/services/org.jetbrains.plugins.gradle.tooling.ModelBuilderService index 8af31ecf6eb..308bec008e0 100644 --- a/idea/idea-gradle/res/META-INF/services/org.jetbrains.plugins.gradle.tooling.ModelBuilderService +++ b/idea/idea-gradle/res/META-INF/services/org.jetbrains.plugins.gradle.tooling.ModelBuilderService @@ -3,4 +3,4 @@ # Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. # -org.jetbrains.kotlin.idea.scripting.gradle.importing.KotlinDslScriptTaskModelBuilder \ No newline at end of file +org.jetbrains.kotlin.gradle.KotlinDslScriptTaskModelBuilder \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt index d083635a37d..54e97d270eb 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt @@ -9,6 +9,8 @@ import com.intellij.openapi.externalSystem.model.DataNode import com.intellij.openapi.externalSystem.model.project.ProjectData import org.gradle.tooling.model.idea.IdeaProject import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel +import org.jetbrains.kotlin.gradle.KotlinDslScriptAdditionalTask +import org.jetbrains.kotlin.gradle.KotlinDslScriptModelProvider import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported import org.jetbrains.plugins.gradle.model.Build import org.jetbrains.plugins.gradle.model.ClassSetImportModelProvider diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.192 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.192 index d776201c002..ae4f734ff70 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.192 +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.192 @@ -9,6 +9,8 @@ import com.intellij.openapi.externalSystem.model.DataNode import com.intellij.openapi.externalSystem.model.project.ProjectData import org.gradle.tooling.model.idea.IdeaProject import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel +import org.jetbrains.kotlin.gradle.KotlinDslScriptAdditionalTask +import org.jetbrains.kotlin.gradle.KotlinDslScriptModelProvider import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported import org.jetbrains.plugins.gradle.model.ProjectImportModelProvider import org.jetbrains.plugins.gradle.model.ClassSetBuildImportModelProvider diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.201 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.201 index 6451fb2f3ed..b30283ca07e 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.201 +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolver.kt.201 @@ -7,6 +7,8 @@ package org.jetbrains.kotlin.idea.scripting.gradle.importing import org.jetbrains.plugins.gradle.model.ClassSetImportModelProvider import org.jetbrains.plugins.gradle.model.ProjectImportModelProvider +import org.jetbrains.kotlin.gradle.KotlinDslScriptAdditionalTask +import org.jetbrains.kotlin.gradle.KotlinDslScriptModelProvider import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported import org.jetbrains.plugins.gradle.service.project.ModifiableGradleProjectModel diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolverCommon.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolverCommon.kt index e67050f60a4..f7cc08671cd 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolverCommon.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelResolverCommon.kt @@ -10,6 +10,7 @@ import com.intellij.openapi.externalSystem.util.Order import com.intellij.openapi.util.Pair import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.* import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel +import org.jetbrains.kotlin.gradle.KotlinDslScriptAdditionalTask import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension internal val LOG = Logger.getInstance(KotlinDslScriptModelResolverCommon::class.java) @@ -20,6 +21,10 @@ abstract class KotlinDslScriptModelResolverCommon : AbstractProjectResolverExten return setOf(KotlinDslScriptsModel::class.java) } + override fun getToolingExtensionsClasses(): Set> { + return setOf(KotlinDslScriptAdditionalTask::class.java) + } + override fun getExtraJvmArgs(): List> { return listOf( Pair( diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScrtiptModelProcessor.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScrtiptModelProcessor.kt index d84938314f1..0e78d56a80f 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScrtiptModelProcessor.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScrtiptModelProcessor.kt @@ -13,6 +13,7 @@ import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.VfsUtil import org.gradle.tooling.model.kotlin.dsl.EditorReportSeverity import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel +import org.jetbrains.kotlin.gradle.BrokenKotlinDslScriptsModel import org.jetbrains.kotlin.idea.KotlinIdeaGradleBundle import org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptInputsWatcher import org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptingSupportProvider diff --git a/idea/kotlin-gradle-tooling/build.gradle.kts b/idea/kotlin-gradle-tooling/build.gradle.kts index ee96d2787d9..c2f17b5106b 100644 --- a/idea/kotlin-gradle-tooling/build.gradle.kts +++ b/idea/kotlin-gradle-tooling/build.gradle.kts @@ -11,6 +11,9 @@ dependencies { compileOnly(intellijPluginDep("gradle")) compileOnly(intellijDep()) { includeJars("slf4j-api-1.7.25") } + Platform[193].orLower { + compile(project(":idea:idea-gradle-tooling-api")) + } } sourceSets { diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/BrokenKotlinDslScriptsModel.kt b/idea/kotlin-gradle-tooling/src/BrokenKotlinDslScriptsModel.kt similarity index 92% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/BrokenKotlinDslScriptsModel.kt rename to idea/kotlin-gradle-tooling/src/BrokenKotlinDslScriptsModel.kt index d57dd0c2e73..e320d50351e 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/BrokenKotlinDslScriptsModel.kt +++ b/idea/kotlin-gradle-tooling/src/BrokenKotlinDslScriptsModel.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.scripting.gradle.importing +package org.jetbrains.kotlin.gradle import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptModel import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel diff --git a/idea/kotlin-gradle-tooling/src/KotlinDslScriptAdditionalTask.kt b/idea/kotlin-gradle-tooling/src/KotlinDslScriptAdditionalTask.kt new file mode 100644 index 00000000000..c51c1134342 --- /dev/null +++ b/idea/kotlin-gradle-tooling/src/KotlinDslScriptAdditionalTask.kt @@ -0,0 +1,8 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle + +interface KotlinDslScriptAdditionalTask \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt b/idea/kotlin-gradle-tooling/src/KotlinDslScriptModelProvider.kt similarity index 82% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt rename to idea/kotlin-gradle-tooling/src/KotlinDslScriptModelProvider.kt index d7847a3ea55..3e62c6547ea 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinDslScriptModelProvider.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.scripting.gradle.importing +package org.jetbrains.kotlin.gradle import org.gradle.tooling.BuildController import org.gradle.tooling.model.Model @@ -27,7 +27,10 @@ class KotlinDslScriptModelProvider : ProjectImportModelProvider { consumer.consumeProjectModel(it, model, kotlinDslScriptModelClass) } } catch (e: Throwable) { - consumer.consumeProjectModel(it, BrokenKotlinDslScriptsModel(e), kotlinDslScriptModelClass) + consumer.consumeProjectModel( + it, + BrokenKotlinDslScriptsModel(e), kotlinDslScriptModelClass + ) } } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt.191 b/idea/kotlin-gradle-tooling/src/KotlinDslScriptModelProvider.kt.191 similarity index 100% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptModelProvider.kt.191 rename to idea/kotlin-gradle-tooling/src/KotlinDslScriptModelProvider.kt.191 diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptTaskModelBuilder.kt b/idea/kotlin-gradle-tooling/src/KotlinDslScriptTaskModelBuilder.kt similarity index 84% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptTaskModelBuilder.kt rename to idea/kotlin-gradle-tooling/src/KotlinDslScriptTaskModelBuilder.kt index 1d9a0a9fde8..7076892af2a 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptTaskModelBuilder.kt +++ b/idea/kotlin-gradle-tooling/src/KotlinDslScriptTaskModelBuilder.kt @@ -2,17 +2,15 @@ * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.idea.scripting.gradle.importing +package org.jetbrains.kotlin.gradle import org.gradle.api.Project import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.PREPARATION_TASK_NAME -import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported +import org.gradle.util.GradleVersion import org.jetbrains.plugins.gradle.tooling.AbstractModelBuilderService import org.jetbrains.plugins.gradle.tooling.ErrorMessageBuilder import org.jetbrains.plugins.gradle.tooling.ModelBuilderContext -interface KotlinDslScriptAdditionalTask - class KotlinDslScriptTaskModelBuilder : AbstractModelBuilderService() { override fun canBuild(modelName: String): Boolean { return KotlinDslScriptAdditionalTask::class.java.name == modelName @@ -34,4 +32,9 @@ class KotlinDslScriptTaskModelBuilder : AbstractModelBuilderService() { project, e, "Kotlin DSL script model errors" ).withDescription("Unable to set $PREPARATION_TASK_NAME sync task.") } + + private fun kotlinDslScriptsModelImportSupported(currentGradleVersion: String): Boolean { + return GradleVersion.version(currentGradleVersion) >= GradleVersion.version("6.0") + } + } \ No newline at end of file diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptTaskModelBuilder.kt.191 b/idea/kotlin-gradle-tooling/src/KotlinDslScriptTaskModelBuilder.kt.191 similarity index 100% rename from idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/importing/KotlinDslScriptTaskModelBuilder.kt.191 rename to idea/kotlin-gradle-tooling/src/KotlinDslScriptTaskModelBuilder.kt.191