This is an automated email from the ASF dual-hosted git repository. ggrzybek pushed a commit to branch CAMEL-18880 in repository https://gitbox.apache.org/repos/asf/camel.git
commit e18c1cc2abe67896ae3b1937fe532415cb43890d Author: Grzegorz Grzybek <gr.grzy...@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.4) --- .../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 c671fa4458c..11dd0881fab 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>