diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt index 49d8f5f1439..b197e09d428 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt @@ -12,8 +12,8 @@ import com.intellij.util.Consumer import org.gradle.tooling.model.idea.IdeaProject import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.* import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel +import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported import org.jetbrains.kotlin.idea.scripting.gradle.minimal_gradle_version_supported -import org.jetbrains.kotlin.idea.scripting.gradle.shouldLoadDependenciesDuringImport import org.jetbrains.plugins.gradle.model.ProjectImportExtraModelProvider import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension @@ -32,11 +32,9 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() { } override fun enhanceTaskProcessing(taskNames: MutableList, jvmParametersSetup: String?, initScriptConsumer: Consumer) { - if (shouldLoadDependenciesDuringImport()) { - initScriptConsumer.consume( - "if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]" - ) - } + initScriptConsumer.consume( + "if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]" + ) } override fun getExtraModelProvider(): ProjectImportExtraModelProvider { @@ -46,9 +44,11 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() { override fun populateProjectExtraModels(gradleProject: IdeaProject, ideProject: DataNode) { super.populateProjectExtraModels(gradleProject, ideProject) - resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model -> - // we need a copy to avoid memory leak, as model is java rmi proxy object - ideProject.gradleKotlinBuildScripts = copy(model) + if (kotlinDslScriptsModelImportSupported(resolverCtx.projectGradleVersion)) { + resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model -> + // we need a copy to avoid memory leak, as model is java rmi proxy object + ideProject.gradleKotlinBuildScripts = copy(model) + } } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.193 b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.193 index 771081115df..e5e419f9ec1 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.193 +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleBuildScriptsResolver.kt.193 @@ -12,8 +12,8 @@ import com.intellij.util.Consumer import org.gradle.tooling.model.idea.IdeaProject import org.gradle.tooling.model.kotlin.dsl.KotlinDslModelsParameters.* import org.gradle.tooling.model.kotlin.dsl.KotlinDslScriptsModel +import org.jetbrains.kotlin.idea.scripting.gradle.kotlinDslScriptsModelImportSupported import org.jetbrains.kotlin.idea.scripting.gradle.minimal_gradle_version_supported -import org.jetbrains.kotlin.idea.scripting.gradle.shouldLoadDependenciesDuringImport import org.jetbrains.plugins.gradle.model.ProjectImportModelProvider import org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension @@ -32,11 +32,9 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() { } override fun enhanceTaskProcessing(taskNames: MutableList, jvmParametersSetup: String?, initScriptConsumer: Consumer) { - if (shouldLoadDependenciesDuringImport()) { - initScriptConsumer.consume( - "if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]" - ) - } + initScriptConsumer.consume( + "if (org.gradle.util.GradleVersion.current() >= org.gradle.util.GradleVersion.version(\"$minimal_gradle_version_supported\")) startParameter.taskNames += [\"${PREPARATION_TASK_NAME}\"]" + ) } override fun getModelProvider(): ProjectImportModelProvider { @@ -46,9 +44,11 @@ class KotlinGradleBuildScriptsResolver : AbstractProjectResolverExtension() { override fun populateProjectExtraModels(gradleProject: IdeaProject, ideProject: DataNode) { super.populateProjectExtraModels(gradleProject, ideProject) - resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model -> - // we need a copy to avoid memory leak, as model is java rmi proxy object - ideProject.gradleKotlinBuildScripts = copy(model) + if (kotlinDslScriptsModelImportSupported(resolverCtx.projectGradleVersion)) { + resolverCtx.getExtraProject(null, KotlinDslScriptsModel::class.java)?.let { model -> + // we need a copy to avoid memory leak, as model is java rmi proxy object + ideProject.gradleKotlinBuildScripts = copy(model) + } } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt index fc5b29c306e..3f7854c341a 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/utils.kt @@ -6,13 +6,13 @@ package org.jetbrains.kotlin.idea.scripting.gradle import com.intellij.openapi.project.Project -import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiElement import com.intellij.psi.PsiManager import com.intellij.psi.PsiRecursiveElementVisitor import com.intellij.psi.PsiWhiteSpace import com.intellij.psi.impl.source.tree.LeafPsiElement +import org.gradle.util.GradleVersion import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.psi.KtCallExpression import org.jetbrains.kotlin.psi.KtFile @@ -61,6 +61,6 @@ fun getGradleScriptInputsStamp( const val minimal_gradle_version_supported = "6.0" -fun shouldLoadDependenciesDuringImport(): Boolean { - return Registry.`is`("kotlin.gradle.scripts.useIdeaProjectImport", false) -} \ No newline at end of file +fun kotlinDslScriptsModelImportSupported(currentGradleVersion: String): Boolean { + return GradleVersion.version(currentGradleVersion) >= GradleVersion.version(minimal_gradle_version_supported) +}