[Gradle] Refactor ResolvedDependencyGraph to use Lazy instead provider

It simplifies constructor API.
Also constructor changed from `operator fun invoke` to just a regular
factory method on companion object.
This commit is contained in:
Anton Lakotka
2022-06-17 08:47:33 +02:00
committed by Space
parent d086fedffc
commit 3260c33c16
2 changed files with 7 additions and 8 deletions
@@ -561,7 +561,7 @@ constructor(
val exportLibraries: FileCollection get() = exportLibrariesResolvedGraph?.files ?: objectFactory.fileCollection() val exportLibraries: FileCollection get() = exportLibrariesResolvedGraph?.files ?: objectFactory.fileCollection()
private val exportLibrariesResolvedGraph = if (binary is AbstractNativeLibrary) { private val exportLibrariesResolvedGraph = if (binary is AbstractNativeLibrary) {
ResolvedDependencyGraph(project, project.configurations.getByName(binary.exportConfigurationName)) ResolvedDependencyGraph.fromConfiguration(project.configurations.getByName(binary.exportConfigurationName))
} else { } else {
null null
} }
@@ -640,8 +640,7 @@ constructor(
@get:Internal @get:Internal
internal abstract val konanPropertiesService: Property<KonanPropertiesBuildService> internal abstract val konanPropertiesService: Property<KonanPropertiesBuildService>
private val resolvedDependencyGraph = ResolvedDependencyGraph( private val resolvedDependencyGraph = ResolvedDependencyGraph.fromConfiguration(
project,
project.configurations.getByName(compilation.compileDependencyConfigurationName) project.configurations.getByName(compilation.compileDependencyConfigurationName)
) )
@@ -27,11 +27,11 @@ internal const val INTRANSITIVE = "intransitive"
* Gradle Configuration Cache-friendly representation of resolved Configuration * Gradle Configuration Cache-friendly representation of resolved Configuration
*/ */
internal class ResolvedDependencyGraph internal class ResolvedDependencyGraph
private constructor ( private constructor(
private val graphRootProvider: Provider<ResolvedComponentResult>, private val resolvedComponentsRootProvider: Lazy<ResolvedComponentResult>,
private val artifactCollection: ArtifactCollection private val artifactCollection: ArtifactCollection
) { ) {
val root get() = graphRootProvider.get() val root get() = resolvedComponentsRootProvider.value
val files: FileCollection get() = artifactCollection.artifactFiles val files: FileCollection get() = artifactCollection.artifactFiles
val artifacts get() = artifactCollection.artifacts val artifacts get() = artifactCollection.artifacts
@@ -54,8 +54,8 @@ private constructor (
} }
companion object { companion object {
operator fun invoke(project: Project, configuration: Configuration) = ResolvedDependencyGraph( fun fromConfiguration(configuration: Configuration) = ResolvedDependencyGraph(
graphRootProvider = configuration.incoming.resolutionResult.let { rr -> project.provider { rr.root } }, resolvedComponentsRootProvider = configuration.incoming.resolutionResult.let { rr -> lazy { rr.root } },
artifactCollection = configuration.incoming.artifacts artifactCollection = configuration.incoming.artifacts
) )
} }