You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gg...@apache.org on 2023/01/13 09:27:52 UTC

[camel] branch main updated: [CAMEL-18880] Upgrade to maven-resolver 1.9.2 (and prepare for 1.9.2)

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

ggrzybek pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 22301f25e37 [CAMEL-18880] Upgrade to maven-resolver 1.9.2 (and prepare for 1.9.2)
22301f25e37 is described below

commit 22301f25e372e417df6af961c2ee08f8473d94b6
Author: Grzegorz Grzybek <gr...@gmail.com>
AuthorDate: Fri Jan 13 09:30:28 2023 +0100

    [CAMEL-18880] Upgrade to maven-resolver 1.9.2 (and prepare for 1.9.2)
---
 .../main/download/MavenDependencyDownloader.java   | 39 +++++++++++++++++-----
 .../camel/main/MavenDependencyResolverTest.java    |  4 +--
 parent/pom.xml                                     |  2 +-
 3 files changed, 34 insertions(+), 11 deletions(-)

diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
index b8bfd905092..86bc7336c7a 100644
--- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
+++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java
@@ -100,9 +100,11 @@ import org.eclipse.aether.impl.LocalRepositoryProvider;
 import org.eclipse.aether.impl.MetadataGeneratorFactory;
 import org.eclipse.aether.impl.MetadataResolver;
 import org.eclipse.aether.impl.OfflineController;
+import org.eclipse.aether.impl.RemoteRepositoryFilterManager;
 import org.eclipse.aether.impl.RemoteRepositoryManager;
 import org.eclipse.aether.impl.RepositoryConnectorProvider;
 import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.impl.RepositorySystemLifecycle;
 import org.eclipse.aether.impl.UpdateCheckManager;
 import org.eclipse.aether.impl.UpdatePolicyAnalyzer;
 import org.eclipse.aether.impl.VersionRangeResolver;
@@ -122,6 +124,7 @@ import org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider;
 import org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher;
 import org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider;
 import org.eclipse.aether.internal.impl.DefaultRepositorySystem;
+import org.eclipse.aether.internal.impl.DefaultRepositorySystemLifecycle;
 import org.eclipse.aether.internal.impl.DefaultTrackingFileManager;
 import org.eclipse.aether.internal.impl.DefaultTransporterProvider;
 import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager;
@@ -138,15 +141,18 @@ import org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector;
 import org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate;
 import org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector;
 import org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector;
+import org.eclipse.aether.internal.impl.filter.DefaultRemoteRepositoryFilterManager;
 import org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory;
 import org.eclipse.aether.internal.impl.synccontext.DefaultSyncContextFactory;
-import org.eclipse.aether.internal.impl.synccontext.named.GAVNameMapper;
 import org.eclipse.aether.internal.impl.synccontext.named.NameMapper;
-import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactorySelector;
-import org.eclipse.aether.internal.impl.synccontext.named.SimpleNamedLockFactorySelector;
+import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactory;
+import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactoryImpl;
+import org.eclipse.aether.internal.impl.synccontext.named.providers.GAVNameMapperProvider;
 import org.eclipse.aether.named.NamedLockFactory;
 import org.eclipse.aether.named.providers.FileLockNamedLockFactory;
 import org.eclipse.aether.named.providers.LocalReadWriteLockNamedLockFactory;
+import org.eclipse.aether.named.providers.LocalSemaphoreNamedLockFactory;
+import org.eclipse.aether.named.providers.NoopNamedLockFactory;
 import org.eclipse.aether.repository.Authentication;
 import org.eclipse.aether.repository.AuthenticationSelector;
 import org.eclipse.aether.repository.LocalRepository;
@@ -648,7 +654,9 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         registry.bind(LocalRepositoryManagerFactory.class, EnhancedLocalRepositoryManagerFactory.class);
 
         // remaining requirements of org.eclipse.aether.internal.impl.synccontext.DefaultSyncContextFactory
-        registry.bind(NamedLockFactorySelector.class, SimpleNamedLockFactorySelector.class);
+        registry.bind(NamedLockFactoryAdapterFactory.class, NamedLockFactoryAdapterFactoryImpl.class);
+
+        HashMap<String, NameMapper> mappers = new HashMap<>();
 
         // remaining requirements of org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager
         registry.bind(UpdatePolicyAnalyzer.class, DefaultUpdatePolicyAnalyzer.class);
@@ -659,10 +667,19 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
         // requirements of org.eclipse.aether.internal.impl.DefaultUpdateCheckManager
         registry.bind(TrackingFileManager.class, DefaultTrackingFileManager.class);
 
