/** * Visits all nodes from the given node and collects dependencies. * * @param node DependencyNode from which to search. * @param collecting Whether we are currently collecting artifacts. */ public void visit( DependencyNode node, boolean collecting ) { if ( collecting ) { dependencies.add( node.getArtifact() ); } if ( matchesTarget( node.getArtifact() ) ) { collecting = true; log.debug( "Found target. Collecting dependencies after " + node.getArtifact() ); } for ( final DependencyNode child : node.getChildren() ) { visit( child, collecting ); } }
if (filter.include(node.getArtifact())) { nodes.add(node);
ExceptionCollection exCol = collectDependencyManagementDependencies(buildingRequest, project, nodes, aggregate); for (DependencyNode dependencyNode : nodes) { if (artifactScopeExcluded.passes(dependencyNode.getArtifact().getScope()) || artifactTypeExcluded.passes(dependencyNode.getArtifact().getType())) { continue; String version = null; List<ArtifactVersion> availableVersions = null; if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(dependencyNode.getArtifact().getScope())) { for (org.apache.maven.model.Dependency d : project.getDependencies()) { final Artifact a = dependencyNode.getArtifact(); if (d.getSystemPath() != null && artifactsMatch(d, a)) { final ArtifactCoordinate coordinate = TransferUtils.toArtifactCoordinate(dependencyNode.getArtifact()); final Artifact result; try { getLog().debug(String.format("Aggregate : %s", aggregate)); boolean addException = true; if (!aggregate || addReactorDependency(engine, dependencyNode.getArtifact())) { addException = false; && dependencyNode.getArtifact().isSnapshot() && aggregate && addSnapshotReactorDependency(engine, dependencyNode.getArtifact())) { continue; project.getName() + ":" + dependencyNode.getArtifact().getScope()); if (deps != null) { Dependency d = null;
for ( final DependencyNode dep : dependencies ) final boolean isNativeLibrary = isNativeLibrary( sharedLibraries, dep.getArtifact().getType() ); if ( isNativeLibrary ) artifacts.add( dep.getArtifact() );
@Override public Artifact apply(DependencyNode input) { return input.getArtifact(); } }));
@Override public boolean endVisit(DependencyNode node) { Artifact artifact = node.getArtifact(); Optional<Dependency> dependencyOption = artifactInConfiguredList(artifact, configuredScannedDependencies); if (dependencyOption.isPresent()) { artifacts.addAll(findIncludedTransitiveDeps(node, dependencyOption.get())); } return true; } });
/** * {@inheritDoc} */ @Override public boolean accept( DependencyNode node ) { Artifact artifact = node.getArtifact(); return filter.include( artifact ); }
/** * {@inheritDoc} */ public boolean accept( DependencyNode node ) { Artifact artifact = node.getArtifact(); return filter.include( artifact ); }
@Override public boolean accept(DependencyNode node) { return !isExcluded(node.getArtifact(), dependency.getExclusions()); } };
private List<Artifact> getHierarchyChain(DependencyNode baseNode) { List<Artifact> chain = new ArrayList<Artifact>(); DependencyNode node = baseNode; while((node = node.getParent()) != null) { chain.add(node.getArtifact()); } return chain; }
/** * @return a list of <code>Artifact</code> from the project. */ public List<Artifact> getProjectDependencies() { if ( projectDependencies != null ) { return projectDependencies; } projectDependencies = new ArrayList<>(); for ( DependencyNode dep : dependencyNode.getChildren() ) { projectDependencies.add( dep.getArtifact() ); } return projectDependencies; }
/** * {@inheritDoc} */ public boolean endVisit( DependencyNode node ) { if ( throwable != null ) { return false; } if ( !currentModule.empty() && ( currentModule.peek().equals( node.getArtifact().getDependencyConflictId() ) || currentModule.peek().equals( LIB_ID + node.getArtifact().getDependencyConflictId() ) ) ) { currentModule.pop(); } return true; }
/** * {@inheritDoc} */ public boolean endVisit( DependencyNode node ) { if ( throwable != null ) { return false; } if ( !currentModule.empty() && ( currentModule.peek().equals( node.getArtifact().getDependencyConflictId() ) || currentModule.peek().equals( LIB_ID + node.getArtifact().getDependencyConflictId() ) ) ) { currentModule.pop(); } return true; }
/** * Recursive method to get all dependencies from a given <code>dependencyNode</code> * * @param dependencyNode not null */ private void addAllChildrenDependencies( DependencyNode dependencyNode ) { for ( DependencyNode subdependencyNode : dependencyNode.getChildren() ) { Artifact artifact = subdependencyNode.getArtifact(); if ( artifact.getGroupId().equals( project.getGroupId() ) && artifact.getArtifactId().equals( project.getArtifactId() ) && artifact.getVersion().equals( project.getVersion() ) ) { continue; } if ( !allDependencies.contains( artifact ) ) { allDependencies.add( artifact ); } addAllChildrenDependencies( subdependencyNode ); } }
private void visitNode(DependencyNode baseNode,int level,List<VulnerableLibrary> vulnerabilities) { Artifact a = baseNode.getArtifact(); //getLog().info(StringUtils.repeat(" ",level)+" -> "+a.getGroupId()+":"+a.getArtifactId()+":"+a.getVersion()); List<CveVulnerability> cves = victimDb.search(a.getGroupId(), a.getArtifactId(), a.getVersion()); if(cves.size() > 0) { vulnerabilities.add(new VulnerableLibrary(a, cves, getHierarchyChain(baseNode))); } for (DependencyNode childNode : baseNode.getChildren()) { visitNode(childNode, level + 1, vulnerabilities); } }
private Set<Artifact> getAllDescendants( DependencyNode node ) { Set<Artifact> children = null; if ( node.getChildren() != null ) { children = new HashSet<Artifact>(); for ( DependencyNode depNode : node.getChildren() ) { children.add( depNode.getArtifact() ); Set<Artifact> subNodes = getAllDescendants( depNode ); if ( subNodes != null ) { children.addAll( subNodes ); } } } return children; }
private Set<Artifact> getAllDescendants( DependencyNode node ) { Set<Artifact> children = null; if( node.getChildren() != null ) { children = new HashSet<Artifact>(); for( DependencyNode depNode : node.getChildren() ) { children.add( depNode.getArtifact() ); Set<Artifact> subNodes = getAllDescendants( depNode ); if( subNodes != null ) { children.addAll( subNodes ); } } } return children; }
private Set<Artifact> getAllDescendants( DependencyNode node ) { Set<Artifact> children = null; if ( node.getChildren() != null ) { children = new HashSet<Artifact>(); for ( DependencyNode depNode : node.getChildren() ) { children.add( depNode.getArtifact() ); Set<Artifact> subNodes = getAllDescendants( depNode ); if ( subNodes != null ) { children.addAll( subNodes ); } } } return children; }
/** * {@inheritDoc} */ @Override public boolean endVisit( DependencyNode node ) { if ( node.getParent() == null || node.getParent() == node ) { // dump edges on last node endVisit writer.println( "#" ); for ( EdgeAppender edge : edges ) { writer.println( edge.toString() ); } } else { DependencyNode p = node.getParent(); // using scope as edge label. edges.add( new EdgeAppender( p, node, node.getArtifact().getScope() ) ); } return true; }
@Override protected boolean accept(DependencyNode g) { MavenArtifact a = wrap(g.getArtifact()); if (!parsedScopes.contains(a.getScope())) return false; if (!includesOptional && a.isOptional()) return false; // cut off optional dependencies try { if (!a.isPlugin()) return g.getParent()==null; // only traverse chains of direct plugin dependencies, unless it's from the root } catch (IOException e) { getLog().warn("Failed to process "+a, e); } MavenArtifact v = hpis.get(a.getArtifactId()); if (v==null || a.isNewerThan(v)) hpis.put(a.getArtifactId(),a); return true; }