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

rfscholte pushed a commit to branch MSHARED-519
in repository https://gitbox.apache.org/repos/asf/maven-dependency-tree.git

commit b330fa93b70e35c70a8afa75f0404cf47d5935d6
Author: rfscholte <rfscho...@apache.org>
AuthorDate: Mon May 24 15:02:50 2021 +0200

    [MSHARED-519] DependencyGraphBuilder should not download dependencies other 
than the pom
---
 .../graph/internal/Maven31DependencyGraphBuilder.java       | 12 ++++++++++++
 .../graph/internal/Maven3DependencyGraphBuilder.java        | 13 +++++++++++++
 2 files changed, 25 insertions(+)

diff --git 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
index 532a507..9e8089f 100644
--- 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
+++ 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
@@ -47,6 +47,7 @@ import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.graph.Exclusion;
 import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
 import org.eclipse.aether.version.VersionConstraint;
@@ -126,6 +127,17 @@ public class Maven31DependencyGraphBuilder
         final DependencyResolutionRequest request = new 
DefaultDependencyResolutionRequest();
         request.setMavenProject( project );
         Invoker.invoke( request, "setRepositorySession", 
RepositorySystemSession.class, session );
+        // only download the poms, not the artifacts
+        DependencyFilter collectFilter = new DependencyFilter()
+        {
+            @Override
+            public boolean accept( org.eclipse.aether.graph.DependencyNode 
node,
+                                   
List<org.eclipse.aether.graph.DependencyNode> parents )
+            {
+                return false;
+            }
+        };
+        Invoker.invoke( request, "setResolutionFilter", 
DependencyFilter.class, collectFilter );
 
         final DependencyResolutionResult result = resolveDependencies( 
request, reactorProjects );
         org.eclipse.aether.graph.DependencyNode graph =
diff --git 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
index 39e2a35..3eedffd 100644
--- 
a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
+++ 
b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
@@ -42,6 +42,7 @@ import 
org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.sonatype.aether.graph.DependencyFilter;
 import org.sonatype.aether.graph.Dependency;
 import org.sonatype.aether.version.VersionConstraint;
 
@@ -95,6 +96,18 @@ public class Maven3DependencyGraphBuilder
         DependencyResolutionRequest request =
             new DefaultDependencyResolutionRequest( project, 
buildingRequest.getRepositorySession() );
 
+        // only download the poms, not the artifacts
+        DependencyFilter collectFilter = new DependencyFilter()
+        {
+            @Override
+            public boolean accept( org.sonatype.aether.graph.DependencyNode 
node,
+                                   
List<org.sonatype.aether.graph.DependencyNode> parents )
+            {
+                return false;
+            }
+        };
+        request.setResolutionFilter( collectFilter );
+
         DependencyResolutionResult result = resolveDependencies( request, 
reactorProjects );
 
         return buildDependencyNode( null, result.getDependencyGraph(), 
project.getArtifact(), filter );

Reply via email to