Class ConflictResolver.ScopeSelector

java.lang.Object
org.eclipse.aether.util.graph.transformer.ConflictResolver.ScopeSelector
Direct Known Subclasses:
JavaScopeSelector
Enclosing class:
ConflictResolver

public abstract static class ConflictResolver.ScopeSelector extends Object
An extension point of 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 Details

  • Method Details

    • getInstance

      public ConflictResolver.ScopeSelector getInstance(org.eclipse.aether.graph.DependencyNode root, org.eclipse.aether.collection.DependencyGraphTransformationContext context) throws org.eclipse.aether.RepositoryException
      Retrieves the scope selector for use during the specified graph transformation. The conflict resolver calls this method once per 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.
      Parameters:
      root - The root node of the (possibly cyclic!) graph to transform, must not be null.
      context - The graph transformation context, must not be null.
      Returns:
      The scope selector to use for the given graph transformation, never null.
      Throws:
      org.eclipse.aether.RepositoryException - If the instance could not be retrieved.
    • selectScope

      public abstract void selectScope(ConflictResolver.ConflictContext context) throws org.eclipse.aether.RepositoryException
      Determines the effective scope of the dependency given by 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.
      Parameters:
      context - The conflict context, must not be null.
      Throws:
      org.eclipse.aether.RepositoryException - If the scope selection failed.