From 49dc4368aa48b54d588148d050a855bf0d6d159b Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Sun, 3 Sep 2023 13:00:02 +0200 Subject: [PATCH] Convert inheritance into delegation --- .../src/main/kotlin/AndroidHiltConventionPlugin.kt | 13 +++++++------ .../src/main/kotlin/HiltConventionPlugin.kt | 9 +++++---- .../src/main/kotlin/JvmHiltConventionPlugin.kt | 12 ++++++------ 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt index c4fd1b3d0..32be84dbb 100644 --- a/build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidHiltConventionPlugin.kt @@ -14,14 +14,15 @@ * limitations under the License. */ -import org.gradle.api.artifacts.VersionCatalog -import org.gradle.kotlin.dsl.DependencyHandlerScope +import org.gradle.api.Plugin +import org.gradle.api.Project -class AndroidHiltConventionPlugin : HiltConventionPlugin() { - override val basePluginId = "dagger.hilt.android.plugin" - override fun DependencyHandlerScope.additionalDependencies(libs: VersionCatalog) { +class AndroidHiltConventionPlugin : Plugin by HiltConventionPlugin( + basePluginId = "dagger.hilt.android.plugin", + dependencyHandler = { libs -> "implementation"(libs.findLibrary("hilt.android").get()) + "ksp"(libs.findLibrary("hilt.compiler").get()) "kspAndroidTest"(libs.findLibrary("hilt.compiler").get()) "kspTest"(libs.findLibrary("hilt.compiler").get()) } -} +) diff --git a/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt b/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt index 1a596d87f..51d963ac6 100644 --- a/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt @@ -21,9 +21,10 @@ import org.gradle.api.artifacts.VersionCatalog import org.gradle.kotlin.dsl.DependencyHandlerScope import org.gradle.kotlin.dsl.dependencies -abstract class HiltConventionPlugin : Plugin { - open val basePluginId: String? = null - protected abstract fun DependencyHandlerScope.additionalDependencies(libs: VersionCatalog) +class HiltConventionPlugin( + val basePluginId: String? = null, + val dependencyHandler: DependencyHandlerScope.(libs: VersionCatalog) -> Unit +) : Plugin { override fun apply(target: Project) { with(target) { with(pluginManager) { @@ -32,7 +33,7 @@ abstract class HiltConventionPlugin : Plugin { } dependencies { "ksp"(libs.findLibrary("hilt.compiler").get()) - additionalDependencies(libs) + dependencyHandler(libs) } } } diff --git a/build-logic/convention/src/main/kotlin/JvmHiltConventionPlugin.kt b/build-logic/convention/src/main/kotlin/JvmHiltConventionPlugin.kt index be4c9a61d..dce0aecef 100644 --- a/build-logic/convention/src/main/kotlin/JvmHiltConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/JvmHiltConventionPlugin.kt @@ -14,11 +14,11 @@ * limitations under the License. */ -import org.gradle.api.artifacts.VersionCatalog -import org.gradle.kotlin.dsl.DependencyHandlerScope +import org.gradle.api.Plugin +import org.gradle.api.Project -class JvmHiltConventionPlugin : HiltConventionPlugin() { - override fun DependencyHandlerScope.additionalDependencies(libs: VersionCatalog) { +class JvmHiltConventionPlugin : Plugin by HiltConventionPlugin( + dependencyHandler = { libs -> "implementation"(libs.findLibrary("hilt.core").get()) - } -} \ No newline at end of file + }, +)