This is an automated email from the ASF dual-hosted git repository. cstamas pushed a commit to branch tmp-collect-listener in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
commit 8ffa710cf0ecf5d6a14895c9215ad738696c4cca Author: Tamas Cservenak <[email protected]> AuthorDate: Thu May 5 18:26:38 2022 +0200 Collect listener? --- .../examples/ResolveTransitiveDependencies.java | 7 +++-- .../maven/resolver/examples/util/Booter.java | 4 +-- .../impl/collect/DependencyCollectorDelegate.java | 32 ++++++++++++++++++++++ .../impl/collect/bf/BfDependencyCollector.java | 3 ++ .../impl/collect/df/DfDependencyCollector.java | 2 ++ 5 files changed, 44 insertions(+), 4 deletions(-) diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java index 88ee3ec3..90df6813 100644 --- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java +++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/ResolveTransitiveDependencies.java @@ -22,6 +22,7 @@ package org.apache.maven.resolver.examples; import java.util.List; import org.apache.maven.resolver.examples.util.Booter; +import org.eclipse.aether.DefaultRepositorySystemSession; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.artifact.Artifact; @@ -53,15 +54,17 @@ public class ResolveTransitiveDependencies RepositorySystem system = Booter.newRepositorySystem( Booter.selectFactory( args ) ); - RepositorySystemSession session = Booter.newRepositorySystemSession( system ); + DefaultRepositorySystemSession session = Booter.newRepositorySystemSession( system ); + session.setConfigProperty( "aether.collector.impl", "df" ); - Artifact artifact = new DefaultArtifact( "org.apache.maven.resolver:maven-resolver-impl:1.3.3" ); + Artifact artifact = new DefaultArtifact( "org.apache.maven:maven-core:3.8.5" ); DependencyFilter classpathFlter = DependencyFilterUtils.classpathFilter( JavaScopes.COMPILE ); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot( new Dependency( artifact, JavaScopes.COMPILE ) ); collectRequest.setRepositories( Booter.newRepositories( system, session ) ); + collectRequest.setRequestContext( "test" ); DependencyRequest dependencyRequest = new DependencyRequest( collectRequest, classpathFlter ); diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java index 399f2f99..e20b9bff 100644 --- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java +++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java @@ -75,8 +75,8 @@ public class Booter LocalRepository localRepo = new LocalRepository( "target/local-repo" ); session.setLocalRepositoryManager( system.newLocalRepositoryManager( session, localRepo ) ); - session.setTransferListener( new ConsoleTransferListener() ); - session.setRepositoryListener( new ConsoleRepositoryListener() ); + //session.setTransferListener( new ConsoleTransferListener() ); + //session.setRepositoryListener( new ConsoleRepositoryListener() ); // uncomment to generate dirty trees // session.setDependencyGraphTransformer( null ); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java index c7c2c985..d539a21f 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectorDelegate.java @@ -19,10 +19,19 @@ package org.eclipse.aether.internal.impl.collect; * under the License. */ +import java.util.Collections; +import java.util.List; +import java.util.ListIterator; + +import org.eclipse.aether.RepositorySystemSession; +import org.eclipse.aether.graph.Dependency; +import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.impl.ArtifactDescriptorReader; import org.eclipse.aether.impl.DependencyCollector; import org.eclipse.aether.impl.RemoteRepositoryManager; import org.eclipse.aether.impl.VersionRangeResolver; +import org.eclipse.aether.resolution.ArtifactDescriptorRequest; +import org.eclipse.aether.resolution.ArtifactDescriptorResult; import org.eclipse.aether.spi.locator.ServiceLocator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -93,4 +102,27 @@ public abstract class DependencyCollectorDelegate implements DependencyCollector return this; } + protected void dependencyCollected( RepositorySystemSession session, + List<DependencyNode> path, + Dependency dependency, + ArtifactDescriptorRequest artifactDescriptorRequest, + ArtifactDescriptorResult artifactDescriptorResult ) + { + logger.info(String.format("%s (context: %s) @ %s", dependency, artifactDescriptorRequest.getRequestContext(), + artifactDescriptorResult != null && artifactDescriptorResult.getRepository() == null ? "unknown" : artifactDescriptorResult.getRepository().getId())); + int distance = 0; + ListIterator<DependencyNode> reversePathIterator = path.listIterator( path.size() ); + while ( reversePathIterator.hasPrevious() ) + { + DependencyNode dn = reversePathIterator.previous(); + StringBuilder indent = new StringBuilder(); + for (int i = 0; i < distance; i++) { + indent.append(" "); + } + distance++; + indent.append( " -> " ); + logger.info(String.format("%s%s (context: %s) @ %s", indent, dn, dn.getRequestContext(), + artifactDescriptorResult.getRepository() == null ? "unknown" : artifactDescriptorResult.getRepository().getId())); + } + } } diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java index 4beca799..c934e033 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java @@ -446,6 +446,7 @@ public class BfDependencyCollector descriptorResult.getAliases(), repos, args.request.getRequestContext() ); context.getParent().getChildren().add( child ); + dependencyCollected( args.session, context.parents, d, descriptorRequest, descriptorResult ); boolean recurse = traverse && !descriptorResult.getDependencies().isEmpty(); if ( recurse ) @@ -462,6 +463,7 @@ public class BfDependencyCollector createDependencyNode( relocations, preManaged, rangeResult, version, d, null, repos, args.request.getRequestContext() ); context.getParent().getChildren().add( child ); + dependencyCollected( args.session, context.parents, d, descriptorRequest, descriptorResult ); } } } @@ -506,6 +508,7 @@ public class BfDependencyCollector args.dependencyProcessingQueue.add( new DependencyProcessingContext( childSelector, childManager, childTraverser, childFilter, childRepos, descriptorResult.getManagedDependencies(), parents, dependency ) ); + } args.pool.putChildren( key, child.getChildren() ); args.skipper.cache( child, parents ); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/df/DfDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/df/DfDependencyCollector.java index e803fe13..cc430b43 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/df/DfDependencyCollector.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/df/DfDependencyCollector.java @@ -420,6 +420,7 @@ public class DfDependencyCollector descriptorResult.getAliases(), repos, args.request.getRequestContext() ); node.getChildren().add( child ); + dependencyCollected( args.session, args.nodes.nodes, d, descriptorRequest, descriptorResult ); boolean recurse = traverse && !descriptorResult.getDependencies().isEmpty(); if ( recurse ) @@ -438,6 +439,7 @@ public class DfDependencyCollector createDependencyNode( relocations, preManaged, rangeResult, version, d, null, repos, args.request.getRequestContext() ); node.getChildren().add( child ); + dependencyCollected( args.session, args.nodes.nodes, d, descriptorRequest, descriptorResult ); } } }
