This is an automated email from the ASF dual-hosted git repository.

bbende pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi-maven.git


The following commit(s) were added to refs/heads/master by this push:
     new 1c37641  NIFI-6272 Upgrade to maven-dependency-tree 3.0.1
1c37641 is described below

commit 1c37641096a143fa8960285abe52f3eba1891d9c
Author: Bryan Bende <[email protected]>
AuthorDate: Mon May 6 16:31:49 2019 -0400

    NIFI-6272 Upgrade to maven-dependency-tree 3.0.1
    
    This closes #11.
---
 pom.xml                                            |  2 +-
 src/main/java/org/apache/nifi/NarMojo.java         |  6 +--
 .../apache/nifi/NarProvidedDependenciesMojo.java   | 16 +++---
 .../extraction/ExtensionClassLoaderFactory.java    | 61 +++++++++++-----------
 4 files changed, 44 insertions(+), 41 deletions(-)

diff --git a/pom.xml b/pom.xml
index 718eb81..5ccfc7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -395,7 +395,7 @@
         <dependency>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-dependency-tree</artifactId>
-            <version>2.2</version>
+            <version>3.0.1</version>
         </dependency>
         <dependency>
             <!-- No code from maven-jar-plugin is actually used; it's included
diff --git a/src/main/java/org/apache/nifi/NarMojo.java 
b/src/main/java/org/apache/nifi/NarMojo.java
index ada7b60..c3965b7 100644
--- a/src/main/java/org/apache/nifi/NarMojo.java
+++ b/src/main/java/org/apache/nifi/NarMojo.java
@@ -58,7 +58,7 @@ import 
org.apache.maven.shared.artifact.filter.collection.GroupIdFilter;
 import 
org.apache.maven.shared.artifact.filter.collection.ProjectTransitivityFilter;
 import org.apache.maven.shared.artifact.filter.collection.ScopeFilter;
 import org.apache.maven.shared.artifact.filter.collection.TypeFilter;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
 import org.apache.nifi.extension.definition.ExtensionDefinition;
 import org.apache.nifi.extension.definition.ExtensionType;
 import org.apache.nifi.extension.definition.ServiceAPIDefinition;
