Don't rely on the current project in dep-resolution if module is given
This commit is contained in:
+2
-3
@@ -31,12 +31,11 @@ internal fun configurationToResolveMetadataDependencies(project: Project, reques
|
|||||||
|
|
||||||
|
|
||||||
class GradleKotlinDependencyGraphResolver(
|
class GradleKotlinDependencyGraphResolver(
|
||||||
private val project: Project,
|
|
||||||
private val moduleResolver: ModuleDependencyResolver
|
private val moduleResolver: ModuleDependencyResolver
|
||||||
) : KotlinDependencyGraphResolver {
|
) : KotlinDependencyGraphResolver {
|
||||||
|
|
||||||
private fun configurationToResolve(requestingModule: KotlinModule): Configuration =
|
private fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration =
|
||||||
configurationToResolveMetadataDependencies(project, requestingModule)
|
configurationToResolveMetadataDependencies(requestingModule.project, requestingModule)
|
||||||
|
|
||||||
override fun resolveDependencyGraph(requestingModule: KotlinModule): DependencyGraphResolution {
|
override fun resolveDependencyGraph(requestingModule: KotlinModule): DependencyGraphResolution {
|
||||||
if (requestingModule !is KotlinGradleModule)
|
if (requestingModule !is KotlinGradleModule)
|
||||||
|
|||||||
+5
-3
@@ -21,15 +21,17 @@ import org.jetbrains.kotlin.project.model.*
|
|||||||
import java.util.ArrayDeque
|
import java.util.ArrayDeque
|
||||||
|
|
||||||
class GradleModuleDependencyResolver(
|
class GradleModuleDependencyResolver(
|
||||||
private val project: Project,
|
|
||||||
private val projectStructureMetadataModuleBuilder: ProjectStructureMetadataModuleBuilder,
|
private val projectStructureMetadataModuleBuilder: ProjectStructureMetadataModuleBuilder,
|
||||||
private val projectModuleBuilder: GradleProjectModuleBuilder
|
private val projectModuleBuilder: GradleProjectModuleBuilder
|
||||||
) : ModuleDependencyResolver {
|
) : ModuleDependencyResolver {
|
||||||
|
|
||||||
private fun configurationToResolve(requestingModule: KotlinModule): Configuration =
|
private fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration =
|
||||||
configurationToResolveMetadataDependencies(project, requestingModule)
|
configurationToResolveMetadataDependencies(requestingModule.project, requestingModule)
|
||||||
|
|
||||||
override fun resolveDependency(requestingModule: KotlinModule, moduleDependency: KotlinModuleDependency): KotlinModule? {
|
override fun resolveDependency(requestingModule: KotlinModule, moduleDependency: KotlinModuleDependency): KotlinModule? {
|
||||||
|
require(requestingModule is KotlinGradleModule)
|
||||||
|
val project = requestingModule.project
|
||||||
|
|
||||||
val allComponents = configurationToResolve(requestingModule).incoming.resolutionResult.allComponents
|
val allComponents = configurationToResolve(requestingModule).incoming.resolutionResult.allComponents
|
||||||
// TODO: optimize O(n) search, store the resolved components with dependency keys?
|
// TODO: optimize O(n) search, store the resolved components with dependency keys?
|
||||||
val component = allComponents.find { it.id.matchesModuleDependency(moduleDependency) }
|
val component = allComponents.find { it.id.matchesModuleDependency(moduleDependency) }
|
||||||
|
|||||||
+2
-2
@@ -33,10 +33,10 @@ internal class FragmentGranularMetadataResolver(
|
|||||||
|
|
||||||
private val metadataModuleBuilder = ProjectStructureMetadataModuleBuilder()
|
private val metadataModuleBuilder = ProjectStructureMetadataModuleBuilder()
|
||||||
private val projectModuleBuilder = GradleProjectModuleBuilder(true)
|
private val projectModuleBuilder = GradleProjectModuleBuilder(true)
|
||||||
private val moduleResolver = GradleModuleDependencyResolver(project, metadataModuleBuilder, projectModuleBuilder)
|
private val moduleResolver = GradleModuleDependencyResolver(metadataModuleBuilder, projectModuleBuilder)
|
||||||
private val variantResolver = GradleModuleVariantResolver(project)
|
private val variantResolver = GradleModuleVariantResolver(project)
|
||||||
private val fragmentResolver = DefaultModuleFragmentsResolver(variantResolver)
|
private val fragmentResolver = DefaultModuleFragmentsResolver(variantResolver)
|
||||||
private val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(project, moduleResolver)
|
private val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(moduleResolver)
|
||||||
|
|
||||||
private fun doResolveMetadataDependencies(): Iterable<MetadataDependencyResolution> {
|
private fun doResolveMetadataDependencies(): Iterable<MetadataDependencyResolution> {
|
||||||
val configurationToResolve = configurationToResolveMetadataDependencies(project, requestingFragment.containingModule)
|
val configurationToResolve = configurationToResolveMetadataDependencies(project, requestingFragment.containingModule)
|
||||||
|
|||||||
Reference in New Issue
Block a user