You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2021/05/22 11:32:27 UTC

[maven-dependency-tree] 02/04: Fixed to also return dependencies with scope "provided".

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

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

commit 7f663c54bbfbb3bb014a517ead3e5b550dc48b5f
Author: Gabriel Belingueres <be...@gmail.com>
AuthorDate: Thu Dec 27 00:02:51 2018 -0300

    Fixed to also return dependencies with scope "provided".
---
 .../Maven31DependencyCollectorBuilder.java         | 33 +++++++++++-----------
 .../internal/Maven3DependencyCollectorBuilder.java | 12 ++++++--
 2 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java
index f4fd955..7152ab7 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java
@@ -55,7 +55,6 @@ import org.eclipse.aether.util.graph.transformer.JavaScopeDeriver;
 import org.eclipse.aether.util.graph.transformer.JavaScopeSelector;
 import org.eclipse.aether.util.graph.transformer.NearestVersionSelector;
 import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
-import org.eclipse.aether.util.graph.visitor.CloningDependencyVisitor;
 import org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor;
 import org.eclipse.aether.version.VersionConstraint;
 
@@ -75,30 +74,35 @@ public class Maven31DependencyCollectorBuilder
 
     @Override
     public DependencyNode collectDependencyGraph( ArtifactRepository localRepository,
-                                                ProjectBuildingRequest buildingRequest, ArtifactFilter filter )
+                                                  ProjectBuildingRequest buildingRequest, ArtifactFilter filter )
         throws DependencyGraphBuilderException
     {
         DefaultRepositorySystemSession session = null;
         try
         {
             MavenProject project = buildingRequest.getProject();
+
             Artifact projectArtifact = project.getArtifact();
             List<ArtifactRepository> remoteArtifactRepositories = project.getRemoteArtifactRepositories();
 
             DefaultRepositorySystemSession repositorySession =
                 (DefaultRepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" );
-            
+
             session = new DefaultRepositorySystemSession( repositorySession );
 
             DependencyGraphTransformer transformer =
                 new ConflictResolver( new NearestVersionSelector(), new JavaScopeSelector(),
                                       new SimpleOptionalitySelector(), new JavaScopeDeriver() );
-
             session.setDependencyGraphTransformer( transformer );
 
+            DependencySelector depFilter =
+                new AndDependencySelector( new ScopeDependencySelector(), new OptionalDependencySelector(),
+                                           new ExclusionDependencySelector() );
+            session.setDependencySelector( depFilter );
+
             session.setConfigProperty( ConflictResolver.CONFIG_PROP_VERBOSE, true );
             session.setConfigProperty( DependencyManagerUtils.CONFIG_PROP_VERBOSE, true );
-            
+
             org.eclipse.aether.artifact.Artifact aetherArtifact =
                 (org.eclipse.aether.artifact.Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact",
                                                                        Artifact.class, projectArtifact );
@@ -113,11 +117,6 @@ public class Maven31DependencyCollectorBuilder
             collectRequest.setRoot( new org.eclipse.aether.graph.Dependency( aetherArtifact, "" ) );
             collectRequest.setRepositories( aetherRepos );
 
-            DependencySelector depFilter =
-                new AndDependencySelector( new ScopeDependencySelector( "provided" ), new OptionalDependencySelector(),
-                                           new ExclusionDependencySelector() );
-            session.setDependencySelector( depFilter );
-            
             org.eclipse.aether.artifact.ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();
             collectDependencyList( collectRequest, project, stereotypes );
             collectManagedDependencyList( collectRequest, project, stereotypes );
@@ -126,11 +125,11 @@ public class Maven31DependencyCollectorBuilder
 
             org.eclipse.aether.graph.DependencyNode rootNode = collectResult.getRoot();
 
-            CloningDependencyVisitor cloner = new CloningDependencyVisitor();
-            TreeDependencyVisitor treeVisitor = new TreeDependencyVisitor( cloner );
-            rootNode.accept( treeVisitor );
-
-            rootNode = cloner.getRootNode();
+//            CloningDependencyVisitor cloner = new CloningDependencyVisitor();
+//            TreeDependencyVisitor treeVisitor = new TreeDependencyVisitor( cloner );
+//            rootNode.accept( treeVisitor );
+//
+//            rootNode = cloner.getRootNode();
 
             if ( getLogger().isDebugEnabled() )
             {
@@ -192,7 +191,7 @@ public class Maven31DependencyCollectorBuilder
     }
 
     private void collectDependencyList( CollectRequest collectRequest, MavenProject project,
-                                         org.eclipse.aether.artifact.ArtifactTypeRegistry stereotypes )
+                                        org.eclipse.aether.artifact.ArtifactTypeRegistry stereotypes )
         throws DependencyGraphBuilderException
     {
         for ( Dependency dependency : project.getDependencies() )
@@ -242,7 +241,7 @@ public class Maven31DependencyCollectorBuilder
     {
         String premanagedVersion = DependencyManagerUtils.getPremanagedVersion( node );
         String premanagedScope = DependencyManagerUtils.getPremanagedScope( node );
-        
+
         Boolean optional = null;
         if ( node.getDependency() != null )
         {
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java
index d6b6d49..d88b884 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java
@@ -42,6 +42,7 @@ import org.sonatype.aether.artifact.ArtifactTypeRegistry;
 import org.sonatype.aether.collection.CollectRequest;
 import org.sonatype.aether.collection.CollectResult;
 import org.sonatype.aether.collection.DependencyCollectionException;
+import org.sonatype.aether.collection.DependencyGraphTransformer;
 import org.sonatype.aether.collection.DependencySelector;
 import org.sonatype.aether.graph.DependencyVisitor;
 import org.sonatype.aether.util.DefaultRepositorySystemSession;
@@ -51,6 +52,10 @@ import org.sonatype.aether.util.graph.selector.AndDependencySelector;
 import org.sonatype.aether.util.graph.selector.ExclusionDependencySelector;
 import org.sonatype.aether.util.graph.selector.OptionalDependencySelector;
 import org.sonatype.aether.util.graph.selector.ScopeDependencySelector;
+import org.sonatype.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
+import org.sonatype.aether.util.graph.transformer.ConflictMarker;
+import org.sonatype.aether.util.graph.transformer.JavaDependencyContextRefiner;
+import org.sonatype.aether.util.graph.transformer.JavaEffectiveScopeCalculator;
 import org.sonatype.aether.version.VersionConstraint;
 
 /**
@@ -87,10 +92,13 @@ public class Maven3DependencyCollectorBuilder
 
             DefaultRepositorySystemSession session = new DefaultRepositorySystemSession( repositorySystemSession );
 
-            session.setDependencyGraphTransformer( null );
+            DependencyGraphTransformer transformer =
+                new ChainedDependencyGraphTransformer( new ConflictMarker(), new JavaEffectiveScopeCalculator(),
+                                                       new JavaDependencyContextRefiner() );
+            session.setDependencyGraphTransformer( transformer );
 
             DependencySelector depFilter =
-                new AndDependencySelector( new ScopeDependencySelector( "provided" ), new OptionalDependencySelector(),
+                new AndDependencySelector( new ScopeDependencySelector(), new OptionalDependencySelector(),
                                            new ExclusionDependencySelector() );
             session.setDependencySelector( depFilter );