@@ -393,7 +393,7 @@ public class NarMojo extends AbstractMojo {
      * The dependency tree builder to use for verbose output.
      */
     @Component
-    private DependencyTreeBuilder dependencyTreeBuilder;
+    private DependencyGraphBuilder dependencyGraphBuilder;
 
     /**
      * *
@@ -785,7 +785,7 @@ public class NarMojo extends AbstractMojo {
     private ExtensionClassLoaderFactory createClassLoaderFactory() {
         return new ExtensionClassLoaderFactory.Builder()
             .artifactResolver(resolver)
-            .dependencyTreeBuilder(dependencyTreeBuilder)
+            .dependencyGraphBuilder(dependencyGraphBuilder)
             .localRepository(local)
             .log(getLog())
             .project(project)
diff --git a/src/main/java/org/apache/nifi/NarProvidedDependenciesMojo.java 
b/src/main/java/org/apache/nifi/NarProvidedDependenciesMojo.java
index a9ec9b2..cf43619 100644
--- a/src/main/java/org/apache/nifi/NarProvidedDependenciesMojo.java
+++ b/src/main/java/org/apache/nifi/NarProvidedDependenciesMojo.java
@@ -34,10 +34,10 @@ import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.project.ProjectBuildingResult;
-import org.apache.maven.shared.dependency.tree.DependencyNode;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
-import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor;
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
+import 
org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
+import org.apache.maven.shared.dependency.graph.DependencyNode;
+import 
org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
 import org.eclipse.aether.RepositorySystemSession;
 
 import java.util.ArrayDeque;
@@ -84,7 +84,7 @@ public class NarProvidedDependenciesMojo extends AbstractMojo 
{
      * The dependency tree builder to use for verbose output.
      */
     @Component
-    private DependencyTreeBuilder dependencyTreeBuilder;
+    private DependencyGraphBuilder dependencyGraphBuilder;
 
     /**
      * *
@@ -128,7 +128,9 @@ public class NarProvidedDependenciesMojo extends 
AbstractMojo {
             final ProjectBuildingRequest narRequest = new 
DefaultProjectBuildingRequest();
             narRequest.setRepositorySession(repoSession);
             narRequest.setSystemProperties(System.getProperties());
+
             final ProjectBuildingResult narResult = 
projectBuilder.build(narArtifact, narRequest);
+            narRequest.setProject(narResult.getProject());
 
             // get the artifact handler for excluding dependencies
             final ArtifactHandler narHandler = 
excludesDependencies(narArtifact);
@@ -145,7 +147,7 @@ public class NarProvidedDependenciesMojo extends 
AbstractMojo {
             artifactHandlerManager.addHandlers(narHandlerMap);
 
             // get the dependency tree
-            final DependencyNode root = 
dependencyTreeBuilder.buildDependencyTree(narResult.getProject(), 
localRepository, null);
+            final DependencyNode root = 
dependencyGraphBuilder.buildDependencyGraph(narRequest, null);
 
             // write the appropriate output
             DependencyNodeVisitor visitor = null;
@@ -163,7 +165,7 @@ public class NarProvidedDependenciesMojo extends 
AbstractMojo {
             // visit and print the results
             root.accept(visitor);
             getLog().info("--- Provided NAR Dependencies ---\n\n" + 
visitor.toString());
-        } catch (DependencyTreeBuilderException | ProjectBuildingException e) {
+        } catch (ProjectBuildingException | DependencyGraphBuilderException e) 
{
             throw new MojoExecutionException("Cannot build project dependency 
tree", e);
         }
     }
diff --git 
a/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
 
b/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
index ce27810..d398302 100644
--- 
a/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
+++ 
b/src/main/java/org/apache/nifi/extension/definition/extraction/ExtensionClassLoaderFactory.java
@@ -33,10 +33,10 @@ import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.ProjectBuildingRequest;
 import org.apache.maven.project.ProjectBuildingResult;
-import org.apache.maven.shared.dependency.tree.DependencyNode;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
-import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor;
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
+import 
org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
+import org.apache.maven.shared.dependency.graph.DependencyNode;
+import 
org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor;
 import org.eclipse.aether.RepositorySystemSession;
 
 import java.io.File;
@@ -56,7 +56,7 @@ public class ExtensionClassLoaderFactory {
     private final RepositorySystemSession repoSession;
     private final ProjectBuilder projectBuilder;
     private final ArtifactRepository localRepo;
-    private final DependencyTreeBuilder dependencyTreeBuilder;
+    private final DependencyGraphBuilder dependencyGraphBuilder;
     private final ArtifactResolver artifactResolver;
     private final ArtifactHandlerManager artifactHandlerManager;
 
@@ -66,7 +66,7 @@ public class ExtensionClassLoaderFactory {
         this.repoSession = builder.repositorySession;
         this.projectBuilder = builder.projectBuilder;
         this.localRepo = builder.localRepo;
-        this.dependencyTreeBuilder = builder.dependencyTreeBuilder;
+        this.dependencyGraphBuilder = builder.dependencyGraphBuilder;
         this.artifactResolver = builder.artifactResolver;
         this.artifactHandlerManager = builder.artifactHandlerManager;
     }
@@ -131,24 +131,20 @@ public class ExtensionClassLoaderFactory {
         return null;
     }
 
-    private Set<Artifact> getNarDependencies(final Artifact narArtifact) 
throws MojoExecutionException {
+    private Set<Artifact> getNarDependencies(final Artifact narArtifact) 
throws MojoExecutionException, ProjectBuildingException {
         final ProjectBuildingRequest narRequest = new 
DefaultProjectBuildingRequest();
         narRequest.setRepositorySession(repoSession);
         narRequest.setSystemProperties(System.getProperties());
+        narRequest.setLocalRepository(localRepo);
 
-        final Set<Artifact> narDependencies = new TreeSet<>();
+        final ProjectBuildingResult narResult = 
projectBuilder.build(narArtifact, narRequest);
 
-        try {
-            final ProjectBuildingResult narResult = 
projectBuilder.build(narArtifact, narRequest);
-            gatherArtifacts(narResult.getProject(), narDependencies);
-            narDependencies.remove(narArtifact);
-            narDependencies.remove(project.getArtifact());
-
-            getLog().debug("Found NAR dependency of " + narArtifact + ", which 
resolved to the following artifacts: " + narDependencies);
-        } catch (ProjectBuildingException e) {
-            throw new MojoExecutionException("Could not build parent nar 
project");
-        }
+        final Set<Artifact> narDependencies = new TreeSet<>();
+        gatherArtifacts(narResult.getProject(), narDependencies);
+        narDependencies.remove(narArtifact);
+        narDependencies.remove(project.getArtifact());
 
+        getLog().debug("Found NAR dependency of " + narArtifact + ", which 
resolved to the following artifacts: " + narDependencies);
         return narDependencies;
     }
 
@@ -164,18 +160,17 @@ public class ExtensionClassLoaderFactory {
         return findProvidedDependencyVersion(artifacts, groupId, artifactId);
     }
 
-    private String findProvidedDependencyVersion(final Set<Artifact> 
artifacts, final String groupId, final String artifactId) throws 
ProjectBuildingException, MojoExecutionException {
-        final ProjectBuildingRequest narRequest = new 
DefaultProjectBuildingRequest();
-        narRequest.setRepositorySession(repoSession);
-        narRequest.setSystemProperties(System.getProperties());
+    private String findProvidedDependencyVersion(final Set<Artifact> 
artifacts, final String groupId, final String artifactId) {
+        final ProjectBuildingRequest projectRequest = new 
DefaultProjectBuildingRequest();
+        projectRequest.setRepositorySession(repoSession);
+        projectRequest.setSystemProperties(System.getProperties());
+        projectRequest.setLocalRepository(localRepo);
 
         for (final Artifact artifact : artifacts) {
             final Set<Artifact> artifactDependencies = new HashSet<>();
-
             try {
-                final ProjectBuildingResult projectResult = 
projectBuilder.build(artifact, narRequest);
+                final ProjectBuildingResult projectResult = 
projectBuilder.build(artifact, projectRequest);
                 gatherArtifacts(projectResult.getProject(), 
artifactDependencies);
-
                 getLog().debug("For Artifact " + artifact + ", found the 
following dependencies:");
                 artifactDependencies.forEach(dep -> 
getLog().debug(dep.toString()));
 
@@ -295,9 +290,15 @@ public class ExtensionClassLoaderFactory {
         };
 
         try {
-            final DependencyNode depNode = 
dependencyTreeBuilder.buildDependencyTree(mavenProject, localRepo, null);
+            final ProjectBuildingRequest projectRequest = new 
DefaultProjectBuildingRequest();
+            projectRequest.setRepositorySession(repoSession);
+            projectRequest.setSystemProperties(System.getProperties());
+            projectRequest.setLocalRepository(localRepo);
+            projectRequest.setProject(mavenProject);
+
+            final DependencyNode depNode = 
dependencyGraphBuilder.buildDependencyGraph(projectRequest, null);
             depNode.accept(nodeVisitor);
-        } catch (DependencyTreeBuilderException e) {
+        } catch (DependencyGraphBuilderException e) {
             throw new MojoExecutionException("Failed to build dependency 
tree", e);
         }
     }
@@ -344,7 +345,7 @@ public class ExtensionClassLoaderFactory {
         private Log log;
         private MavenProject project;
         private ArtifactRepository localRepo;
-        private DependencyTreeBuilder dependencyTreeBuilder;
+        private DependencyGraphBuilder dependencyGraphBuilder;
         private ArtifactResolver artifactResolver;
         private ProjectBuilder projectBuilder;
         private RepositorySystemSession repositorySession;
@@ -370,8 +371,8 @@ public class ExtensionClassLoaderFactory {
             return this;
         }
 
-        public Builder dependencyTreeBuilder(final DependencyTreeBuilder 
dependencyTreeBuilder) {
-            this.dependencyTreeBuilder = dependencyTreeBuilder;
+        public Builder dependencyGraphBuilder(final DependencyGraphBuilder 
dependencyGraphBuilder) {
+            this.dependencyGraphBuilder = dependencyGraphBuilder;
             return this;
         }
 

Reply via email to