From 0ae47fca51d1f9d052b23bdc35e37e8e5ed3f64a Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Tue, 25 Jan 2022 13:51:02 +0100 Subject: [PATCH] [KPM] KotlinGra..onArtifactsContext: Remove ConfigurationPublications interface This is done to prevent unintentional side effects from Gradle, which might act hostile against third-party implementations of Gradle public API interfaces. --- .../KotlinGradleFragmentConfigurationArtifacts.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt index 6ece548e12f..2991200d6cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt @@ -5,8 +5,11 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 +import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.Project +import org.gradle.api.artifacts.ConfigurablePublishArtifact import org.gradle.api.artifacts.ConfigurationPublications +import org.gradle.api.artifacts.ConfigurationVariant /* Internal abbreviation */ internal typealias FragmentArtifacts = KotlinGradleFragmentConfigurationArtifacts @@ -22,8 +25,18 @@ interface KotlinGradleFragmentConfigurationArtifacts internal constructor( internal val outgoing: ConfigurationPublications, val fragment: T -) : ConfigurationPublications by outgoing { +) { val project: Project get() = fragment.project + + val variants: NamedDomainObjectContainer get() = outgoing.variants + + fun artifact(notation: Any) { + outgoing.artifact(notation) + } + + fun artifact(notation: Any, configure: ConfigurablePublishArtifact.() -> Unit) { + outgoing.artifact(notation, configure) + } } @Suppress("FunctionName")