[Gradle][MPP] Rename CompositeMetadataArtifact.ArtifactHandle to ArtifactContent

^KT-48135 Verification Pending
This commit is contained in:
Sebastian Sellmair
2022-09-19 14:43:32 +02:00
committed by Space
parent 75cc378cac
commit 59d0bd5e39
6 changed files with 42 additions and 42 deletions
@@ -35,9 +35,9 @@ internal class IdeaKpmMetadataBinaryDependencyResolver(
is ArtifactMetadataProvider -> resolution.metadataProvider is ArtifactMetadataProvider -> resolution.metadataProvider
} }
return metadataProvider.read { artifactHandle -> return metadataProvider.read { artifactContent ->
resolution.allVisibleSourceSetNames.mapNotNull { visibleFragmentName -> resolution.allVisibleSourceSetNames.mapNotNull { visibleFragmentName ->
val sourceSet = artifactHandle.findSourceSet(visibleFragmentName) ?: return@mapNotNull null val sourceSet = artifactContent.findSourceSet(visibleFragmentName) ?: return@mapNotNull null
val metadataLibrary = sourceSet.metadataLibrary ?: return@mapNotNull null val metadataLibrary = sourceSet.metadataLibrary ?: return@mapNotNull null
val libraryFile = fragment.project.kotlinTransformedMetadataLibraryDirectoryForIde val libraryFile = fragment.project.kotlinTransformedMetadataLibraryDirectoryForIde
@@ -11,7 +11,7 @@ import java.io.File
internal interface CompositeMetadataArtifact { internal interface CompositeMetadataArtifact {
interface Library { interface Library {
val artifactHandle: ArtifactHandle val artifactContent: ArtifactContent
val sourceSet: SourceSet val sourceSet: SourceSet
val archiveExtension: String val archiveExtension: String
val checksum: Int val checksum: Int
@@ -54,13 +54,13 @@ internal interface CompositeMetadataArtifact {
* Represents a SourceSet packaged into the [CompositeMetadataArtifact] * Represents a SourceSet packaged into the [CompositeMetadataArtifact]
*/ */
interface SourceSet { interface SourceSet {
val artifactHandle: ArtifactHandle val artifactContent: ArtifactContent
val sourceSetName: String val sourceSetName: String
val metadataLibrary: MetadataLibrary? val metadataLibrary: MetadataLibrary?
val cinteropMetadataLibraries: List<CInteropMetadataLibrary> val cinteropMetadataLibraries: List<CInteropMetadataLibrary>
} }
interface ArtifactHandle : Closeable { interface ArtifactContent : Closeable {
val moduleDependencyIdentifier: ModuleDependencyIdentifier val moduleDependencyIdentifier: ModuleDependencyIdentifier
val moduleDependencyVersion: String val moduleDependencyVersion: String
val sourceSets: List<SourceSet> val sourceSets: List<SourceSet>
@@ -71,9 +71,9 @@ internal interface CompositeMetadataArtifact {
val moduleDependencyIdentifier: ModuleDependencyIdentifier val moduleDependencyIdentifier: ModuleDependencyIdentifier
val moduleDependencyVersion: String val moduleDependencyVersion: String
fun open(): ArtifactHandle fun open(): ArtifactContent
fun <T> read(action: (artifactHandle: ArtifactHandle) -> T): T { fun <T> read(action: (artifactContent: ArtifactContent) -> T): T {
return open().use(action) return open().use(action)
} }
} }
@@ -26,11 +26,11 @@ internal class CompositeMetadataArtifactImpl(
private val hostSpecificArtifactFilesBySourceSetName: Map<String, File> private val hostSpecificArtifactFilesBySourceSetName: Map<String, File>
) : CompositeMetadataArtifact { ) : CompositeMetadataArtifact {
override fun open(): CompositeMetadataArtifact.ArtifactHandle { override fun open(): CompositeMetadataArtifact.ArtifactContent {
return HandlerImpl() return HandlerImpl()
} }
inner class HandlerImpl : CompositeMetadataArtifact.ArtifactHandle { inner class HandlerImpl : CompositeMetadataArtifact.ArtifactContent {
override val moduleDependencyIdentifier: ModuleDependencyIdentifier override val moduleDependencyIdentifier: ModuleDependencyIdentifier
get() = this@CompositeMetadataArtifactImpl.moduleDependencyIdentifier get() = this@CompositeMetadataArtifactImpl.moduleDependencyIdentifier
@@ -61,7 +61,7 @@ internal class CompositeMetadataArtifactImpl(
} }
private inner class SourceSetImpl( private inner class SourceSetImpl(
override val artifactHandle: CompositeMetadataArtifact.ArtifactHandle, override val artifactContent: CompositeMetadataArtifact.ArtifactContent,
override val sourceSetName: String, override val sourceSetName: String,
private val artifactFile: ArtifactFile private val artifactFile: ArtifactFile
) : CompositeMetadataArtifact.SourceSet, Closeable { ) : CompositeMetadataArtifact.SourceSet, Closeable {
@@ -74,7 +74,7 @@ internal class CompositeMetadataArtifactImpl(
In this case, return null In this case, return null
*/ */
if (artifactFile.containsDirectory(sourceSetName)) MetadataLibraryImpl(artifactHandle, this, artifactFile) else null if (artifactFile.containsDirectory(sourceSetName)) MetadataLibraryImpl(artifactContent, this, artifactFile) else null
} }
override val cinteropMetadataLibraries: List<CompositeMetadataArtifact.CInteropMetadataLibrary> by lazy { override val cinteropMetadataLibraries: List<CompositeMetadataArtifact.CInteropMetadataLibrary> by lazy {
@@ -89,7 +89,7 @@ internal class CompositeMetadataArtifactImpl(
}.toSet() }.toSet()
cinteropLibraryNames.map { cinteropLibraryName -> cinteropLibraryNames.map { cinteropLibraryName ->
CInteropMetadataLibraryImpl(artifactHandle, this, cinteropLibraryName, artifactFile) CInteropMetadataLibraryImpl(artifactContent, this, cinteropLibraryName, artifactFile)
} }
} }
@@ -99,7 +99,7 @@ internal class CompositeMetadataArtifactImpl(
} }
private inner class MetadataLibraryImpl( private inner class MetadataLibraryImpl(
override val artifactHandle: CompositeMetadataArtifact.ArtifactHandle, override val artifactContent: CompositeMetadataArtifact.ArtifactContent,
override val sourceSet: CompositeMetadataArtifact.SourceSet, override val sourceSet: CompositeMetadataArtifact.SourceSet,
private val artifactFile: ArtifactFile private val artifactFile: ArtifactFile
) : CompositeMetadataArtifact.MetadataLibrary { ) : CompositeMetadataArtifact.MetadataLibrary {
@@ -119,9 +119,9 @@ internal class CompositeMetadataArtifactImpl(
* org.jetbrains.sample-sampleLibrary-1.0.0-SNAPSHOT-appleAndLinuxMain-Vk5pxQ.klib * org.jetbrains.sample-sampleLibrary-1.0.0-SNAPSHOT-appleAndLinuxMain-Vk5pxQ.klib
*/ */
override val relativeFile: File = File(buildString { override val relativeFile: File = File(buildString {
append(artifactHandle.moduleDependencyIdentifier) append(artifactContent.moduleDependencyIdentifier)
append("-") append("-")
append(artifactHandle.moduleDependencyVersion) append(artifactContent.moduleDependencyVersion)
append("-") append("-")
append(sourceSet.sourceSetName) append(sourceSet.sourceSetName)
append("-") append("-")
@@ -145,7 +145,7 @@ internal class CompositeMetadataArtifactImpl(
} }
private inner class CInteropMetadataLibraryImpl( private inner class CInteropMetadataLibraryImpl(
override val artifactHandle: CompositeMetadataArtifact.ArtifactHandle, override val artifactContent: CompositeMetadataArtifact.ArtifactContent,
override val sourceSet: CompositeMetadataArtifact.SourceSet, override val sourceSet: CompositeMetadataArtifact.SourceSet,
override val cinteropLibraryName: String, override val cinteropLibraryName: String,
private val artifactFile: ArtifactFile, private val artifactFile: ArtifactFile,
@@ -166,9 +166,9 @@ internal class CompositeMetadataArtifactImpl(
* org.jetbrains.sample_sampleLibrary-cinterop-simple-Vk5pxQ.klib * org.jetbrains.sample_sampleLibrary-cinterop-simple-Vk5pxQ.klib
*/ */
override val relativeFile: File = File(buildString { override val relativeFile: File = File(buildString {
append(artifactHandle.moduleDependencyIdentifier) append(artifactContent.moduleDependencyIdentifier)
append("-") append("-")
append(artifactHandle.moduleDependencyVersion) append(artifactContent.moduleDependencyVersion)
append("-") append("-")
append(sourceSet.sourceSetName) append(sourceSet.sourceSetName)
append("-cinterop") append("-cinterop")
@@ -60,9 +60,9 @@ private fun transformMetadataLibrariesForIde(
resolution: MetadataDependencyResolution.ChooseVisibleSourceSets, resolution: MetadataDependencyResolution.ChooseVisibleSourceSets,
compositeMetadataArtifact: CompositeMetadataArtifact compositeMetadataArtifact: CompositeMetadataArtifact
): Map<String /* visibleSourceSetName */, Iterable<File>> { ): Map<String /* visibleSourceSetName */, Iterable<File>> {
return compositeMetadataArtifact.read { artifactHandle -> return compositeMetadataArtifact.read { artifactContent ->
resolution.visibleSourceSetNamesExcludingDependsOn.mapNotNull { visibleSourceSetName -> resolution.visibleSourceSetNamesExcludingDependsOn.mapNotNull { visibleSourceSetName ->
val sourceSet = artifactHandle.findSourceSet(visibleSourceSetName) ?: return@mapNotNull null val sourceSet = artifactContent.findSourceSet(visibleSourceSetName) ?: return@mapNotNull null
val sourceSetMetadataLibrary = sourceSet.metadataLibrary ?: return@mapNotNull null val sourceSetMetadataLibrary = sourceSet.metadataLibrary ?: return@mapNotNull null
val metadataLibraryOutputFile = baseOutputDirectory.resolve(sourceSetMetadataLibrary.relativeFile) val metadataLibraryOutputFile = baseOutputDirectory.resolve(sourceSetMetadataLibrary.relativeFile)
metadataLibraryOutputFile.parentFile.mkdirs() metadataLibraryOutputFile.parentFile.mkdirs()
@@ -82,9 +82,9 @@ private fun transformMetadataLibrariesForBuild(
materializeFiles: Boolean, materializeFiles: Boolean,
compositeMetadataArtifact: CompositeMetadataArtifact compositeMetadataArtifact: CompositeMetadataArtifact
): Set<File> { ): Set<File> {
return compositeMetadataArtifact.read { artifactHandle -> return compositeMetadataArtifact.read { artifactContent ->
resolution.visibleSourceSetNamesExcludingDependsOn.mapNotNull { visibleSourceSetName -> resolution.visibleSourceSetNamesExcludingDependsOn.mapNotNull { visibleSourceSetName ->
val sourceSet = artifactHandle.findSourceSet(visibleSourceSetName) ?: return@mapNotNull null val sourceSet = artifactContent.findSourceSet(visibleSourceSetName) ?: return@mapNotNull null
val metadataLibrary = sourceSet.metadataLibrary ?: return@mapNotNull null val metadataLibrary = sourceSet.metadataLibrary ?: return@mapNotNull null
val metadataLibraryFile = outputDirectory.resolve(metadataLibrary.relativeFile) val metadataLibraryFile = outputDirectory.resolve(metadataLibrary.relativeFile)
if (materializeFiles) { if (materializeFiles) {
@@ -137,9 +137,9 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
override fun resolveOutputLibraryFiles(outputDirectory: File, resolutions: Iterable<ChooseVisibleSourceSets>): Set<File> { override fun resolveOutputLibraryFiles(outputDirectory: File, resolutions: Iterable<ChooseVisibleSourceSets>): Set<File> {
return resolutions.flatMap { chooseVisibleSourceSets -> return resolutions.flatMap { chooseVisibleSourceSets ->
if (chooseVisibleSourceSets.metadataProvider !is ArtifactMetadataProvider) return@flatMap emptyList() if (chooseVisibleSourceSets.metadataProvider !is ArtifactMetadataProvider) return@flatMap emptyList()
chooseVisibleSourceSets.metadataProvider.read { artifactHandle -> chooseVisibleSourceSets.metadataProvider.read { artifactContent ->
chooseVisibleSourceSets.visibleSourceSetsProvidingCInterops chooseVisibleSourceSets.visibleSourceSetsProvidingCInterops
.mapNotNull { visibleSourceSetName -> artifactHandle.findSourceSet(visibleSourceSetName) } .mapNotNull { visibleSourceSetName -> artifactContent.findSourceSet(visibleSourceSetName) }
.flatMap { sourceSet -> sourceSet.cinteropMetadataLibraries } .flatMap { sourceSet -> sourceSet.cinteropMetadataLibraries }
.map { cInteropMetadataLibrary -> outputDirectory.resolve(cInteropMetadataLibrary.relativeFile) } .map { cInteropMetadataLibrary -> outputDirectory.resolve(cInteropMetadataLibrary.relativeFile) }
} }
@@ -211,9 +211,9 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
is ProjectMetadataProvider -> Unit is ProjectMetadataProvider -> Unit
/* Extract/Materialize all cinterop files from composite jar file */ /* Extract/Materialize all cinterop files from composite jar file */
is ArtifactMetadataProvider -> chooseVisibleSourceSets.metadataProvider.read { artifactHandle -> is ArtifactMetadataProvider -> chooseVisibleSourceSets.metadataProvider.read { artifactContent ->
chooseVisibleSourceSets.visibleSourceSetsProvidingCInterops chooseVisibleSourceSets.visibleSourceSetsProvidingCInterops
.mapNotNull { visibleSourceSetName -> artifactHandle.findSourceSet(visibleSourceSetName) } .mapNotNull { visibleSourceSetName -> artifactContent.findSourceSet(visibleSourceSetName) }
.flatMap { sourceSet -> sourceSet.cinteropMetadataLibraries } .flatMap { sourceSet -> sourceSet.cinteropMetadataLibraries }
.forEach { cInteropMetadataLibrary -> cInteropMetadataLibrary.copyIntoDirectory(outputDirectory) } .forEach { cInteropMetadataLibrary -> cInteropMetadataLibrary.copyIntoDirectory(outputDirectory) }
} }
@@ -42,9 +42,9 @@ class CompositeMetadataArtifactTest {
) )
metadataArtifact.read { artifactHandle -> metadataArtifact.read { artifactContent ->
if (artifactHandle.sourceSets.size != 1) fail("Expected one SourceSet in metadataArtifact") if (artifactContent.sourceSets.size != 1) fail("Expected one SourceSet in metadataArtifact")
val sourceSet = artifactHandle.sourceSets.first() val sourceSet = artifactContent.sourceSets.first()
assertEquals("testSourceSetName", sourceSet.sourceSetName) assertEquals("testSourceSetName", sourceSet.sourceSetName)
assertNull(sourceSet.metadataLibrary, "Expected no 'metadataLibrary' listed for SourceSet") assertNull(sourceSet.metadataLibrary, "Expected no 'metadataLibrary' listed for SourceSet")
@@ -80,11 +80,11 @@ class CompositeMetadataArtifactTest {
hostSpecificArtifactFilesBySourceSetName = emptyMap() hostSpecificArtifactFilesBySourceSetName = emptyMap()
) )
metadataArtifact.read { artifactHandle -> metadataArtifact.read { artifactContent ->
if (artifactHandle.sourceSets.size != 1) if (artifactContent.sourceSets.size != 1)
fail("Expected exactly one SourceSet in ${artifactHandle.sourceSets.map { it.sourceSetName }}") fail("Expected exactly one SourceSet in ${artifactContent.sourceSets.map { it.sourceSetName }}")
val sourceSet = artifactHandle.getSourceSet(testSourceSetName) val sourceSet = artifactContent.getSourceSet(testSourceSetName)
val metadataOutputDirectory = temporaryFolder.newFolder() val metadataOutputDirectory = temporaryFolder.newFolder()
val metadataFile = metadataOutputDirectory.resolve("testSourceSet.klib") val metadataFile = metadataOutputDirectory.resolve("testSourceSet.klib")
@@ -117,9 +117,9 @@ class CompositeMetadataArtifactTest {
hostSpecificArtifactFilesBySourceSetName = emptyMap() hostSpecificArtifactFilesBySourceSetName = emptyMap()
) )
metadataArtifact.read { artifactHandle -> metadataArtifact.read { artifactContent ->
val sourceSet = artifactHandle.getSourceSet("testSourceSetName") val sourceSet = artifactContent.getSourceSet("testSourceSetName")
assertEquals(listOf(sourceSet), artifactHandle.sourceSets) assertEquals(listOf(sourceSet), artifactContent.sourceSets)
assertEquals(emptyList(), sourceSet.cinteropMetadataLibraries, "Expected empty cinteropMetadataLibraries") assertEquals(emptyList(), sourceSet.cinteropMetadataLibraries, "Expected empty cinteropMetadataLibraries")
} }
@@ -160,11 +160,11 @@ class CompositeMetadataArtifactTest {
hostSpecificArtifactFilesBySourceSetName = emptyMap() hostSpecificArtifactFilesBySourceSetName = emptyMap()
) )
metadataArtifact.read { artifactHandle -> metadataArtifact.read { artifactContent ->
val metadataOutputDirectory = temporaryFolder.newFolder() val metadataOutputDirectory = temporaryFolder.newFolder()
/* Extract and assert sourceSetA */ /* Extract and assert sourceSetA */
artifactHandle.getSourceSet("sourceSetA").also { sourceSetA -> artifactContent.getSourceSet("sourceSetA").also { sourceSetA ->
val sourceSetAMetadataFile = metadataOutputDirectory.resolve("sourceSetA.klib") val sourceSetAMetadataFile = metadataOutputDirectory.resolve("sourceSetA.klib")
assertNotNull(sourceSetA.metadataLibrary).copyTo(sourceSetAMetadataFile) assertNotNull(sourceSetA.metadataLibrary).copyTo(sourceSetAMetadataFile)
assertTrue(sourceSetAMetadataFile.isFile, "Expected sourceSetAMetadataFile.isFile") assertTrue(sourceSetAMetadataFile.isFile, "Expected sourceSetAMetadataFile.isFile")
@@ -180,7 +180,7 @@ class CompositeMetadataArtifactTest {
} }
/* Extract and assert sourceSetB */ /* Extract and assert sourceSetB */
artifactHandle.getSourceSet("sourceSetB").also { sourceSetB -> artifactContent.getSourceSet("sourceSetB").also { sourceSetB ->
val sourceSetBMetadataFile = metadataOutputDirectory.resolve("sourceSetB.jar") val sourceSetBMetadataFile = metadataOutputDirectory.resolve("sourceSetB.jar")
assertNotNull(sourceSetB.metadataLibrary).copyTo(sourceSetBMetadataFile) assertNotNull(sourceSetB.metadataLibrary).copyTo(sourceSetBMetadataFile)
assertTrue(sourceSetBMetadataFile.isFile, "Expected sourceSetBMetadataFile.isFile") assertTrue(sourceSetBMetadataFile.isFile, "Expected sourceSetBMetadataFile.isFile")
@@ -235,9 +235,9 @@ class CompositeMetadataArtifactTest {
hostSpecificArtifactFilesBySourceSetName = emptyMap() hostSpecificArtifactFilesBySourceSetName = emptyMap()
) )
metadataArtifact.read { artifactHandle -> metadataArtifact.read { artifactContent ->
/* Assertions on sourceSetA */ /* Assertions on sourceSetA */
artifactHandle.getSourceSet("sourceSetA").also { sourceSetA -> artifactContent.getSourceSet("sourceSetA").also { sourceSetA ->
val sourceSetAOutputDirectory = temporaryFolder.newFolder() val sourceSetAOutputDirectory = temporaryFolder.newFolder()
val sourceSetAInteropMetadataFiles = sourceSetA.cinteropMetadataLibraries.map { cinteropLibrary -> val sourceSetAInteropMetadataFiles = sourceSetA.cinteropMetadataLibraries.map { cinteropLibrary ->
sourceSetAOutputDirectory.resolve("${cinteropLibrary.cinteropLibraryName}.klib").also { file -> sourceSetAOutputDirectory.resolve("${cinteropLibrary.cinteropLibraryName}.klib").also { file ->
@@ -270,7 +270,7 @@ class CompositeMetadataArtifactTest {
} }
/* Assertions on sourceSetB */ /* Assertions on sourceSetB */
artifactHandle.getSourceSet("sourceSetB").also { sourceSetB -> artifactContent.getSourceSet("sourceSetB").also { sourceSetB ->
val sourceSetBOutputDirectory = temporaryFolder.newFolder() val sourceSetBOutputDirectory = temporaryFolder.newFolder()
val sourceSetBInteropMetadataFiles = sourceSetB.cinteropMetadataLibraries.map { cinteropLibrary -> val sourceSetBInteropMetadataFiles = sourceSetB.cinteropMetadataLibraries.map { cinteropLibrary ->
sourceSetBOutputDirectory.resolve("${cinteropLibrary.cinteropLibraryName}.klib").also { file -> sourceSetBOutputDirectory.resolve("${cinteropLibrary.cinteropLibraryName}.klib").also { file ->