Class DefaultGraphConflictResolver
java.lang.Object
org.apache.maven.repository.metadata.DefaultGraphConflictResolver
- All Implemented Interfaces:
GraphConflictResolver
@Component(role=GraphConflictResolver.class)
public class DefaultGraphConflictResolver
extends Object
implements GraphConflictResolver
Default conflict resolver.Implements closer newer first policy by default, but could be configured via plexus
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected GraphConflictResolutionPolicy
artifact, closer to the entry point, is selectedFields inherited from interface org.apache.maven.repository.metadata.GraphConflictResolver
ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate MetadataGraphEdge
cleanEdges
(MetadataGraphVertex v, List<MetadataGraphEdge> edges, ArtifactScopeEnum scope) private MetadataGraph
resolveConflicts
(MetadataGraph graph, ArtifactScopeEnum scope) Cleanses the supplied graph by leaving only one directed versioned edge\ between any two nodes, if multiple exists.private void
visit
(MetadataGraphVertex from, List<MetadataGraphVertex> visited, MetadataGraph graph)
-
Field Details
-
policy
@Requirement(role=GraphConflictResolutionPolicy.class) protected GraphConflictResolutionPolicy policyartifact, closer to the entry point, is selected
-
-
Constructor Details
-
DefaultGraphConflictResolver
public DefaultGraphConflictResolver()
-
-
Method Details
-
resolveConflicts
public MetadataGraph resolveConflicts(MetadataGraph graph, ArtifactScopeEnum scope) throws GraphConflictResolutionException Description copied from interface:GraphConflictResolver
Cleanses the supplied graph by leaving only one directed versioned edge\ between any two nodes, if multiple exists. Uses scope relationships, defined inArtifactScopeEnum
- Specified by:
resolveConflicts
in interfaceGraphConflictResolver
- Parameters:
graph
- the "dirty" graph to be simplified via conflict resolutionscope
- scope for which the graph should be resolved- Returns:
- resulting "clean" graph for the specified scope
- Throws:
GraphConflictResolutionException
-
findLinkedSubgraph
-
visit
private void visit(MetadataGraphVertex from, List<MetadataGraphVertex> visited, MetadataGraph graph) -
cleanEdges
private MetadataGraphEdge cleanEdges(MetadataGraphVertex v, List<MetadataGraphEdge> edges, ArtifactScopeEnum scope)
-