Skip to content

Commit

Permalink
Do not defer selection for root module
Browse files Browse the repository at this point in the history
  • Loading branch information
ljacomet committed Jul 24, 2020
1 parent f8a2d52 commit d2ba516
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ class ModuleResolveState implements CandidateModule {
private final Comparator<Version> versionComparator;
private final VersionParser versionParser;
final ResolveOptimizations resolveOptimizations;
private final boolean rootModule;
private SelectorStateResolver<ComponentState> selectorStateResolver;
private final PendingDependencies pendingDependencies;
private ComponentState selected;
Expand All @@ -81,14 +82,15 @@ class ModuleResolveState implements CandidateModule {
Comparator<Version> versionComparator,
VersionParser versionParser,
SelectorStateResolver<ComponentState> selectorStateResolver,
ResolveOptimizations resolveOptimizations) {
ResolveOptimizations resolveOptimizations, boolean rootModule) {
this.idGenerator = idGenerator;
this.id = id;
this.metaDataResolver = metaDataResolver;
this.attributesFactory = attributesFactory;
this.versionComparator = versionComparator;
this.versionParser = versionParser;
this.resolveOptimizations = resolveOptimizations;
this.rootModule = rootModule;
this.pendingDependencies = new PendingDependencies(id);
this.selectorStateResolver = selectorStateResolver;
selectors = new ModuleSelectors<SelectorState>(versionComparator);
Expand Down Expand Up @@ -400,7 +402,7 @@ public void maybeUpdateSelection() {
// Never update selection for a replaced module
return;
}
if (selectors.checkDeferSelection()) {
if (!rootModule && selectors.checkDeferSelection()) {
// Selection deferred as we know another selector will be added soon
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ public ResolveState(IdGenerator<Long> idGenerator,
this.queue = new ArrayDeque<>(graphSize);
this.resolveOptimizations = new ResolveOptimizations();
this.attributeDesugaring = new AttributeDesugaring(attributesFactory);
// Create root module
getModule(rootResult.getModuleVersionId().getModule(), true);
ComponentState rootVersion = getRevision(rootResult.getId(), rootResult.getModuleVersionId(), rootResult.getMetadata());
final ResolvedConfigurationIdentifier id = new ResolvedConfigurationIdentifier(rootVersion.getId(), rootConfigurationName);
ConfigurationMetadata configurationMetadata = rootVersion.getMetadata().getConfiguration(id.getConfiguration());
Expand All @@ -143,7 +145,11 @@ RootNode getRoot() {
}

public ModuleResolveState getModule(ModuleIdentifier id) {
return modules.computeIfAbsent(id, mid -> new ModuleResolveState(idGenerator, id, metaDataResolver, attributesFactory, versionComparator, versionParser, selectorStateResolver, resolveOptimizations));
return getModule(id, false);
}

private ModuleResolveState getModule(ModuleIdentifier id, boolean rootModule) {
return modules.computeIfAbsent(id, mid -> new ModuleResolveState(idGenerator, id, metaDataResolver, attributesFactory, versionComparator, versionParser, selectorStateResolver, resolveOptimizations, rootModule));
}

@Override
Expand Down

0 comments on commit d2ba516

Please sign in to comment.