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:53 UTC
[maven-resolver] branch tmp-collect-listener created (now d730dcd4)
This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a change to branch tmp-collect-listener
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
at d730dcd4 Tidy up demo
This branch includes the following new commits:
new 8ffa710c Collect listener?
new 717ec73a Merge remote-tracking branch 'origin/master' into tmp-collect-listener
new d730dcd4 Tidy up demo
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[maven-resolver] 01/03: Collect listener?
Posted by cs...@apache.org.
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 );
}
}
}
[maven-resolver] 03/03: Tidy up demo
Posted by cs...@apache.org.
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 d730dcd4d7cece3fb1d150879604d87e872cc0dc
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Wed May 11 18:34:37 2022 +0200
Tidy up demo
---
.../examples/ResolveTransitiveDependencies.java | 7 ++----
.../maven/resolver/examples/util/Booter.java | 4 +--
.../impl/collect/DependencyCollectorDelegate.java | 29 +++++++++++-----------
.../impl/collect/bf/BfDependencyCollector.java | 4 +--
.../impl/collect/df/DfDependencyCollector.java | 4 +--
5 files changed, 22 insertions(+), 26 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 90df6813..88ee3ec3 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,7 +22,6 @@ 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;
@@ -54,17 +53,15 @@ public class ResolveTransitiveDependencies
RepositorySystem system = Booter.newRepositorySystem( Booter.selectFactory( args ) );
- DefaultRepositorySystemSession session = Booter.newRepositorySystemSession( system );
- session.setConfigProperty( "aether.collector.impl", "df" );
+ RepositorySystemSession session = Booter.newRepositorySystemSession( system );
- Artifact artifact = new DefaultArtifact( "org.apache.maven:maven-core:3.8.5" );
+ Artifact artifact = new DefaultArtifact( "org.apache.maven.resolver:maven-resolver-impl:1.3.3" );
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 e20b9bff..399f2f99 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 d539a21f..485eb4c7 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,19 +19,17 @@ package org.eclipse.aether.internal.impl.collect;
* under the License.
*/
-import java.util.Collections;
import java.util.List;
import java.util.ListIterator;
+import java.util.stream.Collectors;
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.repository.RemoteRepository;
import org.eclipse.aether.spi.locator.ServiceLocator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -103,26 +101,27 @@ public abstract class DependencyCollectorDelegate implements DependencyCollector
}
protected void dependencyCollected( RepositorySystemSession session,
- List<DependencyNode> path,
- Dependency dependency,
- ArtifactDescriptorRequest artifactDescriptorRequest,
- ArtifactDescriptorResult artifactDescriptorResult )
+ List<DependencyNode> pathToCollectedNode,
+ DependencyNode collectedNode )
{
- logger.info(String.format("%s (context: %s) @ %s", dependency, artifactDescriptorRequest.getRequestContext(),
- artifactDescriptorResult != null && artifactDescriptorResult.getRepository() == null ? "unknown" : artifactDescriptorResult.getRepository().getId()));
+ // TODO: this is below "demo", but will be an extension point
+ logger.info( String.format( "%s (context: %s)",
+ collectedNode.getDependency(), collectedNode.getRequestContext() ) );
int distance = 0;
- ListIterator<DependencyNode> reversePathIterator = path.listIterator( path.size() );
+ ListIterator<DependencyNode> reversePathIterator = pathToCollectedNode
+ .listIterator( pathToCollectedNode.size() );
while ( reversePathIterator.hasPrevious() )
{
DependencyNode dn = reversePathIterator.previous();
StringBuilder indent = new StringBuilder();
- for (int i = 0; i < distance; i++) {
- indent.append(" ");
+ 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()));
+ logger.info( String.format( "%s%s (context: %s) @ %s", indent, dn, dn.getRequestContext(),
+ dn.getRepositories().stream().map( RemoteRepository::getId ).collect( Collectors.toList() ) ) );
}
}
}
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 5119a652..d8ae965e 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,7 +446,7 @@ public class BfDependencyCollector
descriptorResult.getAliases(), repos, args.request.getRequestContext() );
context.getParent().getChildren().add( child );
- dependencyCollected( args.session, context.parents, d, descriptorRequest, descriptorResult );
+ dependencyCollected( args.session, context.parents, child );
boolean recurse = traverse && !descriptorResult.getDependencies().isEmpty();
DependencyProcessingContext parentContext = context.withDependency( d );
@@ -471,7 +471,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 );
+ dependencyCollected( args.session, context.parents, child );
}
}
}
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 cc430b43..d904ded4 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,7 +420,7 @@ public class DfDependencyCollector
descriptorResult.getAliases(), repos, args.request.getRequestContext() );
node.getChildren().add( child );
- dependencyCollected( args.session, args.nodes.nodes, d, descriptorRequest, descriptorResult );
+ dependencyCollected( args.session, args.nodes.nodes, child );
boolean recurse = traverse && !descriptorResult.getDependencies().isEmpty();
if ( recurse )
@@ -439,7 +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 );
+ dependencyCollected( args.session, args.nodes.nodes, child );
}
}
}
[maven-resolver] 02/03: Merge remote-tracking branch 'origin/master' into tmp-collect-listener
Posted by cs...@apache.org.
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 717ec73a8b3a81a587cd811935f13ec68b1e4903
Merge: 8ffa710c 570c65e6
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Wed May 11 17:51:45 2022 +0200
Merge remote-tracking branch 'origin/master' into tmp-collect-listener
.asf.yaml | 9 +
.../impl/collect/bf/BfDependencyCollector.java | 10 +-
...=> DependencyCollectorDelegateTestSupport.java} | 152 ++---
.../impl/collect/bf/BfDependencyCollectorTest.java | 620 ++-------------------
.../bf/BfDependencyCollectorUseSkipTest.java | 86 ---
.../impl/collect/df/DfDependencyCollectorTest.java | 620 +--------------------
.../dependencies-empty/gid_a_ver.ini | 4 +
.../dependencies-empty/gid_aa_ver.ini | 4 +
.../dependencies-empty/gid_b_ver.ini | 2 +
.../dependencies-empty/gid_c_ver.ini | 2 +
.../dependencies-empty/gid_d_1.ini | 1 +
.../dependencies-empty/gid_d_2.ini | 2 +
.../dependencies-empty/gid_e_ver.ini | 2 +
.../dependencies-empty/gid_f_ver.ini | 2 +
.../dependencies-empty/gid_g_1.ini | 2 +
.../dependencies-empty/gid_g_2.ini | 2 +
.../dependencies-empty/gid_h_1.ini | 1 +
.../dependencies-empty/gid_h_2.ini | 1 +
...tedSubtreeOnDescriptorDependenciesEmptyLeft.txt | 8 +
...edSubtreeOnDescriptorDependenciesEmptyRight.txt | 8 +
20 files changed, 190 insertions(+), 1348 deletions(-)
diff --cc maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/bf/BfDependencyCollector.java
index c934e033,4c41d40c..5119a652
--- 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,12 -446,19 +446,20 @@@ public class BfDependencyCollecto
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();
+ DependencyProcessingContext parentContext = context.withDependency( d );
if ( recurse )
{
- doRecurse( args, context.withDependency( d ), descriptorResult, child );
+ doRecurse( args, parentContext, descriptorResult, child );
+ }
+ else if ( !args.skipper.skipResolution( child, parentContext.parents ) )
+ {
+ List<DependencyNode> parents = new ArrayList<>( parentContext.parents.size() + 1 );
+ parents.addAll( parentContext.parents );
+ parents.add( child );
+ args.skipper.cache( child, parents );
}
}
}