You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2022/05/11 16:34:54 UTC
[maven-resolver] 01/03: Collect listener?
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 <ta...@cservenak.net>
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 );
}
}
}