Class NearestVersionSelector
- java.lang.Object
-
- org.eclipse.aether.util.graph.transformer.ConflictResolver.VersionSelector
-
- org.eclipse.aether.util.graph.transformer.NearestVersionSelector
-
public final class NearestVersionSelector extends ConflictResolver.VersionSelector
A version selector for use withConflictResolver
that resolves version conflicts using a nearest-wins strategy. If there is no single node that satisfies all encountered version ranges, the selector will fail.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
NearestVersionSelector.ConflictGroup
-
Constructor Summary
Constructors Constructor Description NearestVersionSelector()
Creates a new instance of this version selector.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
backtrack(NearestVersionSelector.ConflictGroup group, ConflictResolver.ConflictContext context)
private boolean
isAcceptable(NearestVersionSelector.ConflictGroup group, Version version)
private boolean
isNearer(ConflictResolver.ConflictItem item1, ConflictResolver.ConflictItem item2)
private UnsolvableVersionConflictException
newFailure(ConflictResolver.ConflictContext context)
void
selectVersion(ConflictResolver.ConflictContext context)
Determines the winning node among conflicting dependencies.-
Methods inherited from class org.eclipse.aether.util.graph.transformer.ConflictResolver.VersionSelector
getInstance
-
-
-
-
Method Detail
-
selectVersion
public void selectVersion(ConflictResolver.ConflictContext context) throws RepositoryException
Description copied from class:ConflictResolver.VersionSelector
Determines the winning node among conflicting dependencies. Implementations will usually iterateConflictResolver.ConflictContext.getItems()
, inspectConflictResolver.ConflictItem.getNode()
and eventually callConflictResolver.ConflictContext.setWinner(ConflictResolver.ConflictItem)
to deliver the winner. Failure to select a winner will automatically fail the entire conflict resolution.- Specified by:
selectVersion
in classConflictResolver.VersionSelector
- Parameters:
context
- The conflict context, must not benull
.- Throws:
RepositoryException
- If the version selection failed.
-
backtrack
private void backtrack(NearestVersionSelector.ConflictGroup group, ConflictResolver.ConflictContext context) throws UnsolvableVersionConflictException
-
isAcceptable
private boolean isAcceptable(NearestVersionSelector.ConflictGroup group, Version version)
-
isNearer
private boolean isNearer(ConflictResolver.ConflictItem item1, ConflictResolver.ConflictItem item2)
-
newFailure
private UnsolvableVersionConflictException newFailure(ConflictResolver.ConflictContext context)
-
-