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

vavrtom pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git


The following commit(s) were added to refs/heads/main by this push:
     new 7ee23ed1f5 QPID-8754: [Broker-J] Update maven resolver to the version 
2.0.22 (#431)
7ee23ed1f5 is described below

commit 7ee23ed1f55ed0c21fec3f66fe13b0310cab2066
Author: Daniil Kirilyuk <[email protected]>
AuthorDate: Wed Sep 9 14:37:41 2026 +0200

    QPID-8754: [Broker-J] Update maven resolver to the version 2.0.22 (#431)
---
 pom.xml                                            | 29 +++--------
 systests/end-to-end-conversion-tests/pom.xml       | 16 +-----
 .../EndToEndConversionTestBase.java                |  9 +++-
 .../dependency_resolution/Booter.java              | 44 +++++++++++-----
 .../dependency_resolution/ClasspathQuery.java      | 55 +++++++++++---------
 .../ConsoleRepositoryListener.java                 |  8 +--
 .../ConsoleTransferListener.java                   |  2 +-
 .../ManualRepositorySystemFactory.java             | 58 ----------------------
 8 files changed, 84 insertions(+), 137 deletions(-)

diff --git a/pom.xml b/pom.xml
index b09c272d96..d682ed9d2d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -134,8 +134,7 @@
     <mockito-version>5.23.0</mockito-version>
     <netty-version>4.2.16.Final</netty-version>
     <hamcrest-version>3.0</hamcrest-version>
-    <maven-resolver-provider-version>3.8.6</maven-resolver-provider-version>
-    <maven-resolver-version>1.9.22</maven-resolver-version>
+    <maven-resolver-version>2.0.22</maven-resolver-version>
     <httpclient-version>5.6.2</httpclient-version>
     <qpid-jms-client-version>1.16.0</qpid-jms-client-version>
     <qpid-jms-client-amqp-0-x-version>6.4.0</qpid-jms-client-amqp-0-x-version>
@@ -830,34 +829,19 @@
         <version>${hamcrest-version}</version>
       </dependency>
       <dependency>
-        <groupId>org.apache.maven</groupId>
-        <artifactId>maven-resolver-provider</artifactId>
-        <version>${maven-resolver-provider-version}</version>
+        <groupId>org.apache.maven.resolver</groupId>
+        <artifactId>maven-resolver-supplier-mvn3</artifactId>
+        <version>${maven-resolver-version}</version>
         <exclusions>
           <exclusion>
             <groupId>org.apache.maven.resolver</groupId>
-            <artifactId>*</artifactId>
+            <artifactId>maven-resolver-transport-apache</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.maven.resolver</groupId>
-        <artifactId>maven-resolver-impl</artifactId>
-        <version>${maven-resolver-version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven.resolver</groupId>
-        <artifactId>maven-resolver-connector-basic</artifactId>
-        <version>${maven-resolver-version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven.resolver</groupId>
-        <artifactId>maven-resolver-transport-file</artifactId>
-        <version>${maven-resolver-version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven.resolver</groupId>
-        <artifactId>maven-resolver-transport-http</artifactId>
+        <artifactId>maven-resolver-transport-jdk</artifactId>
         <version>${maven-resolver-version}</version>
       </dependency>
 
@@ -1835,4 +1819,3 @@
 
   </profiles>
 </project>
-
diff --git a/systests/end-to-end-conversion-tests/pom.xml 
b/systests/end-to-end-conversion-tests/pom.xml
index 6d8f0cd833..4ff9dfcd08 100644
--- a/systests/end-to-end-conversion-tests/pom.xml
+++ b/systests/end-to-end-conversion-tests/pom.xml
@@ -49,25 +49,13 @@
             <artifactId>qpid-broker</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-resolver-provider</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.resolver</groupId>
-            <artifactId>maven-resolver-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.resolver</groupId>
-            <artifactId>maven-resolver-connector-basic</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.apache.maven.resolver</groupId>
-            <artifactId>maven-resolver-transport-file</artifactId>
+            <artifactId>maven-resolver-supplier-mvn3</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.maven.resolver</groupId>
-            <artifactId>maven-resolver-transport-http</artifactId>
+            <artifactId>maven-resolver-transport-jdk</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.qpid</groupId>
diff --git 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/EndToEndConversionTestBase.java
 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/EndToEndConversionTestBase.java
index f6baf6740e..f2cad24cf6 100644
--- 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/EndToEndConversionTestBase.java
+++ 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/EndToEndConversionTestBase.java
@@ -90,7 +90,14 @@ public class EndToEndConversionTestBase extends 
BrokerAdminUsingTestBase
     @AfterAll
     public static void reportStats()
     {
-        System.out.println("LQDEBUG: " + ClasspathQuery.getCacheStats());
+        try
+        {
+            System.out.println("LQDEBUG: " + ClasspathQuery.getCacheStats());
+        }
+        finally
+        {
+            ClasspathQuery.close();
+        }
     }
 
     protected CompletableFuture<ClientResult> runPublisher(final 
List<ClientInstruction> clientInstructions)
diff --git 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
index 9a527735c7..448353934d 100644
--- 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
+++ 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/Booter.java
@@ -23,20 +23,28 @@ package 
org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.nio.file.Path;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
-import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
-import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession.CloseableSession;
+import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
 import org.eclipse.aether.repository.Proxy;
-import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.spi.connector.transport.TransporterFactory;
+import org.eclipse.aether.supplier.Maven3ScopeManagerConfiguration;
+import org.eclipse.aether.supplier.RepositorySystemSupplier;
+import org.eclipse.aether.supplier.SessionBuilderSupplier;
+import org.eclipse.aether.transport.file.FileTransporterFactory;
+import org.eclipse.aether.transport.jdk.JdkTransporterFactory;
 
 public class Booter
 {
     private static final String FALLBACK_LOCAL_REPO_URL =
-            String.join(File.pathSeparator, System.getProperty("user.home"), 
".m2", "repository");
+            Path.of(System.getProperty("user.home"), ".m2", 
"repository").toString();
     private static final String REMOTE_REPO_URL = System.getProperty(
             "qpid.systests.end_to_end_conversion.remoteRepository",
             "https://repo.maven.apache.org/maven2/";);
@@ -46,23 +54,21 @@ public class Booter
 
     public static RepositorySystem newRepositorySystem()
     {
-        return ManualRepositorySystemFactory.newRepositorySystem();
+        return new JdkRepositorySystemSupplier().get();
     }
 
-    public static DefaultRepositorySystemSession 
newRepositorySystemSession(RepositorySystem system)
+    public static CloseableSession newRepositorySystemSession(final 
RepositorySystem system)
     {
-        DefaultRepositorySystemSession session = 
MavenRepositorySystemUtils.newSession();
-
-        LocalRepository localRepo = new LocalRepository("target/local-repo");
-        
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, 
localRepo));
-
+        final SessionBuilder session = new SessionBuilderSupplier(
+                system, Maven3ScopeManagerConfiguration.INSTANCE).get();
+        session.withLocalRepositoryBaseDirectories(Path.of("target", 
"local-repo"));
         session.setTransferListener(new ConsoleTransferListener());
         session.setRepositoryListener(new ConsoleRepositoryListener());
 
         // uncomment to generate dirty trees
         // session.setDependencyGraphTransformer( null );
 
-        return session;
+        return session.build();
     }
 
     public static List<RemoteRepository> newRepositories()
@@ -129,4 +135,18 @@ public class Booter
             }
         }
     }
+
+    private static final class JdkRepositorySystemSupplier extends 
RepositorySystemSupplier
+    {
+        @Override
+        protected Map<String, TransporterFactory> createTransporterFactories()
+        {
+            final JdkTransporterFactory jdkTransporterFactory =
+                    new JdkTransporterFactory(getChecksumExtractor(), 
getPathProcessor());
+            final Map<String, TransporterFactory> factories = new HashMap<>();
+            factories.put(FileTransporterFactory.NAME, new 
FileTransporterFactory());
+            factories.put(JdkTransporterFactory.NAME, jdkTransporterFactory);
+            return factories;
+        }
+    }
 }
