Search in sources :

Example 1 with DependencyNodeVisitor

use of org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor in project scala-maven-plugin by davidB.

the class ScalaMojoSupport method checkArtifactForScalaVersion.

/**
 * Visits a node (and all dependencies) to see if it contains duplicate scala versions
 */
private void checkArtifactForScalaVersion(VersionNumber requiredScalaVersion, DependencyNode rootNode) throws Exception {
    final CheckScalaVersionVisitor visitor = new CheckScalaVersionVisitor(requiredScalaVersion, getLog(), getScalaOrganization());
    CollectingDependencyNodeVisitor collectingVisitor = new CollectingDependencyNodeVisitor();
    DependencyNodeVisitor firstPassVisitor = new FilteringDependencyNodeVisitor(collectingVisitor, createScalaDistroDependencyFilter());
    rootNode.accept(firstPassVisitor);
    DependencyNodeFilter secondPassFilter = new AncestorOrSelfDependencyNodeFilter(collectingVisitor.getNodes());
    DependencyNodeVisitor filteredVisitor = new FilteringDependencyNodeVisitor(visitor, secondPassFilter);
    rootNode.accept(filteredVisitor);
    if (visitor.isFailed()) {
        visitor.logScalaDependents();
        if (failOnMultipleScalaVersions) {
            getLog().error("Multiple versions of scala libraries detected!");
            throw new MojoFailureException("Multiple versions of scala libraries detected!");
        }
        getLog().warn("Multiple versions of scala libraries detected!");
    }
}
Also used : FilteringDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNodeVisitor) CollectingDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor) AncestorOrSelfDependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.AncestorOrSelfDependencyNodeFilter) CheckScalaVersionVisitor(scala_maven_dependency.CheckScalaVersionVisitor) AncestorOrSelfDependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.AncestorOrSelfDependencyNodeFilter) AndDependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.AndDependencyNodeFilter) DependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.DependencyNodeFilter) MojoFailureException(org.apache.maven.plugin.MojoFailureException) DependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor) FilteringDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNodeVisitor) CollectingDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor)

Example 2 with DependencyNodeVisitor

use of org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor in project maven-plugins by apache.

the class DependencyConvergenceReport method serializeDependencyTree.

/**
 * Serializes the specified dependency tree to a string.
 *
 * @param rootNode the dependency tree root node to serialize
 * @return the serialized dependency tree
 */
private void serializeDependencyTree(DependencyNode rootNode, String key, Sink sink) {
    DependencyNodeVisitor visitor = getSerializingDependencyNodeVisitor(sink);
    visitor = new BuildingDependencyNodeVisitor(visitor);
    DependencyNodeFilter filter = createDependencyNodeFilter(key);
    if (filter != null) {
        CollectingDependencyNodeVisitor collectingVisitor = new CollectingDependencyNodeVisitor();
        DependencyNodeVisitor firstPassVisitor = new FilteringDependencyNodeVisitor(collectingVisitor, filter);
        rootNode.accept(firstPassVisitor);
        DependencyNodeFilter secondPassFilter = new AncestorOrSelfDependencyNodeFilter(collectingVisitor.getNodes());
        visitor = new FilteringDependencyNodeVisitor(visitor, secondPassFilter);
    }
    rootNode.accept(visitor);
}
Also used : FilteringDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNodeVisitor) CollectingDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor) BuildingDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.BuildingDependencyNodeVisitor) AncestorOrSelfDependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.AncestorOrSelfDependencyNodeFilter) ArtifactDependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.ArtifactDependencyNodeFilter) AncestorOrSelfDependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.AncestorOrSelfDependencyNodeFilter) AndDependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.AndDependencyNodeFilter) DependencyNodeFilter(org.apache.maven.shared.dependency.tree.filter.DependencyNodeFilter) SinkSerializingDependencyNodeVisitor(org.apache.maven.report.projectinfo.dependencies.SinkSerializingDependencyNodeVisitor) DependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor) FilteringDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNodeVisitor) CollectingDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor) BuildingDependencyNodeVisitor(org.apache.maven.shared.dependency.tree.traversal.BuildingDependencyNodeVisitor)

Aggregations

AncestorOrSelfDependencyNodeFilter (org.apache.maven.shared.dependency.tree.filter.AncestorOrSelfDependencyNodeFilter)2 AndDependencyNodeFilter (org.apache.maven.shared.dependency.tree.filter.AndDependencyNodeFilter)2 DependencyNodeFilter (org.apache.maven.shared.dependency.tree.filter.DependencyNodeFilter)2 CollectingDependencyNodeVisitor (org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor)2 DependencyNodeVisitor (org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor)2 FilteringDependencyNodeVisitor (org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNodeVisitor)2 MojoFailureException (org.apache.maven.plugin.MojoFailureException)1 SinkSerializingDependencyNodeVisitor (org.apache.maven.report.projectinfo.dependencies.SinkSerializingDependencyNodeVisitor)1 ArtifactDependencyNodeFilter (org.apache.maven.shared.dependency.tree.filter.ArtifactDependencyNodeFilter)1 BuildingDependencyNodeVisitor (org.apache.maven.shared.dependency.tree.traversal.BuildingDependencyNodeVisitor)1 CheckScalaVersionVisitor (scala_maven_dependency.CheckScalaVersionVisitor)1