[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.
This commit is contained in:
sebastian.sellmair
2022-01-25 13:51:02 +01:00
committed by Space
parent 49cfe42914
commit 0ae47fca51
@@ -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<T> = KotlinGradleFragmentConfigurationArtifacts<T>
@@ -22,8 +25,18 @@ interface KotlinGradleFragmentConfigurationArtifacts<in T : KotlinGradleFragment
class KotlinGradleFragmentConfigurationArtifactsContext<T : KotlinGradleFragment> internal constructor(
internal val outgoing: ConfigurationPublications,
val fragment: T
) : ConfigurationPublications by outgoing {
) {
val project: Project get() = fragment.project
val variants: NamedDomainObjectContainer<ConfigurationVariant> get() = outgoing.variants
fun artifact(notation: Any) {
outgoing.artifact(notation)
}
fun artifact(notation: Any, configure: ConfigurablePublishArtifact.() -> Unit) {
outgoing.artifact(notation, configure)
}
}
@Suppress("FunctionName")