From 45c8ae870b2a3ed9a71676d4bf23d8a84fbbb94c Mon Sep 17 00:00:00 2001 From: Tamas Cservenak Date: Thu, 12 Dec 2024 23:58:19 +0100 Subject: [PATCH 1/2] [MRESOLVER-646] Maven4 rc1 in mvn4 supplier Update mvn4 supplier. --- https://issues.apache.org/jira/browse/MRESOLVER-646 --- maven-resolver-supplier-mvn4/pom.xml | 43 +------------------ .../supplier/RepositorySystemSupplier.java | 26 +++++------ .../supplier/SessionBuilderSupplier.java | 2 +- 3 files changed, 15 insertions(+), 56 deletions(-) diff --git a/maven-resolver-supplier-mvn4/pom.xml b/maven-resolver-supplier-mvn4/pom.xml index 10f2d602a..a7fccca99 100644 --- a/maven-resolver-supplier-mvn4/pom.xml +++ b/maven-resolver-supplier-mvn4/pom.xml @@ -74,49 +74,8 @@ org.apache.maven - maven-resolver-provider + maven-impl ${maven4Version} - - - javax.inject - javax.inject - - - org.eclipse.sisu - org.eclipse.sisu.inject - - - com.google.inject - guice - - - org.ow2.asm - asm - - - - - org.apache.maven - maven-model-builder - ${maven4Version} - - - javax.inject - javax.inject - - - jakarta.inject - jakarta.inject-api - - - org.eclipse.sisu - org.eclipse.sisu.inject - - - org.eclipse.sisu - org.eclipse.sisu.plexus - - diff --git a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java index ca3f1ac65..bec59a120 100644 --- a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java +++ b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java @@ -24,19 +24,19 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; -import org.apache.maven.model.building.DefaultModelBuilderFactory; -import org.apache.maven.model.building.ModelBuilder; -import org.apache.maven.repository.internal.DefaultArtifactDescriptorReader; -import org.apache.maven.repository.internal.DefaultModelCacheFactory; -import org.apache.maven.repository.internal.DefaultVersionRangeResolver; -import org.apache.maven.repository.internal.DefaultVersionResolver; -import org.apache.maven.repository.internal.MavenArtifactRelocationSource; -import org.apache.maven.repository.internal.ModelCacheFactory; -import org.apache.maven.repository.internal.PluginsMetadataGeneratorFactory; -import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory; -import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory; -import org.apache.maven.repository.internal.relocation.DistributionManagementArtifactRelocationSource; -import org.apache.maven.repository.internal.relocation.UserPropertiesArtifactRelocationSource; +import org.apache.maven.api.services.ModelBuilder; +import org.apache.maven.internal.impl.model.DefaultModelBuilder; +import org.apache.maven.internal.impl.resolver.DefaultArtifactDescriptorReader; +import org.apache.maven.internal.impl.resolver.DefaultModelCacheFactory; +import org.apache.maven.internal.impl.resolver.DefaultVersionRangeResolver; +import org.apache.maven.internal.impl.resolver.DefaultVersionResolver; +import org.apache.maven.internal.impl.resolver.MavenArtifactRelocationSource; +import org.apache.maven.internal.impl.resolver.ModelCacheFactory; +import org.apache.maven.internal.impl.resolver.PluginsMetadataGeneratorFactory; +import org.apache.maven.internal.impl.resolver.SnapshotMetadataGeneratorFactory; +import org.apache.maven.internal.impl.resolver.VersionsMetadataGeneratorFactory; +import org.apache.maven.internal.impl.resolver.relocation.DistributionManagementArtifactRelocationSource; +import org.apache.maven.internal.impl.resolver.relocation.UserPropertiesArtifactRelocationSource; import org.eclipse.aether.RepositoryListener; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory; diff --git a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java index 2d6a935e1..3bdc1f0c3 100644 --- a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java +++ b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/SessionBuilderSupplier.java @@ -20,7 +20,7 @@ import java.util.function.Supplier; -import org.apache.maven.repository.internal.MavenSessionBuilderSupplier; +import org.apache.maven.internal.impl.resolver.MavenSessionBuilderSupplier; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.RepositorySystemSession.CloseableSession; import org.eclipse.aether.RepositorySystemSession.SessionBuilder; From d55841ff43dbd3aeaab13e9f390e10274687687c Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Fri, 13 Dec 2024 09:47:34 +0100 Subject: [PATCH 2/2] Add DI to boot internal maven stuff --- .../supplier/RepositorySystemSupplier.java | 179 ++++++------------ 1 file changed, 62 insertions(+), 117 deletions(-) diff --git a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java index bec59a120..6884b3c2a 100644 --- a/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java +++ b/maven-resolver-supplier-mvn4/src/main/java/org/eclipse/aether/supplier/RepositorySystemSupplier.java @@ -19,24 +19,15 @@ package org.eclipse.aether.supplier; import java.util.HashMap; -import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; +import org.apache.maven.api.di.Provides; import org.apache.maven.api.services.ModelBuilder; -import org.apache.maven.internal.impl.model.DefaultModelBuilder; -import org.apache.maven.internal.impl.resolver.DefaultArtifactDescriptorReader; -import org.apache.maven.internal.impl.resolver.DefaultModelCacheFactory; -import org.apache.maven.internal.impl.resolver.DefaultVersionRangeResolver; -import org.apache.maven.internal.impl.resolver.DefaultVersionResolver; -import org.apache.maven.internal.impl.resolver.MavenArtifactRelocationSource; -import org.apache.maven.internal.impl.resolver.ModelCacheFactory; -import org.apache.maven.internal.impl.resolver.PluginsMetadataGeneratorFactory; -import org.apache.maven.internal.impl.resolver.SnapshotMetadataGeneratorFactory; -import org.apache.maven.internal.impl.resolver.VersionsMetadataGeneratorFactory; -import org.apache.maven.internal.impl.resolver.relocation.DistributionManagementArtifactRelocationSource; -import org.apache.maven.internal.impl.resolver.relocation.UserPropertiesArtifactRelocationSource; +import org.apache.maven.di.Injector; +import org.apache.maven.di.Key; +import org.apache.maven.di.impl.InjectorImpl; import org.eclipse.aether.RepositoryListener; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory; @@ -176,8 +167,26 @@ private void checkClosed() { } } + private Injector injector; + + public final Injector getInjector() { + checkClosed(); + if (injector == null) { + injector = createInjector(); + } + return injector; + } + + protected Injector createInjector() { + Injector injector = new InjectorImpl(); + injector.discover(getClass().getClassLoader()); + injector.bindInstance(RepositorySystemSupplier.class, this); + return injector; + } + private PathProcessor pathProcessor; + @Provides public final PathProcessor getPathProcessor() { checkClosed(); if (pathProcessor == null) { @@ -192,6 +201,7 @@ protected PathProcessor createPathProcessor() { private ChecksumProcessor checksumProcessor; + @Provides public final ChecksumProcessor getChecksumProcessor() { checkClosed(); if (checksumProcessor == null) { @@ -206,6 +216,7 @@ protected ChecksumProcessor createChecksumProcessor() { private TrackingFileManager trackingFileManager; + @Provides public final TrackingFileManager getTrackingFileManager() { checkClosed(); if (trackingFileManager == null) { @@ -373,6 +384,7 @@ protected NamedLockFactoryAdapterFactory createNamedLockFactoryAdapterFactory() private SyncContextFactory syncContextFactory; + @Provides public final SyncContextFactory getSyncContextFactory() { checkClosed(); if (syncContextFactory == null) { @@ -387,6 +399,7 @@ protected SyncContextFactory createSyncContextFactory() { private Map checksumAlgorithmFactories; + @Provides public final Map getChecksumAlgorithmFactories() { checkClosed(); if (checksumAlgorithmFactories == null) { @@ -406,6 +419,7 @@ protected Map createChecksumAlgorithmFactories private ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector; + @Provides public final ChecksumAlgorithmFactorySelector getChecksumAlgorithmFactorySelector() { checkClosed(); if (checksumAlgorithmFactorySelector == null) { @@ -420,6 +434,7 @@ protected ChecksumAlgorithmFactorySelector createChecksumAlgorithmFactorySelecto private ArtifactPredicateFactory artifactPredicateFactory; + @Provides public final ArtifactPredicateFactory getArtifactPredicateFactory() { checkClosed(); if (artifactPredicateFactory == null) { @@ -434,6 +449,7 @@ protected ArtifactPredicateFactory createArtifactPredicateFactory() { private Map repositoryLayoutFactories; + @Provides public final Map getRepositoryLayoutFactories() { checkClosed(); if (repositoryLayoutFactories == null) { @@ -453,6 +469,7 @@ protected Map createRepositoryLayoutFactories() private RepositoryLayoutProvider repositoryLayoutProvider; + @Provides public final RepositoryLayoutProvider getRepositoryLayoutProvider() { checkClosed(); if (repositoryLayoutProvider == null) { @@ -467,6 +484,7 @@ protected RepositoryLayoutProvider createRepositoryLayoutProvider() { private LocalRepositoryProvider localRepositoryProvider; + @Provides public final LocalRepositoryProvider getLocalRepositoryProvider() { checkClosed(); if (localRepositoryProvider == null) { @@ -489,6 +507,7 @@ protected LocalRepositoryProvider createLocalRepositoryProvider() { private RemoteRepositoryManager remoteRepositoryManager; + @Provides public final RemoteRepositoryManager getRemoteRepositoryManager() { checkClosed(); if (remoteRepositoryManager == null) { @@ -503,6 +522,7 @@ protected RemoteRepositoryManager createRemoteRepositoryManager() { private Map remoteRepositoryFilterSources; + @Provides public final Map getRemoteRepositoryFilterSources() { checkClosed(); if (remoteRepositoryFilterSources == null) { @@ -524,6 +544,7 @@ protected Map createRemoteRepositoryFilter private RemoteRepositoryFilterManager remoteRepositoryFilterManager; + @Provides public final RemoteRepositoryFilterManager getRemoteRepositoryFilterManager() { checkClosed(); if (remoteRepositoryFilterManager == null) { @@ -538,6 +559,7 @@ protected RemoteRepositoryFilterManager createRemoteRepositoryFilterManager() { private Map repositoryListeners; + @Provides public final Map getRepositoryListeners() { checkClosed(); if (repositoryListeners == null) { @@ -552,6 +574,7 @@ protected Map createRepositoryListeners() { private RepositoryEventDispatcher repositoryEventDispatcher; + @Provides public final RepositoryEventDispatcher getRepositoryEventDispatcher() { checkClosed(); if (repositoryEventDispatcher == null) { @@ -566,6 +589,7 @@ protected RepositoryEventDispatcher createRepositoryEventDispatcher() { private Map trustedChecksumsSources; + @Provides public final Map getTrustedChecksumsSources() { checkClosed(); if (trustedChecksumsSources == null) { @@ -587,6 +611,7 @@ protected Map createTrustedChecksumsSources() { private Map providedChecksumsSources; + @Provides public final Map getProvidedChecksumsSources() { checkClosed(); if (providedChecksumsSources == null) { @@ -605,6 +630,7 @@ protected Map createProvidedChecksumsSources() private Map checksumExtractorStrategies; + @Provides public final Map getChecksumExtractorStrategies() { checkClosed(); if (checksumExtractorStrategies == null) { @@ -622,6 +648,7 @@ protected Map createChecksumExtractorStrategi private ChecksumExtractor checksumExtractor; + @Provides public final ChecksumExtractor getChecksumExtractor() { checkClosed(); if (checksumExtractor == null) { @@ -636,6 +663,7 @@ protected ChecksumExtractor createChecksumExtractor() { private Map transporterFactories; + @Provides public final Map getTransporterFactories() { checkClosed(); if (transporterFactories == null) { @@ -655,6 +683,7 @@ protected Map createTransporterFactories() { private TransporterProvider transporterProvider; + @Provides public final TransporterProvider getTransporterProvider() { checkClosed(); if (transporterProvider == null) { @@ -669,6 +698,7 @@ protected TransporterProvider createTransporterProvider() { private BasicRepositoryConnectorFactory basicRepositoryConnectorFactory; + @Provides public final BasicRepositoryConnectorFactory getBasicRepositoryConnectorFactory() { checkClosed(); if (basicRepositoryConnectorFactory == null) { @@ -688,6 +718,7 @@ protected BasicRepositoryConnectorFactory createBasicRepositoryConnectorFactory( private Map repositoryConnectorFactories; + @Provides public final Map getRepositoryConnectorFactories() { checkClosed(); if (repositoryConnectorFactories == null) { @@ -704,6 +735,7 @@ protected Map createRepositoryConnectorFacto private RepositoryConnectorProvider repositoryConnectorProvider; + @Provides public final RepositoryConnectorProvider getRepositoryConnectorProvider() { checkClosed(); if (repositoryConnectorProvider == null) { @@ -719,6 +751,7 @@ protected RepositoryConnectorProvider createRepositoryConnectorProvider() { private Installer installer; + @Provides public final Installer getInstaller() { checkClosed(); if (installer == null) { @@ -739,6 +772,7 @@ protected Installer createInstaller() { private Deployer deployer; + @Provides public final Deployer getDeployer() { checkClosed(); if (deployer == null) { @@ -763,6 +797,7 @@ protected Deployer createDeployer() { private Map dependencyCollectorDelegates; + @Provides public final Map getDependencyCollectorDelegates() { checkClosed(); if (dependencyCollectorDelegates == null) { @@ -795,6 +830,7 @@ protected Map createDependencyCollectorDele private DependencyCollector dependencyCollector; + @Provides public final DependencyCollector getDependencyCollector() { checkClosed(); if (dependencyCollector == null) { @@ -809,6 +845,7 @@ protected DependencyCollector createDependencyCollector() { private Map artifactResolverPostProcessors; + @Provides public final Map getArtifactResolverPostProcessors() { checkClosed(); if (artifactResolverPostProcessors == null) { @@ -828,6 +865,7 @@ protected Map createArtifactResolverPostP private ArtifactResolver artifactResolver; + @Provides public final ArtifactResolver getArtifactResolver() { checkClosed(); if (artifactResolver == null) { @@ -852,6 +890,7 @@ protected ArtifactResolver createArtifactResolver() { private MetadataResolver metadataResolver; + @Provides public final MetadataResolver getMetadataResolver() { checkClosed(); if (metadataResolver == null) { @@ -874,6 +913,7 @@ protected MetadataResolver createMetadataResolver() { private VersionScheme versionScheme; + @Provides public final VersionScheme getVersionScheme() { checkClosed(); if (versionScheme == null) { @@ -888,6 +928,7 @@ protected VersionScheme createVersionScheme() { private Map artifactGeneratorFactories; + @Provides public final Map getArtifactGeneratorFactories() { checkClosed(); if (artifactGeneratorFactories == null) { @@ -903,6 +944,7 @@ protected Map createArtifactGeneratorFactories private Map artifactDecoratorFactories; + @Provides public final Map getArtifactDecoratorFactories() { checkClosed(); if (artifactDecoratorFactories == null) { @@ -920,6 +962,7 @@ protected Map createArtifactDecoratorFactories private Map artifactTransformers; + @Provides public final Map getArtifactTransformers() { checkClosed(); if (artifactTransformers == null) { @@ -932,132 +975,34 @@ protected Map createArtifactTransformers() { return new HashMap<>(); } - private Map metadataGeneratorFactories; - public final Map getMetadataGeneratorFactories() { checkClosed(); - if (metadataGeneratorFactories == null) { - metadataGeneratorFactories = createMetadataGeneratorFactories(); - } - return metadataGeneratorFactories; - } - - protected Map createMetadataGeneratorFactories() { - // from maven-resolver-provider - HashMap result = new HashMap<>(); - result.put(PluginsMetadataGeneratorFactory.NAME, new PluginsMetadataGeneratorFactory()); - result.put(VersionsMetadataGeneratorFactory.NAME, new VersionsMetadataGeneratorFactory()); - result.put(SnapshotMetadataGeneratorFactory.NAME, new SnapshotMetadataGeneratorFactory()); - return result; + return getInjector().getInstance(new Key>() {}); } - private LinkedHashMap artifactRelocationSources; - - public final LinkedHashMap getMavenArtifactRelocationSources() { - checkClosed(); - if (artifactRelocationSources == null) { - artifactRelocationSources = createMavenArtifactRelocationSources(); - } - return artifactRelocationSources; - } - - protected LinkedHashMap createMavenArtifactRelocationSources() { - // from maven-resolver-provider - LinkedHashMap result = new LinkedHashMap<>(); - result.put(UserPropertiesArtifactRelocationSource.NAME, new UserPropertiesArtifactRelocationSource()); - result.put( - DistributionManagementArtifactRelocationSource.NAME, - new DistributionManagementArtifactRelocationSource()); - return result; - } - - private ArtifactDescriptorReader artifactDescriptorReader; - public final ArtifactDescriptorReader getArtifactDescriptorReader() { checkClosed(); - if (artifactDescriptorReader == null) { - artifactDescriptorReader = createArtifactDescriptorReader(); - } - return artifactDescriptorReader; + return getInjector().getInstance(ArtifactDescriptorReader.class); } - protected ArtifactDescriptorReader createArtifactDescriptorReader() { - // from maven-resolver-provider - return new DefaultArtifactDescriptorReader( - getRemoteRepositoryManager(), - getVersionResolver(), - getVersionRangeResolver(), - getArtifactResolver(), - getModelBuilder(), - getRepositoryEventDispatcher(), - getModelCacheFactory(), - getMavenArtifactRelocationSources()); - } - - private VersionResolver versionResolver; - public final VersionResolver getVersionResolver() { checkClosed(); - if (versionResolver == null) { - versionResolver = createVersionResolver(); - } - return versionResolver; - } - - protected VersionResolver createVersionResolver() { - // from maven-resolver-provider - return new DefaultVersionResolver( - getMetadataResolver(), getSyncContextFactory(), getRepositoryEventDispatcher()); + return getInjector().getInstance(VersionResolver.class); } - private VersionRangeResolver versionRangeResolver; - public final VersionRangeResolver getVersionRangeResolver() { checkClosed(); - if (versionRangeResolver == null) { - versionRangeResolver = createVersionRangeResolver(); - } - return versionRangeResolver; - } - - protected VersionRangeResolver createVersionRangeResolver() { - // from maven-resolver-provider - return new DefaultVersionRangeResolver( - getMetadataResolver(), getSyncContextFactory(), getRepositoryEventDispatcher(), getVersionScheme()); + return getInjector().getInstance(VersionRangeResolver.class); } - private ModelBuilder modelBuilder; - public final ModelBuilder getModelBuilder() { checkClosed(); - if (modelBuilder == null) { - modelBuilder = createModelBuilder(); - } - return modelBuilder; - } - - protected ModelBuilder createModelBuilder() { - // from maven-model-builder - return new DefaultModelBuilderFactory().newInstance(); - } - - private ModelCacheFactory modelCacheFactory; - - public final ModelCacheFactory getModelCacheFactory() { - checkClosed(); - if (modelCacheFactory == null) { - modelCacheFactory = createModelCacheFactory(); - } - return modelCacheFactory; - } - - protected ModelCacheFactory createModelCacheFactory() { - // from maven-resolver-provider - return new DefaultModelCacheFactory(); + return getInjector().getInstance(ModelBuilder.class); } private RepositorySystem repositorySystem; + @Provides public final RepositorySystem getRepositorySystem() { checkClosed(); if (repositorySystem == null) {