From 37fd47eee35b53bb325445665452360d2e67ddeb Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Tue, 28 Jun 2022 13:31:14 +0200 Subject: [PATCH] Remove deprecated ConfigureUtil usages in Kotlin target containers ^KT-46019 In Progress --- ...linTargetContainerWithJsPresetFunctions.kt | 20 +++++----- ...otlinTargetContainerWithNativeShortcuts.kt | 15 ++++---- ...nTargetContainerWithWasmPresetFunctions.kt | 7 ++-- .../kotlin/gradle/plugin/KotlinPlugin.kt | 37 +++++++++++++------ .../gradle/plugin/mpp/KotlinMetadataTarget.kt | 9 ++--- .../plugin/mpp/KotlinMultiplatformPlugin.kt | 2 +- .../targets/android/KotlinAndroidTarget.kt | 3 +- .../android/KotlinAndroidTargetPreset.kt | 9 ++++- .../gradle/targets/jvm/KotlinJvmTarget.kt | 2 +- .../jvm/KotlinJvmWithJavaTargetPreset.kt | 16 ++++++-- .../targets/jvm/KotlinWithJavaTarget.kt | 3 +- .../targets/native/KotlinNativeTarget.kt | 6 +-- .../kpm/BuildKotlinToolingMetadataTest.kt | 12 +++--- .../kpm/KotlinNativeVariantFactoryTest.kt | 2 +- .../kotlin/gradle/kpm/TestHelpers.kt | 13 +++++++ 15 files changed, 98 insertions(+), 58 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/TestHelpers.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithJsPresetFunctions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithJsPresetFunctions.kt index 66d613fb3c9..30aa4c1980c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithJsPresetFunctions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithJsPresetFunctions.kt @@ -5,8 +5,7 @@ package org.jetbrains.kotlin.gradle.dsl -import groovy.lang.Closure -import org.gradle.util.ConfigureUtil +import org.gradle.api.Action import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension.Companion.reportJsCompilerMode import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.targets.js.calculateJsCompilerType @@ -48,30 +47,33 @@ interface KotlinTargetContainerWithJsPresetFunctions : fun js() = jsInternal(name = "js") { } fun js(name: String) = jsInternal(name = name) { } - fun js(name: String, configure: Closure<*>) = jsInternal(name = name) { ConfigureUtil.configure(configure, this) } - fun js(compiler: KotlinJsCompilerType, configure: Closure<*>) = js(compiler = compiler) { ConfigureUtil.configure(configure, this) } - fun js(configure: Closure<*>) = jsInternal { ConfigureUtil.configure(configure, this) } + fun js(name: String, configure: Action) = jsInternal(name = name) { configure.execute(this) } + fun js(compiler: KotlinJsCompilerType, configure: Action) = js(compiler = compiler) { + configure.execute(this) + } + + fun js(configure: Action) = jsInternal { configure.execute(this) } fun js( name: String, compiler: KotlinJsCompilerType, - configure: Closure<*> + configure: Action ) = js( name = name, compiler = compiler ) { - ConfigureUtil.configure(configure, this) + configure.execute(this) } fun js( name: String, compiler: String, - configure: Closure<*> + configure: Action ) = js( name = name, compiler = compiler ) { - ConfigureUtil.configure(configure, this) + configure.execute(this) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithNativeShortcuts.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithNativeShortcuts.kt index 6f2a330be72..f87ca8683e9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithNativeShortcuts.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithNativeShortcuts.kt @@ -5,8 +5,7 @@ package org.jetbrains.kotlin.gradle.dsl -import groovy.lang.Closure -import org.gradle.util.ConfigureUtil +import org.gradle.api.Action import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet @@ -68,8 +67,8 @@ interface KotlinTargetContainerWithNativeShortcuts : KotlinTargetContainerWithPr fun ios() = ios("ios") { } fun ios(namePrefix: String) = ios(namePrefix) { } - fun ios(namePrefix: String, configure: Closure<*>) = ios(namePrefix) { ConfigureUtil.configure(configure, this) } - fun ios(configure: Closure<*>) = ios { ConfigureUtil.configure(configure, this) } + fun ios(namePrefix: String, configure: Action) = ios(namePrefix) { configure.execute(this) } + fun ios(configure: Action) = ios { configure.execute(this) } fun tvos( namePrefix: String = "tvos", @@ -85,8 +84,8 @@ interface KotlinTargetContainerWithNativeShortcuts : KotlinTargetContainerWithPr fun tvos() = tvos("tvos") { } fun tvos(namePrefix: String) = tvos(namePrefix) { } - fun tvos(namePrefix: String, configure: Closure<*>) = tvos(namePrefix) { ConfigureUtil.configure(configure, this) } - fun tvos(configure: Closure<*>) = tvos { ConfigureUtil.configure(configure, this) } + fun tvos(namePrefix: String, configure: Action) = tvos(namePrefix) { configure.execute(this) } + fun tvos(configure: Action) = tvos { configure.execute(this) } fun watchos( namePrefix: String = "watchos", @@ -113,6 +112,6 @@ interface KotlinTargetContainerWithNativeShortcuts : KotlinTargetContainerWithPr fun watchos() = watchos("watchos") { } fun watchos(namePrefix: String) = watchos(namePrefix) { } - fun watchos(namePrefix: String, configure: Closure<*>) = watchos(namePrefix) { ConfigureUtil.configure(configure, this) } - fun watchos(configure: Closure<*>) = watchos { ConfigureUtil.configure(configure, this) } + fun watchos(namePrefix: String, configure: Action) = watchos(namePrefix) { configure.execute(this) } + fun watchos(configure: Action) = watchos { configure.execute(this) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt index c4aef391f91..aab5f124a08 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt @@ -5,8 +5,7 @@ package org.jetbrains.kotlin.gradle.dsl -import groovy.lang.Closure -import org.gradle.util.ConfigureUtil +import org.gradle.api.Action import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWasmTargetDsl @@ -31,8 +30,8 @@ interface KotlinTargetContainerWithWasmPresetFunctions : KotlinTargetContainerWi fun wasm(name: String) = wasm(name) { } @ExperimentalWasmDsl - fun wasm(name: String, configure: Closure<*>) = wasm(name) { ConfigureUtil.configure(configure, this) } + fun wasm(name: String, configure: Action) = wasm(name) { configure.execute(this) } @ExperimentalWasmDsl - fun wasm(configure: Closure<*>) = wasm { ConfigureUtil.configure(configure, this) } + fun wasm(configure: Action) = wasm { configure.execute(this) } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index bdb2c35cd9c..1c5b8d493da 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -604,13 +604,15 @@ internal open class KotlinPlugin( Kotlin2JvmSourceSetProcessor(tasksProvider, compilation) override fun apply(project: Project) { - val target = - KotlinWithJavaTarget( - project, - KotlinPlatformType.jvm, - targetName, - { KotlinJvmOptionsImpl() } - ).apply { + @Suppress("UNCHECKED_CAST") + val target = (project.objects.newInstance( + KotlinWithJavaTarget::class.java, + project, + KotlinPlatformType.jvm, + targetName, + { KotlinJvmOptionsImpl() } + ) as KotlinWithJavaTarget) + .apply { disambiguationClassifier = null // don't add anything to the task names } @@ -644,12 +646,14 @@ internal open class KotlinCommonPlugin( KotlinCommonSourceSetProcessor(compilation, tasksProvider) override fun apply(project: Project) { - val target = KotlinWithJavaTarget( + @Suppress("UNCHECKED_CAST") + val target = project.objects.newInstance( + KotlinWithJavaTarget::class.java, project, KotlinPlatformType.common, targetName, { KotlinMultiplatformCommonOptionsImpl() } - ) + ) as KotlinWithJavaTarget (project.kotlinExtension as KotlinCommonProjectExtension).target = target super.apply(project) @@ -675,7 +679,14 @@ internal open class Kotlin2JsPlugin( Kotlin2JsSourceSetProcessor(tasksProvider, compilation) override fun apply(project: Project) { - val target = KotlinWithJavaTarget(project, KotlinPlatformType.js, targetName, { KotlinJsOptionsImpl() }) + @Suppress("UNCHECKED_CAST") + val target = project.objects.newInstance( + KotlinWithJavaTarget::class.java, + project, + KotlinPlatformType.js, + targetName, + { KotlinJsOptionsImpl() } + ) as KotlinWithJavaTarget (project.kotlinExtension as Kotlin2JsProjectExtension).setTarget(target) super.apply(project) @@ -691,7 +702,11 @@ internal open class KotlinAndroidPlugin( project.dynamicallyApplyWhenAndroidPluginIsApplied( { - KotlinAndroidTarget("", project).also { + project.objects.newInstance( + KotlinAndroidTarget::class.java, + "", + project + ).also { (project.kotlinExtension as KotlinAndroidProjectExtension).target = it } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt index e0d7989f6a6..97cca515603 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt @@ -6,17 +6,14 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.Project -import org.gradle.api.artifacts.ConfigurablePublishArtifact -import org.gradle.api.artifacts.Dependency -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetConfigurator -import org.jetbrains.kotlin.gradle.targets.metadata.isCompatibilityMetadataVariantEnabled import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled import javax.inject.Inject -open class KotlinMetadataTarget @Inject constructor(project: Project) : - KotlinOnlyTarget>(project, KotlinPlatformType.common) { +abstract class KotlinMetadataTarget @Inject constructor( + project: Project +) : KotlinOnlyTarget>(project, KotlinPlatformType.common) { override val artifactsTaskName: String // The IDE import looks at this task name to determine the artifact and register the path to the artifact; diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index f8d1607001c..36f167f1f37 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -157,7 +157,7 @@ class KotlinMultiplatformPlugin : Plugin { } ) add(KotlinWasmTargetPreset(project)) - add(KotlinAndroidTargetPreset(project)) + add(project.objects.newInstance(KotlinAndroidTargetPreset::class.java, project)) add(KotlinJvmWithJavaTargetPreset(project)) // Note: modifying these sets should also be reflected in the DSL code generator, see 'presetEntries.kt' diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt index 60dc4c8e507..0355114f795 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTarget.kt @@ -17,8 +17,9 @@ import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.utils.dashSeparatedName import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.gradle.utils.setProperty +import javax.inject.Inject -open class KotlinAndroidTarget( +abstract class KotlinAndroidTarget @Inject constructor( override val targetName: String, project: Project ) : AbstractKotlinTarget(project) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTargetPreset.kt index 7eed73ef8ff..fcfda8ce8e8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/android/KotlinAndroidTargetPreset.kt @@ -12,15 +12,20 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.PublicationRegistrationMode import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.hasKpmModel import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.mapTargetCompilationsToKpmVariants +import javax.inject.Inject -class KotlinAndroidTargetPreset( +abstract class KotlinAndroidTargetPreset @Inject constructor( private val project: Project ) : KotlinTargetPreset { override fun getName(): String = PRESET_NAME override fun createTarget(name: String): KotlinAndroidTarget { - val result = KotlinAndroidTarget(name, project).apply { + val result = project.objects.newInstance( + KotlinAndroidTarget::class.java, + name, + project + ).apply { disambiguationClassifier = name preset = this@KotlinAndroidTargetPreset targetUnderConstruction = this diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt index 412c40c8eca..7886fdf0165 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmTarget.kt @@ -30,7 +30,7 @@ import java.util.concurrent.Callable import javax.inject.Inject import kotlin.reflect.full.functions -open class KotlinJvmTarget @Inject constructor( +abstract class KotlinJvmTarget @Inject constructor( project: Project ) : KotlinOnlyTarget(project, KotlinPlatformType.jvm), KotlinTargetWithTests { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt index ac53759cae6..81ccf090e7b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt @@ -29,10 +29,18 @@ class KotlinJvmWithJavaTargetPreset( project.plugins.apply(JavaPlugin::class.java) - val target = KotlinWithJavaTarget(project, KotlinPlatformType.jvm, name, { KotlinJvmOptionsImpl() }).apply { - disambiguationClassifier = name - preset = this@KotlinJvmWithJavaTargetPreset - } + @Suppress("UNCHECKED_CAST") + val target = (project.objects.newInstance( + KotlinWithJavaTarget::class.java, + project, + KotlinPlatformType.jvm, + name, + { KotlinJvmOptionsImpl() } + ) as KotlinWithJavaTarget) + .apply { + disambiguationClassifier = name + preset = this@KotlinJvmWithJavaTargetPreset + } AbstractKotlinPlugin.configureTarget(target) { compilation -> Kotlin2JvmSourceSetProcessor(KotlinTasksProvider(), compilation) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt index d57e72e4877..5c9adb41f49 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt @@ -17,8 +17,9 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.tasks.KOTLIN_BUILD_DIR_NAME import java.io.File +import javax.inject.Inject -open class KotlinWithJavaTarget( +abstract class KotlinWithJavaTarget @Inject constructor( project: Project, override val platformType: KotlinPlatformType, override val targetName: String, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt index ffb1d5691d7..d54e76adb90 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget import javax.inject.Inject -open class KotlinNativeTarget @Inject constructor( +abstract class KotlinNativeTarget @Inject constructor( project: Project, val konanTarget: KonanTarget ) : KotlinTargetWithBinaries( @@ -202,8 +202,8 @@ abstract class KotlinNativeTargetWithTests( internal set } -open class KotlinNativeTargetWithHostTests @Inject constructor(project: Project, konanTarget: KonanTarget) : +abstract class KotlinNativeTargetWithHostTests @Inject constructor(project: Project, konanTarget: KonanTarget) : KotlinNativeTargetWithTests(project, konanTarget) -open class KotlinNativeTargetWithSimulatorTests @Inject constructor(project: Project, konanTarget: KonanTarget) : +abstract class KotlinNativeTargetWithSimulatorTests @Inject constructor(project: Project, konanTarget: KonanTarget) : KotlinNativeTargetWithTests(project, konanTarget) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt index 69cf5812f24..8c93b33e65b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt @@ -57,13 +57,13 @@ class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() { assertEquals(3, metadata.projectTargets.size, "Expected 3 targets in KPM") val jvmTarget = metadata.projectTargets.single { it.platformType == jvm.name } - assertEquals(GradleKpmJvmVariant::class.java.canonicalName, jvmTarget.target) + assertEquals(GradleKpmJvmVariant::class.decoratedClassCanonicalName, jvmTarget.target) val nativeTargets = metadata.projectTargets.filter { it.platformType == native.name }.map { it.target }.toSet() assertEquals( setOf( - GradleKpmLinuxArm64Variant::class.java.canonicalName, - GradleKpmLinuxX64Variant::class.java.canonicalName + GradleKpmLinuxArm64Variant::class.decoratedClassCanonicalName, + GradleKpmLinuxX64Variant::class.decoratedClassCanonicalName, ), nativeTargets ) @@ -134,7 +134,7 @@ class KotlinToolingMetadataWithModelMappingTest { expectedTargets.forEach { (platformType, targetClass) -> assertEquals( - targetClass.java.canonicalName, + targetClass.decoratedClassCanonicalName, metadata.projectTargets.single { it.platformType == platformType.name }.target, "Platform '$platformType' has different target class" ) @@ -212,11 +212,11 @@ class KotlinToolingMetadataWithModelMappingTest { ) assertEquals( - GradleKpmLinuxArm64Variant::class.java.canonicalName, + GradleKpmLinuxArm64Variant::class.decoratedClassCanonicalName, linuxArm64.target ) assertEquals( - GradleKpmLinuxX64Variant::class.java.canonicalName, + GradleKpmLinuxX64Variant::class.decoratedClassCanonicalName, linuxX64.target ) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt index c1af4c8c9a1..22ac8c2c831 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt @@ -44,7 +44,7 @@ class KotlinNativeVariantFactoryTest( @Test fun `test variantClass`() { - assertEquals(variantConstructor.variantClass, variant.javaClass) + assertEquals(variantConstructor.variantClass.decoratedClassCanonicalName, variant.javaClass.canonicalName) } @Test diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/TestHelpers.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/TestHelpers.kt new file mode 100644 index 00000000000..632f3fe1685 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/TestHelpers.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2010-2022 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.kpm + +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmFragment +import kotlin.reflect.KClass + +internal val KClass.decoratedClassCanonicalName: String get() = java.decoratedClassCanonicalName + +internal val Class.decoratedClassCanonicalName: String get() = "${canonicalName}_Decorated"