[Gradle] MppDependencyProjectStructureMetadataExtractorFactory: Cache on rootProject...
Because composite builds might have isolated classloaders, therefore caching the MppDependencyProjectStructureMetadataExtractorFactory on a compositeBuildRoot will lead to ClassCastExceptions ^KT-56712 Verification Pending
This commit is contained in:
committed by
Space Team
parent
70a44ccc67
commit
b83a490034
+1
-2
@@ -11,7 +11,6 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||||
import org.jetbrains.kotlin.gradle.plugin.extraProperties
|
import org.jetbrains.kotlin.gradle.plugin.extraProperties
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toSingleKpmModuleIdentifier
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toSingleKpmModuleIdentifier
|
||||||
import org.jetbrains.kotlin.gradle.utils.compositeBuildRootProject
|
|
||||||
import org.jetbrains.kotlin.gradle.utils.getOrPut
|
import org.jetbrains.kotlin.gradle.utils.getOrPut
|
||||||
|
|
||||||
internal val Project.kotlinMppDependencyProjectStructureMetadataExtractorFactory: MppDependencyProjectStructureMetadataExtractorFactory
|
internal val Project.kotlinMppDependencyProjectStructureMetadataExtractorFactory: MppDependencyProjectStructureMetadataExtractorFactory
|
||||||
@@ -58,7 +57,7 @@ private constructor(
|
|||||||
companion object {
|
companion object {
|
||||||
private val extensionName = MppDependencyProjectStructureMetadataExtractorFactory::class.java.simpleName
|
private val extensionName = MppDependencyProjectStructureMetadataExtractorFactory::class.java.simpleName
|
||||||
fun getOrCreate(project: Project): MppDependencyProjectStructureMetadataExtractorFactory =
|
fun getOrCreate(project: Project): MppDependencyProjectStructureMetadataExtractorFactory =
|
||||||
project.compositeBuildRootProject.extraProperties.getOrPut(extensionName) {
|
project.rootProject.extraProperties.getOrPut(extensionName) {
|
||||||
MppDependencyProjectStructureMetadataExtractorFactory(
|
MppDependencyProjectStructureMetadataExtractorFactory(
|
||||||
lazy { GlobalProjectStructureMetadataStorage.getProjectStructureMetadataProvidersFromAllGradleBuilds(project) },
|
lazy { GlobalProjectStructureMetadataStorage.getProjectStructureMetadataProvidersFromAllGradleBuilds(project) },
|
||||||
collectAllProjectStructureMetadataInCurrentBuild(project)
|
collectAllProjectStructureMetadataInCurrentBuild(project)
|
||||||
|
|||||||
Reference in New Issue
Block a user