Scripting: configurations from gradle import should be always taken into account (KT-34442)

Do not rely on registry option
^KT-34442
This commit is contained in:
Natalia Selezneva
2019-11-20 12:28:13 +03:00
parent 2f1915d85e
commit 7ade2ec576
3 changed files with 22 additions and 22 deletions
@@ -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<String>, jvmParametersSetup: String?, initScriptConsumer: Consumer<String>) {
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<ProjectData>) {
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)
}
}
}
@@ -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<String>, jvmParametersSetup: String?, initScriptConsumer: Consumer<String>) {
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<ProjectData>) {
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)
}
}
}
@@ -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)
}
fun kotlinDslScriptsModelImportSupported(currentGradleVersion: String): Boolean {
return GradleVersion.version(currentGradleVersion) >= GradleVersion.version(minimal_gradle_version_supported)
}