public abstract static class ConflictResolver.ScopeSelector extends Object
ConflictResolver
that determines the effective scope of a dependency from a
potentially conflicting set of derived scopes
. The scope selector gets invoked after the
ConflictResolver.VersionSelector
has picked the winning node.
Note: Implementations must be stateless.
Constructor and Description |
---|
ConflictResolver.ScopeSelector() |
Modifier and Type | Method and Description |
---|---|
ConflictResolver.ScopeSelector |
getInstance(org.eclipse.aether.graph.DependencyNode root,
org.eclipse.aether.collection.DependencyGraphTransformationContext context)
Retrieves the scope selector for use during the specified graph transformation.
|
abstract void |
selectScope(ConflictResolver.ConflictContext context)
Determines the effective scope of the dependency given by
ConflictResolver.ConflictContext.getWinner() . |
public ConflictResolver.ScopeSelector()
public ConflictResolver.ScopeSelector getInstance(org.eclipse.aether.graph.DependencyNode root, org.eclipse.aether.collection.DependencyGraphTransformationContext context) throws org.eclipse.aether.RepositoryException
ConflictResolver.transformGraph(DependencyNode, DependencyGraphTransformationContext)
invocation to
allow implementations to prepare any auxiliary data that is needed for their operation. Given that
implementations must be stateless, a new instance needs to be returned to hold such auxiliary data. The
default implementation simply returns the current instance which is appropriate for implementations which do
not require auxiliary data.root
- The root node of the (possibly cyclic!) graph to transform, must not be null
.context
- The graph transformation context, must not be null
.null
.org.eclipse.aether.RepositoryException
- If the instance could not be retrieved.public abstract void selectScope(ConflictResolver.ConflictContext context) throws org.eclipse.aether.RepositoryException
ConflictResolver.ConflictContext.getWinner()
.
Implementations will usually iterate ConflictResolver.ConflictContext.getItems()
, inspect
ConflictResolver.ConflictItem.getScopes()
and eventually call ConflictResolver.ConflictContext.setScope(String)
to deliver the
effective scope.context
- The conflict context, must not be null
.org.eclipse.aether.RepositoryException
- If the scope selection failed.Copyright © 2010–2017 The Apache Software Foundation. All rights reserved.