final CollectingDependencyNodeVisitor visitor = new CollectingDependencyNodeVisitor(); dn.accept(visitor);
final CollectingDependencyNodeVisitor collectingVisitor = new CollectingDependencyNodeVisitor(); node.accept( collectingVisitor );
/** * Find all of the dependencies for a specified artifact */ private List<PackageDescriptor> addPackageDependencies(PackageDescriptor parent, String groupId, String artifactId, String version, DependencyNode parentDep) { List<PackageDescriptor> packageDependency = new LinkedList<PackageDescriptor>(); List<DependencyNode> children = parentDep.getChildren(); if (children != null) { for (DependencyNode node : children) { DependencyNodeVisitor nlg = new CollectingDependencyNodeVisitor(); node.accept(nlg); List<DependencyNode> deps = ((CollectingDependencyNodeVisitor) nlg).getNodes(); for (DependencyNode dep : deps) { Artifact artifact = dep.getArtifact(); PackageDescriptor pkgDep = new PackageDescriptor("maven", artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion()); // Only include each package once. They might be transitive dependencies from multiple places. if (!parents.containsKey(pkgDep)) { pkgDep = request.add("maven", artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion()); parents.put(pkgDep, parent); packageDependency.add(pkgDep); } } } } return packageDependency; }
/** * This method descends the specified node and adds all transitive dependencies to the list of artifacts UNLESS the * configuration says that there are exclusions * * @param dependencyNode the graph node * @param dependency the configuration dependency from maven config * * @return a list of included transitive deps */ private static List<Artifact> findIncludedTransitiveDeps(DependencyNode dependencyNode, final Dependency dependency) { // // we want all the transitive deps to be scanned as long as they are not explicitly excluded DependencyNodeFilter includedDeps = new DependencyNodeFilter() { @Override public boolean accept(DependencyNode node) { return !isExcluded(node.getArtifact(), dependency.getExclusions()); } }; CollectingDependencyNodeVisitor collector = new CollectingDependencyNodeVisitor(); FilteringDependencyNodeVisitor filterer = new FilteringDependencyNodeVisitor(collector, includedDeps); dependencyNode.accept(filterer); List<DependencyNode> nodes = collector.getNodes(); return newArrayList(Iterables.transform(nodes, new Function<DependencyNode, Artifact>() { @Override public Artifact apply(DependencyNode input) { return input.getArtifact(); } })); }
boolean verbose) { CollectingDependencyNodeVisitor visitor = new CollectingDependencyNodeVisitor(); rootNode.accept(visitor); for (DependencyNode node : visitor.getNodes()) {
private void filteredDependencies( final ArtifactFilter artifactFilter, Collection<Artifact> filteredDependencies ) CollectingDependencyNodeVisitor collectingDependencyNodeVisitor = new CollectingDependencyNodeVisitor(); final Artifact rootArtifact = m_dependencyGraph.getArtifact(); ArtifactFilter filter = new ArtifactFilter()
/** * Serializes the specified dependency tree to a string. * * @param theRootNode the dependency tree root node to serialize * @return the serialized dependency tree */ private String serializeDependencyTree( DependencyNode theRootNode ) { StringWriter writer = new StringWriter(); DependencyNodeVisitor visitor = getSerializingDependencyNodeVisitor( writer ); // TODO: remove the need for this when the serializer can calculate last nodes from visitor calls only visitor = new BuildingDependencyNodeVisitor( visitor ); DependencyNodeFilter filter = createDependencyNodeFilter(); if ( filter != null ) { CollectingDependencyNodeVisitor collectingVisitor = new CollectingDependencyNodeVisitor(); DependencyNodeVisitor firstPassVisitor = new FilteringDependencyNodeVisitor( collectingVisitor, filter ); theRootNode.accept( firstPassVisitor ); DependencyNodeFilter secondPassFilter = new AncestorOrSelfDependencyNodeFilter( collectingVisitor.getNodes() ); visitor = new FilteringDependencyNodeVisitor( visitor, secondPassFilter ); } theRootNode.accept( visitor ); return writer.toString(); }