-        // requirements of org.eclipse.aether.internal.impl.synccontext.named.SimpleNamedLockFactorySelector
+        // requirements of org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapterFactoryImpl
         registry.bind(NamedLockFactory.class, FileLockNamedLockFactory.class);
         registry.bind(NamedLockFactory.class, LocalReadWriteLockNamedLockFactory.class);
-        registry.bind(NameMapper.class, GAVNameMapper.class);
+        registry.bind(NamedLockFactory.class, NoopNamedLockFactory.class);
+        registry.bind(NamedLockFactory.class, LocalSemaphoreNamedLockFactory.class);
+        // 1.9.2
+        registry.bind(GAVNameMapperProvider.NAME, NameMapper.class, new GAVNameMapperProvider().get());
+        // 1.9.4 (soon)
+        //        registry.bind(NameMappers.GAV_NAME, NameMapper.class, NameMappers.gavNameMapper());
+        //        registry.bind(NameMappers.STATIC_NAME, NameMapper.class, NameMappers.staticNameMapper());
+        //        registry.bind(NameMappers.DISCRIMINATING_NAME, NameMapper.class, NameMappers.discriminatingNameMapper());
+        //        registry.bind(NameMappers.FILE_GAV_NAME, NameMapper.class, NameMappers.fileGavNameMapper());
+        //        registry.bind(NameMappers.FILE_HGAV_NAME, NameMapper.class, NameMappers.fileHashingGavNameMapper());
 
         // requirements of org.apache.maven.repository.internal.DefaultVersionResolver (these are deprecated)
         registry.bind(org.eclipse.aether.impl.SyncContextFactory.class,
@@ -674,6 +691,10 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
 
         // additional services
         registry.bind(org.eclipse.aether.spi.log.LoggerFactory.class, Slf4jLoggerFactory.class);
+
+        // resolver 1.9.x
+        registry.bind(RemoteRepositoryFilterManager.class, DefaultRemoteRepositoryFilterManager.class);
+        registry.bind(RepositorySystemLifecycle.class, DefaultRepositorySystemLifecycle.class);
     }
 
     /**
@@ -1202,8 +1223,10 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende
                     })
                     .collect(Collectors.toList());
         } catch (DependencyResolutionException e) {
-            String msg = "Cannot resolve dependencies in " + repositories.stream().map(RemoteRepository::getUrl)
-                    .collect(Collectors.joining(", "));
+            String repos = repositories == null
+                    ? "(empty URL list)"
+                    : repositories.stream().map(RemoteRepository::getUrl).collect(Collectors.joining(", "));
+            String msg = "Cannot resolve dependencies in " + repos;
             throw new DownloadException(msg, e);
         } catch (RuntimeException e) {
             throw new DownloadException("Unknown error occurred while trying to resolve dependencies", e);
diff --git a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenDependencyResolverTest.java b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenDependencyResolverTest.java
index 9287a2c7496..32530a383ce 100644
--- a/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenDependencyResolverTest.java
+++ b/dsl/camel-kamelet-main/src/test/java/org/apache/camel/main/MavenDependencyResolverTest.java
@@ -135,14 +135,14 @@ public class MavenDependencyResolverTest {
              MavenDependencyDownloader downloader = new MavenDependencyDownloader()) {
             downloader.build();
 
-            List<MavenArtifact> answer = downloader.resolveDependenciesViaAether(deps, null, true);
+            List<MavenArtifact> answer = downloader.resolveDependenciesViaAether(deps, true);
             Assertions.assertNotNull(answer);
             assertTrue(answer.size() > 15);
             for (MavenArtifact ma : answer) {
                 LOG.info("Artifact (transitive): {}", ma);
             }
 
-            answer = downloader.resolveDependenciesViaAether(deps, null, false);
+            answer = downloader.resolveDependenciesViaAether(deps, false);
             Assertions.assertNotNull(answer);
             assertEquals(1, answer.size());
             for (MavenArtifact ma : answer) {
diff --git a/parent/pom.xml b/parent/pom.xml
index 719126c263e..9a6ed7161cb 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -374,7 +374,7 @@
         <maven-resources-plugin-version>3.2.0</maven-resources-plugin-version>
         <maven-reporting-api-version>2.2.1</maven-reporting-api-version>
         <maven-reporting-impl-version>2.0.5</maven-reporting-impl-version>
-        <maven-resolver-version>1.8.2</maven-resolver-version>
+        <maven-resolver-version>1.9.2</maven-resolver-version>
         <maven-shade-plugin-version>3.4.1</maven-shade-plugin-version>
         <maven-shared-utils-plugin-version>3.3.4</maven-shared-utils-plugin-version>
         <maven-surefire-report-plugin-version>3.0.0-M4</maven-surefire-report-plugin-version>