Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,9 @@
import java.util.Collection;
import java.util.Optional;

import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.collection.CollectResult;
import org.eclipse.aether.collection.DependencyGraphTransformer;
import org.eclipse.aether.collection.DependencySelector;
import org.eclipse.aether.graph.DependencyFilter;
import org.eclipse.aether.scope.DependencyScope;
import org.eclipse.aether.scope.ResolutionScope;
import org.eclipse.aether.scope.ScopeManager;
Expand Down Expand Up @@ -58,25 +57,14 @@ public interface InternalScopeManager extends ScopeManager {
* Resolver specific: dependency selector to be used to support this scope (with its dependency
* and resolution scopes).
*/
DependencySelector getDependencySelector(ResolutionScope resolutionScope);

/**
* Resolver specific: dependency graph transformer to be used to support this scope (with its dependency
* and resolution scopes).
*/
DependencyGraphTransformer getDependencyGraphTransformer(ResolutionScope resolutionScope);
DependencySelector getDependencySelector(RepositorySystemSession session, ResolutionScope resolutionScope);

/**
* Resolver specific: post-processing to be used to support this scope (with its dependency
* and resolution scopes).
*/
CollectResult postProcess(ResolutionScope resolutionScope, CollectResult collectResult);

/**
* Resolver specific: dependency filter to be used to support this scope (with its dependency
* and resolution scopes).
*/
DependencyFilter getDependencyFilter(ResolutionScope resolutionScope);
CollectResult postProcess(
RepositorySystemSession session, ResolutionScope resolutionScope, CollectResult collectResult);

/**
* The mode of resolution scope: eliminate (remove all occurrences) or just remove.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ public final CollectResult collectDependencies(RepositorySystemSession session,
}

if (request.getResolutionScope() != null) {
return scopeManager.postProcess(request.getResolutionScope(), result);
return scopeManager.postProcess(session, request.getResolutionScope(), result);
} else {
return result;
}
Expand Down Expand Up @@ -312,8 +312,7 @@ protected RepositorySystemSession setUpSession(
ResolutionScope resolutionScope = collectRequest.getResolutionScope();
if (resolutionScope != null) {
requireNonNull(scopeManager, "ScopeManager is not set on session");
optimized.setDependencySelector(scopeManager.getDependencySelector(resolutionScope));
optimized.setDependencyGraphTransformer(scopeManager.getDependencyGraphTransformer(resolutionScope));
optimized.setDependencySelector(scopeManager.getDependencySelector(session, resolutionScope));
}
return optimized;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,10 @@
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;

import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.collection.CollectResult;
import org.eclipse.aether.collection.DependencyGraphTransformer;
import org.eclipse.aether.collection.DependencySelector;
import org.eclipse.aether.graph.DependencyFilter;
import org.eclipse.aether.impl.scope.BuildPath;
import org.eclipse.aether.impl.scope.BuildScope;
import org.eclipse.aether.impl.scope.BuildScopeQuery;
Expand All @@ -48,10 +47,6 @@
import org.eclipse.aether.util.filter.ScopeDependencyFilter;
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
import org.eclipse.aether.util.graph.transformer.ConfigurableVersionSelector;
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
import org.eclipse.aether.util.graph.visitor.CloningDependencyVisitor;
import org.eclipse.aether.util.graph.visitor.FilteringDependencyVisitor;

Expand Down Expand Up @@ -143,31 +138,33 @@ public Optional<BuildScope> getDependencyScopeMainProjectBuildScope(DependencySc
}

@Override
public DependencySelector getDependencySelector(ResolutionScope resolutionScope) {
public DependencySelector getDependencySelector(RepositorySystemSession session, ResolutionScope resolutionScope) {
ResolutionScopeImpl rs = translate(resolutionScope);
Set<String> directlyExcludedLabels = getDirectlyExcludedLabels(rs);
Set<String> transitivelyExcludedLabels = getTransitivelyExcludedLabels(rs);

return new AndDependencySelector(
rs.getMode() == Mode.ELIMINATE
? ScopeDependencySelector.fromTo(2, 2, null, directlyExcludedLabels)
: ScopeDependencySelector.fromTo(1, 2, null, directlyExcludedLabels),
ScopeDependencySelector.from(2, null, transitivelyExcludedLabels),
OptionalDependencySelector.fromDirect(),
new ExclusionDependencySelector());
}

@Override
public DependencyGraphTransformer getDependencyGraphTransformer(ResolutionScope resolutionScope) {
return new ChainedDependencyGraphTransformer(
new ConflictResolver(
new ConfigurableVersionSelector(), new ManagedScopeSelector(this),
new SimpleOptionalitySelector(), new ManagedScopeDeriver(this)),
new ManagedDependencyContextRefiner(this));
if (session.getDependencySelector() != null) {
return new AndDependencySelector(
rs.getMode() == Mode.ELIMINATE
? ScopeDependencySelector.fromTo(2, 2, null, directlyExcludedLabels)
: ScopeDependencySelector.fromTo(1, 2, null, directlyExcludedLabels),
ScopeDependencySelector.from(2, null, transitivelyExcludedLabels),
OptionalDependencySelector.fromDirect(),
new ExclusionDependencySelector(),
session.getDependencySelector());
} else {
return new AndDependencySelector(
rs.getMode() == Mode.ELIMINATE
? ScopeDependencySelector.fromTo(2, 2, null, directlyExcludedLabels)
: ScopeDependencySelector.fromTo(1, 2, null, directlyExcludedLabels),
ScopeDependencySelector.from(2, null, transitivelyExcludedLabels),
OptionalDependencySelector.fromDirect(),
new ExclusionDependencySelector());
}
}

@Override
public CollectResult postProcess(ResolutionScope resolutionScope, CollectResult collectResult) {
public CollectResult postProcess(
RepositorySystemSession session, ResolutionScope resolutionScope, CollectResult collectResult) {
ResolutionScopeImpl rs = translate(resolutionScope);
if (rs.getMode() == Mode.ELIMINATE) {
CloningDependencyVisitor cloning = new CloningDependencyVisitor();
Expand All @@ -179,11 +176,6 @@ public CollectResult postProcess(ResolutionScope resolutionScope, CollectResult
return collectResult;
}

@Override
public DependencyFilter getDependencyFilter(ResolutionScope resolutionScope) {
return new ScopeDependencyFilter(null, getDirectlyExcludedLabels(translate(resolutionScope)));
}

@Override
public DependencyScope createDependencyScope(String id, boolean transitive, Collection<BuildScopeQuery> presence) {
return new DependencyScopeImpl(id, transitive, presence);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.eclipse.aether.collection.DependencyManager;
import org.eclipse.aether.collection.DependencySelector;
import org.eclipse.aether.collection.DependencyTraverser;
import org.eclipse.aether.impl.scope.InternalScopeManager;
import org.eclipse.aether.internal.impl.scope.ManagedDependencyContextRefiner;
import org.eclipse.aether.internal.impl.scope.ManagedScopeDeriver;
import org.eclipse.aether.internal.impl.scope.ManagedScopeSelector;
Expand Down Expand Up @@ -65,7 +66,7 @@
*/
public class SessionBuilderSupplier implements Supplier<SessionBuilder> {
protected final RepositorySystem repositorySystem;
protected final ScopeManagerImpl scopeManager;
protected final InternalScopeManager scopeManager;

public SessionBuilderSupplier(RepositorySystem repositorySystem) {
this.repositorySystem = requireNonNull(repositorySystem);
Expand All @@ -88,12 +89,16 @@ protected void configureSessionBuilder(SessionBuilder session) {
session.setArtifactDescriptorPolicy(getArtifactDescriptorPolicy());
}

protected InternalScopeManager getScopeManager() {
return this.scopeManager;
}

protected DependencyTraverser getDependencyTraverser() {
return new FatArtifactTraverser();
}

protected DependencyManager getDependencyManager() {
return new ClassicDependencyManager(scopeManager);
return new ClassicDependencyManager(getScopeManager());
}

protected DependencySelector getDependencySelector() {
Expand All @@ -110,10 +115,10 @@ protected DependencyGraphTransformer getDependencyGraphTransformer() {
return new ChainedDependencyGraphTransformer(
new ConflictResolver(
new ConfigurableVersionSelector(),
new ManagedScopeSelector(this.scopeManager),
new ManagedScopeSelector(getScopeManager()),
new SimpleOptionalitySelector(),
new ManagedScopeDeriver(this.scopeManager)),
new ManagedDependencyContextRefiner(this.scopeManager));
new ManagedScopeDeriver(getScopeManager())),
new ManagedDependencyContextRefiner(getScopeManager()));
}

protected ArtifactTypeRegistry getArtifactTypeRegistry() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ protected DependencyManager getDependencyManager() {

public DependencyManager getDependencyManager(boolean transitive) {
return transitive
? new TransitiveDependencyManager(this.getScopeManager())
: new ClassicDependencyManager(this.scopeManager);
? new TransitiveDependencyManager(getScopeManager())
: new ClassicDependencyManager(getScopeManager());
}

protected DependencySelector getDependencySelector() {
Expand All @@ -112,10 +112,10 @@ protected DependencyGraphTransformer getDependencyGraphTransformer() {
return new ChainedDependencyGraphTransformer(
new ConflictResolver(
new ConfigurableVersionSelector(),
new ManagedScopeSelector(this.getScopeManager()),
new ManagedScopeSelector(getScopeManager()),
new SimpleOptionalitySelector(),
new ManagedScopeDeriver(this.getScopeManager())),
new ManagedDependencyContextRefiner(this.getScopeManager()));
new ManagedScopeDeriver(getScopeManager())),
new ManagedDependencyContextRefiner(getScopeManager()));
}

protected ArtifactTypeRegistry getArtifactTypeRegistry() {
Expand Down