Do not create multiple ErrorGradleScriptDefinitions

This commit is contained in:
Natalia Selezneva
2018-07-13 13:41:53 +03:00
parent 9ab4d727e9
commit 3f20453ccf
@@ -43,6 +43,7 @@ import org.jetbrains.plugins.gradle.util.GradleConstants
import java.io.File import java.io.File
import java.util.* import java.util.*
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
import kotlin.collections.LinkedHashSet
import kotlin.reflect.KClass import kotlin.reflect.KClass
import kotlin.script.dependencies.Environment import kotlin.script.dependencies.Environment
import kotlin.script.dependencies.ScriptContents import kotlin.script.dependencies.ScriptContents
@@ -96,24 +97,32 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD
failedToLoad.set(false) failedToLoad.set(false)
// KotlinBuildScript should be last because it has wide scriptFilePattern val kotlinDslTemplates = LinkedHashSet<KotlinScriptDefinition>()
val kotlinDslTemplates = loadGradleTemplates(
loadGradleTemplates(
templateClass = "org.gradle.kotlin.dsl.KotlinInitScript", templateClass = "org.gradle.kotlin.dsl.KotlinInitScript",
dependencySelector = kotlinDslDependencySelector, dependencySelector = kotlinDslDependencySelector,
additionalResolverClasspath = kotlinDslAdditionalResolverCp additionalResolverClasspath = kotlinDslAdditionalResolverCp
) + loadGradleTemplates( ).let { kotlinDslTemplates.addAll(it) }
loadGradleTemplates(
templateClass = "org.gradle.kotlin.dsl.KotlinSettingsScript", templateClass = "org.gradle.kotlin.dsl.KotlinSettingsScript",
dependencySelector = kotlinDslDependencySelector, dependencySelector = kotlinDslDependencySelector,
additionalResolverClasspath = kotlinDslAdditionalResolverCp additionalResolverClasspath = kotlinDslAdditionalResolverCp
) + loadGradleTemplates( ).let { kotlinDslTemplates.addAll(it) }
// KotlinBuildScript should be last because it has wide scriptFilePattern
loadGradleTemplates(
templateClass = "org.gradle.kotlin.dsl.KotlinBuildScript", templateClass = "org.gradle.kotlin.dsl.KotlinBuildScript",
dependencySelector = kotlinDslDependencySelector, dependencySelector = kotlinDslDependencySelector,
additionalResolverClasspath = kotlinDslAdditionalResolverCp additionalResolverClasspath = kotlinDslAdditionalResolverCp
) ).let { kotlinDslTemplates.addAll(it) }
if (kotlinDslTemplates.isNotEmpty()) { if (kotlinDslTemplates.isNotEmpty()) {
return kotlinDslTemplates return kotlinDslTemplates.toList()
} }
val default = tryToLoadOldBuildScriptDefinition() val default = tryToLoadOldBuildScriptDefinition()
@@ -244,6 +253,10 @@ class GradleScriptDefinitionsContributor(private val project: Project) : ScriptD
fileName.endsWith(KOTLIN_DSL_SCRIPT_EXTENSION) fileName.endsWith(KOTLIN_DSL_SCRIPT_EXTENSION)
override fun toString(): String = "ErrorGradleScriptDefinition" override fun toString(): String = "ErrorGradleScriptDefinition"
override fun equals(other: Any?): Boolean = other is ErrorGradleScriptDefinition
override fun hashCode(): Int = name.hashCode()
} }
private class ErrorScriptDependenciesResolver(private val message: String? = null) : DependenciesResolver { private class ErrorScriptDependenciesResolver(private val message: String? = null) : DependenciesResolver {