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]