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 <belingue...@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 );