From 0456220f7a3ca6631b20430c6150a849d61579bb Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Mon, 23 Sep 2019 20:00:37 +0300 Subject: [PATCH] Fix issues found in KOTLIN-CR-3233 --- .../kotlin/gradle/plugin/KotlinCompilation.kt | 2 +- .../AbstractKotlinAndroidGradleTests.kt | 3 --- .../jetbrains/kotlin/gradle/Kapt3AndroidIT.kt | 3 --- .../gradle/model/KotlinAndroidExtensionIT.kt | 3 --- .../kotlin/gradle/model/KotlinProjectIT.kt | 3 --- .../kotlin/gradle/plugin/KotlinPlugin.kt | 13 ++++++------ .../gradle/plugin/mpp/kotlinCompilations.kt | 4 ++-- .../plugin/sources/DefaultKotlinSourceSet.kt | 2 +- .../sources/SourceSetsVisibilityInference.kt | 8 ++++---- .../targets/js/KotlinAggregatingTestRun.kt | 20 ------------------- .../dukat/DukatCompilationResolverPlugin.kt | 4 ++-- .../gradle/targets/js/nodejs/NodeJsExec.kt | 4 ++-- .../js/npm/tasks/KotlinPackageJsonTask.kt | 4 ++-- .../targets/js/subtargets/KotlinBrowserJs.kt | 6 +++--- .../js/subtargets/KotlinJsSubTarget.kt | 9 +++------ .../jvm/KotlinJvmTargetConfigurator.kt | 7 +++---- .../KotlinMetadataTargetConfigurator.kt | 6 +++--- .../native/KotlinNativeTargetConfigurator.kt | 9 ++++----- .../kotlin/gradle/tasks/TasksProvider.kt | 15 ++++++-------- .../testing/internal/KotlinTestReport.kt | 14 +++++-------- .../testing/internal/KotlinTestsRegistry.kt | 7 +++---- .../SourceSetVisibilityInferenceTest.kt | 8 ++++---- 22 files changed, 55 insertions(+), 99 deletions(-) delete mode 100644 libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinAggregatingTestRun.kt diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt b/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt index f6348400d63..14037ae9bcf 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt @@ -69,7 +69,7 @@ interface KotlinCompilation : Named, HasAttributes, fun associateWith(other: KotlinCompilation<*>) - val associateWith: Set> + val associateWith: List> override fun getName(): String = compilationName diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 4c33a590e87..7db95600cbd 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -20,9 +20,6 @@ open class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT() { override val androidGradlePluginVersion: AGPVersion get() = AGPVersion.v3_2_0 - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.None - @Test fun testAndroidWithNewMppApp() = with(Project("new-mpp-android", GradleVersionRequired.AtLeast("5.0"))) { build("assemble", "compileDebugUnitTestJavaWithJavac", "printCompilerPluginOptions") { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt index 5ebe207e856..8b23ae86ef6 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt @@ -14,9 +14,6 @@ class Kapt3WorkersAndroid32IT : Kapt3Android32IT() { open class Kapt3Android32IT : Kapt3AndroidIT() { override val androidGradlePluginVersion: AGPVersion get() = AGPVersion.v3_2_0 - - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.None } open class Kapt3Android33IT : Kapt3AndroidIT() { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt index 1c3060e3aa0..a3cdee047c5 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt @@ -16,9 +16,6 @@ import kotlin.test.assertNull import kotlin.test.assertTrue class KotlinAndroidExtensionIT : BaseGradleIT() { - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.None - override fun defaultBuildOptions(): BuildOptions { return super.defaultBuildOptions().copy( androidGradlePluginVersion = AGPVersion.v3_1_0, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt index 5d9598a9d11..43b598f00b4 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt @@ -16,9 +16,6 @@ import kotlin.test.assertNotEquals import kotlin.test.assertTrue class KotlinProjectIT : BaseGradleIT() { - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.None - override fun defaultBuildOptions(): BuildOptions { return super.defaultBuildOptions().copy( androidGradlePluginVersion = AGPVersion.v3_1_0, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 5d938b3b7a6..afd24f47e47 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -145,7 +145,7 @@ internal abstract class KotlinSourceSetProcessor>( shouldCreateTask = true } if (shouldCreateTask) { - project.createOrRegisterTask(expectedClassesTaskName, IDEClassesTask::class.java) { + project.registerTask(expectedClassesTaskName, IDEClassesTask::class.java) { it.dependsOn(getByName(kotlinCompilation.compileAllTaskName)) } } @@ -428,11 +428,12 @@ internal abstract class AbstractKotlinPlugin( ) return } - val inspectTask = registerTask(project, "inspectClassesForKotlinIC", InspectClassesForMultiModuleIC::class.java) { - it.sourceSetName = SourceSet.MAIN_SOURCE_SET_NAME - it.jarTask = jarTask - it.dependsOn(classesTask) - } + val inspectTask = + registerTask(project, "inspectClassesForKotlinIC", InspectClassesForMultiModuleIC::class.java) { + it.sourceSetName = SourceSet.MAIN_SOURCE_SET_NAME + it.jarTask = jarTask + it.dependsOn(classesTask) + } jarTask.dependsOn(inspectTask) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt index 48b3275b053..60c63adda1d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt @@ -232,8 +232,8 @@ abstract class AbstractKotlinCompilation( private val _associateWith: MutableSet> = mutableSetOf() - override val associateWith: Set> - get() = Collections.unmodifiableSet(_associateWith) + override val associateWith: List> + get() = Collections.unmodifiableList(_associateWith.toList()) } internal val KotlinCompilation<*>.ownModuleName: String diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt index 401cc6fd6a6..9d5bb9532de 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/DefaultKotlinSourceSet.kt @@ -150,7 +150,7 @@ class DefaultKotlinSourceSet( } @Suppress("unused") // Used in IDE import - fun getAdditionalVisibleSourceSets(): Set = + fun getAdditionalVisibleSourceSets(): List = getVisibleSourceSetsFromAssociateCompilations(project, this) internal fun getDependenciesTransformation(scope: KotlinDependencyScope): Iterable { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetsVisibilityInference.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetsVisibilityInference.kt index 5b412224af8..eaea8e538c1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetsVisibilityInference.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetsVisibilityInference.kt @@ -19,13 +19,13 @@ fun getSourceSetsFromAssociatedCompilations(fromCompilation: KotlinCompilation<* fun getVisibleSourceSetsFromAssociateCompilations( project: Project, sourceSet: KotlinSourceSet -) = getVisibleSourceSetsFromAssociateCompilations( +): List = getVisibleSourceSetsFromAssociateCompilations( CompilationSourceSetUtil.compilationsBySourceSets(project).getValue(sourceSet) ) internal fun getVisibleSourceSetsFromAssociateCompilations( participatesInCompilations: Set> -): Set { +): List { val visibleInCompilations = participatesInCompilations.map { val sourceSetsInAssociatedCompilations = getSourceSetsFromAssociatedCompilations(it) when (sourceSetsInAssociatedCompilations.size) { @@ -46,13 +46,13 @@ internal fun getVisibleSourceSetsFromAssociateCompilations( else -> visibleInCompilations.first().toMutableSet().apply { visibleInCompilations.subList(1, visibleInCompilations.size).forEach { retainAll(it) } } - } + }.toList() } class UnsatisfiedSourceSetVisibilityException( val sourceSet: KotlinSourceSet, val compilations: Set>, - val visibleSourceSets: Set, + val visibleSourceSets: List, val requiredButNotVisible: Set ) : GradleException() { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinAggregatingTestRun.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinAggregatingTestRun.kt deleted file mode 100644 index 71cd366b4dd..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinAggregatingTestRun.kt +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2010-2019 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.targets.js - -import groovy.lang.Closure -import org.gradle.api.tasks.TaskProvider -import org.gradle.api.tasks.testing.TestFilter -import org.gradle.util.ConfigureUtil -import org.jetbrains.kotlin.gradle.execution.KotlinAggregateExecutionSource -import org.jetbrains.kotlin.gradle.plugin.ExecutionTaskHolder -import org.jetbrains.kotlin.gradle.plugin.KotlinExecution -import org.jetbrains.kotlin.gradle.plugin.KotlinExecution.ExecutionSource -import org.jetbrains.kotlin.gradle.plugin.KotlinTestRun -import org.jetbrains.kotlin.gradle.testing.KotlinAggregatingTestRun -import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestReport - - diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt index 42867784539..74f005f44a1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask +import org.jetbrains.kotlin.gradle.tasks.registerTask internal class DukatCompilationResolverPlugin( private val resolver: KotlinCompilationNpmResolver @@ -25,7 +25,7 @@ internal class DukatCompilationResolverPlugin( init { compilation.defaultSourceSet.kotlin.srcDir(npmProject.externalsDir) - val task = project.createOrRegisterTask(taskName) { + val task = project.registerTask(taskName) { it.compilation = compilation it.group = NodeJsRootPlugin.TASKS_GROUP_NAME it.description = "Generate Kotlin/JS external declarations for .d.ts files in ${compilation}" diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt index f7c9991de62..4e3a71c77a5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask +import org.jetbrains.kotlin.gradle.tasks.registerTask open class NodeJsExec : AbstractExecTask(NodeJsExec::class.java), RequiresNpmDependencies { @get:Internal @@ -58,7 +58,7 @@ open class NodeJsExec : AbstractExecTask(NodeJsExec::class.java), Re val project = target.project val nodeJs = NodeJsRootPlugin.apply(project.rootProject) - return project.createOrRegisterTask(name) { + return project.registerTask(name) { it.nodeJs = nodeJs it.compilation = compilation it.executable = nodeJs.environment.nodeExecutable diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt index f1db85cc390..7bbaba10de9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolver -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask +import org.jetbrains.kotlin.gradle.tasks.registerTask import java.io.File open class KotlinPackageJsonTask : DefaultTask() { @@ -54,7 +54,7 @@ open class KotlinPackageJsonTask : DefaultTask() { val rootClean = project.rootProject.tasks.getByName(BasePlugin.CLEAN_TASK_NAME) val npmInstallTask = nodeJs.npmInstallTask val packageJsonTaskName = npmProject.packageJsonTaskName - val packageJsonTask = project.createOrRegisterTask(packageJsonTaskName) { task -> + val packageJsonTask = project.registerTask(packageJsonTaskName) { task -> task.nodeJs = nodeJs task.compilation = compilation task.description = "Create package.json file for $compilation" diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt index e9060ae1955..da31756b764 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask +import org.jetbrains.kotlin.gradle.tasks.registerTask import javax.inject.Inject open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : @@ -43,7 +43,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : val project = compilation.target.project val nodeJs = NodeJsRootPlugin.apply(project.rootProject) - project.createOrRegisterTask(disambiguateCamelCased("webpack")) { + project.registerTask(disambiguateCamelCased("webpack")) { val compileKotlinTask = compilation.compileKotlinTask it.dependsOn( nodeJs.npmInstallTask, @@ -56,7 +56,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(it) } - val run = project.createOrRegisterTask(disambiguateCamelCased("run")) { + val run = project.registerTask(disambiguateCamelCased("run")) { val compileKotlinTask = compilation.compileKotlinTask it.dependsOn( nodeJs.npmInstallTask, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt index 85ed476d972..df2709c1409 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.gradle.targets.js.subtargets import org.gradle.api.NamedDomainObjectContainer -import org.gradle.api.tasks.TaskProvider import org.gradle.api.plugins.ExtensionAware import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.plugin.* @@ -19,8 +18,7 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolverPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask -import org.jetbrains.kotlin.gradle.tasks.locateTask +import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.testing.internal.configureConventions import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName @@ -78,7 +76,7 @@ abstract class KotlinJsSubTarget( ) ) - val testJs = project.createOrRegisterTask(testRun.subtargetTestTaskName()) { testJs -> + val testJs = project.registerTask(testRun.subtargetTestTaskName()) { testJs -> val compileTask = compilation.compileKotlinTask testJs.group = LifecycleBasePlugin.VERIFICATION_GROUP @@ -102,7 +100,6 @@ abstract class KotlinJsSubTarget( target.testRuns.matching { it.name == testRun.name }.all { parentTestRun -> target.project.kotlinTestRegistry.registerTestTask( - project, testJs, parentTestRun.executionTask ) @@ -130,6 +127,6 @@ abstract class KotlinJsSubTarget( protected abstract fun configureRun(compilation: KotlinJsCompilation) override fun testTask(body: KotlinJsTest.() -> Unit) { - project.locateTask(testTaskName)!!.configure(body) + testRuns.getByName(KotlinTargetWithTests.DEFAULT_TEST_RUN_NAME).executionTask.configure(body) } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt index aa2a68a8eb0..c14146e26d5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTargetConfigurator.kt @@ -6,14 +6,13 @@ package org.jetbrains.kotlin.gradle.targets.jvm import org.gradle.api.plugins.JavaBasePlugin -import org.gradle.api.tasks.TaskProvider import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.Kotlin2JvmSourceSetProcessor import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetProcessor import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask +import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry import org.jetbrains.kotlin.gradle.testing.testTaskName @@ -28,7 +27,7 @@ class KotlinJvmTargetConfigurator(kotlinPluginVersion: String) : name: String, target: KotlinJvmTarget ): KotlinJvmTestRun = KotlinJvmTestRun(name, target).apply { - val testTaskOrProvider = target.project.createOrRegisterTask(testTaskName) { testTask -> + val testTaskOrProvider = target.project.registerTask(testTaskName) { testTask -> testTask.targetName = target.disambiguationClassifier testTask.project.tasks.findByName(JavaBasePlugin.CHECK_TASK_NAME)?.dependsOn(testTask) } @@ -47,7 +46,7 @@ class KotlinJvmTargetConfigurator(kotlinPluginVersion: String) : } } - target.project.kotlinTestRegistry.registerTestTask(target.project, testTaskOrProvider) + target.project.kotlinTestRegistry.registerTestTask(testTaskOrProvider) } override fun buildCompilationProcessor(compilation: KotlinJvmCompilation): KotlinSourceSetProcessor<*> { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt index 3c3c9113945..6c74e655774 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.sources.* import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask +import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.tasks.locateTask import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName @@ -199,7 +199,7 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) : spec.into(metadataCompilation.defaultSourceSet.name) } - project.createOrRegisterTask(transformGranularMetadataTaskName(sourceSet), listOf(sourceSet)) { } + project.registerTask(transformGranularMetadataTaskName(sourceSet), listOf(sourceSet)) { } return metadataCompilation } @@ -348,7 +348,7 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) : } private fun Project.createGenerateProjectStructureMetadataTask(): TaskProvider = - project.createOrRegisterTask("generateProjectStructureMetadata") { task -> + project.registerTask("generateProjectStructureMetadata") { task -> task.lazyKotlinProjectStructureMetadata = lazy { checkNotNull(buildKotlinProjectStructureMetadata(project)) } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index 8cf6b233c70..c1e9f232c6e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -17,7 +17,6 @@ import org.gradle.api.internal.plugins.DefaultArtifactPublicationSet import org.gradle.api.plugins.BasePlugin import org.gradle.api.tasks.Copy import org.gradle.api.tasks.Exec -import org.gradle.api.tasks.TaskProvider import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME @@ -389,8 +388,8 @@ open class KotlinNativeTargetConfigurator( } } -class KotlinNativeTargetWithTestsConfigurator(kotlinPluginVersion: String) - : KotlinNativeTargetConfigurator(kotlinPluginVersion), +class KotlinNativeTargetWithTestsConfigurator(kotlinPluginVersion: String) : + KotlinNativeTargetConfigurator(kotlinPluginVersion), KotlinTargetWithTestsConfigurator { override val testRunClass: Class @@ -400,7 +399,7 @@ class KotlinNativeTargetWithTestsConfigurator(kotlinPluginVersion: String) DefaultKotlinNativeTestRun(name, target).apply { val project = target.project - val testTaskOrProvider = project.createOrRegisterTask(testTaskName) { testTask -> + val testTaskOrProvider = project.registerTask(testTaskName) { testTask -> testTask.group = LifecycleBasePlugin.VERIFICATION_GROUP testTask.description = "Executes Kotlin/Native unit tests for target ${target.name}." testTask.targetName = target.name @@ -416,6 +415,6 @@ class KotlinNativeTargetWithTestsConfigurator(kotlinPluginVersion: String) setExecutionSourceFrom(target.binaries.getTest(NativeBuildType.DEBUG)) - project.kotlinTestRegistry.registerTestTask(project, testTaskOrProvider) + project.kotlinTestRegistry.registerTestTask(testTaskOrProvider) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt index 228ebe11643..de1ed2b3ef0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt @@ -20,12 +20,9 @@ import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.tasks.TaskProvider -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinCompilation -import org.jetbrains.kotlin.gradle.plugin.mpp.defaultSourceSetName import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToKotlinTask -import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast /** * Registers the task with [name] and [type] and initialization script [body] @@ -33,16 +30,16 @@ import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast @JvmName("registerTaskOld") @Deprecated("please use Project.createOrRegisterTask", ReplaceWith("project.createOrRegisterTask(name, body)")) internal fun registerTask(project: Project, name: String, type: Class, body: (T) -> (Unit)): TaskProvider = - project.createOrRegisterTask(name, type, emptyList(), body) + project.registerTask(name, type, emptyList(), body) -internal inline fun Project.createOrRegisterTask( +internal inline fun Project.registerTask( name: String, args: List = emptyList(), noinline body: (T) -> (Unit) ): TaskProvider = - createOrRegisterTask(name, T::class.java, args, body) + this@registerTask.registerTask(name, T::class.java, args, body) -internal fun Project.createOrRegisterTask( +internal fun Project.registerTask( name: String, type: Class, constructorArgs: List = emptyList(), @@ -94,7 +91,7 @@ internal open class KotlinTasksProvider(val targetName: String) { ): TaskProvider { val properties = PropertiesProvider(project) val taskClass = taskOrWorkersTask(properties) - val result = project.createOrRegisterTask(name, taskClass) { + val result = project.registerTask(name, taskClass) { configureAction(it) } configure(result, project, properties, compilation) @@ -109,7 +106,7 @@ internal open class KotlinTasksProvider(val targetName: String) { ): TaskProvider { val properties = PropertiesProvider(project) val taskClass = taskOrWorkersTask(properties) - val result = project.createOrRegisterTask(name, taskClass) { + val result = project.registerTask(name, taskClass) { configureAction(it) } configure(result, project, properties, compilation) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt index c723a3b337d..aa4473bb25e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt @@ -42,7 +42,7 @@ import java.net.URI */ open class KotlinTestReport : TestReport() { @Internal - val testTasks = mutableListOf>() + val testTasks = mutableListOf() private var parent: KotlinTestReport? = null @@ -62,7 +62,7 @@ open class KotlinTestReport : TestReport() { private var hasOwnFailedTests = false private val hasFailedTests: Boolean - get() = hasOwnFailedTests || children.map { it.get() }.any { it.hasFailedTests } + get() = hasOwnFailedTests || children.any { it.get().hasFailedTests } private val ownSuppressedRunningFailures = mutableListOf>() @@ -104,10 +104,8 @@ open class KotlinTestReport : TestReport() { } } - fun registerTestTask(taskProvider: TaskProvider) { - testTasks.add(taskProvider) - - val task = taskProvider.get() + fun registerTestTask(task: AbstractTestTask) { + testTasks.add(task) task.addTestListener(failedTestsListener) if (task is KotlinTest) task.addRunListener(object : KotlinTestRunnerListener { @@ -243,9 +241,7 @@ open class KotlinTestReport : TestReport() { } } - private fun disableTestReporting(taskProvider: TaskProvider) { - val task = taskProvider.get() - + private fun disableTestReporting(task: AbstractTestTask) { task.ignoreFailures = true if (task is KotlinTest) { task.ignoreRunFailures = true diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestsRegistry.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestsRegistry.kt index 0134713bbae..5e6c46cb7d8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestsRegistry.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestsRegistry.kt @@ -11,7 +11,7 @@ import org.gradle.api.plugins.JavaBasePlugin import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.testing.AbstractTestTask import org.gradle.language.base.plugins.LifecycleBasePlugin -import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask +import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.tasks.locateTask /** @@ -29,7 +29,6 @@ class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = " } fun registerTestTask( - project: Project, taskHolder: TaskProvider, aggregate: TaskProvider = allTestsTask ) { @@ -37,7 +36,7 @@ class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = " project.cleanAllTestTask.dependsOn(cleanTaskName(taskHolder.name)) aggregate.configure { it.dependsOn(taskHolder.name) - it.registerTestTask(taskHolder) + it.registerTestTask(taskHolder.get()) } taskHolder.configure { task -> @@ -66,7 +65,7 @@ class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = " val reportName = name - val aggregate: TaskProvider = project.createOrRegisterTask(name) { aggregate -> + val aggregate: TaskProvider = project.registerTask(name) { aggregate -> aggregate.description = description aggregate.group = JavaBasePlugin.VERIFICATION_GROUP diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetVisibilityInferenceTest.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetVisibilityInferenceTest.kt index 35d167e5fd4..4a780f3e1db 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetVisibilityInferenceTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/SourceSetVisibilityInferenceTest.kt @@ -59,7 +59,7 @@ class SourceSetVisibilityTest { checkSourceSetVisibilityRequirements(setOf(jvmTest), compilationsBySourceSets) }.apply { assertEquals(jvmTest, sourceSet) - assertEquals(emptySet(), visibleSourceSets) + assertEquals(emptyList(), visibleSourceSets) assertEquals(setOf(jvmMain), requiredButNotVisible) assertEquals(setOf(jvmTestCompilation), compilations) } @@ -68,7 +68,7 @@ class SourceSetVisibilityTest { checkSourceSetVisibilityRequirements(setOf(commonTest), compilationsBySourceSets) }.apply { assertEquals(commonTest, sourceSet) - assertEquals(emptySet(), visibleSourceSets) + assertEquals(emptyList(), visibleSourceSets) assertEquals(setOf(commonMain), requiredButNotVisible) assertEquals(setOf(jvmTestCompilation), compilations) } @@ -185,7 +185,7 @@ class SourceSetVisibilityTest { checkSourceSetVisibilityRequirements(setOf(commonTest), compilationsBySourceSets) }.apply { assertEquals(commonTest, this.sourceSet) - assertEquals(setOf(commonMain), visibleSourceSets) + assertEquals(listOf(commonMain), visibleSourceSets) assertEquals(setOf(jvmMain), requiredButNotVisible) assertEquals(setOf(jvmTestCompilation, jsTestCompilation), compilations) } @@ -288,7 +288,7 @@ class MockKotlinCompilation( associateWith += other } - override val associateWith: MutableSet> = mutableSetOf() + override val associateWith: MutableList> = mutableListOf() override fun defaultSourceSet(configure: KotlinSourceSet.() -> Unit) = defaultSourceSet.run(configure)