From d924c14df7390d0da2d6741bd05280c1f72cc6be Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 30 May 2022 14:04:37 +0200 Subject: [PATCH] Add convenient extension methods to get variant implementation factory ^KT-47047 In Progress --- .../org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt | 4 ++-- .../gradle/plugin/VariantImplementationFactories.kt | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) 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 a078ea67728..c313ca67f5d 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 @@ -413,8 +413,8 @@ internal abstract class AbstractKotlinPlugin( } } - VariantImplementationFactories - .get(project.gradle)[MavenPluginConfigurator.MavenPluginConfiguratorVariantFactory::class] + project.gradle + .variantImplementationFactory() .getInstance() .applyConfiguration(project, target, shouldRewritePoms) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/VariantImplementationFactories.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/VariantImplementationFactories.kt index e97d652b3e4..a6e62a6ea53 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/VariantImplementationFactories.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/VariantImplementationFactories.kt @@ -56,4 +56,12 @@ abstract class VariantImplementationFactories : BuildService Gradle.variantImplementationFactory(): T = + VariantImplementationFactories.get(this)[T::class] + +internal inline fun < + reified T : VariantImplementationFactories.VariantImplementationFactory + > Gradle.variantImplementationFactoryProvider(): Provider = + VariantImplementationFactories.getProvider(this).map { it[T::class] }