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 GraphConflictResolutionPolicyartifact, 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 MetadataGraphEdgecleanEdges(MetadataGraphVertex v, List<MetadataGraphEdge> edges, ArtifactScopeEnum scope) private MetadataGraphresolveConflicts(MetadataGraph graph, ArtifactScopeEnum scope) Cleanses the supplied graph by leaving only one directed versioned edge\ between any two nodes, if multiple exists.private voidvisit(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:GraphConflictResolverCleanses the supplied graph by leaving only one directed versioned edge\ between any two nodes, if multiple exists. Uses scope relationships, defined inArtifactScopeEnum- Specified by:
resolveConflictsin 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)
-