diff --git 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java
 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java
index 8dcbe29688..bfde6de4f7 100644
--- 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java
+++ 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ClasspathQuery.java
@@ -20,7 +20,6 @@
 
 package org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
 
-import java.io.File;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Path;
@@ -34,7 +33,7 @@ import java.util.stream.Collectors;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RepositorySystemSession.CloseableSession;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.collection.CollectRequest;
@@ -43,14 +42,14 @@ import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.resolution.ArtifactResult;
 import org.eclipse.aether.resolution.DependencyRequest;
 import org.eclipse.aether.resolution.DependencyResolutionException;
-import org.eclipse.aether.util.artifact.JavaScopes;
-import org.eclipse.aether.util.filter.DependencyFilterUtils;
+import org.eclipse.aether.scope.ResolutionScope;
+import org.eclipse.aether.supplier.Maven3ScopeManagerConfiguration;
 
 public class ClasspathQuery
 {
-    private static final LoadingCache<Collection<String>, List<File>> 
_classpathCache;
+    private static final LoadingCache<Collection<String>, List<Path>> 
_classpathCache;
     private static final RepositorySystem _mavenRepositorySystem;
-    private static final RepositorySystemSession _mavenRepositorySession;
+    private static final CloseableSession _mavenRepositorySession;
 
     static
     {
@@ -77,26 +76,35 @@ public class ClasspathQuery
         return _classpathCache.stats().toString();
     }
 
-    private static List<File> doBuildClassPath(final Collection<String> gavs)
+    public static void close()
+    {
+        _mavenRepositorySession.close();
+        _mavenRepositorySystem.shutdown();
+    }
+
+    private static List<Path> doBuildClassPath(final Collection<String> gavs)
     {
         return List.copyOf(new ArrayList<>(getJarFiles(gavs)));
     }
 
-    private static Set<File> getJarFiles(final Collection<String> gavs)
+    private static Set<Path> getJarFiles(final Collection<String> gavs)
     {
-        Set<File> jars = new HashSet<>();
+        final Set<Path> jars = new HashSet<>();
+        final ResolutionScope compileScope = 
_mavenRepositorySession.getScopeManager().getResolutionScope(
+                Maven3ScopeManagerConfiguration.RS_MAIN_COMPILE).orElseThrow();
+        final DependencyFilter classpathFilter = 
_mavenRepositorySession.getScopeManager().getDependencyFilter(
+                _mavenRepositorySession, compileScope);
 
         for (final String gav : gavs)
         {
-            Artifact artifact = new DefaultArtifact(gav);
+            final Artifact artifact = new DefaultArtifact(gav);
 
-            DependencyFilter classpathFlter = 
DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE);
-
-            CollectRequest collectRequest = new CollectRequest();
-            collectRequest.setRoot(new Dependency(artifact, 
JavaScopes.COMPILE));
+            final CollectRequest collectRequest = new CollectRequest();
+            collectRequest.setRoot(new Dependency(artifact, 
Maven3ScopeManagerConfiguration.DS_COMPILE));
             collectRequest.setRepositories(Booter.newRepositories());
+            collectRequest.setResolutionScope(compileScope);
 
-            DependencyRequest dependencyRequest = new 
DependencyRequest(collectRequest, classpathFlter);
+            final DependencyRequest dependencyRequest = new 
DependencyRequest(collectRequest, classpathFilter);
 
             List<ArtifactResult> artifactResults = null;
             try
@@ -117,11 +125,11 @@ public class ClasspathQuery
             for (ArtifactResult artifactResult : artifactResults)
             {
                 System.out.println(artifactResult.getArtifact() + " resolved 
to "
-                                   + artifactResult.getArtifact().getFile());
+                                   + artifactResult.getArtifact().getPath());
             }
 
             jars.addAll(artifactResults.stream()
-                                       .map(result -> 
result.getArtifact().getFile())
+                                       .map(result -> 
result.getArtifact().getPath())
                                        .collect(Collectors.toSet()));
         }
         return jars;
