You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2023/06/15 14:25:01 UTC
[maven] branch master updated: [MNG-7794][MNG-7809] Deprecate RepositorySystem and make maven-compat optional (#1150)
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push:
new 967d8fc19 [MNG-7794][MNG-7809] Deprecate RepositorySystem and make maven-compat optional (#1150)
967d8fc19 is described below
commit 967d8fc19cbb8a78410ceed70bd91c2e628da813
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Jun 15 16:24:56 2023 +0200
[MNG-7794][MNG-7809] Deprecate RepositorySystem and make maven-compat optional (#1150)
* Move maven-compat to jsr330
* Remove more ties to RepositorySystem
* Move more stuff to maven-compat
* Move PluginManager and LocalRepositoryNotAccessibleException to maven-compat
* Fix tests
* Break circular dependency loop in components
* Move unused deprecated classes
---
maven-compat/pom.xml | 8 +-
.../org/apache/maven/ArtifactFilterManager.java | 1 +
.../maven/ArtifactFilterManagerDelegate.java | 1 +
.../apache/maven/DefaultArtifactFilterManager.java | 2 +-
.../maven/DefaultProjectDependenciesResolver.java | 2 +-
.../apache/maven/ProjectDependenciesResolver.java | 0
.../artifact/deployer/DefaultArtifactDeployer.java | 11 +-
.../installer/DefaultArtifactInstaller.java | 13 +-
.../artifact/manager/DefaultWagonManager.java | 19 ++-
.../metadata/AbstractArtifactMetadata.java | 0
.../ArtifactMetadataRetrievalException.java | 0
.../artifact/metadata/ArtifactMetadataSource.java | 0
.../maven/artifact/metadata/ResolutionGroup.java | 0
.../DefaultArtifactRepositoryFactory.java | 26 +++-
.../repository/LegacyLocalRepositoryManager.java | 4 +
.../repository/layout/FlatRepositoryLayout.java | 7 +-
.../metadata/AbstractRepositoryMetadata.java | 0
.../metadata/ArtifactRepositoryMetadata.java | 0
.../metadata/DefaultRepositoryMetadataManager.java | 13 +-
.../repository/metadata/RepositoryMetadata.java | 0
.../RepositoryMetadataDeploymentException.java | 0
.../RepositoryMetadataInstallationException.java | 0
.../metadata/RepositoryMetadataManager.java | 0
.../RepositoryMetadataResolutionException.java | 0
.../resolver/ArtifactResolutionRequest.java | 0
.../resolver/ArtifactResolutionResult.java | 0
.../resolver/DefaultArtifactCollector.java | 6 +-
.../artifact/resolver/DefaultArtifactResolver.java | 31 ++--
.../resolver/DefaultResolutionErrorHandler.java | 0
.../artifact/resolver/ResolutionErrorHandler.java | 0
.../artifact/resolver/ResolutionListener.java | 0
.../maven/artifact/resolver/ResolutionNode.java | 0
.../maven/execution/DefaultRuntimeInformation.java | 11 +-
.../org/apache/maven/plugin/PluginManager.java | 0
.../plugin/internal/DefaultPluginManager.java | 0
.../maven/profiles/DefaultProfileManager.java | 7 +-
.../maven/project/DefaultMavenProjectBuilder.java | 15 +-
.../project/artifact/ActiveProjectArtifact.java | 0
.../artifact/DefaultMavenMetadataCache.java | 1 +
.../project/artifact/DefaultMetadataSource.java | 1 +
.../maven/project/artifact/MavenMetadataCache.java | 1 +
.../project/artifact/MavenMetadataSource.java | 1 +
.../project/artifact/ProjectArtifactMetadata.java | 1 +
.../DefaultModelInheritanceAssembler.java | 7 +-
.../AbstractStringBasedModelInterpolator.java | 5 +-
.../StringSearchModelInterpolator.java | 7 +-
.../maven/project/path/DefaultPathTranslator.java | 7 +-
.../apache/maven/project/path/PathTranslator.java | 0
.../project/validation/DefaultModelValidator.java | 11 +-
.../repository/ArtifactDoesNotExistException.java | 1 +
.../maven/repository/ArtifactTransferEvent.java | 1 +
.../ArtifactTransferFailedException.java | 1 +
.../maven/repository/ArtifactTransferListener.java | 1 +
.../maven/repository/ArtifactTransferResource.java | 1 +
.../maven/repository/DefaultMirrorSelector.java | 7 +-
.../DelegatingLocalArtifactRepository.java | 0
.../maven/repository/LocalArtifactRepository.java | 1 +
.../LocalRepositoryNotAccessibleException.java | 1 +
.../apache/maven/repository/RepositorySystem.java | 9 +-
.../legacy/DefaultUpdateCheckManager.java | 7 +-
.../repository/legacy/DefaultWagonManager.java | 17 +-
.../repository/legacy/LegacyRepositorySystem.java | 27 ++--
.../legacy/metadata/AbstractArtifactMetadata.java | 1 +
.../ArtifactMetadataRetrievalException.java | 1 +
.../legacy/metadata/ArtifactMetadataSource.java | 1 +
.../metadata/DefaultMetadataResolutionRequest.java | 1 +
.../legacy/metadata/MetadataResolutionRequest.java | 1 +
.../legacy/metadata/ResolutionGroup.java | 1 +
.../DefaultArtifactRepositoryFactory.java | 11 +-
.../resolver/DefaultLegacyArtifactCollector.java | 16 +-
.../resolver/conflict/DefaultConflictResolver.java | 6 +-
.../conflict/DefaultConflictResolverFactory.java | 11 +-
.../conflict/FarthestConflictResolver.java | 7 +-
.../resolver/conflict/NearestConflictResolver.java | 7 +-
.../resolver/conflict/NewestConflictResolver.java | 7 +-
.../resolver/conflict/OldestConflictResolver.java | 7 +-
.../transform/AbstractVersionTransformation.java | 7 +-
.../DefaultArtifactTransformationManager.java | 25 ++-
.../transform/LatestArtifactTransformation.java | 7 +-
.../transform/ReleaseArtifactTransformation.java | 7 +-
.../resolver/transform/SnapshotTransformation.java | 7 +-
.../metadata/DefaultClasspathTransformation.java | 11 +-
.../DefaultGraphConflictResolutionPolicy.java | 7 +-
.../metadata/DefaultGraphConflictResolver.java | 11 +-
.../settings/DefaultMavenSettingsBuilder.java | 0
.../maven/settings/MavenSettingsBuilder.java | 0
.../maven/toolchain/DefaultToolchainsBuilder.java | 0
.../apache/maven/toolchain/ToolchainsBuilder.java | 2 +
.../maven/AbstractCoreMavenComponentTestCase.java | 3 +-
.../maven/ProjectDependenciesResolverTest.java | 0
.../metadata/SwitchableMetadataSource.java | 79 ++++++++++
.../artifact/DefaultMavenMetadataCacheTest.java | 0
.../project/artifact/MavenMetadataSourceTest.java | 0
.../repository/LegacyRepositorySystemTest.java | 17 +-
.../maven/repository/TestArtifactHandler.java | 0
.../maven/repository}/TestRepositorySystem.java | 15 +-
.../legacy/LegacyRepositorySystemTest.java | 3 +-
.../it0063/jdk/jre/placeholder.txt | 0
.../it0063/jdk/lib/tools.jar | Bin
.../project-dependencies-resolver/it0063/pom.xml | 0
.../project-with-exclusions/pom.xml | 0
maven-core/pom.xml | 15 ++
.../main/java/org/apache/maven/DefaultMaven.java | 8 +-
.../java/org/apache/maven/RepositoryUtils.java | 28 ++++
.../apache/maven/bridge/MavenRepositorySystem.java | 35 +++--
.../DefaultMavenExecutionRequestPopulator.java | 9 +-
.../internal/DefaultProjectArtifactFactory.java | 113 +++++++++++++-
.../maven/project/DefaultProjectBuilder.java | 4 +-
.../project/DefaultProjectBuildingHelper.java | 8 +-
.../org/apache/maven/project/MavenProject.java | 4 +-
.../maven/AbstractCoreMavenComponentTestCase.java | 6 +-
.../DefaultRepositorySystemSessionFactoryTest.java | 5 +-
.../stub/ProjectDependenciesResolverStub.java | 104 -------------
.../PluginParameterExpressionEvaluatorTest.java | 6 +-
.../PluginParameterExpressionEvaluatorV4Test.java | 6 +-
.../project/AbstractMavenProjectTestCase.java | 5 +-
.../apache/maven/project/PomConstructionTest.java | 8 +-
.../maven/project/ProjectModelResolverTest.java | 3 +-
.../apache/maven/project/TestMetadataSource.java | 64 --------
.../repository/TestMavenRepositorySystem.java | 61 ++++++++
.../maven/repository/TestRepositorySystem.java | 172 ---------------------
.../settings/PomConstructionWithSettingsTest.java | 4 +-
pom.xml | 19 ---
123 files changed, 682 insertions(+), 577 deletions(-)
diff --git a/maven-compat/pom.xml b/maven-compat/pom.xml
index fa052f0c8..4d7217b41 100644
--- a/maven-compat/pom.xml
+++ b/maven-compat/pom.xml
@@ -88,10 +88,6 @@ under the License.
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
</dependency>
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-annotations</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-provider-api</artifactId>
@@ -127,8 +123,8 @@ under the License.
<build>
<plugins>
<plugin>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-metadata</artifactId>
+ <groupId>org.eclipse.sisu</groupId>
+ <artifactId>sisu-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.modello</groupId>
diff --git a/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java b/maven-compat/src/main/java/org/apache/maven/ArtifactFilterManager.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java
rename to maven-compat/src/main/java/org/apache/maven/ArtifactFilterManager.java
index e2476cea5..e756a9ce4 100644
--- a/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/ArtifactFilterManager.java
@@ -25,6 +25,7 @@ import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
/**
* ArtifactFilterManager
*/
+@Deprecated
public interface ArtifactFilterManager {
/**
* Returns a filter for core + extension artifacts.
diff --git a/maven-core/src/main/java/org/apache/maven/ArtifactFilterManagerDelegate.java b/maven-compat/src/main/java/org/apache/maven/ArtifactFilterManagerDelegate.java
similarity index 98%
rename from maven-core/src/main/java/org/apache/maven/ArtifactFilterManagerDelegate.java
rename to maven-compat/src/main/java/org/apache/maven/ArtifactFilterManagerDelegate.java
index 7deb000af..c9e752e45 100644
--- a/maven-core/src/main/java/org/apache/maven/ArtifactFilterManagerDelegate.java
+++ b/maven-compat/src/main/java/org/apache/maven/ArtifactFilterManagerDelegate.java
@@ -23,6 +23,7 @@ import java.util.Set;
/**
* @deprecated use {@code META-INF/maven/extension.xml} to define artifacts exported by Maven core extensions.
*/
+@Deprecated
public interface ArtifactFilterManagerDelegate {
void addExcludes(Set<String> excludes);
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java b/maven-compat/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
similarity index 98%
rename from maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
rename to maven-compat/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
index bf9ad700e..c01f4112d 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
@@ -35,7 +35,7 @@ import org.apache.maven.extension.internal.CoreExports;
*/
@Named
@Singleton
-@SuppressWarnings("deprecation")
+@Deprecated
public class DefaultArtifactFilterManager implements ArtifactFilterManager {
// this is a live injected collection
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java b/maven-compat/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
rename to maven-compat/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
index b2f705c74..ce2458829 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
@@ -48,9 +48,9 @@ import org.apache.maven.repository.RepositorySystem;
* but should have been.
*
*/
-@Deprecated
@Named
@Singleton
+@Deprecated
public class DefaultProjectDependenciesResolver implements ProjectDependenciesResolver {
private final RepositorySystem repositorySystem;
diff --git a/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java b/maven-compat/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
rename to maven-compat/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java b/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
index e64df5933..1d04b089f 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.artifact.deployer;
+import javax.inject.Inject;
+import javax.inject.Named;
+
import java.io.File;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -33,8 +36,6 @@ import org.apache.maven.artifact.repository.metadata.MetadataBridge;
import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.project.artifact.ProjectArtifactMetadata;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
@@ -49,13 +50,13 @@ import org.eclipse.aether.util.artifact.SubArtifact;
/**
* DefaultArtifactDeployer
*/
-@Component(role = ArtifactDeployer.class, instantiationStrategy = "per-lookup")
+@Named
public class DefaultArtifactDeployer extends AbstractLogEnabled implements ArtifactDeployer {
- @Requirement
+ @Inject
private RepositorySystem repoSystem;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
private Map<Object, MergeableMetadata> relatedMetadata = new ConcurrentHashMap<>();
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java b/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
index 7101f7169..344a159b3 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.artifact.installer;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import org.apache.maven.RepositoryUtils;
@@ -32,8 +36,6 @@ import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryM
import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.project.artifact.ProjectArtifactMetadata;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
@@ -45,13 +47,14 @@ import org.eclipse.aether.util.artifact.SubArtifact;
/**
* @author Jason van Zyl
*/
-@Component(role = ArtifactInstaller.class)
+@Named
+@Singleton
public class DefaultArtifactInstaller extends AbstractLogEnabled implements ArtifactInstaller {
- @Requirement
+ @Inject
private RepositorySystem repoSystem;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
/** @deprecated we want to use the artifact method only, and ensure artifact.file is set correctly. */
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java b/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
index 4a61ba760..f5f029f06 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.artifact.manager;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.util.List;
import org.apache.maven.artifact.Artifact;
@@ -37,31 +41,30 @@ import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
import org.apache.maven.wagon.authentication.AuthenticationInfo;
import org.apache.maven.wagon.proxy.ProxyInfo;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
/**
* Manages <a href="https://maven.apache.org/wagon">Wagon</a> related operations in Maven.
*/
-@Component(role = WagonManager.class)
+@Named
+@Singleton
public class DefaultWagonManager extends org.apache.maven.repository.legacy.DefaultWagonManager
implements WagonManager {
// NOTE: This must use a different field name than in the super class or IoC has no chance to inject the loggers
- @Requirement
+ @Inject
private Logger log;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
- @Requirement
+ @Inject
private SettingsDecrypter settingsDecrypter;
- @Requirement
+ @Inject
private MirrorSelector mirrorSelector;
- @Requirement
+ @Inject
private ArtifactRepositoryFactory artifactRepositoryFactory;
public AuthenticationInfo getAuthenticationInfo(String id) {
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java b/maven-compat/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataRetrievalException.java b/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataRetrievalException.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataRetrievalException.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataRetrievalException.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java b/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java b/maven-compat/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
index f5ae8ea4f..91d4585c2 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.artifact.repository;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.util.Arrays;
import java.util.List;
@@ -25,24 +29,25 @@ import org.apache.maven.artifact.UnknownRepositoryLayoutException;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.repository.RepositorySystem;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.eclipse.aether.RepositorySystemSession;
/**
* @author jdcasey
*/
-@Component(role = ArtifactRepositoryFactory.class)
+@Named
+@Singleton
public class DefaultArtifactRepositoryFactory implements ArtifactRepositoryFactory {
- @Requirement
+ @Inject
private org.apache.maven.repository.legacy.repository.ArtifactRepositoryFactory factory;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
- @Requirement
- private RepositorySystem repositorySystem;
+ @Inject
+ private PlexusContainer container;
public ArtifactRepositoryLayout getLayout(String layoutId) throws UnknownRepositoryLayoutException {
return factory.getLayout(layoutId);
@@ -92,6 +97,13 @@ public class DefaultArtifactRepositoryFactory implements ArtifactRepositoryFacto
if (session != null && repository != null && !isLocalRepository(repository)) {
List<ArtifactRepository> repositories = Arrays.asList(repository);
+ RepositorySystem repositorySystem;
+ try {
+ repositorySystem = container.lookup(RepositorySystem.class);
+ } catch (ComponentLookupException e) {
+ throw new IllegalStateException("Unable to lookup " + RepositorySystem.class.getName());
+ }
+
if (mirrors) {
repositorySystem.injectMirror(session, repositories);
}
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
similarity index 98%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
index cd76c79d7..630721359 100644
--- a/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
@@ -60,6 +60,10 @@ public class LegacyLocalRepositoryManager implements LocalRepositoryManager {
public static RepositorySystemSession overlay(
ArtifactRepository repository, RepositorySystemSession session, RepositorySystem system) {
+ return overlay(repository, session);
+ }
+
+ public static RepositorySystemSession overlay(ArtifactRepository repository, RepositorySystemSession session) {
if (repository == null || repository.getBasedir() == null) {
return session;
}
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
index 6960d1a94..c787cf321 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
@@ -18,16 +18,19 @@
*/
package org.apache.maven.artifact.repository.layout;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.codehaus.plexus.component.annotations.Component;
/**
* FlatRepositoryLayout
*/
-@Component(role = ArtifactRepositoryLayout.class, hint = "flat")
+@Named("flat")
+@Singleton
public class FlatRepositoryLayout implements ArtifactRepositoryLayout {
private static final char ARTIFACT_SEPARATOR = '-';
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
index 8741eca2c..04b6f3635 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.artifact.repository.metadata;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -40,20 +44,19 @@ import org.apache.maven.repository.legacy.UpdateCheckManager;
import org.apache.maven.repository.legacy.WagonManager;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
/**
* @author Jason van Zyl
*/
-@Component(role = RepositoryMetadataManager.class)
+@Named
+@Singleton
public class DefaultRepositoryMetadataManager extends AbstractLogEnabled implements RepositoryMetadataManager {
- @Requirement
+ @Inject
private WagonManager wagonManager;
- @Requirement
+ @Inject
private UpdateCheckManager updateCheckManager;
public void resolve(
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataDeploymentException.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataDeploymentException.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataDeploymentException.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataDeploymentException.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataInstallationException.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataInstallationException.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataInstallationException.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataInstallationException.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataResolutionException.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataResolutionException.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataResolutionException.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataResolutionException.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
index dde86482f..0c0a235a9 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
@@ -18,13 +18,15 @@
*/
package org.apache.maven.artifact.resolver;
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
/**
* Artifact collector - takes a set of original artifacts and resolves all of the best versions to use
* along with their metadata. No artifacts are downloaded.
*/
@Deprecated
-@Component(role = ArtifactCollector.class)
+@Named
+@Singleton
public class DefaultArtifactCollector extends org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector
implements ArtifactCollector {}
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
index 952382a23..f367e7f11 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.artifact.resolver;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
@@ -55,8 +59,6 @@ import org.apache.maven.repository.legacy.metadata.MetadataResolutionRequest;
import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
import org.apache.maven.wagon.events.TransferListener;
import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable;
@@ -69,32 +71,30 @@ import org.eclipse.aether.resolution.ArtifactResult;
/**
* @author Jason van Zyl
*/
-@Component(role = ArtifactResolver.class)
+@Named
+@Singleton
public class DefaultArtifactResolver implements ArtifactResolver, Disposable {
- @Requirement
+ @Inject
private Logger logger;
- @Requirement
+ @Inject
protected ArtifactFactory artifactFactory;
- @Requirement
+ @Inject
private ArtifactCollector artifactCollector;
- @Requirement
+ @Inject
private ResolutionErrorHandler resolutionErrorHandler;
- @Requirement
+ @Inject
private ArtifactMetadataSource source;
- @Requirement
+ @Inject
private PlexusContainer container;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
- @Requirement
- private RepositorySystem repoSystem;
-
private final Executor executor;
public DefaultArtifactResolver() {
@@ -108,7 +108,7 @@ public class DefaultArtifactResolver implements ArtifactResolver, Disposable {
}
private RepositorySystemSession getSession(ArtifactRepository localRepository) {
- return LegacyLocalRepositoryManager.overlay(localRepository, legacySupport.getRepositorySession(), repoSystem);
+ return LegacyLocalRepositoryManager.overlay(localRepository, legacySupport.getRepositorySession(), null);
}
private void injectSession1(RepositoryRequest request, MavenSession session) {
@@ -185,7 +185,10 @@ public class DefaultArtifactResolver implements ArtifactResolver, Disposable {
String path = lrm.getPathForLocalArtifact(artifactRequest.getArtifact());
artifact.setFile(new File(lrm.getRepository().getBasedir(), path));
+ RepositorySystem repoSystem = container.lookup(RepositorySystem.class);
result = repoSystem.resolveArtifact(session, artifactRequest);
+ } catch (ComponentLookupException e) {
+ throw new IllegalStateException("Unable to lookup " + RepositorySystem.class.getName());
} catch (org.eclipse.aether.resolution.ArtifactResolutionException e) {
if (e.getCause() instanceof org.eclipse.aether.transfer.ArtifactNotFoundException) {
throw new ArtifactNotFoundException(e.getMessage(), artifact, remoteRepositories, e);
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/resolver/DefaultResolutionErrorHandler.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultResolutionErrorHandler.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/resolver/DefaultResolutionErrorHandler.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultResolutionErrorHandler.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionErrorHandler.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionErrorHandler.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionErrorHandler.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionErrorHandler.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java
diff --git a/maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java b/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
rename to maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
diff --git a/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java b/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java
index 93697127c..547b0aa30 100644
--- a/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java
+++ b/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java
@@ -18,10 +18,12 @@
*/
package org.apache.maven.execution;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
@@ -31,10 +33,11 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationExce
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*/
@Deprecated
-@Component(role = RuntimeInformation.class)
+@Named
+@Singleton
public class DefaultRuntimeInformation implements RuntimeInformation, Initializable {
- @Requirement
+ @Inject
private org.apache.maven.rtinfo.RuntimeInformation rtInfo;
private ArtifactVersion applicationVersion;
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java b/maven-compat/src/main/java/org/apache/maven/plugin/PluginManager.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
rename to maven-compat/src/main/java/org/apache/maven/plugin/PluginManager.java
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java b/maven-compat/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java
rename to maven-compat/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java
diff --git a/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java b/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
index a682218aa..672726105 100644
--- a/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
@@ -18,6 +18,8 @@
*/
package org.apache.maven.profiles;
+import javax.inject.Inject;
+
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
@@ -32,7 +34,6 @@ import org.apache.maven.model.profile.ProfileSelector;
import org.apache.maven.profiles.activation.ProfileActivationException;
import org.codehaus.plexus.MutablePlexusContainer;
import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
@@ -42,10 +43,10 @@ import org.codehaus.plexus.logging.Logger;
@Deprecated
public class DefaultProfileManager implements ProfileManager {
- @Requirement
+ @Inject
private Logger logger;
- @Requirement
+ @Inject
private ProfileSelector profileSelector;
private List<String> activatedIds = new ArrayList<>();
diff --git a/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java b/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
index 85a28e32d..e2d6928ed 100644
--- a/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.project;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
@@ -41,22 +45,21 @@ import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.properties.internal.EnvironmentUtils;
import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.wagon.events.TransferListener;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
/**
*/
-@Component(role = MavenProjectBuilder.class)
@Deprecated
+@Named
+@Singleton
public class DefaultMavenProjectBuilder implements MavenProjectBuilder {
- @Requirement
+ @Inject
private ProjectBuilder projectBuilder;
- @Requirement
+ @Inject
private RepositorySystem repositorySystem;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
// ----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java b/maven-compat/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java
rename to maven-compat/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java b/maven-compat/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
rename to maven-compat/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
index 8141cc149..48c889cd9 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
@@ -43,6 +43,7 @@ import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
*/
@Named
@Singleton
+@Deprecated
public class DefaultMavenMetadataCache implements MavenMetadataCache {
protected final Map<CacheKey, CacheRecord> cache = new ConcurrentHashMap<>();
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java b/maven-compat/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java
rename to maven-compat/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java
index 42c30aee2..2b04d081c 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java
@@ -37,6 +37,7 @@ import org.apache.maven.project.ProjectBuilder;
*/
@Named
@Singleton
+@Deprecated
public class DefaultMetadataSource extends MavenMetadataSource {
@Inject
public DefaultMetadataSource(
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataCache.java b/maven-compat/src/main/java/org/apache/maven/project/artifact/MavenMetadataCache.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataCache.java
rename to maven-compat/src/main/java/org/apache/maven/project/artifact/MavenMetadataCache.java
index 8b759dbcb..bafc22cb8 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataCache.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/artifact/MavenMetadataCache.java
@@ -27,6 +27,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
/**
* MavenMetadataCache
*/
+@Deprecated
public interface MavenMetadataCache {
ResolutionGroup get(
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java b/maven-compat/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
rename to maven-compat/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
index 41af27985..b606ee5b7 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
@@ -92,6 +92,7 @@ import org.slf4j.LoggerFactory;
*/
@Named("maven")
@Singleton
+@Deprecated
public class MavenMetadataSource implements ArtifactMetadataSource {
private final Logger logger = LoggerFactory.getLogger(getClass());
private final RepositoryMetadataManager repositoryMetadataManager;
diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java b/maven-compat/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
rename to maven-compat/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
index 4a349330e..673714adf 100644
--- a/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
@@ -33,6 +33,7 @@ import org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreExce
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*/
+@Deprecated
public class ProjectArtifactMetadata extends AbstractArtifactMetadata {
private final File file;
diff --git a/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java b/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
index 215f6ae6c..c87225888 100644
--- a/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
@@ -18,14 +18,17 @@
*/
package org.apache.maven.project.inheritance;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
-import org.codehaus.plexus.component.annotations.Component;
/**
* DefaultModelInheritanceAssembler
*/
-@Component(role = ModelInheritanceAssembler.class)
+@Named
+@Singleton
public class DefaultModelInheritanceAssembler implements ModelInheritanceAssembler {
@Override
public void assembleModelInheritance(Model child, Model parent, String childPathAdjustment) {
diff --git a/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java b/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
index 87e46e85c..3745157e0 100644
--- a/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
@@ -18,6 +18,8 @@
*/
package org.apache.maven.project.interpolation;
+import javax.inject.Inject;
+
import java.io.File;
import java.io.IOException;
import java.io.StringReader;
@@ -35,7 +37,6 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.project.DefaultProjectBuilderConfiguration;
import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.path.PathTranslator;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.interpolation.AbstractValueSource;
import org.codehaus.plexus.interpolation.InterpolationException;
import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
@@ -86,7 +87,7 @@ public abstract class AbstractStringBasedModelInterpolator extends AbstractLogEn
TRANSLATED_PATH_EXPRESSIONS = translatedPrefixes;
}
- @Requirement
+ @Inject
private PathTranslator pathTranslator;
private Interpolator interpolator;
diff --git a/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java b/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java
index 259208e45..d63cbec5c 100644
--- a/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.project.interpolation;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
@@ -33,7 +36,6 @@ import java.util.WeakHashMap;
import org.apache.maven.model.Model;
import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.path.PathTranslator;
-import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
import org.codehaus.plexus.interpolation.Interpolator;
import org.codehaus.plexus.interpolation.StringSearchInterpolator;
@@ -44,7 +46,8 @@ import org.codehaus.plexus.logging.Logger;
* StringSearchModelInterpolator
*/
@Deprecated
-@Component(role = ModelInterpolator.class)
+@Named
+@Singleton
public class StringSearchModelInterpolator extends AbstractStringBasedModelInterpolator {
private static final Map<Class<?>, Field[]> FIELDS_BY_CLASS = new WeakHashMap<>();
diff --git a/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java b/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
index 6c9083fb4..9a6bc49c3 100644
--- a/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.project.path;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -26,13 +29,13 @@ import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.model.Reporting;
import org.apache.maven.model.Resource;
-import org.codehaus.plexus.component.annotations.Component;
/**
* DefaultPathTranslator
*/
@Deprecated
-@Component(role = PathTranslator.class)
+@Named
+@Singleton
public class DefaultPathTranslator implements PathTranslator {
private static final String[] BASEDIR_EXPRESSIONS = {"${basedir}", "${pom.basedir}", "${project.basedir}"};
diff --git a/maven-core/src/main/java/org/apache/maven/project/path/PathTranslator.java b/maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/project/path/PathTranslator.java
rename to maven-compat/src/main/java/org/apache/maven/project/path/PathTranslator.java
diff --git a/maven-compat/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java b/maven-compat/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
index 87cf801b5..2edbe701a 100644
--- a/maven-compat/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
+++ b/maven-compat/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
@@ -18,23 +18,26 @@
*/
package org.apache.maven.project.validation;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.model.Model;
import org.apache.maven.model.building.DefaultModelBuildingRequest;
import org.apache.maven.model.building.ModelBuildingRequest;
import org.apache.maven.model.building.ModelProblem;
import org.apache.maven.model.building.ModelProblemCollector;
import org.apache.maven.model.building.ModelProblemCollectorRequest;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
*/
-@Component(role = ModelValidator.class)
@Deprecated
+@Named
+@Singleton
public class DefaultModelValidator implements ModelValidator {
- @Requirement
+ @Inject
private org.apache.maven.model.validation.ModelValidator modelValidator;
public ModelValidationResult validate(Model model) {
diff --git a/maven-core/src/main/java/org/apache/maven/repository/ArtifactDoesNotExistException.java b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactDoesNotExistException.java
similarity index 98%
rename from maven-core/src/main/java/org/apache/maven/repository/ArtifactDoesNotExistException.java
rename to maven-compat/src/main/java/org/apache/maven/repository/ArtifactDoesNotExistException.java
index 98918468c..5624e1d99 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/ArtifactDoesNotExistException.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactDoesNotExistException.java
@@ -21,6 +21,7 @@ package org.apache.maven.repository;
/**
* ArtifactDoesNotExistException
*/
+@Deprecated
public class ArtifactDoesNotExistException extends Exception {
public ArtifactDoesNotExistException(final String message) {
super(message);
diff --git a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java
rename to maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java
index 55720cea9..53e36e2ad 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java
@@ -27,6 +27,7 @@ import java.util.EventObject;
*
* @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
*/
+@Deprecated
public class ArtifactTransferEvent extends EventObject {
/**
* A transfer was attempted, but has not yet commenced.
diff --git a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferFailedException.java b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferFailedException.java
similarity index 98%
rename from maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferFailedException.java
rename to maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferFailedException.java
index e041f7c47..530ec343a 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferFailedException.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferFailedException.java
@@ -21,6 +21,7 @@ package org.apache.maven.repository;
/**
* ArtifactTransferFailedException
*/
+@Deprecated
public class ArtifactTransferFailedException extends Exception {
public ArtifactTransferFailedException(final String message) {
super(message);
diff --git a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferListener.java b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferListener.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferListener.java
rename to maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferListener.java
index 77525cf61..c28688158 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferListener.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferListener.java
@@ -21,6 +21,7 @@ package org.apache.maven.repository;
/**
* ArtifactTransferListener
*/
+@Deprecated
public interface ArtifactTransferListener {
boolean isShowChecksumEvents();
diff --git a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferResource.java b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferResource.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferResource.java
rename to maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferResource.java
index 90f678afa..3db1df3e0 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferResource.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/ArtifactTransferResource.java
@@ -23,6 +23,7 @@ package org.apache.maven.repository;
*
* @author Benjamin Bentmann
*/
+@Deprecated
public interface ArtifactTransferResource {
/**
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java b/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
index f3e524a89..fc8361c99 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.repository;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
@@ -25,12 +28,12 @@ import java.util.List;
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.settings.Mirror;
-import org.codehaus.plexus.component.annotations.Component;
/**
* DefaultMirrorSelector
*/
-@Component(role = MirrorSelector.class)
+@Named
+@Singleton
public class DefaultMirrorSelector implements MirrorSelector {
private static final String WILDCARD = "*";
diff --git a/maven-core/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java b/maven-compat/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java
rename to maven-compat/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java
diff --git a/maven-core/src/main/java/org/apache/maven/repository/LocalArtifactRepository.java b/maven-compat/src/main/java/org/apache/maven/repository/LocalArtifactRepository.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/LocalArtifactRepository.java
rename to maven-compat/src/main/java/org/apache/maven/repository/LocalArtifactRepository.java
index ce66c112f..3577c316a 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/LocalArtifactRepository.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/LocalArtifactRepository.java
@@ -24,6 +24,7 @@ import org.apache.maven.artifact.repository.MavenArtifactRepository;
/**
* LocalArtifactRepository
*/
+@Deprecated
public abstract class LocalArtifactRepository extends MavenArtifactRepository {
public static final String IDE_WORKSPACE = "ide-workspace";
diff --git a/maven-core/src/main/java/org/apache/maven/repository/LocalRepositoryNotAccessibleException.java b/maven-compat/src/main/java/org/apache/maven/repository/LocalRepositoryNotAccessibleException.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/LocalRepositoryNotAccessibleException.java
rename to maven-compat/src/main/java/org/apache/maven/repository/LocalRepositoryNotAccessibleException.java
index 4058db515..ebfb6a8ce 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/LocalRepositoryNotAccessibleException.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/LocalRepositoryNotAccessibleException.java
@@ -25,6 +25,7 @@ import java.io.IOException;
*
* @author Benjamin Bentmann
*/
+@Deprecated
public class LocalRepositoryNotAccessibleException extends IOException {
public LocalRepositoryNotAccessibleException(String message, Throwable cause) {
diff --git a/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java b/maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java
similarity index 94%
rename from maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java
rename to maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java
index ede7f869c..dae35585a 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java
@@ -28,6 +28,7 @@ import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Repository;
@@ -38,9 +39,11 @@ import org.eclipse.aether.RepositorySystemSession;
/**
* @author Jason van Zyl
* @since 3.0-alpha
+ * @deprecated Use {@link MavenRepositorySystem} if needed, or maven-resolver directly, until maven 4.x api is out
*/
+@Deprecated
public interface RepositorySystem {
- String DEFAULT_LOCAL_REPO_ID = "local";
+ String DEFAULT_LOCAL_REPO_ID = MavenRepositorySystem.DEFAULT_LOCAL_REPO_ID;
@SuppressWarnings("checkstyle:constantname")
String userHome = System.getProperty("user.home");
@@ -51,9 +54,9 @@ public interface RepositorySystem {
@SuppressWarnings("checkstyle:constantname")
File defaultUserLocalRepository = new File(userMavenConfigurationHome, "repository");
- String DEFAULT_REMOTE_REPO_ID = "central";
+ String DEFAULT_REMOTE_REPO_ID = MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID;
- String DEFAULT_REMOTE_REPO_URL = "https://repo.maven.apache.org/maven2";
+ String DEFAULT_REMOTE_REPO_URL = MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID;
Artifact createArtifact(String groupId, String artifactId, String version, String packaging);
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultUpdateCheckManager.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultUpdateCheckManager.java
index 6e2633cc1..f975742cf 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultUpdateCheckManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultUpdateCheckManager.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.repository.legacy;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -34,14 +37,14 @@ import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.artifact.repository.Authentication;
import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
import org.apache.maven.repository.Proxy;
-import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.logging.Logger;
/**
* DefaultUpdateCheckManager
*/
-@Component(role = UpdateCheckManager.class)
+@Named
+@Singleton
public class DefaultUpdateCheckManager extends AbstractLogEnabled implements UpdateCheckManager {
private static final String ERROR_KEY_SUFFIX = ".error";
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
index 3ffc399ed..963b9377e 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.repository.legacy;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
@@ -46,8 +50,6 @@ import org.apache.maven.wagon.observers.ChecksumObserver;
import org.apache.maven.wagon.proxy.ProxyInfo;
import org.apache.maven.wagon.repository.Repository;
import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
@@ -62,7 +64,8 @@ import org.eclipse.aether.util.ConfigUtils;
/**
* Manages <a href="https://maven.apache.org/wagon">Wagon</a> related operations in Maven.
*/
-@Component(role = WagonManager.class)
+@Named
+@Singleton
public class DefaultWagonManager implements WagonManager {
private static final String[] CHECKSUM_IDS = {"md5", "sha1"};
@@ -72,16 +75,16 @@ public class DefaultWagonManager implements WagonManager {
*/
private static final String[] CHECKSUM_ALGORITHMS = {"MD5", "SHA-1"};
- @Requirement
+ @Inject
private Logger logger;
- @Requirement
+ @Inject
private PlexusContainer container;
- @Requirement
+ @Inject
private UpdateCheckManager updateCheckManager;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
//
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
index a9d30d4e1..5a77e9b03 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.repository.legacy;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -67,8 +71,6 @@ import org.apache.maven.settings.crypto.SettingsDecryptionResult;
import org.apache.maven.wagon.proxy.ProxyInfo;
import org.apache.maven.wagon.proxy.ProxyUtils;
import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.StringUtils;
@@ -81,34 +83,35 @@ import org.eclipse.aether.repository.RemoteRepository;
/**
* @author Jason van Zyl
*/
-@Component(role = RepositorySystem.class, hint = "default")
+@Named("default")
+@Singleton
public class LegacyRepositorySystem implements RepositorySystem {
- @Requirement
+ @Inject
private Logger logger;
- @Requirement
+ @Inject
private ArtifactFactory artifactFactory;
- @Requirement
+ @Inject
private ArtifactResolver artifactResolver;
- @Requirement
+ @Inject
private ArtifactRepositoryFactory artifactRepositoryFactory;
- @Requirement(role = ArtifactRepositoryLayout.class)
+ @Inject
private Map<String, ArtifactRepositoryLayout> layouts;
- @Requirement
+ @Inject
private WagonManager wagonManager;
- @Requirement
+ @Inject
private PlexusContainer plexus;
- @Requirement
+ @Inject
private MirrorSelector mirrorSelector;
- @Requirement
+ @Inject
private SettingsDecrypter settingsDecrypter;
public Artifact createArtifact(String groupId, String artifactId, String version, String scope, String type) {
diff --git a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/AbstractArtifactMetadata.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/AbstractArtifactMetadata.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/AbstractArtifactMetadata.java
rename to maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/AbstractArtifactMetadata.java
index 65a2e9853..c6846766c 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/AbstractArtifactMetadata.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/AbstractArtifactMetadata.java
@@ -25,6 +25,7 @@ import org.apache.maven.artifact.Artifact;
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*/
+@Deprecated
public abstract class AbstractArtifactMetadata implements ArtifactMetadata {
private static final String LS = System.lineSeparator();
diff --git a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataRetrievalException.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataRetrievalException.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataRetrievalException.java
rename to maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataRetrievalException.java
index 616a6e546..57c9b2a53 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataRetrievalException.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataRetrievalException.java
@@ -25,6 +25,7 @@ import org.apache.maven.artifact.Artifact;
*
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
*/
+@Deprecated
public class ArtifactMetadataRetrievalException extends Exception {
private Artifact artifact;
diff --git a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
rename to maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
index be6db47d9..64ebdd9a4 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
@@ -30,6 +30,7 @@ import org.apache.maven.artifact.versioning.ArtifactVersion;
*
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
*/
+@Deprecated
public interface ArtifactMetadataSource {
ResolutionGroup retrieve(MetadataResolutionRequest request) throws ArtifactMetadataRetrievalException;
diff --git a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java
rename to maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java
index 58921df5c..c08e9cd63 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java
@@ -31,6 +31,7 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
*
* @author Benjamin Bentmann
*/
+@Deprecated
public class DefaultMetadataResolutionRequest implements MetadataResolutionRequest {
private Artifact artifact;
diff --git a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java
rename to maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java
index bb4c8705e..452436ac2 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java
@@ -29,6 +29,7 @@ import org.apache.maven.artifact.repository.RepositoryRequest;
*
* @author Benjamin Bentmann
*/
+@Deprecated
public interface MetadataResolutionRequest extends RepositoryRequest {
/**
diff --git a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
similarity index 99%
rename from maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
rename to maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
index 5e4290535..1bb1c9c73 100644
--- a/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
@@ -28,6 +28,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
/**
* ResolutionGroup
*/
+@Deprecated
public class ResolutionGroup {
private final Set<Artifact> artifacts;
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/repository/DefaultArtifactRepositoryFactory.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/repository/DefaultArtifactRepositoryFactory.java
index 3c3de6587..ef0ce7f9b 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/repository/DefaultArtifactRepositoryFactory.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/repository/DefaultArtifactRepositoryFactory.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.repository.legacy.repository;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.util.Map;
import org.apache.maven.artifact.UnknownRepositoryLayoutException;
@@ -26,20 +30,19 @@ import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
import org.apache.maven.artifact.repository.MavenArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout2;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
/**
* @author jdcasey
*/
-@Component(role = ArtifactRepositoryFactory.class)
+@Named
+@Singleton
public class DefaultArtifactRepositoryFactory implements ArtifactRepositoryFactory {
// TODO use settings?
private String globalUpdatePolicy;
private String globalChecksumPolicy;
- @Requirement(role = ArtifactRepositoryLayout.class)
+ @Inject
private Map<String, ArtifactRepositoryLayout> repositoryLayouts;
public ArtifactRepositoryLayout getLayout(String layoutId) throws UnknownRepositoryLayoutException {
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
index e03a0e5d1..6d949af5b 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
@@ -18,6 +18,10 @@
*/
package org.apache.maven.repository.legacy.resolver;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -50,24 +54,24 @@ import org.apache.maven.repository.legacy.metadata.ArtifactMetadataRetrievalExce
import org.apache.maven.repository.legacy.metadata.DefaultMetadataResolutionRequest;
import org.apache.maven.repository.legacy.metadata.MetadataResolutionRequest;
import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
/**
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @author Jason van Zyl
*/
-@Component(role = LegacyArtifactCollector.class)
+@Named
+@Singleton
public class DefaultLegacyArtifactCollector implements LegacyArtifactCollector {
- @Requirement(hint = "nearest")
+ @Inject
+ @Named("nearest")
private ConflictResolver defaultConflictResolver;
- @Requirement
+ @Inject
private Logger logger;
- @Requirement
+ @Inject
private LegacySupport legacySupport;
private void injectSession(ArtifactResolutionRequest request) {
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolver.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolver.java
index d99798986..3587a2611 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolver.java
@@ -18,7 +18,8 @@
*/
package org.apache.maven.repository.legacy.resolver.conflict;
-import org.codehaus.plexus.component.annotations.Component;
+import javax.inject.Named;
+import javax.inject.Singleton;
/**
* The default conflict resolver that delegates to the nearest strategy.
@@ -28,5 +29,6 @@ import org.codehaus.plexus.component.annotations.Component;
* @deprecated As of 3.0, use a specific implementation instead, e.g. {@link NearestConflictResolver}
*/
@Deprecated
-@Component(role = ConflictResolver.class)
+@Named
+@Singleton
public class DefaultConflictResolver extends NearestConflictResolver {}
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolverFactory.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolverFactory.java
index 5a6dffb0d..4b397467d 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolverFactory.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolverFactory.java
@@ -18,10 +18,12 @@
*/
package org.apache.maven.repository.legacy.resolver.conflict;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.context.Context;
import org.codehaus.plexus.context.ContextException;
@@ -34,14 +36,15 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
* TODO you don't need the container in here with the active maps (jvz).
* @since 3.0
*/
-@Component(role = ConflictResolverFactory.class)
+@Named
+@Singleton
public class DefaultConflictResolverFactory implements ConflictResolverFactory, Contextualizable {
// fields -----------------------------------------------------------------
/**
* The plexus container used to obtain instances from.
*/
- @Requirement
+ @Inject
private PlexusContainer container;
// ConflictResolverFactory methods ----------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/FarthestConflictResolver.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/FarthestConflictResolver.java
index 89d32c90b..7da3bcbcf 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/FarthestConflictResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/FarthestConflictResolver.java
@@ -18,8 +18,10 @@
*/
package org.apache.maven.repository.legacy.resolver.conflict;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.resolver.ResolutionNode;
-import org.codehaus.plexus.component.annotations.Component;
/**
* Resolves conflicting artifacts by always selecting the <em>farthest</em> declaration. Farthest is defined as the
@@ -28,7 +30,8 @@ import org.codehaus.plexus.component.annotations.Component;
* @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
* @since 3.0
*/
-@Component(role = ConflictResolver.class, hint = "farthest")
+@Named("farthest")
+@Singleton
public class FarthestConflictResolver implements ConflictResolver {
// ConflictResolver methods -----------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NearestConflictResolver.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NearestConflictResolver.java
index a265835ee..2424ac9a8 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NearestConflictResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NearestConflictResolver.java
@@ -18,8 +18,10 @@
*/
package org.apache.maven.repository.legacy.resolver.conflict;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.resolver.ResolutionNode;
-import org.codehaus.plexus.component.annotations.Component;
/**
* Resolves conflicting artifacts by always selecting the <em>nearest</em> declaration. Nearest is defined as the
@@ -29,7 +31,8 @@ import org.codehaus.plexus.component.annotations.Component;
* @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
* @since 3.0
*/
-@Component(role = ConflictResolver.class, hint = "nearest")
+@Named("nearest")
+@Singleton
public class NearestConflictResolver implements ConflictResolver {
// ConflictResolver methods -----------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NewestConflictResolver.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NewestConflictResolver.java
index cd4fac822..a3e8d486a 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NewestConflictResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NewestConflictResolver.java
@@ -18,10 +18,12 @@
*/
package org.apache.maven.repository.legacy.resolver.conflict;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.resolver.ResolutionNode;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
-import org.codehaus.plexus.component.annotations.Component;
/**
* Resolves conflicting artifacts by always selecting the <em>newest</em> declaration. Newest is defined as the
@@ -31,7 +33,8 @@ import org.codehaus.plexus.component.annotations.Component;
* @see ArtifactVersion#compareTo
* @since 3.0
*/
-@Component(role = ConflictResolver.class, hint = "newest")
+@Named("newest")
+@Singleton
public class NewestConflictResolver implements ConflictResolver {
// ConflictResolver methods -----------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/OldestConflictResolver.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/OldestConflictResolver.java
index eee4bde2b..5a2f30e73 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/OldestConflictResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/OldestConflictResolver.java
@@ -18,10 +18,12 @@
*/
package org.apache.maven.repository.legacy.resolver.conflict;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.resolver.ResolutionNode;
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
-import org.codehaus.plexus.component.annotations.Component;
/**
* Resolves conflicting artifacts by always selecting the <em>oldest</em> declaration. Oldest is defined as the
@@ -31,7 +33,8 @@ import org.codehaus.plexus.component.annotations.Component;
* @see ArtifactVersion#compareTo
* @since 3.0
*/
-@Component(role = ConflictResolver.class, hint = "oldest")
+@Named("oldest")
+@Singleton
public class OldestConflictResolver implements ConflictResolver {
// ConflictResolver methods -----------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/AbstractVersionTransformation.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/AbstractVersionTransformation.java
index 5d37d4d3e..66c192001 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/AbstractVersionTransformation.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/AbstractVersionTransformation.java
@@ -18,6 +18,8 @@
*/
package org.apache.maven.repository.legacy.resolver.transform;
+import javax.inject.Inject;
+
import java.util.List;
import org.apache.maven.artifact.Artifact;
@@ -34,7 +36,6 @@ import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.repository.legacy.WagonManager;
-import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.AbstractLogEnabled;
/**
@@ -44,10 +45,10 @@ import org.codehaus.plexus.logging.AbstractLogEnabled;
* TODO try and refactor to remove abstract methods - not particular happy about current design
*/
public abstract class AbstractVersionTransformation extends AbstractLogEnabled implements ArtifactTransformation {
- @Requirement
+ @Inject
protected RepositoryMetadataManager repositoryMetadataManager;
- @Requirement
+ @Inject
protected WagonManager wagonManager;
public void transformForResolve(
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/DefaultArtifactTransformationManager.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/DefaultArtifactTransformationManager.java
index ca53d0672..1f2a74e83 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/DefaultArtifactTransformationManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/DefaultArtifactTransformationManager.java
@@ -18,7 +18,15 @@
*/
package org.apache.maven.repository.legacy.resolver.transform;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.deployer.ArtifactDeploymentException;
@@ -27,19 +35,24 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.RepositoryRequest;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
/**
* @author Jason van Zyl
*/
-@Component(role = ArtifactTransformationManager.class)
+@Named
+@Singleton
public class DefaultArtifactTransformationManager implements ArtifactTransformationManager {
- @Requirement(
- role = ArtifactTransformation.class,
- hints = {"release", "latest", "snapshot"})
+
private List<ArtifactTransformation> artifactTransformations;
+ @Inject
+ public DefaultArtifactTransformationManager(Map<String, ArtifactTransformation> artifactTransformations) {
+ this.artifactTransformations = Stream.of("release", "latest", "snapshot")
+ .map(artifactTransformations::get)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ }
+
public void transformForResolve(Artifact artifact, RepositoryRequest request)
throws ArtifactResolutionException, ArtifactNotFoundException {
for (ArtifactTransformation transform : artifactTransformations) {
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/LatestArtifactTransformation.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/LatestArtifactTransformation.java
index 2821a833f..437e936c7 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/LatestArtifactTransformation.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/LatestArtifactTransformation.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.repository.legacy.resolver.transform;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.RepositoryRequest;
@@ -25,12 +28,12 @@ import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutio
import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.codehaus.plexus.component.annotations.Component;
/**
* Describes a version transformation during artifact resolution - "latest" type
*/
-@Component(role = ArtifactTransformation.class, hint = "latest")
+@Named("latest")
+@Singleton
public class LatestArtifactTransformation extends AbstractVersionTransformation {
public void transformForResolve(Artifact artifact, RepositoryRequest request)
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/ReleaseArtifactTransformation.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/ReleaseArtifactTransformation.java
index 81a6e072d..97ba40e0e 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/ReleaseArtifactTransformation.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/ReleaseArtifactTransformation.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.repository.legacy.resolver.transform;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -27,14 +30,14 @@ import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutio
import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.codehaus.plexus.component.annotations.Component;
/**
* Change the version <code>RELEASE</code> to the appropriate release version from the remote repository.
*
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*/
-@Component(role = ArtifactTransformation.class, hint = "release")
+@Named("release")
+@Singleton
public class ReleaseArtifactTransformation extends AbstractVersionTransformation {
public void transformForResolve(Artifact artifact, RepositoryRequest request)
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/SnapshotTransformation.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/SnapshotTransformation.java
index b06add804..8840d94ea 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/SnapshotTransformation.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/SnapshotTransformation.java
@@ -18,6 +18,9 @@
*/
package org.apache.maven.repository.legacy.resolver.transform;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -35,14 +38,14 @@ import org.apache.maven.artifact.repository.metadata.Snapshot;
import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.util.StringUtils;
/**
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
* @author <a href="mailto:mmaczka@interia.pl">Michal Maczka</a>
*/
-@Component(role = ArtifactTransformation.class, hint = "snapshot")
+@Named("snapshot")
+@Singleton
public class SnapshotTransformation extends AbstractVersionTransformation {
private static final String DEFAULT_SNAPSHOT_TIMESTAMP_FORMAT = "yyyyMMdd.HHmmss";
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultClasspathTransformation.java b/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultClasspathTransformation.java
index b7c3425fb..d14c24ee3 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultClasspathTransformation.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultClasspathTransformation.java
@@ -18,13 +18,15 @@
*/
package org.apache.maven.repository.metadata;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.maven.artifact.ArtifactScopeEnum;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
/**
* default implementation of the metadata classpath transformer
@@ -32,9 +34,10 @@ import org.codehaus.plexus.component.annotations.Requirement;
* @author <a href="oleg@codehaus.org">Oleg Gusakov</a>
*
*/
-@Component(role = ClasspathTransformation.class)
+@Named
+@Singleton
public class DefaultClasspathTransformation implements ClasspathTransformation {
- @Requirement
+ @Inject
GraphConflictResolver conflictResolver;
// ----------------------------------------------------------------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolutionPolicy.java b/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolutionPolicy.java
index c897c0f7d..ad066520d 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolutionPolicy.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolutionPolicy.java
@@ -18,16 +18,19 @@
*/
package org.apache.maven.repository.metadata;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
-import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Configuration;
/**
* @author <a href="mailto:oleg@codehaus.org">Oleg Gusakov</a>
*
*/
-@Component(role = GraphConflictResolutionPolicy.class)
+@Named
+@Singleton
public class DefaultGraphConflictResolutionPolicy implements GraphConflictResolutionPolicy {
/**
* artifact, closer to the entry point, is selected
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolver.java b/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolver.java
index 3bb1bd00b..6673bf93d 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolver.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolver.java
@@ -18,25 +18,28 @@
*/
package org.apache.maven.repository.metadata;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;
import org.apache.maven.artifact.ArtifactScopeEnum;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
/**
* Default conflict resolver.Implements closer newer first policy by default, but could be configured via plexus
*
* @author <a href="mailto:oleg@codehaus.org">Oleg Gusakov</a>
*/
-@Component(role = GraphConflictResolver.class)
+@Named
+@Singleton
public class DefaultGraphConflictResolver implements GraphConflictResolver {
/**
* artifact, closer to the entry point, is selected
*/
- @Requirement(role = GraphConflictResolutionPolicy.class)
+ @Inject
protected GraphConflictResolutionPolicy policy;
// -------------------------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java b/maven-compat/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
rename to maven-compat/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
diff --git a/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java b/maven-compat/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
rename to maven-compat/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java b/maven-compat/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java
similarity index 100%
rename from maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java
rename to maven-compat/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java
diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/ToolchainsBuilder.java b/maven-compat/src/main/java/org/apache/maven/toolchain/ToolchainsBuilder.java
similarity index 94%
rename from maven-core/src/main/java/org/apache/maven/toolchain/ToolchainsBuilder.java
rename to maven-compat/src/main/java/org/apache/maven/toolchain/ToolchainsBuilder.java
index 43adef4d2..2517e8b78 100644
--- a/maven-core/src/main/java/org/apache/maven/toolchain/ToolchainsBuilder.java
+++ b/maven-compat/src/main/java/org/apache/maven/toolchain/ToolchainsBuilder.java
@@ -27,7 +27,9 @@ import org.apache.maven.toolchain.model.PersistedToolchains;
* <strong>Note:</strong> This is an internal component whose interface can change without prior notice.
*
* @author Benjamin Bentmann
+ * @deprecated use {@link org.apache.maven.toolchain.building.ToolchainsBuilder} instead
*/
+@Deprecated
public interface ToolchainsBuilder {
/**
diff --git a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java b/maven-compat/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
similarity index 98%
copy from maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
copy to maven-compat/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
index 720729582..733026c4f 100644
--- a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
+++ b/maven-compat/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
@@ -29,6 +29,7 @@ import java.util.Properties;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -179,7 +180,7 @@ public abstract class AbstractCoreMavenComponentTestCase {
policy.setUpdatePolicy("always");
Repository repository = new Repository();
- repository.setId(RepositorySystem.DEFAULT_REMOTE_REPO_ID);
+ repository.setId(MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID);
repository.setUrl("file://" + repoDir.toURI().getPath());
repository.setReleases(policy);
repository.setSnapshots(policy);
diff --git a/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java b/maven-compat/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
similarity index 100%
rename from maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
rename to maven-compat/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
diff --git a/maven-compat/src/test/java/org/apache/maven/artifact/metadata/SwitchableMetadataSource.java b/maven-compat/src/test/java/org/apache/maven/artifact/metadata/SwitchableMetadataSource.java
new file mode 100644
index 000000000..a06fb8b46
--- /dev/null
+++ b/maven-compat/src/test/java/org/apache/maven/artifact/metadata/SwitchableMetadataSource.java
@@ -0,0 +1,79 @@
+/*
+ * 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.maven.artifact.metadata;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.repository.legacy.metadata.MetadataResolutionRequest;
+import org.eclipse.sisu.Priority;
+
+@Singleton
+@Priority(10)
+@Named
+public class SwitchableMetadataSource implements ArtifactMetadataSource {
+ private ArtifactMetadataSource delegate;
+
+ @Inject
+ public SwitchableMetadataSource(@Named("test") ArtifactMetadataSource delegate) {
+ this.delegate = delegate;
+ }
+
+ public void setDelegate(ArtifactMetadataSource delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public ResolutionGroup retrieve(MetadataResolutionRequest request) throws ArtifactMetadataRetrievalException {
+ return delegate.retrieve(request);
+ }
+
+ @Override
+ public ResolutionGroup retrieve(
+ Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories)
+ throws ArtifactMetadataRetrievalException {
+ return delegate.retrieve(artifact, localRepository, remoteRepositories);
+ }
+
+ @Override
+ public List<ArtifactVersion> retrieveAvailableVersions(MetadataResolutionRequest request)
+ throws ArtifactMetadataRetrievalException {
+ return delegate.retrieveAvailableVersions(request);
+ }
+
+ @Override
+ public List<ArtifactVersion> retrieveAvailableVersions(
+ Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories)
+ throws ArtifactMetadataRetrievalException {
+ return delegate.retrieveAvailableVersions(artifact, localRepository, remoteRepositories);
+ }
+
+ @Override
+ public List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository(
+ Artifact artifact, ArtifactRepository localRepository, ArtifactRepository remoteRepository)
+ throws ArtifactMetadataRetrievalException {
+ return delegate.retrieveAvailableVersionsFromDeploymentRepository(artifact, localRepository, remoteRepository);
+ }
+}
diff --git a/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java b/maven-compat/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
similarity index 100%
rename from maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
rename to maven-compat/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
diff --git a/maven-core/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java b/maven-compat/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
similarity index 100%
rename from maven-core/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
rename to maven-compat/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
diff --git a/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java b/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java
index 2eda1b281..b8db7d99b 100644
--- a/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java
+++ b/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java
@@ -25,6 +25,7 @@ import java.util.Arrays;
import java.util.List;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.SwitchableMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
@@ -36,12 +37,15 @@ import org.apache.maven.model.Dependency;
import org.apache.maven.model.Repository;
import org.apache.maven.model.RepositoryPolicy;
import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.project.artifact.DefaultMetadataSource;
import org.apache.maven.repository.legacy.LegacyRepositorySystem;
import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.composition.CycleDetectedInComponentGraphException;
import org.codehaus.plexus.testing.PlexusTest;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
import org.eclipse.aether.repository.LocalRepository;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
@@ -57,7 +61,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
@PlexusTest
class LegacyRepositorySystemTest {
@Inject
- private RepositorySystem repositorySystem;
+ private LegacyRepositorySystem repositorySystem;
@Inject
private ResolutionErrorHandler resolutionErrorHandler;
@@ -184,4 +188,15 @@ class LegacyRepositorySystemTest {
assertEquals(localRepoDir.getPath(), basedir);
}
+
+ @Inject
+ DefaultMetadataSource defaultMetadataSource;
+
+ @Inject
+ SwitchableMetadataSource switchableMetadataSource;
+
+ @BeforeEach
+ void setup() throws CycleDetectedInComponentGraphException {
+ switchableMetadataSource.setDelegate(defaultMetadataSource);
+ }
}
diff --git a/maven-core/src/test/java/org/apache/maven/repository/TestArtifactHandler.java b/maven-compat/src/test/java/org/apache/maven/repository/TestArtifactHandler.java
similarity index 100%
rename from maven-core/src/test/java/org/apache/maven/repository/TestArtifactHandler.java
rename to maven-compat/src/test/java/org/apache/maven/repository/TestArtifactHandler.java
diff --git a/maven-core/src/test/java/org/apache/maven/internal/impl/TestRepositorySystem.java b/maven-compat/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
similarity index 97%
rename from maven-core/src/test/java/org/apache/maven/internal/impl/TestRepositorySystem.java
rename to maven-compat/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
index a23293796..cc57f3d97 100644
--- a/maven-core/src/test/java/org/apache/maven/internal/impl/TestRepositorySystem.java
+++ b/maven-compat/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
@@ -16,8 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.internal.impl;
+package org.apache.maven.repository;
+import javax.annotation.Priority;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
@@ -44,15 +45,12 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Repository;
import org.apache.maven.model.io.ModelReader;
import org.apache.maven.project.artifact.ArtifactWithDependencies;
-import org.apache.maven.repository.ArtifactDoesNotExistException;
-import org.apache.maven.repository.ArtifactTransferFailedException;
-import org.apache.maven.repository.ArtifactTransferListener;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Server;
@@ -63,12 +61,17 @@ import org.eclipse.aether.RepositorySystemSession;
*/
@Named
@Singleton
+@Priority(10)
public class TestRepositorySystem implements RepositorySystem {
private final ModelReader modelReader;
private final ArtifactFactory artifactFactory;
+ public TestRepositorySystem() {
+ this(null, null);
+ }
+
@Inject
public TestRepositorySystem(ModelReader modelReader, ArtifactFactory artifactFactory) {
this.modelReader = modelReader;
@@ -144,7 +147,7 @@ public class TestRepositorySystem implements RepositorySystem {
public ArtifactRepository createLocalRepository(File localRepository) throws InvalidRepositoryException {
return new MavenArtifactRepository(
- DEFAULT_LOCAL_REPO_ID,
+ MavenRepositorySystem.DEFAULT_LOCAL_REPO_ID,
"file://" + localRepository.toURI().getPath(),
new DefaultRepositoryLayout(),
new ArtifactRepositoryPolicy(),
diff --git a/maven-compat/src/test/java/org/apache/maven/repository/legacy/LegacyRepositorySystemTest.java b/maven-compat/src/test/java/org/apache/maven/repository/legacy/LegacyRepositorySystemTest.java
index 6019dca7e..821e321c8 100644
--- a/maven-compat/src/test/java/org/apache/maven/repository/legacy/LegacyRepositorySystemTest.java
+++ b/maven-compat/src/test/java/org/apache/maven/repository/legacy/LegacyRepositorySystemTest.java
@@ -25,7 +25,6 @@ import java.util.Arrays;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.Authentication;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.settings.Server;
import org.codehaus.plexus.testing.PlexusTest;
import org.junit.jupiter.api.Test;
@@ -41,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
@PlexusTest
class LegacyRepositorySystemTest {
@Inject
- private RepositorySystem repositorySystem;
+ private LegacyRepositorySystem repositorySystem;
@Test
void testThatLocalRepositoryWithSpacesIsProperlyHandled() throws Exception {
diff --git a/maven-core/src/test/projects/project-dependencies-resolver/it0063/jdk/jre/placeholder.txt b/maven-compat/src/test/projects/project-dependencies-resolver/it0063/jdk/jre/placeholder.txt
similarity index 100%
rename from maven-core/src/test/projects/project-dependencies-resolver/it0063/jdk/jre/placeholder.txt
rename to maven-compat/src/test/projects/project-dependencies-resolver/it0063/jdk/jre/placeholder.txt
diff --git a/maven-core/src/test/projects/project-dependencies-resolver/it0063/jdk/lib/tools.jar b/maven-compat/src/test/projects/project-dependencies-resolver/it0063/jdk/lib/tools.jar
similarity index 100%
rename from maven-core/src/test/projects/project-dependencies-resolver/it0063/jdk/lib/tools.jar
rename to maven-compat/src/test/projects/project-dependencies-resolver/it0063/jdk/lib/tools.jar
diff --git a/maven-core/src/test/projects/project-dependencies-resolver/it0063/pom.xml b/maven-compat/src/test/projects/project-dependencies-resolver/it0063/pom.xml
similarity index 100%
rename from maven-core/src/test/projects/project-dependencies-resolver/it0063/pom.xml
rename to maven-compat/src/test/projects/project-dependencies-resolver/it0063/pom.xml
diff --git a/maven-core/src/test/projects/project-dependencies-resolver/project-with-exclusions/pom.xml b/maven-compat/src/test/projects/project-dependencies-resolver/project-with-exclusions/pom.xml
similarity index 100%
rename from maven-core/src/test/projects/project-dependencies-resolver/project-with-exclusions/pom.xml
rename to maven-compat/src/test/projects/project-dependencies-resolver/project-with-exclusions/pom.xml
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 1aed356c0..83ad8ff15 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -329,6 +329,21 @@ under the License.
<exclude>org.apache.maven.toolchain.DefaultToolchain#DefaultToolchain(org.apache.maven.toolchain.model.ToolchainModel,org.codehaus.plexus.logging.Logger):CONSTRUCTOR_REMOVED</exclude>
<exclude>org.apache.maven.toolchain.DefaultToolchain#DefaultToolchain(org.apache.maven.toolchain.model.ToolchainModel,java.lang.String,org.codehaus.plexus.logging.Logger):CONSTRUCTOR_REMOVED</exclude>
<exclude>org.apache.maven.toolchain.DefaultToolchainManager#logger</exclude>
+ <!-- classes moved to maven-compat -->
+ <exclude>org.apache.maven.plugin.PluginManager</exclude>
+ <exclude>org.apache.maven.repository.ArtifactDoesNotExistException</exclude>
+ <exclude>org.apache.maven.repository.ArtifactTransferEvent</exclude>
+ <exclude>org.apache.maven.repository.ArtifactTransferFailedException</exclude>
+ <exclude>org.apache.maven.repository.ArtifactTransferListener</exclude>
+ <exclude>org.apache.maven.repository.ArtifactTransferResource</exclude>
+ <exclude>org.apache.maven.repository.DelegatingLocalArtifactRepository</exclude>
+ <exclude>org.apache.maven.repository.LocalArtifactRepository</exclude>
+ <exclude>org.apache.maven.repository.LocalRepositoryNotAccessibleException</exclude>
+ <exclude>org.apache.maven.repository.RepositorySystem</exclude>
+ <exclude>org.apache.maven.settings.DefaultMavenSettingsBuilder</exclude>
+ <exclude>org.apache.maven.settings.MavenSettingsBuilder</exclude>
+ <exclude>org.apache.maven.toolchain.DefaultToolchainsBuilder</exclude>
+ <exclude>org.apache.maven.toolchain.ToolchainsBuilder</exclude>
</excludes>
</parameter>
</configuration>
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index d1312fe0d..e060f56af 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -23,6 +23,7 @@ import javax.inject.Named;
import javax.inject.Singleton;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -68,7 +69,6 @@ import org.apache.maven.model.superpom.SuperPomProvider;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilder;
-import org.apache.maven.repository.LocalRepositoryNotAccessibleException;
import org.apache.maven.session.scope.internal.SessionScope;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -204,7 +204,7 @@ public class DefaultMaven implements Maven {
try {
validateLocalRepository(request);
- } catch (LocalRepositoryNotAccessibleException e) {
+ } catch (IOException e) {
return addExceptionToResult(result, e);
}
@@ -408,7 +408,7 @@ public class DefaultMaven implements Maven {
return repositorySessionFactory.newRepositorySession(request);
}
- private void validateLocalRepository(MavenExecutionRequest request) throws LocalRepositoryNotAccessibleException {
+ private void validateLocalRepository(MavenExecutionRequest request) throws IOException {
File localRepoDir = request.getLocalRepositoryPath();
logger.debug("Using local repository at " + localRepoDir);
@@ -416,7 +416,7 @@ public class DefaultMaven implements Maven {
localRepoDir.mkdirs();
if (!localRepoDir.isDirectory()) {
- throw new LocalRepositoryNotAccessibleException("Could not create local repository at " + localRepoDir);
+ throw new IOException("Could not create local repository at " + localRepoDir);
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
index 3754de834..cbbfe3ea3 100644
--- a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
+++ b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
@@ -18,6 +18,7 @@
*/
package org.apache.maven;
+import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -33,6 +34,8 @@ import org.apache.maven.artifact.handler.DefaultArtifactHandler;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.ArtifactProperties;
@@ -45,6 +48,8 @@ import org.eclipse.aether.graph.DependencyFilter;
import org.eclipse.aether.graph.DependencyNode;
import org.eclipse.aether.graph.Exclusion;
import org.eclipse.aether.repository.Authentication;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.LocalRepositoryManager;
import org.eclipse.aether.repository.Proxy;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.repository.RepositoryPolicy;
@@ -351,6 +356,29 @@ public class RepositoryUtils {
return result;
}
+ public static RepositorySystemSession overlay(
+ ArtifactRepository repository, RepositorySystemSession session, RepositorySystem system) {
+ if (repository == null || repository.getBasedir() == null) {
+ return session;
+ }
+
+ DefaultRepositorySystemSession newSession;
+ if (session != null) {
+ LocalRepositoryManager lrm = session.getLocalRepositoryManager();
+ if (lrm != null && lrm.getRepository().getBasedir().equals(new File(repository.getBasedir()))) {
+ return session;
+ }
+ newSession = new DefaultRepositorySystemSession(session);
+ } else {
+ newSession = new DefaultRepositorySystemSession();
+ }
+
+ final LocalRepositoryManager llrm =
+ system.newLocalRepositoryManager(newSession, new LocalRepository(repository.getBasedir()));
+ newSession.setLocalRepositoryManager(llrm);
+ return newSession;
+ }
+
private static int repositoryHashCode(RemoteRepository repository) {
int result = 17;
Object obj = repository.getUrl();
diff --git a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
index eb54b31f8..7d3301d90 100644
--- a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
+++ b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
@@ -54,7 +54,6 @@ import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.repository.Proxy;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.settings.Mirror;
import org.codehaus.plexus.util.StringUtils;
import org.eclipse.aether.RepositorySystemSession;
@@ -69,6 +68,13 @@ import org.eclipse.aether.repository.RemoteRepository;
@Named("default")
@Singleton
public class MavenRepositorySystem {
+
+ public static final String DEFAULT_REMOTE_REPO_ID = "central";
+
+ public static final String DEFAULT_REMOTE_REPO_URL = "https://repo.maven.apache.org/maven2";
+
+ public static final String DEFAULT_LOCAL_REPO_ID = "local";
+
private final ArtifactHandlerManager artifactHandlerManager;
private final Map<String, ArtifactRepositoryLayout> layouts;
@@ -373,7 +379,7 @@ public class MavenRepositorySystem {
String layoutId,
ArtifactRepositoryPolicy snapshots,
ArtifactRepositoryPolicy releases)
- throws Exception {
+ throws InvalidRepositoryException {
ArtifactRepositoryLayout layout = layouts.get(layoutId);
checkLayout(id, layoutId, layout);
@@ -381,10 +387,12 @@ public class MavenRepositorySystem {
return createArtifactRepository(id, url, layout, snapshots, releases);
}
- private void checkLayout(String repositoryId, String layoutId, ArtifactRepositoryLayout layout) throws Exception {
+ private void checkLayout(String repositoryId, String layoutId, ArtifactRepositoryLayout layout)
+ throws InvalidRepositoryException {
if (layout == null) {
- throw new Exception(
- String.format("Cannot find ArtifactRepositoryLayout instance for: %s %s", layoutId, repositoryId));
+ throw new InvalidRepositoryException(
+ String.format("Cannot find ArtifactRepositoryLayout instance for: %s %s", layoutId, repositoryId),
+ repositoryId);
}
}
@@ -518,11 +526,14 @@ public class MavenRepositorySystem {
//
// Code taken from LegacyRepositorySystem
//
+ public ArtifactRepository createDefaultRemoteRepository() throws Exception {
+ return createDefaultRemoteRepository(null);
+ }
public ArtifactRepository createDefaultRemoteRepository(MavenExecutionRequest request) throws Exception {
return createRepository(
- RepositorySystem.DEFAULT_REMOTE_REPO_URL,
- RepositorySystem.DEFAULT_REMOTE_REPO_ID,
+ MavenRepositorySystem.DEFAULT_REMOTE_REPO_URL,
+ MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID,
true,
ArtifactRepositoryPolicy.UPDATE_POLICY_DAILY,
false,
@@ -538,7 +549,7 @@ public class MavenRepositorySystem {
boolean snapshots,
String snapshotUpdates,
String checksumPolicy)
- throws Exception {
+ throws InvalidRepositoryException {
ArtifactRepositoryPolicy snapshotsPolicy =
new ArtifactRepositoryPolicy(snapshots, snapshotUpdates, checksumPolicy);
@@ -638,10 +649,14 @@ public class MavenRepositorySystem {
}
public ArtifactRepository createLocalRepository(MavenExecutionRequest request, File localRepository)
- throws Exception {
+ throws InvalidRepositoryException {
+ return createLocalRepository(localRepository);
+ }
+
+ public ArtifactRepository createLocalRepository(File localRepository) throws InvalidRepositoryException {
return createRepository(
"file://" + localRepository.toURI().getRawPath(),
- RepositorySystem.DEFAULT_LOCAL_REPO_ID,
+ MavenRepositorySystem.DEFAULT_LOCAL_REPO_ID,
true,
ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
true,
diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
index aee374816..e2204e402 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
@@ -32,7 +32,6 @@ import java.util.Set;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.bridge.MavenRepositorySystem;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Repository;
@@ -104,7 +103,7 @@ public class DefaultMavenExecutionRequestPopulator implements MavenExecutionRequ
throws MavenExecutionRequestPopulationException {
Set<String> definedRepositories = repositorySystem.getRepoIds(request.getRemoteRepositories());
- if (!definedRepositories.contains(RepositorySystem.DEFAULT_REMOTE_REPO_ID)) {
+ if (!definedRepositories.contains(MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID)) {
try {
request.addRemoteRepository(repositorySystem.createDefaultRemoteRepository(request));
} catch (Exception e) {
@@ -117,7 +116,7 @@ public class DefaultMavenExecutionRequestPopulator implements MavenExecutionRequ
throws MavenExecutionRequestPopulationException {
Set<String> definedRepositories = repositorySystem.getRepoIds(request.getPluginArtifactRepositories());
- if (!definedRepositories.contains(RepositorySystem.DEFAULT_REMOTE_REPO_ID)) {
+ if (!definedRepositories.contains(MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID)) {
try {
request.addPluginArtifactRepository(repositorySystem.createDefaultRemoteRepository(request));
} catch (Exception e) {
@@ -157,11 +156,11 @@ public class DefaultMavenExecutionRequestPopulator implements MavenExecutionRequ
}
if (localRepositoryPath == null || localRepositoryPath.isEmpty()) {
- localRepositoryPath = RepositorySystem.defaultUserLocalRepository.getAbsolutePath();
+ localRepositoryPath = new File(System.getProperty("user.home"), ".m2/repository").getAbsolutePath();
}
try {
- return repositorySystem.createLocalRepository(request, new File(localRepositoryPath));
+ return repositorySystem.createLocalRepository(new File(localRepositoryPath));
} catch (Exception e) {
throw new MavenExecutionRequestPopulationException("Cannot create local repository.", e);
}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultProjectArtifactFactory.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultProjectArtifactFactory.java
index ede5b4e09..6ae029efd 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultProjectArtifactFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultProjectArtifactFactory.java
@@ -21,13 +21,22 @@ package org.apache.maven.lifecycle.internal;
import javax.inject.Inject;
import javax.inject.Named;
+import java.io.File;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ExclusionArtifactFilter;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.model.Dependency;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.project.artifact.MavenMetadataSource;
/**
* Default component responsible for creation of MavenProject#dependencyArtifacts instances.
@@ -44,6 +53,106 @@ public class DefaultProjectArtifactFactory implements ProjectArtifactFactory {
@Override
public Set<Artifact> createArtifacts(MavenProject project) throws InvalidDependencyVersionException {
- return MavenMetadataSource.createArtifacts(artifactFactory, project.getDependencies(), null, null, project);
+ return createArtifacts(artifactFactory, project.getDependencies(), null, null, project);
+ }
+
+ public static Set<Artifact> createArtifacts(
+ ArtifactFactory artifactFactory,
+ List<Dependency> dependencies,
+ String inheritedScope,
+ ArtifactFilter dependencyFilter,
+ MavenProject project)
+ throws InvalidDependencyVersionException {
+ Set<Artifact> artifacts = new LinkedHashSet<>();
+
+ for (Dependency d : dependencies) {
+ Artifact dependencyArtifact;
+ try {
+ dependencyArtifact = createDependencyArtifact(artifactFactory, d, inheritedScope, dependencyFilter);
+ } catch (InvalidVersionSpecificationException e) {
+ throw new InvalidDependencyVersionException(project.getId(), d, project.getFile(), e);
+ }
+
+ if (dependencyArtifact != null) {
+ artifacts.add(dependencyArtifact);
+ }
+ }
+
+ return artifacts;
+ }
+
+ private static Artifact createDependencyArtifact(
+ ArtifactFactory factory, Dependency dependency, String inheritedScope, ArtifactFilter inheritedFilter)
+ throws InvalidVersionSpecificationException {
+ String effectiveScope = getEffectiveScope(dependency.getScope(), inheritedScope);
+
+ if (effectiveScope == null) {
+ return null;
+ }
+
+ VersionRange versionRange = VersionRange.createFromVersionSpec(dependency.getVersion());
+
+ Artifact dependencyArtifact = factory.createDependencyArtifact(
+ dependency.getGroupId(),
+ dependency.getArtifactId(),
+ versionRange,
+ dependency.getType(),
+ dependency.getClassifier(),
+ effectiveScope,
+ dependency.isOptional());
+
+ if (inheritedFilter != null && !inheritedFilter.include(dependencyArtifact)) {
+ return null;
+ }
+
+ if (Artifact.SCOPE_SYSTEM.equals(effectiveScope)) {
+ dependencyArtifact.setFile(new File(dependency.getSystemPath()));
+ }
+
+ dependencyArtifact.setDependencyFilter(createDependencyFilter(dependency, inheritedFilter));
+
+ return dependencyArtifact;
+ }
+
+ private static String getEffectiveScope(String originalScope, String inheritedScope) {
+ String effectiveScope = Artifact.SCOPE_RUNTIME;
+
+ if (originalScope == null) {
+ originalScope = Artifact.SCOPE_COMPILE;
+ }
+
+ if (inheritedScope == null) {
+ // direct dependency retains its scope
+ effectiveScope = originalScope;
+ } else if (Artifact.SCOPE_TEST.equals(originalScope) || Artifact.SCOPE_PROVIDED.equals(originalScope)) {
+ // test and provided are not transitive, so exclude them
+ effectiveScope = null;
+ } else if (Artifact.SCOPE_SYSTEM.equals(originalScope)) {
+ // system scope come through unchanged...
+ effectiveScope = Artifact.SCOPE_SYSTEM;
+ } else if (Artifact.SCOPE_COMPILE.equals(originalScope) && Artifact.SCOPE_COMPILE.equals(inheritedScope)) {
+ // added to retain compile scope. Remove if you want compile inherited as runtime
+ effectiveScope = Artifact.SCOPE_COMPILE;
+ } else if (Artifact.SCOPE_TEST.equals(inheritedScope)) {
+ effectiveScope = Artifact.SCOPE_TEST;
+ } else if (Artifact.SCOPE_PROVIDED.equals(inheritedScope)) {
+ effectiveScope = Artifact.SCOPE_PROVIDED;
+ }
+
+ return effectiveScope;
+ }
+
+ private static ArtifactFilter createDependencyFilter(Dependency dependency, ArtifactFilter inheritedFilter) {
+ ArtifactFilter effectiveFilter = inheritedFilter;
+
+ if (!dependency.getExclusions().isEmpty()) {
+ effectiveFilter = new ExclusionArtifactFilter(dependency.getExclusions());
+
+ if (inheritedFilter != null) {
+ effectiveFilter = new AndArtifactFilter(Arrays.asList(inheritedFilter, effectiveFilter));
+ }
+ }
+
+ return effectiveFilter;
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index 7ec999243..1ec21e298 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -42,7 +42,6 @@ import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.InvalidArtifactRTException;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.feature.Features;
import org.apache.maven.model.Build;
@@ -971,8 +970,7 @@ public class DefaultProjectBuilder implements ProjectBuilder {
this.modelPool = modelPool;
this.transformerContextBuilder = transformerContextBuilder;
- session = LegacyLocalRepositoryManager.overlay(
- request.getLocalRepository(), request.getRepositorySession(), repoSystem);
+ session = RepositoryUtils.overlay(request.getLocalRepository(), request.getRepositorySession(), repoSystem);
repositories = RepositoryUtils.toRepos(request.getRemoteRepositories());
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
index 92cbd259f..990877861 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
@@ -36,6 +36,7 @@ import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.classrealm.ClassRealmManager;
import org.apache.maven.model.Build;
import org.apache.maven.model.Extension;
@@ -47,7 +48,6 @@ import org.apache.maven.plugin.MavenPluginManager;
import org.apache.maven.plugin.PluginManagerException;
import org.apache.maven.plugin.PluginResolutionException;
import org.apache.maven.plugin.version.PluginVersionResolutionException;
-import org.apache.maven.repository.RepositorySystem;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.eclipse.aether.graph.DependencyFilter;
@@ -69,7 +69,7 @@ public class DefaultProjectBuildingHelper implements ProjectBuildingHelper {
private final PlexusContainer container; // TODO not used? Then remove
private final ClassRealmManager classRealmManager;
private final ProjectRealmCache projectRealmCache;
- private final RepositorySystem repositorySystem;
+ private final MavenRepositorySystem repositorySystem;
private final MavenPluginManager pluginManager;
@Inject
@@ -77,7 +77,7 @@ public class DefaultProjectBuildingHelper implements ProjectBuildingHelper {
PlexusContainer container,
ClassRealmManager classRealmManager,
ProjectRealmCache projectRealmCache,
- RepositorySystem repositorySystem,
+ MavenRepositorySystem repositorySystem,
MavenPluginManager pluginManager) {
this.container = container;
this.classRealmManager = classRealmManager;
@@ -94,7 +94,7 @@ public class DefaultProjectBuildingHelper implements ProjectBuildingHelper {
List<ArtifactRepository> internalRepositories = new ArrayList<>();
for (Repository repository : pomRepositories) {
- internalRepositories.add(repositorySystem.buildArtifactRepository(repository));
+ internalRepositories.add(MavenRepositorySystem.buildArtifactRepository(repository));
}
repositorySystem.injectMirror(request.getRepositorySession(), internalRepositories);
diff --git a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
index 84a4090b2..0e165e04c 100644
--- a/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
+++ b/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
@@ -40,6 +40,7 @@ import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.lifecycle.internal.DefaultProjectArtifactFactory;
import org.apache.maven.model.Build;
import org.apache.maven.model.CiManagement;
import org.apache.maven.model.Contributor;
@@ -67,7 +68,6 @@ import org.apache.maven.model.Scm;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.model.root.RootLocator;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.project.artifact.MavenMetadataSource;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.eclipse.aether.graph.DependencyFilter;
@@ -1313,7 +1313,7 @@ public class MavenProject implements Cloneable {
@Deprecated
public Set<Artifact> createArtifacts(ArtifactFactory artifactFactory, String inheritedScope, ArtifactFilter filter)
throws InvalidDependencyVersionException {
- return MavenMetadataSource.createArtifacts(
+ return DefaultProjectArtifactFactory.createArtifacts(
artifactFactory, getModel().getDependencies(), inheritedScope, filter, this);
}
diff --git a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java b/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
index 720729582..c406898f0 100644
--- a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
+++ b/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
@@ -29,6 +29,7 @@ import java.util.Properties;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -44,7 +45,6 @@ import org.apache.maven.model.RepositoryPolicy;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.testing.PlexusTest;
@@ -63,7 +63,7 @@ public abstract class AbstractCoreMavenComponentTestCase {
protected PlexusContainer container;
@Inject
- protected RepositorySystem repositorySystem;
+ protected MavenRepositorySystem repositorySystem;
@Inject
protected org.apache.maven.project.ProjectBuilder projectBuilder;
@@ -179,7 +179,7 @@ public abstract class AbstractCoreMavenComponentTestCase {
policy.setUpdatePolicy("always");
Repository repository = new Repository();
- repository.setId(RepositorySystem.DEFAULT_REMOTE_REPO_ID);
+ repository.setId(MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID);
repository.setUrl("file://" + repoDir.toURI().getPath());
repository.setReleases(policy);
repository.setSnapshots(policy);
diff --git a/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java b/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java
index 20ee58e56..fe2bbe8b4 100644
--- a/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java
+++ b/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java
@@ -55,9 +55,6 @@ import static org.junit.jupiter.api.Assertions.assertThrowsExactly;
@PlexusTest
public class DefaultRepositorySystemSessionFactoryTest {
- @Inject
- protected org.apache.maven.repository.RepositorySystem repositorySystem;
-
@Inject
protected MavenRepositorySystem mavenRepositorySystem;
@@ -398,6 +395,6 @@ public class DefaultRepositorySystemSessionFactoryTest {
protected ArtifactRepository getLocalRepository() throws InvalidRepositoryException {
File repoDir = new File(getBasedir(), "target/local-repo").getAbsoluteFile();
- return repositorySystem.createLocalRepository(repoDir);
+ return mavenRepositorySystem.createLocalRepository(repoDir);
}
}
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
deleted file mode 100644
index 773b432be..000000000
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
+++ /dev/null
@@ -1,104 +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.maven.lifecycle.internal.stub;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.maven.ProjectDependenciesResolver;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
-import org.apache.maven.artifact.resolver.ArtifactResolutionException;
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.DependencyResolutionException;
-import org.apache.maven.project.DependencyResolutionRequest;
-import org.apache.maven.project.DependencyResolutionResult;
-import org.apache.maven.project.MavenProject;
-import org.eclipse.aether.graph.DefaultDependencyNode;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.graph.DependencyNode;
-
-/**
- * @author Kristian Rosenvold
- */
-public class ProjectDependenciesResolverStub
- implements ProjectDependenciesResolver, org.apache.maven.project.ProjectDependenciesResolver {
- public Set<Artifact> resolve(MavenProject project, Collection<String> scopesToResolve, MavenSession session)
- throws ArtifactResolutionException, ArtifactNotFoundException {
- return new HashSet<>();
- }
-
- public Set<Artifact> resolve(
- MavenProject project,
- Collection<String> scopesToCollect,
- Collection<String> scopesToResolve,
- MavenSession session)
- throws ArtifactResolutionException, ArtifactNotFoundException {
- return new HashSet<>();
- }
-
- public Set<Artifact> resolve(
- Collection<? extends MavenProject> projects, Collection<String> scopes, MavenSession session)
- throws ArtifactResolutionException, ArtifactNotFoundException {
- return new HashSet<>();
- }
-
- public Set<Artifact> resolve(
- MavenProject project,
- Collection<String> scopesToCollect,
- Collection<String> scopesToResolve,
- MavenSession session,
- Set<Artifact> ignorableArtifacts)
- throws ArtifactResolutionException, ArtifactNotFoundException {
- return new HashSet<>();
- }
-
- public DependencyResolutionResult resolve(DependencyResolutionRequest request)
- throws DependencyResolutionException {
- return new DependencyResolutionResult() {
-
- public List<Dependency> getUnresolvedDependencies() {
- return Collections.emptyList();
- }
-
- public List<Dependency> getResolvedDependencies() {
- return Collections.emptyList();
- }
-
- public List<Exception> getResolutionErrors(Dependency dependency) {
- return Collections.emptyList();
- }
-
- public DependencyNode getDependencyGraph() {
- return new DefaultDependencyNode((Dependency) null);
- }
-
- public List<Dependency> getDependencies() {
- return Collections.emptyList();
- }
-
- public List<Exception> getCollectionErrors() {
- return Collections.emptyList();
- }
- };
- }
-}
diff --git a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
index c01c6f56c..8759d8e5f 100644
--- a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
+++ b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
@@ -34,6 +34,7 @@ import org.apache.maven.AbstractCoreMavenComponentTestCase;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -46,7 +47,6 @@ import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.project.DuplicateProjectException;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.repository.RepositorySystem;
import org.codehaus.plexus.MutablePlexusContainer;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
@@ -69,7 +69,7 @@ class PluginParameterExpressionEvaluatorTest extends AbstractCoreMavenComponentT
private static final String FS = File.separator;
@Inject
- private RepositorySystem factory;
+ private MavenRepositorySystem factory;
private Path rootDirectory;
@@ -394,7 +394,7 @@ class PluginParameterExpressionEvaluatorTest extends AbstractCoreMavenComponentT
private ExpressionEvaluator createExpressionEvaluator(
MavenProject project, PluginDescriptor pluginDescriptor, Properties executionProperties) throws Exception {
- ArtifactRepository repo = factory.createDefaultLocalRepository();
+ ArtifactRepository repo = getLocalRepository();
MutablePlexusContainer container = (MutablePlexusContainer) getContainer();
MavenSession session = createSession(container, repo, executionProperties);
diff --git a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java
index aee330983..db3eb2a82 100644
--- a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java
+++ b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java
@@ -35,6 +35,7 @@ import org.apache.maven.api.Session;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -49,7 +50,6 @@ import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.project.DuplicateProjectException;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.repository.RepositorySystem;
import org.codehaus.plexus.MutablePlexusContainer;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
@@ -77,7 +77,7 @@ public class PluginParameterExpressionEvaluatorV4Test extends AbstractCoreMavenC
private static final String FS = File.separator;
@Inject
- private RepositorySystem factory;
+ private MavenRepositorySystem factory;
private Path rootDirectory;
@@ -407,7 +407,7 @@ public class PluginParameterExpressionEvaluatorV4Test extends AbstractCoreMavenC
private ExpressionEvaluator createExpressionEvaluator(
MavenProject project, PluginDescriptor pluginDescriptor, Properties executionProperties) throws Exception {
- ArtifactRepository repo = factory.createDefaultLocalRepository();
+ ArtifactRepository repo = getLocalRepository();
MutablePlexusContainer container = (MutablePlexusContainer) getContainer();
MavenSession mavenSession = createSession(container, repo, executionProperties);
diff --git a/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java b/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
index ced697657..36ecf072d 100644
--- a/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
+++ b/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
@@ -27,9 +27,9 @@ import java.net.URL;
import java.util.Arrays;
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.model.building.ModelBuildingException;
import org.apache.maven.model.building.ModelProblem;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.testing.PlexusTest;
@@ -45,7 +45,7 @@ public abstract class AbstractMavenProjectTestCase {
protected ProjectBuilder projectBuilder;
@Inject
- protected RepositorySystem repositorySystem;
+ protected MavenRepositorySystem repositorySystem;
@Inject
protected PlexusContainer container;
@@ -139,6 +139,7 @@ public abstract class AbstractMavenProjectTestCase {
protected ProjectBuildingRequest newBuildingRequest() throws Exception {
ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest();
configuration.setLocalRepository(getLocalRepository());
+ configuration.setRemoteRepositories(Arrays.asList(this.repositorySystem.createDefaultRemoteRepository()));
initRepoSession(configuration);
return configuration;
}
diff --git a/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java b/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
index 9f850f3ce..7b172ea80 100644
--- a/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
@@ -28,6 +28,7 @@ import java.util.Map;
import java.util.Properties;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution;
@@ -36,7 +37,6 @@ import org.apache.maven.model.ReportPlugin;
import org.apache.maven.model.ReportSet;
import org.apache.maven.model.building.ModelBuildingRequest;
import org.apache.maven.project.harness.PomTestWrapper;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.codehaus.plexus.testing.PlexusTest;
import org.eclipse.aether.DefaultRepositorySystemSession;
@@ -71,7 +71,7 @@ class PomConstructionTest {
private DefaultProjectBuilder projectBuilder;
@Inject
- private RepositorySystem repositorySystem;
+ private MavenRepositorySystem repositorySystem;
private File testDirectory;
@@ -1375,8 +1375,8 @@ class PomConstructionTest {
assertEquals("project-remote-repo", pom.getValue("repositories[1]/id"));
assertEquals("https://project.url/remote", pom.getValue("repositories[1]/url"));
assertEquals("repo", pom.getValue("repositories[1]/name"));
- assertEquals(RepositorySystem.DEFAULT_REMOTE_REPO_ID, pom.getValue("repositories[2]/id"));
- assertEquals(RepositorySystem.DEFAULT_REMOTE_REPO_URL, pom.getValue("repositories[2]/url"));
+ assertEquals(MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID, pom.getValue("repositories[2]/id"));
+ assertEquals(MavenRepositorySystem.DEFAULT_REMOTE_REPO_URL, pom.getValue("repositories[2]/url"));
assertEquals("test", pom.getValue("build/defaultGoal"));
assertEquals("coreit", pom.getValue("build/finalName"));
diff --git a/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java b/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java
index b7352b930..41fa488fd 100644
--- a/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java
+++ b/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Parent;
import org.apache.maven.model.resolution.ModelResolver;
@@ -207,7 +208,7 @@ class ProjectModelResolverTest extends AbstractMavenProjectTestCase {
private List<RemoteRepository> getRemoteRepositories() throws InvalidRepositoryException {
final File repoDir = new File(getBasedir(), "src/test/remote-repo").getAbsoluteFile();
final RemoteRepository remoteRepository = new RemoteRepository.Builder(
- org.apache.maven.repository.RepositorySystem.DEFAULT_REMOTE_REPO_ID,
+ MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID,
"default",
repoDir.toURI().toASCIIString())
.build();
diff --git a/maven-core/src/test/java/org/apache/maven/project/TestMetadataSource.java b/maven-core/src/test/java/org/apache/maven/project/TestMetadataSource.java
deleted file mode 100644
index 6648da842..000000000
--- a/maven-core/src/test/java/org/apache/maven/project/TestMetadataSource.java
+++ /dev/null
@@ -1,64 +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.maven.project;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import java.util.List;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
-import org.apache.maven.artifact.metadata.ResolutionGroup;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
-import org.apache.maven.bridge.MavenRepositorySystem;
-import org.apache.maven.plugin.LegacySupport;
-import org.apache.maven.project.artifact.MavenMetadataCache;
-import org.apache.maven.project.artifact.MavenMetadataSource;
-
-@SuppressWarnings("deprecation")
-@Named("classpath")
-@Singleton
-public class TestMetadataSource extends MavenMetadataSource {
-
- public TestMetadataSource(
- RepositoryMetadataManager repositoryMetadataManager,
- ArtifactFactory repositorySystem,
- ProjectBuilder projectBuilder,
- MavenMetadataCache cache,
- LegacySupport legacySupport,
- MavenRepositorySystem mavenRepositorySystem) {
- super(repositoryMetadataManager, repositorySystem, projectBuilder, cache, legacySupport, mavenRepositorySystem);
- }
-
- @Override
- public ResolutionGroup retrieve(
- Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories)
- throws ArtifactMetadataRetrievalException {
- ResolutionGroup rg = super.retrieve(artifact, localRepository, remoteRepositories);
-
- for (Artifact a : rg.getArtifacts()) {
- a.setResolved(true);
- }
-
- return rg;
- }
-}
diff --git a/maven-core/src/test/java/org/apache/maven/repository/TestMavenRepositorySystem.java b/maven-core/src/test/java/org/apache/maven/repository/TestMavenRepositorySystem.java
new file mode 100644
index 000000000..1f1e33e1c
--- /dev/null
+++ b/maven-core/src/test/java/org/apache/maven/repository/TestMavenRepositorySystem.java
@@ -0,0 +1,61 @@
+/*
+ * 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.maven.repository;
+
+import javax.annotation.Priority;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import java.io.File;
+import java.util.Map;
+
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.MavenArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.bridge.MavenRepositorySystem;
+
+@Named
+@Priority(10)
+@Singleton
+public class TestMavenRepositorySystem extends MavenRepositorySystem {
+
+ @Inject
+ public TestMavenRepositorySystem(
+ ArtifactHandlerManager artifactHandlerManager, Map<String, ArtifactRepositoryLayout> layouts) {
+ super(artifactHandlerManager, layouts);
+ }
+
+ @Override
+ public ArtifactRepository createDefaultRemoteRepository() throws Exception {
+ return new MavenArtifactRepository(
+ DEFAULT_REMOTE_REPO_ID,
+ "file://"
+ + new File(System.getProperty("basedir", "."), "src/test/remote-repo")
+ .getAbsoluteFile()
+ .toURI()
+ .getPath(),
+ new DefaultRepositoryLayout(),
+ new ArtifactRepositoryPolicy(),
+ new ArtifactRepositoryPolicy());
+ }
+}
diff --git a/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java b/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
deleted file mode 100644
index c8cbd97f7..000000000
--- a/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
+++ /dev/null
@@ -1,172 +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.maven.repository;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import java.io.File;
-import java.util.List;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.InvalidRepositoryException;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
-import org.apache.maven.artifact.repository.MavenArtifactRepository;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.Repository;
-import org.apache.maven.settings.Mirror;
-import org.apache.maven.settings.Proxy;
-import org.apache.maven.settings.Server;
-import org.eclipse.aether.RepositorySystemSession;
-
-/**
- * @author Benjamin Bentmann
- */
-@Named
-@Singleton
-public class TestRepositorySystem implements RepositorySystem {
-
- @Inject
- public TestRepositorySystem() {}
-
- public ArtifactRepository buildArtifactRepository(Repository repository) throws InvalidRepositoryException {
- return new MavenArtifactRepository(
- repository.getId(),
- repository.getUrl(),
- new DefaultRepositoryLayout(),
- new ArtifactRepositoryPolicy(),
- new ArtifactRepositoryPolicy());
- }
-
- public Artifact createArtifact(String groupId, String artifactId, String version, String packaging) {
- return createArtifact(groupId, artifactId, version, null, packaging);
- }
-
- public Artifact createArtifact(String groupId, String artifactId, String version, String scope, String type) {
- return new DefaultArtifact(groupId, artifactId, version, scope, type, null, new TestArtifactHandler(type));
- }
-
- public ArtifactRepository createArtifactRepository(
- String id,
- String url,
- ArtifactRepositoryLayout repositoryLayout,
- ArtifactRepositoryPolicy snapshots,
- ArtifactRepositoryPolicy releases) {
- return new MavenArtifactRepository(id, url, repositoryLayout, snapshots, releases);
- }
-
- public Artifact createArtifactWithClassifier(
- String groupId, String artifactId, String version, String type, String classifier) {
- return new DefaultArtifact(groupId, artifactId, version, null, type, classifier, new TestArtifactHandler(type));
- }
-
- public ArtifactRepository createDefaultLocalRepository() throws InvalidRepositoryException {
- return createLocalRepository(
- new File(System.getProperty("basedir", "."), "target/local-repo").getAbsoluteFile());
- }
-
- public ArtifactRepository createDefaultRemoteRepository() throws InvalidRepositoryException {
- return new MavenArtifactRepository(
- DEFAULT_REMOTE_REPO_ID,
- "file://"
- + new File(System.getProperty("basedir", "."), "src/test/remote-repo")
- .getAbsoluteFile()
- .toURI()
- .getPath(),
- new DefaultRepositoryLayout(),
- new ArtifactRepositoryPolicy(),
- new ArtifactRepositoryPolicy());
- }
-
- public Artifact createDependencyArtifact(Dependency dependency) {
- Artifact artifact = new DefaultArtifact(
- dependency.getGroupId(),
- dependency.getArtifactId(),
- dependency.getVersion(),
- dependency.getScope(),
- dependency.getType(),
- dependency.getClassifier(),
- new TestArtifactHandler(dependency.getType()));
-
- if (Artifact.SCOPE_SYSTEM.equals(dependency.getScope())) {
- artifact.setFile(new File(dependency.getSystemPath()));
- artifact.setResolved(true);
- }
-
- return artifact;
- }
-
- public ArtifactRepository createLocalRepository(File localRepository) throws InvalidRepositoryException {
- return new MavenArtifactRepository(
- DEFAULT_LOCAL_REPO_ID,
- "file://" + localRepository.toURI().getPath(),
- new DefaultRepositoryLayout(),
- new ArtifactRepositoryPolicy(),
- new ArtifactRepositoryPolicy());
- }
-
- public Artifact createPluginArtifact(Plugin plugin) {
- throw new UnsupportedOperationException();
- }
-
- public Artifact createProjectArtifact(String groupId, String artifactId, String version) {
- return createArtifact(groupId, artifactId, version, "pom");
- }
-
- public List<ArtifactRepository> getEffectiveRepositories(List<ArtifactRepository> repositories) {
- return repositories;
- }
-
- public Mirror getMirror(ArtifactRepository repository, List<Mirror> mirrors) {
- return null;
- }
-
- public void injectAuthentication(List<ArtifactRepository> repositories, List<Server> servers) {}
-
- public void injectMirror(List<ArtifactRepository> repositories, List<Mirror> mirrors) {}
-
- public void injectProxy(List<ArtifactRepository> repositories, List<Proxy> proxies) {}
-
- public void publish(
- ArtifactRepository repository, File source, String remotePath, ArtifactTransferListener transferListener) {}
-
- public ArtifactResolutionResult resolve(ArtifactResolutionRequest request) {
- throw new UnsupportedOperationException();
- }
-
- public void retrieve(
- ArtifactRepository repository,
- File destination,
- String remotePath,
- ArtifactTransferListener transferListener) {}
-
- public void injectMirror(RepositorySystemSession session, List<ArtifactRepository> repositories) {}
-
- public void injectProxy(RepositorySystemSession session, List<ArtifactRepository> repositories) {}
-
- public void injectAuthentication(RepositorySystemSession session, List<ArtifactRepository> repositories) {}
-}
diff --git a/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java b/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java
index eb6c21f0f..aa9798c13 100644
--- a/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java
+++ b/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java
@@ -25,12 +25,12 @@ import java.io.IOException;
import java.io.Reader;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.model.Profile;
import org.apache.maven.project.DefaultProjectBuilder;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.project.harness.PomTestWrapper;
-import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
import org.codehaus.plexus.testing.PlexusTest;
@@ -55,7 +55,7 @@ class PomConstructionWithSettingsTest {
private DefaultProjectBuilder projectBuilder;
@Inject
- private RepositorySystem repositorySystem;
+ private MavenRepositorySystem repositorySystem;
private File testDirectory;
diff --git a/pom.xml b/pom.xml
index 0b6733cc5..ae4ce0a90 100644
--- a/pom.xml
+++ b/pom.xml
@@ -154,7 +154,6 @@ under the License.
<commonsLangVersion>3.12.0</commonsLangVersion>
<junitVersion>5.9.1</junitVersion>
<mockitoVersion>4.11.0</mockitoVersion>
- <plexusVersion>2.1.0</plexusVersion>
<plexusInterpolationVersion>1.26</plexusInterpolationVersion>
<plexusUtilsVersion>4.0.0</plexusUtilsVersion>
<plexusXmlVersion>4.0.0</plexusXmlVersion>
@@ -290,11 +289,6 @@ under the License.
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-annotations</artifactId>
- <version>${plexusVersion}</version>
- </dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-classworlds</artifactId>
@@ -494,19 +488,6 @@ under the License.
<build>
<pluginManagement>
<plugins>
- <plugin>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-metadata</artifactId>
- <version>${plexusVersion}</version>
- <executions>
- <execution>
- <goals>
- <goal>generate-metadata</goal>
- <goal>generate-test-metadata</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>