/** * After the execution of this method, every DependencyNode with an attached dependency is member of one conflict * group. * * @see DependencyGraphTransformer#transformGraph(DependencyNode, DependencyGraphTransformationContext) */ public DependencyNode transformGraph( DependencyNode node, DependencyGraphTransformationContext context ) throws RepositoryException { @SuppressWarnings( "unchecked" ) Map<String, Object> stats = (Map<String, Object>) context.get( TransformationContextKeys.STATS ); long time1 = System.currentTimeMillis(); Map<DependencyNode, Object> nodes = new IdentityHashMap<DependencyNode, Object>( 1024 ); Map<Object, ConflictGroup> groups = new HashMap<Object, ConflictGroup>( 1024 ); analyze( node, nodes, groups, new int[] { 0 } ); long time2 = System.currentTimeMillis(); Map<DependencyNode, Object> conflictIds = mark( nodes.keySet(), groups ); context.put( TransformationContextKeys.CONFLICT_IDS, conflictIds ); if ( stats != null ) { long time3 = System.currentTimeMillis(); stats.put( "ConflictMarker.analyzeTime", time2 - time1 ); stats.put( "ConflictMarker.markTime", time3 - time2 ); stats.put( "ConflictMarker.nodeCount", nodes.size() ); } return node; }
private Map<DependencyNode, Object> mark( Collection<DependencyNode> nodes, Map<Object, ConflictGroup> groups ) { Map<DependencyNode, Object> conflictIds = new IdentityHashMap<DependencyNode, Object>( nodes.size() + 1 ); for ( DependencyNode node : nodes ) { Dependency dependency = node.getDependency(); if ( dependency != null ) { Object key = toKey( dependency.getArtifact() ); conflictIds.put( node, groups.get( key ).index ); } } return conflictIds; }
if ( conflictIds == null ) ConflictMarker marker = new ConflictMarker(); marker.transformGraph( node, context );
private DependencyNode getDependencyTree(Artifact artifact) throws MojoExecutionException { try { CollectRequest collectRequest = new CollectRequest(new Dependency(artifact, "compile"), null, projectRepositories); DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(repositorySystemSession); session.setDependencySelector(new AndDependencySelector(new OptionalDependencySelector(), new ScopeDependencySelector1(), new ExclusionDependencySelector())); // between aether-util 0.9.0.M1 and M2, JavaEffectiveScopeCalculator was removed // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=397241 DependencyGraphTransformer transformer = new ChainedDependencyGraphTransformer(new ConflictMarker(), new ConflictResolver(new NearestVersionSelector(), new JavaScopeSelector(), new SimpleOptionalitySelector(), new JavaScopeDeriver()), new JavaDependencyContextRefiner()); session.setDependencyGraphTransformer(transformer); CollectResult result = repositorySystem.collectDependencies(session, collectRequest); return result.getRoot(); } catch (DependencyCollectionException e) { throw new MojoExecutionException("Cannot build project dependency tree", e); } }
if ( conflictIds == null ) ConflictMarker marker = new ConflictMarker(); marker.transformGraph( node, context );
private DependencyNode getDependencyTree(Artifact artifact) throws MojoExecutionException { try { CollectRequest collectRequest = new CollectRequest(new Dependency(artifact, "compile"), null, projectRepositories); DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(repositorySystemSession); session.setDependencySelector(new AndDependencySelector(new OptionalDependencySelector(), new ScopeDependencySelector1(), new ExclusionDependencySelector())); // between aether-util 0.9.0.M1 and M2, JavaEffectiveScopeCalculator was removed // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=397241 DependencyGraphTransformer transformer = new ChainedDependencyGraphTransformer(new ConflictMarker(), new ConflictResolver(new NearestVersionSelector(), new JavaScopeSelector(), new SimpleOptionalitySelector(), new JavaScopeDeriver()), new JavaDependencyContextRefiner()); session.setDependencyGraphTransformer(transformer); CollectResult result = repositorySystem.collectDependencies(session, collectRequest); return result.getRoot(); } catch (DependencyCollectionException e) { throw new MojoExecutionException("Cannot build project dependency tree", e); } }
/** * After the execution of this method, every DependencyNode with an attached dependency is member of one conflict * group. * * @see DependencyGraphTransformer#transformGraph(DependencyNode, DependencyGraphTransformationContext) */ public DependencyNode transformGraph( DependencyNode node, DependencyGraphTransformationContext context ) throws RepositoryException { @SuppressWarnings( "unchecked" ) Map<String, Object> stats = (Map<String, Object>) context.get( TransformationContextKeys.STATS ); long time1 = System.nanoTime(); Map<DependencyNode, Object> nodes = new IdentityHashMap<DependencyNode, Object>( 1024 ); Map<Object, ConflictGroup> groups = new HashMap<Object, ConflictGroup>( 1024 ); analyze( node, nodes, groups, new int[] { 0 } ); long time2 = System.nanoTime(); Map<DependencyNode, Object> conflictIds = mark( nodes.keySet(), groups ); context.put( TransformationContextKeys.CONFLICT_IDS, conflictIds ); if ( stats != null ) { long time3 = System.nanoTime(); stats.put( "ConflictMarker.analyzeTime", time2 - time1 ); stats.put( "ConflictMarker.markTime", time3 - time2 ); stats.put( "ConflictMarker.nodeCount", nodes.size() ); } return node; }
private Map<DependencyNode, Object> mark( Collection<DependencyNode> nodes, Map<Object, ConflictGroup> groups ) { Map<DependencyNode, Object> conflictIds = new IdentityHashMap<DependencyNode, Object>( nodes.size() + 1 ); for ( DependencyNode node : nodes ) { Dependency dependency = node.getDependency(); if ( dependency != null ) { Object key = toKey( dependency.getArtifact() ); conflictIds.put( node, groups.get( key ).index ); } } return conflictIds; }