@@ -144,8 +152,8 @@ public class ClasspathQuery
 
     private String buildClassPath(final Class<?> clientClazz, final 
Collection<String> gavs)
     {
-        final List<File> classpathElements = new ArrayList<>();
-        final List<File> cached = _classpathCache.get(gavs);
+        final List<Path> classpathElements = new ArrayList<>();
+        final List<Path> cached = _classpathCache.get(gavs);
         if (cached != null)
         {
             classpathElements.addAll(cached);
@@ -153,25 +161,24 @@ public class ClasspathQuery
         classpathElements.add(getLocalClasspathElement(clientClazz));
 
         final String collect = classpathElements.stream()
-                                                .map(File::toString)
+                                                .map(Path::toString)
                                                 
.collect(Collectors.joining(System.getProperty("path.separator")));
         return collect;
     }
 
-    private File getLocalClasspathElement(final Class<?> clazz)
+    private Path getLocalClasspathElement(final Class<?> clazz)
     {
         int packageDepth = getPackageDepth(clazz);
         final URL resource = clazz.getResource("/" + 
clazz.getName().replace(".", "/") + ".class");
         // TODO handle JAR case
         try
         {
-            Path path = new File(resource.toURI()).toPath();
+            Path path = Path.of(resource.toURI());
             for (int i = 0; i < packageDepth + 1; ++i)
             {
                 path = path.getParent();
             }
-
-            return path.toFile();
+            return path;
         }
         catch (URISyntaxException e)
         {
diff --git 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java
 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java
index 1d494e3fc1..2e3c78706a 100644
--- 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java
+++ 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleRepositoryListener.java
@@ -63,12 +63,12 @@ public class ConsoleRepositoryListener extends 
AbstractRepositoryListener
 
     public void artifactInstalled(RepositoryEvent event)
     {
-        _out.println("Installed " + event.getArtifact() + " to " + 
event.getFile());
+        _out.println("Installed " + event.getArtifact() + " to " + 
event.getPath());
     }
 
     public void artifactInstalling(RepositoryEvent event)
     {
-        _out.println("Installing " + event.getArtifact() + " to " + 
event.getFile());
+        _out.println("Installing " + event.getArtifact() + " to " + 
event.getPath());
     }
 
     public void artifactResolved(RepositoryEvent event)
@@ -103,12 +103,12 @@ public class ConsoleRepositoryListener extends 
AbstractRepositoryListener
 
     public void metadataInstalled(RepositoryEvent event)
     {
-        _out.println("Installed " + event.getMetadata() + " to " + 
event.getFile());
+        _out.println("Installed " + event.getMetadata() + " to " + 
event.getPath());
     }
 
     public void metadataInstalling(RepositoryEvent event)
     {
-        _out.println("Installing " + event.getMetadata() + " to " + 
event.getFile());
+        _out.println("Installing " + event.getMetadata() + " to " + 
event.getPath());
     }
 
     public void metadataInvalid(RepositoryEvent event)
diff --git 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java
 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java
index 289796b06b..d25134afd0 100644
--- 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java
+++ 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ConsoleTransferListener.java
@@ -128,7 +128,7 @@ public class ConsoleTransferListener extends 
AbstractTransferListener
             String len = contentLength >= 1024 ? toKB(contentLength) + " KB" : 
contentLength + " B";
 
             String throughput = "";
-            long duration = System.currentTimeMillis() - 
resource.getTransferStartTime();
+            final long duration = System.currentTimeMillis() - 
resource.getStartTime().toEpochMilli();
             if (duration > 0)
             {
                 long bytes = contentLength - resource.getResumeOffset();
diff --git 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ManualRepositorySystemFactory.java
 
b/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ManualRepositorySystemFactory.java
deleted file mode 100644
index a488facebd..0000000000
--- 
a/systests/end-to-end-conversion-tests/src/main/java/org/apache/qpid/systests/end_to_end_conversion/dependency_resolution/ManualRepositorySystemFactory.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.systests.end_to_end_conversion.dependency_resolution;
-
-import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
-import org.eclipse.aether.impl.DefaultServiceLocator;
-import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
-import org.eclipse.aether.spi.connector.transport.TransporterFactory;
-import org.eclipse.aether.transport.file.FileTransporterFactory;
-import org.eclipse.aether.transport.http.HttpTransporterFactory;
-
-public class ManualRepositorySystemFactory
-{
-
-    public static RepositorySystem newRepositorySystem()
-    {
-    /*
-     * Aether's components implement org.eclipse.aether.spi.locator.Service to 
ease manual wiring and using the
-     * prepopulated DefaultServiceLocator, we only need to register the 
repository connector and transporter
-     * factories.
-     */
-        DefaultServiceLocator locator = 
MavenRepositorySystemUtils.newServiceLocator();
-        locator.addService(RepositoryConnectorFactory.class, 
BasicRepositoryConnectorFactory.class);
-        locator.addService(TransporterFactory.class, 
FileTransporterFactory.class);
-        locator.addService(TransporterFactory.class, 
HttpTransporterFactory.class);
-
-        locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler()
-        {
-            @Override
-            public void serviceCreationFailed(Class<?> type, Class<?> impl, 
Throwable exception)
-            {
-                exception.printStackTrace();
-            }
-        });
-
-        return locator.getService(RepositorySystem.class);
-    }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to