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 2025/02/25 08:27:39 UTC

(maven) branch master updated: [MNG-8590] Make sure maven-resolver-provider does not depend on maven-impl (#2123)

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 006ad926ee [MNG-8590] Make sure maven-resolver-provider does not depend on maven-impl (#2123)
006ad926ee is described below

commit 006ad926eeeca8eef0d085f7cc55c93f2330825f
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Feb 25 09:27:34 2025 +0100

    [MNG-8590] Make sure maven-resolver-provider does not depend on maven-impl (#2123)
---
 compat/maven-embedder/pom.xml                      |   4 -
 compat/maven-model-builder/pom.xml                 |   4 -
 .../building/AbstractModelBuildingListener.java    |   2 +-
 .../maven/model/building/ArtifactModelSource.java  |   2 +-
 .../maven/model/building/DefaultModelBuilder.java  |   2 +-
 .../model/building/DefaultModelBuilderFactory.java |   2 +-
 .../model/building/DefaultModelBuildingEvent.java  |   2 +-
 .../building/DefaultModelBuildingRequest.java      |   2 +-
 .../model/building/DefaultModelBuildingResult.java |   2 +-
 .../maven/model/building/DefaultModelProblem.java  |   2 +-
 .../building/DefaultModelProblemCollector.java     |   2 +-
 .../model/building/DefaultModelProcessor.java      |   2 +-
 .../maven/model/building/FileModelSource.java      |   2 +-
 .../maven/model/building/FileToRawModelMerger.java |   2 +-
 .../model/building/FilterModelBuildingRequest.java |   2 +-
 .../org/apache/maven/model/building/Graph.java     |   2 +-
 .../apache/maven/model/building/ModelBuilder.java  |   2 +-
 .../maven/model/building/ModelBuildingEvent.java   |   2 +-
 .../model/building/ModelBuildingEventCatapult.java |   2 +-
 .../model/building/ModelBuildingException.java     |   2 +-
 .../model/building/ModelBuildingListener.java      |   2 +-
 .../maven/model/building/ModelBuildingRequest.java |   2 +-
 .../maven/model/building/ModelBuildingResult.java  |   2 +-
 .../apache/maven/model/building/ModelCache.java    |   2 +-
 .../apache/maven/model/building/ModelCacheTag.java |   2 +-
 .../org/apache/maven/model/building/ModelData.java |   2 +-
 .../apache/maven/model/building/ModelProblem.java  |   2 +-
 .../model/building/ModelProblemCollector.java      |   2 +-
 .../model/building/ModelProblemCollectorExt.java   |   2 +-
 .../building/ModelProblemCollectorRequest.java     |   2 +-
 .../maven/model/building/ModelProcessor.java       |   2 +-
 .../apache/maven/model/building/ModelSource2.java  |   2 +-
 .../org/apache/maven/model/building/Result.java    |   2 +-
 .../maven/model/building/TransformerException.java |   2 +-
 .../DefaultDependencyManagementImporter.java       |   2 +-
 .../composition/DependencyManagementImporter.java  |   2 +-
 .../inheritance/DefaultInheritanceAssembler.java   |   2 +-
 .../model/inheritance/InheritanceAssembler.java    |   2 +-
 .../AbstractStringBasedModelInterpolator.java      |   2 +-
 .../interpolation/BuildTimestampValueSource.java   |   2 +-
 .../DefaultModelVersionProcessor.java              |   2 +-
 .../model/interpolation/MavenBuildTimestamp.java   |   2 +-
 .../model/interpolation/ModelInterpolator.java     |   2 +-
 .../model/interpolation/ModelVersionProcessor.java |   2 +-
 .../interpolation/ObjectBasedValueSource.java      |   2 +-
 .../PathTranslatingPostProcessor.java              |   2 +-
 .../interpolation/PrefixedObjectValueSource.java   |   2 +-
 .../interpolation/ProblemDetectingValueSource.java |   2 +-
 .../StringVisitorModelInterpolator.java            |   2 +-
 .../interpolation/UrlNormalizingPostProcessor.java |   2 +-
 .../model/interpolation/reflection/ClassMap.java   |   2 +-
 .../reflection/IntrospectionException.java         |   2 +-
 .../model/interpolation/reflection/MethodMap.java  |   2 +-
 .../reflection/ReflectionValueExtractor.java       |   2 +-
 .../apache/maven/model/io/ModelParseException.java |   2 +-
 .../org/apache/maven/model/io/ModelReader.java     |   2 +-
 .../org/apache/maven/model/io/ModelWriter.java     |   2 +-
 .../maven/model/locator/DefaultModelLocator.java   |   2 +-
 .../apache/maven/model/locator/ModelLocator.java   |   2 +-
 .../DefaultDependencyManagementInjector.java       |   2 +-
 .../DefaultPluginManagementInjector.java           |   2 +-
 .../management/DependencyManagementInjector.java   |   2 +-
 .../model/management/PluginManagementInjector.java |   2 +-
 .../apache/maven/model/merge/MavenModelMerger.java |   2 +-
 .../normalization/DefaultModelNormalizer.java      |   2 +-
 .../maven/model/normalization/ModelNormalizer.java |   2 +-
 .../model/path/DefaultModelPathTranslator.java     |   2 +-
 .../model/path/DefaultModelUrlNormalizer.java      |   2 +-
 .../maven/model/path/DefaultPathTranslator.java    |   2 +-
 .../maven/model/path/DefaultUrlNormalizer.java     |   2 +-
 .../maven/model/path/ModelPathTranslator.java      |   2 +-
 .../maven/model/path/ModelUrlNormalizer.java       |   2 +-
 .../apache/maven/model/path/PathTranslator.java    |   2 +-
 .../ProfileActivationFilePathInterpolator.java     |   2 +-
 .../org/apache/maven/model/path/UrlNormalizer.java |   2 +-
 .../plugin/DefaultPluginConfigurationExpander.java |   2 +-
 .../plugin/DefaultReportConfigurationExpander.java |   2 +-
 .../model/plugin/LifecycleBindingsInjector.java    |   2 +-
 .../model/plugin/PluginConfigurationExpander.java  |   2 +-
 .../model/plugin/ReportConfigurationExpander.java  |   2 +-
 .../profile/DefaultProfileActivationContext.java   |   2 +-
 .../model/profile/DefaultProfileInjector.java      |   2 +-
 .../model/profile/DefaultProfileSelector.java      |   2 +-
 .../model/profile/ProfileActivationContext.java    |   2 +-
 .../maven/model/profile/ProfileInjector.java       |   2 +-
 .../maven/model/profile/ProfileSelector.java       |   2 +-
 .../profile/activation/FileProfileActivator.java   |   2 +-
 .../activation/JdkVersionProfileActivator.java     |   2 +-
 .../OperatingSystemProfileActivator.java           |   2 +-
 .../activation/PackagingProfileActivator.java      |   2 +-
 .../model/profile/activation/ProfileActivator.java |   2 +-
 .../activation/PropertyProfileActivator.java       |   2 +-
 .../resolution/InvalidRepositoryException.java     |   2 +-
 .../maven/model/resolution/ModelResolver.java      |   2 +-
 .../resolution/UnresolvableModelException.java     |   2 +-
 .../model/resolution/WorkspaceModelResolver.java   |   2 +-
 .../maven/model/root/DefaultRootLocator.java       |   2 +-
 .../org/apache/maven/model/root/RootLocator.java   |   2 +-
 .../model/superpom/DefaultSuperPomProvider.java    |   2 +-
 .../maven/model/superpom/SuperPomProvider.java     |   2 +-
 .../model/validation/DefaultModelValidator.java    |   2 +-
 .../maven/model/validation/ModelValidator.java     |   2 +-
 .../src/main/java/org/apache/maven/utils/Os.java   |   2 +-
 compat/maven-model/pom.xml                         |   2 +-
 compat/maven-repository-metadata/pom.xml           |   2 +-
 compat/maven-resolver-provider/pom.xml             |   9 +-
 .../internal/DefaultModelVersionParser.java        | 293 -------------
 .../internal/DefaultVersionRangeResolver.java      |   5 +-
 .../maven/repository/internal/VersionTest.java     | 453 --------------------
 compat/maven-settings-builder/pom.xml              |   2 +-
 .../validation/DefaultSettingsValidator.java       |   2 +-
 .../settings/validation/SettingsValidator.java     |   3 +-
 .../maven/settings/io/xpp3/SettingsXpp3Writer.java |   2 +-
 compat/maven-toolchain-builder/pom.xml             |   7 +-
 impl/maven-impl/pom.xml                            | 129 +-----
 .../apache/maven/impl}/AbstractVersionTest.java    |   2 +-
 .../apache/maven/impl}/ModelVersionParserTest.java |   5 +-
 .../org/apache/maven/impl}/VersionRangeTest.java   |   2 +-
 .../java/org/apache/maven/impl/VersionTest.java    | 454 +++++++++++++++++++++
 impl/{maven-impl => maven-support}/pom.xml         | 145 +------
 impl/pom.xml                                       |   1 +
 its/pom.xml                                        |   5 +
 pom.xml                                            |   5 +
 src/graph/ReactorGraph.java                        |   2 +-
 124 files changed, 600 insertions(+), 1140 deletions(-)

diff --git a/compat/maven-embedder/pom.xml b/compat/maven-embedder/pom.xml
index 71f57cc10f..4f3110bc9c 100644
--- a/compat/maven-embedder/pom.xml
+++ b/compat/maven-embedder/pom.xml
@@ -67,10 +67,6 @@ under the License.
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-di</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-impl</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-jline</artifactId>
diff --git a/compat/maven-model-builder/pom.xml b/compat/maven-model-builder/pom.xml
index cd0fce41d9..31c8e93aec 100644
--- a/compat/maven-model-builder/pom.xml
+++ b/compat/maven-model-builder/pom.xml
@@ -45,10 +45,6 @@ under the License.
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-api-model</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-impl</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-model</artifactId>
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelBuildingListener.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelBuildingListener.java
index 35a86ccab3..862a80e3fd 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelBuildingListener.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelBuildingListener.java
@@ -21,7 +21,7 @@
 /**
  * Provides a skeleton implementation for model building listeners. The methods of this class are empty.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class AbstractModelBuildingListener implements ModelBuildingListener {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ArtifactModelSource.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ArtifactModelSource.java
index b695cfc28a..8ba3637a27 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ArtifactModelSource.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ArtifactModelSource.java
@@ -28,7 +28,7 @@
  * Represents a model pulled from a repository
  *
  * @since 4.0.0
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class ArtifactModelSource extends FileSource implements ModelSource {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index 44ebd84aee..301919b85c 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -91,7 +91,7 @@
 import static org.apache.maven.model.building.Result.newResult;
 
 /**
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @SuppressWarnings("UnusedReturnValue")
 @Named
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
index d21c86841d..431949ae3c 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
@@ -73,7 +73,7 @@
  * plugins should always acquire model builder instances via dependency injection. Developers might want to subclass
  * this factory to provide custom implementations for some of the components used by the model builder.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class DefaultModelBuilderFactory {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingEvent.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingEvent.java
index 95eef4773b..964bf76ba4 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingEvent.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingEvent.java
@@ -23,7 +23,7 @@
 /**
  * Holds data relevant for a model building event.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class DefaultModelBuildingEvent implements ModelBuildingEvent {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
index 22b1c96f72..d03f3db811 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
@@ -32,7 +32,7 @@
 /**
  * Collects settings that control building of effective models.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class DefaultModelBuildingRequest implements ModelBuildingRequest {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java
index c13a22b649..8f5669bf4d 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java
@@ -30,7 +30,7 @@
 /**
  * Collects the output of the model builder.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class DefaultModelBuildingResult implements ModelBuildingResult {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblem.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblem.java
index 1f71d61c1e..7c42f2b237 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblem.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblem.java
@@ -25,7 +25,7 @@
  * or a simple string message. In addition, a problem carries a hint about its source, e.g. the POM file that exhibits
  * the problem.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class DefaultModelProblem implements ModelProblem {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java
index 54c48a1073..ff67161f7a 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java
@@ -32,7 +32,7 @@
  * it delegates to other components that potentially encounter problems. Then, the problem reporter can focus on
  * providing a simple error message, leaving the donkey work of creating a nice model problem to this component.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class DefaultModelProblemCollector implements ModelProblemCollectorExt {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
index 5ffa16bce0..bb99dfee25 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
@@ -58,7 +58,7 @@
  * of the same interface. Since we want to allow overriding this doesn't matter in this case.
  * (if it did we could add @Priority of 0 to match the priority given to default components.)
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named("core-default")
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java
index 2b8f03acfb..f790ac063c 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java
@@ -26,7 +26,7 @@
 /**
  * Wraps an ordinary {@link File} as a model source.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class FileModelSource extends FileSource implements ModelSource2 {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileToRawModelMerger.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileToRawModelMerger.java
index bad95716a3..9055ca8b91 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileToRawModelMerger.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FileToRawModelMerger.java
@@ -41,7 +41,7 @@
  * All others can simply be copied from source to target to restore the locationTracker
  *
  * @since 4.0.0
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class FileToRawModelMerger extends MavenMerger {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
index 40480ce2f5..d9f04864f3 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
@@ -32,7 +32,7 @@
  * A model building request that delegates all methods invocations to another request, meant for easy transformations by
  * subclassing.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class FilterModelBuildingRequest implements ModelBuildingRequest {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Graph.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Graph.java
index bff29170a7..3c0b36d9cb 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Graph.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Graph.java
@@ -29,7 +29,7 @@
 import java.util.Set;
 
 /**
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class Graph {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuilder.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuilder.java
index f2c75b305a..ef3a4288e6 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuilder.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuilder.java
@@ -25,7 +25,7 @@
 /**
  * Builds the effective model from a POM.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelBuilder {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEvent.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEvent.java
index 81face2738..75e62a7cba 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEvent.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEvent.java
@@ -23,7 +23,7 @@
 /**
  * Holds data relevant for a model building event.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelBuildingEvent {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEventCatapult.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEventCatapult.java
index f9d68a6127..1ca8701e33 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEventCatapult.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEventCatapult.java
@@ -22,7 +22,7 @@
  * Assists in firing events from a generic method by abstracting from the actual callback method to be called on the
  * listener.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 interface ModelBuildingEventCatapult {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingException.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingException.java
index b4ba8d3390..540d891002 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingException.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingException.java
@@ -30,7 +30,7 @@
  * before eventually failing to provide callers with rich error information. Use {@link #getProblems()} to query the
  * details of the failure.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class ModelBuildingException extends Exception {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingListener.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingListener.java
index c206e396b1..75a5775657 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingListener.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingListener.java
@@ -24,7 +24,7 @@
  * <em>Note:</em> To cope with future extensions to this interface, it is strongly recommended to extend
  * {@link AbstractModelBuildingListener} rather than to directly implement this interface.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelBuildingListener {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
index d607d43391..fc33bc3e6a 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
@@ -31,7 +31,7 @@
 /**
  * Collects settings that control the building of effective models.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelBuildingRequest {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingResult.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingResult.java
index d3e88d5f42..935d8ab0fd 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingResult.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingResult.java
@@ -26,7 +26,7 @@
 /**
  * Collects the output of the model builder.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelBuildingResult {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java
index bb28e7ba3f..9cdd510181 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java
@@ -25,7 +25,7 @@
  * identify of a model. The tag allows for further classification of the associated data on the sole discretion of the
  * model builder.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelCache {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCacheTag.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCacheTag.java
index eeaaa66336..0c1781a24d 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCacheTag.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCacheTag.java
@@ -26,7 +26,7 @@
  * and a class to provide some type safety when working with the otherwise untyped cache.
  *
  * @param <T> The type of data associated with the tag.
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 interface ModelCacheTag<T> {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelData.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelData.java
index 3fc221bb19..c0756d8564 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelData.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelData.java
@@ -27,7 +27,7 @@
  * Holds a model along with some auxiliary information. This internal utility class assists the model builder during POM
  * processing by providing a means to transport information that cannot be (easily) extracted from the model itself.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class ModelData {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblem.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblem.java
index 4a8feb3343..78fc3dec85 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblem.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblem.java
@@ -23,7 +23,7 @@
  * or a simple string message. In addition, a problem carries a hint about its source, e.g. the POM file that exhibits
  * the problem.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelProblem {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollector.java
index 6f2ff01121..7c054d7a87 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollector.java
@@ -25,7 +25,7 @@
  * it delegates to other components that potentially encounter problems. Then, the problem reporter can focus on
  * providing a simple error message, leaving the donkey work of creating a nice model problem to this component.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelProblemCollector {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorExt.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorExt.java
index 9f5b4c7aac..1cf218169a 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorExt.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorExt.java
@@ -23,7 +23,7 @@
 /**
  * Extends the ModelProblemCollector by the capacity of returning the collected problems.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelProblemCollectorExt extends ModelProblemCollector {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorRequest.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorRequest.java
index d278633642..1121cffe9a 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorRequest.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorRequest.java
@@ -27,7 +27,7 @@
 /**
  * Class to wrap request parameters to ModelProblemCollector.addProblem
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public final class ModelProblemCollectorRequest {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java
index ab14fffa93..23018b5e20 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java
@@ -24,7 +24,7 @@
 /**
  * ModelProcessor
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 @SuppressWarnings("checkstyle:interfaceistype")
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSource2.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSource2.java
index 13271d7d5e..40cc4dbbbc 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSource2.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSource2.java
@@ -30,7 +30,7 @@
  * ModelSource2 instances are cached in {@link ModelBuildingRequest#getModelCache()}. Implementations must guarantee
  * that the connection to the backing store remains active until request's {@link ModelCache} is discarded or flushed.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelSource2 extends ModelSource {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
index ef68b928eb..538f647be3 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
@@ -38,7 +38,7 @@
  * Could encode these variants as subclasses, but kept in one for now
  *
  * @param <T> the model type
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class Result<T> {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerException.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerException.java
index cc0794a5b9..db8599dab9 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerException.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerException.java
@@ -21,7 +21,7 @@
 /**
  *
  * @since 4.0.0
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class TransformerException extends Exception {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
index 6835c5e982..e14025a0d6 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
@@ -35,7 +35,7 @@
 /**
  * Handles the import of dependency management from other models into the target model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java
index 2d9ae33f3d..8e66260440 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java
@@ -28,7 +28,7 @@
 /**
  * Handles the import of dependency management from other models into the target model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface DependencyManagementImporter {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
index 18070ce187..1057d87695 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
@@ -43,7 +43,7 @@
 /**
  * Handles inheritance of model values.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @SuppressWarnings({"checkstyle:methodname"})
 @Named
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java
index efab77ea1e..3e0e6c26d6 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java
@@ -25,7 +25,7 @@
 /**
  * Handles inheritance of model values.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface InheritanceAssembler {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
index 78fdd1883b..bec0625d5b 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
@@ -46,7 +46,7 @@
 /**
  * Use a regular expression search to find and resolve expressions within the POM.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public abstract class AbstractStringBasedModelInterpolator implements ModelInterpolator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/BuildTimestampValueSource.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/BuildTimestampValueSource.java
index 931890897e..c6ff41d63b 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/BuildTimestampValueSource.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/BuildTimestampValueSource.java
@@ -24,7 +24,7 @@
 import org.codehaus.plexus.interpolation.AbstractValueSource;
 
 /**
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class BuildTimestampValueSource extends AbstractValueSource {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
index 6919b4c536..0e42a63696 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/DefaultModelVersionProcessor.java
@@ -29,7 +29,7 @@
  * Maven default implementation of the {@link ModelVersionProcessor} to support
  * <a href="https://maven.apache.org/maven-ci-friendly.html">CI Friendly Versions</a>
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java
index 235164e1eb..b0c4d83c3f 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java
@@ -27,7 +27,7 @@
 /**
  * MavenBuildTimestamp
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class MavenBuildTimestamp {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java
index e2c3bc4ffc..f507f61459 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java
@@ -28,7 +28,7 @@
  * Replaces expressions of the form <code>${token}</code> with their effective values. Effective values are basically
  * calculated from the elements of the model itself and the execution properties from the building request.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelInterpolator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelVersionProcessor.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelVersionProcessor.java
index 7db837de2d..8f82123137 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelVersionProcessor.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelVersionProcessor.java
@@ -26,7 +26,7 @@
  * Allows a fixed set of properties that are valid inside a version and that could be overwritten for example on the
  * commandline
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelVersionProcessor {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ObjectBasedValueSource.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ObjectBasedValueSource.java
index fbab67d8eb..fdbb01cc97 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ObjectBasedValueSource.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ObjectBasedValueSource.java
@@ -43,7 +43,7 @@
  * 'rootObject.getChild().getName()' for non-boolean properties, and
  * 'rootObject.getChild().isName()' for boolean properties.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class ObjectBasedValueSource extends AbstractValueSource {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java
index 58bde4132b..4c943d69a0 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java
@@ -28,7 +28,7 @@
 
 /**
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class PathTranslatingPostProcessor implements InterpolationPostProcessor {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PrefixedObjectValueSource.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PrefixedObjectValueSource.java
index 0115169beb..a58155e14f 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PrefixedObjectValueSource.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PrefixedObjectValueSource.java
@@ -29,7 +29,7 @@
  * wraps that source with a {@link PrefixedValueSourceWrapper} instance, to which
  * this class delegates all of its calls.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class PrefixedObjectValueSource extends AbstractDelegatingValueSource implements QueryEnabledValueSource {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java
index 28484c4c38..828b347965 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java
@@ -29,7 +29,7 @@
 /**
  * Wraps another value source and intercepts interpolated expressions, checking for problems.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class ProblemDetectingValueSource implements ValueSource {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java
index d86bd27ccd..6d30964b20 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolator.java
@@ -81,7 +81,7 @@
  * StringVisitorModelInterpolator
  *
  * @since 3.6.2
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/UrlNormalizingPostProcessor.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/UrlNormalizingPostProcessor.java
index b17b03a9f8..7c7d6ce09e 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/UrlNormalizingPostProcessor.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/UrlNormalizingPostProcessor.java
@@ -27,7 +27,7 @@
 /**
  * Ensures that expressions referring to URLs evaluate to normalized URLs.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class UrlNormalizingPostProcessor implements InterpolationPostProcessor {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ClassMap.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ClassMap.java
index 84df447c9e..11cffe3d81 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ClassMap.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ClassMap.java
@@ -28,7 +28,7 @@
  * Keys {@link Method} objects by a concatenation of the
  * method name and the names of classes that make up the parameters.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class ClassMap {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/IntrospectionException.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/IntrospectionException.java
index 51d585accd..ca54e86e66 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/IntrospectionException.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/IntrospectionException.java
@@ -19,7 +19,7 @@
 package org.apache.maven.model.interpolation.reflection;
 
 /**
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class IntrospectionException extends Exception {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/MethodMap.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/MethodMap.java
index 51ef86d669..0467aacc1f 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/MethodMap.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/MethodMap.java
@@ -27,7 +27,7 @@
 import java.util.Map;
 
 /**
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 class MethodMap {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ReflectionValueExtractor.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ReflectionValueExtractor.java
index ff2dd36398..e44d2df2d1 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ReflectionValueExtractor.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/reflection/ReflectionValueExtractor.java
@@ -40,7 +40,7 @@
  * In addition to usual getters using {@code getXxx} or {@code isXxx} suffixes, accessors
  * using {@code asXxx} or {@code toXxx} prefixes are also supported.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class ReflectionValueExtractor {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelParseException.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelParseException.java
index 9dd903893d..054cb47b40 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelParseException.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelParseException.java
@@ -23,7 +23,7 @@
 /**
  * Signals a failure to parse the POM due to invalid syntax (e.g. non well formed XML or unknown elements).
  *
- * @deprecated use {@link org.apache.maven.api.services.xml.ModelXmlFactory} instead
+ * @deprecated use {@code org.apache.maven.api.services.xml.ModelXmlFactory} instead
  */
 @Deprecated(since = "4.0.0")
 public class ModelParseException extends IOException {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelReader.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelReader.java
index 13477cf38f..8bd7b5e18a 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelReader.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelReader.java
@@ -29,7 +29,7 @@
 /**
  * Handles deserialization of a model from some kind of textual format like XML.
  *
- * @deprecated use {@link org.apache.maven.api.services.xml.ModelXmlFactory} instead
+ * @deprecated use {@code org.apache.maven.api.services.xml.ModelXmlFactory} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelReader {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelWriter.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelWriter.java
index d394a237f4..01a63fba01 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelWriter.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelWriter.java
@@ -29,7 +29,7 @@
 /**
  * Handles serialization of a model into some kind of textual format like XML.
  *
- * @deprecated use {@link org.apache.maven.api.services.xml.ModelXmlFactory} instead
+ * @deprecated use {@code org.apache.maven.api.services.xml.ModelXmlFactory} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelWriter {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java
index 836021e15c..5478615509 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java
@@ -26,7 +26,7 @@
 /**
  * Locates a POM file within a project base directory.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/ModelLocator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/ModelLocator.java
index 0200cafb62..4f9dd806f0 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/ModelLocator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/locator/ModelLocator.java
@@ -23,7 +23,7 @@
 /**
  * Locates a POM file within a project base directory.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelLocator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
index c93198a280..093ff18721 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
@@ -37,7 +37,7 @@
 /**
  * Handles injection of dependency management into the model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @SuppressWarnings({"checkstyle:methodname"})
 @Named
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
index 2bfcbd650a..9986700228 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
@@ -40,7 +40,7 @@
 /**
  * Handles injection of plugin management into the model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @SuppressWarnings({"checkstyle:methodname"})
 @Named
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java
index c9504adedb..1ba2036698 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java
@@ -25,7 +25,7 @@
 /**
  * Handles injection of dependency management into the model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface DependencyManagementInjector {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java
index 1d561d752d..3466247886 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java
@@ -25,7 +25,7 @@
 /**
  * Handles injection of plugin management into the model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface PluginManagementInjector {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java
index f451f219ac..570970a6c8 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java
@@ -51,7 +51,7 @@
  * The domain-specific model merger for the Maven POM, overriding generic code from parent class when necessary with
  * more adapted algorithms.
  *
- * @deprecated use {@link org.apache.maven.impl.model.MavenModelMerger} instead
+ * @deprecated use {@code org.apache.maven.impl.model.MavenModelMerger} instead
  */
 @Deprecated(since = "4.0.0")
 public class MavenModelMerger extends ModelMerger {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
index a6f89badcf..7bd69c8e2a 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
@@ -39,7 +39,7 @@
 /**
  * Handles normalization of a model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java
index 2d8190a9d3..160e75785d 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java
@@ -26,7 +26,7 @@
  * Handles normalization of a model. In this context, normalization is the process of producing a canonical
  * representation for models that physically look different but are semantically equivalent.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelNormalizer {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
index 2be81863e3..78e0aee8c5 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
@@ -35,7 +35,7 @@
 /**
  * Resolves relative paths within a model against a specific base directory.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java
index b22c4e6a00..610c0797f8 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java
@@ -32,7 +32,7 @@
  * Normalizes URLs to remove the ugly parent references "../" that got potentially inserted by URL adjustment during
  * model inheritance.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
index aa502caa95..7bc03b02da 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
@@ -26,7 +26,7 @@
 /**
  * Resolves relative paths against a specific base directory.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
index d42c8a2cc9..7dc008abc4 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
@@ -24,7 +24,7 @@
 /**
  * Normalizes a URL.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java
index 4d375f38d9..7e14d7f7ba 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java
@@ -26,7 +26,7 @@
 /**
  * Resolves relative paths of a model against a specific base directory.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelPathTranslator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelUrlNormalizer.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelUrlNormalizer.java
index fd0d0eaed3..35a1a1d48f 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelUrlNormalizer.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelUrlNormalizer.java
@@ -25,7 +25,7 @@
  * Normalizes URLs to remove the ugly parent references "../" that got potentially inserted by URL adjustment during
  * model inheritance.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelUrlNormalizer {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java
index 5fdc481f34..5f32aa12fe 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java
@@ -23,7 +23,7 @@
 /**
  * Resolves relative paths against a specific base directory.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface PathTranslator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ProfileActivationFilePathInterpolator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ProfileActivationFilePathInterpolator.java
index 098d68bc46..d1f896774c 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ProfileActivationFilePathInterpolator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/ProfileActivationFilePathInterpolator.java
@@ -36,7 +36,7 @@
 /**
  * Finds an absolute path for {@link ActivationFile#getExists()} or {@link ActivationFile#getMissing()}
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/UrlNormalizer.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/UrlNormalizer.java
index da5f32bf65..8bb6340569 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/UrlNormalizer.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/path/UrlNormalizer.java
@@ -22,7 +22,7 @@
  * Normalizes a URL to remove the ugly parent references "../" that got potentially inserted by URL adjustment during
  * model inheritance.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface UrlNormalizer {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
index 3105cd0558..b2679836a1 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
@@ -35,7 +35,7 @@
 /**
  * Handles expansion of general build plugin configuration into individual executions.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java
index 05ad746988..134f164239 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java
@@ -32,7 +32,7 @@
 /**
  * Handles expansion of general report plugin configuration into individual report sets.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java
index 1b6189d3d9..f4f1fbadc3 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java
@@ -25,7 +25,7 @@
 /**
  * Handles injection of plugin executions induced by the lifecycle bindings for a packaging.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface LifecycleBindingsInjector {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java
index a7b7439e46..62c70e0ae1 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java
@@ -25,7 +25,7 @@
 /**
  * Handles expansion of general build plugin configuration into individual executions.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface PluginConfigurationExpander {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportConfigurationExpander.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportConfigurationExpander.java
index 003c0c432d..ad57001d8a 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportConfigurationExpander.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportConfigurationExpander.java
@@ -25,7 +25,7 @@
 /**
  * Handles expansion of general report plugin configuration into individual report sets.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ReportConfigurationExpander {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java
index 31741b00d9..ea7dd04077 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java
@@ -30,7 +30,7 @@
 /**
  * Describes the environmental context used to determine the activation status of profiles.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class DefaultProfileActivationContext implements ProfileActivationContext {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
index 953c281f7a..7530ff5ce4 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
@@ -45,7 +45,7 @@
 /**
  * Handles profile injection into the model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
index 773462a282..1dcd2249d8 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
@@ -38,7 +38,7 @@
 /**
  * Calculates the active profiles among a given collection of profiles.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java
index 850f6c44bf..cb529cd0e4 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java
@@ -25,7 +25,7 @@
 /**
  * Describes the environmental context used to determine the activation status of profiles.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ProfileActivationContext {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java
index 44c8a7a50a..0070e3ae18 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java
@@ -26,7 +26,7 @@
 /**
  * Handles profile injection into the model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ProfileInjector {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java
index cb30958493..1a820d31a8 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java
@@ -27,7 +27,7 @@
 /**
  * Calculates the active profiles among a given collection of profiles.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ProfileSelector {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
index cdecea130e..3061017132 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
@@ -43,7 +43,7 @@
  *
  * @see ActivationFile
  * @see org.apache.maven.model.validation.DefaultModelValidator#validateRawModel
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named("file")
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
index 8de7f8581f..fcc84a9994 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
@@ -38,7 +38,7 @@
  * Determines profile activation based on the version of the current Java runtime.
  *
  * @see Activation#getJdk()
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named("jdk-version")
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
index 641d1e7ab1..a6898462be 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
@@ -34,7 +34,7 @@
  * Determines profile activation based on the operating system of the current runtime platform.
  *
  * @see ActivationOS
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named("os")
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PackagingProfileActivator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PackagingProfileActivator.java
index 667523188c..4faeaa45b9 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PackagingProfileActivator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PackagingProfileActivator.java
@@ -32,7 +32,7 @@
 /**
  * Determines profile activation based on the project's packaging.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named("packaging")
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/ProfileActivator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/ProfileActivator.java
index b1e02fd8cd..43ec053637 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/ProfileActivator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/ProfileActivator.java
@@ -25,7 +25,7 @@
 /**
  * Determines whether a profile should be activated.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ProfileActivator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
index 7adc38c30b..9873874b93 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
@@ -35,7 +35,7 @@
  * Determines profile activation based on the existence or value of some execution property.
  *
  * @see ActivationProperty
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named("property")
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/InvalidRepositoryException.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/InvalidRepositoryException.java
index e423990bfd..a974d21e0e 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/InvalidRepositoryException.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/InvalidRepositoryException.java
@@ -23,7 +23,7 @@
 /**
  * Signals an error when adding a repository to the model resolver.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class InvalidRepositoryException extends Exception {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/ModelResolver.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/ModelResolver.java
index 7353257d95..c5a49dffa5 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/ModelResolver.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/ModelResolver.java
@@ -28,7 +28,7 @@
  * {@link org.apache.maven.model.building.ModelBuilder} will add any relevant repositories to the model resolver. In
  * other words, the model resolver is stateful and should not be reused across multiple model building requests.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelResolver {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/UnresolvableModelException.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/UnresolvableModelException.java
index 73d83e3779..e8faaf9e2d 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/UnresolvableModelException.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/UnresolvableModelException.java
@@ -21,7 +21,7 @@
 /**
  * Signals an error when resolving the path to an external model.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class UnresolvableModelException extends Exception {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/WorkspaceModelResolver.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/WorkspaceModelResolver.java
index 09c0a0cd51..c1a61028f6 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/WorkspaceModelResolver.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/resolution/WorkspaceModelResolver.java
@@ -23,7 +23,7 @@
 /**
  * WorkspaceModelResolver
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface WorkspaceModelResolver {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/DefaultRootLocator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/DefaultRootLocator.java
index 871642d1d3..671b9f24ef 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/DefaultRootLocator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/DefaultRootLocator.java
@@ -29,7 +29,7 @@
 import java.nio.file.Path;
 
 /**
- * @deprecated use {@link org.apache.maven.api.services.model.RootLocator} instead
+ * @deprecated use {@code org.apache.maven.api.services.model.RootLocator} instead
  */
 @Named
 @Deprecated(since = "4.0.0")
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/RootLocator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/RootLocator.java
index 55c35696f1..4f0569a2c2 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/RootLocator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/root/RootLocator.java
@@ -35,7 +35,7 @@
  * or a {@code pom.xml} containing the {@code root="true"} attribute.
  *
  * @see DefaultRootLocator
- * @deprecated use {@link org.apache.maven.api.services.model.RootLocator} instead
+ * @deprecated use {@code org.apache.maven.api.services.model.RootLocator} instead
  */
 @Deprecated(since = "4.0.0")
 public interface RootLocator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java
index f20b1bba6b..3c09c19af5 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java
@@ -34,7 +34,7 @@
 /**
  * Provides the super POM that all models implicitly inherit from.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/SuperPomProvider.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/SuperPomProvider.java
index 5bcde61242..4d382182c3 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/SuperPomProvider.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/superpom/SuperPomProvider.java
@@ -23,7 +23,7 @@
 /**
  * Provides the super POM that all models implicitly inherit from.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface SuperPomProvider {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
index 697a5c5f74..5e2d47329d 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
@@ -69,7 +69,7 @@
 import org.codehaus.plexus.util.StringUtils;
 
 /**
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java b/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java
index 4e0382c177..577809d9ac 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java
@@ -25,7 +25,7 @@
 /**
  * Checks the model for missing or invalid values.
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public interface ModelValidator {
diff --git a/compat/maven-model-builder/src/main/java/org/apache/maven/utils/Os.java b/compat/maven-model-builder/src/main/java/org/apache/maven/utils/Os.java
index 19a442a617..ef189d6a51 100644
--- a/compat/maven-model-builder/src/main/java/org/apache/maven/utils/Os.java
+++ b/compat/maven-model-builder/src/main/java/org/apache/maven/utils/Os.java
@@ -25,7 +25,7 @@
 /**
  * OS support
  *
- * @deprecated use {@link org.apache.maven.api.services.ModelBuilder} instead
+ * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
  */
 @Deprecated(since = "4.0.0")
 public class Os {
diff --git a/compat/maven-model/pom.xml b/compat/maven-model/pom.xml
index 1c88e42a9d..00ae535766 100644
--- a/compat/maven-model/pom.xml
+++ b/compat/maven-model/pom.xml
@@ -51,7 +51,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-impl</artifactId>
+      <artifactId>maven-support</artifactId>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
diff --git a/compat/maven-repository-metadata/pom.xml b/compat/maven-repository-metadata/pom.xml
index ec22839824..edcb1eb6f3 100644
--- a/compat/maven-repository-metadata/pom.xml
+++ b/compat/maven-repository-metadata/pom.xml
@@ -42,7 +42,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-impl</artifactId>
+      <artifactId>maven-support</artifactId>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
diff --git a/compat/maven-resolver-provider/pom.xml b/compat/maven-resolver-provider/pom.xml
index 1f2d63bcf8..e4722dc3fd 100644
--- a/compat/maven-resolver-provider/pom.xml
+++ b/compat/maven-resolver-provider/pom.xml
@@ -55,11 +55,11 @@ under the License.
 
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-impl</artifactId>
+      <artifactId>maven-xml</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-xml</artifactId>
+      <artifactId>maven-support</artifactId>
     </dependency>
 
     <dependency>
@@ -160,6 +160,11 @@ under the License.
       <artifactId>slf4j-simple</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelVersionParser.java b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelVersionParser.java
deleted file mode 100644
index 5323a71bd9..0000000000
--- a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelVersionParser.java
+++ /dev/null
@@ -1,293 +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.internal;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import java.util.regex.Pattern;
-
-import org.apache.maven.api.Version;
-import org.apache.maven.api.VersionConstraint;
-import org.apache.maven.api.VersionRange;
-import org.apache.maven.api.services.VersionParserException;
-import org.apache.maven.api.services.model.ModelVersionParser;
-import org.eclipse.aether.version.InvalidVersionSpecificationException;
-import org.eclipse.aether.version.VersionScheme;
-
-import static java.util.Objects.requireNonNull;
-
-/**
- * @deprecated since 4.0.0, use {@code maven-api-impl} jar instead
- */
-@Named
-@Singleton
-@Deprecated(since = "4.0.0")
-public class DefaultModelVersionParser implements ModelVersionParser {
-    private static final String SNAPSHOT = "SNAPSHOT";
-    private static final Pattern SNAPSHOT_TIMESTAMP = Pattern.compile("^(.*-)?([0-9]{8}\\.[0-9]{6}-[0-9]+)$");
-    private final VersionScheme versionScheme;
-
-    @Inject
-    public DefaultModelVersionParser(VersionScheme versionScheme) {
-        this.versionScheme = requireNonNull(versionScheme, "versionScheme");
-    }
-
-    @Override
-    public Version parseVersion(String version) {
-        requireNonNull(version, "version");
-        return new DefaultVersion(versionScheme, version);
-    }
-
-    @Override
-    public VersionRange parseVersionRange(String range) {
-        requireNonNull(range, "range");
-        return new DefaultVersionRange(versionScheme, range);
-    }
-
-    @Override
-    public boolean isSnapshot(String version) {
-        return checkSnapshot(version);
-    }
-
-    public static boolean checkSnapshot(String version) {
-        return version.endsWith(SNAPSHOT) || SNAPSHOT_TIMESTAMP.matcher(version).matches();
-    }
-
-    @Override
-    public VersionConstraint parseVersionConstraint(String constraint) {
-        requireNonNull(constraint, "constraint");
-        return new DefaultVersionConstraint(versionScheme, constraint);
-    }
-
-    static class DefaultVersion implements Version {
-        private final VersionScheme versionScheme;
-        private final org.eclipse.aether.version.Version delegate;
-
-        DefaultVersion(VersionScheme versionScheme, org.eclipse.aether.version.Version delegate) {
-            this.versionScheme = versionScheme;
-            this.delegate = delegate;
-        }
-
-        DefaultVersion(VersionScheme versionScheme, String delegateValue) {
-            this.versionScheme = versionScheme;
-            try {
-                this.delegate = versionScheme.parseVersion(delegateValue);
-            } catch (InvalidVersionSpecificationException e) {
-                throw new VersionParserException("Unable to parse version: " + delegateValue, e);
-            }
-        }
-
-        @Override
-        public int compareTo(Version o) {
-            if (o instanceof DefaultVersion defaultVersion) {
-                return delegate.compareTo(defaultVersion.delegate);
-            } else {
-                return compareTo(new DefaultVersion(versionScheme, o.asString()));
-            }
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) {
-                return true;
-            }
-            if (o == null || getClass() != o.getClass()) {
-                return false;
-            }
-            DefaultVersion that = (DefaultVersion) o;
-            return delegate.equals(that.delegate);
-        }
-
-        @Override
-        public int hashCode() {
-            return delegate.hashCode();
-        }
-
-        @Override
-        public String asString() {
-            return delegate.toString();
-        }
-
-        @Override
-        public String toString() {
-            return asString();
-        }
-    }
-
-    static class DefaultVersionRange implements VersionRange {
-        private final VersionScheme versionScheme;
-        private final org.eclipse.aether.version.VersionRange delegate;
-
-        DefaultVersionRange(VersionScheme versionScheme, org.eclipse.aether.version.VersionRange delegate) {
-            this.versionScheme = versionScheme;
-            this.delegate = delegate;
-        }
-
-        DefaultVersionRange(VersionScheme versionScheme, String delegateValue) {
-            this.versionScheme = versionScheme;
-            try {
-                this.delegate = versionScheme.parseVersionRange(delegateValue);
-            } catch (InvalidVersionSpecificationException e) {
-                throw new VersionParserException("Unable to parse version range: " + delegateValue, e);
-            }
-        }
-
-        @Override
-        public boolean contains(Version version) {
-            if (version instanceof DefaultVersion defaultVersion) {
-                return delegate.containsVersion(defaultVersion.delegate);
-            } else {
-                return contains(new DefaultVersion(versionScheme, version.asString()));
-            }
-        }
-
-        @Override
-        public Boundary getUpperBoundary() {
-            org.eclipse.aether.version.VersionRange.Bound bound = delegate.getUpperBound();
-            if (bound == null) {
-                return null;
-            }
-            return new Boundary() {
-                @Override
-                public Version getVersion() {
-                    return new DefaultVersion(versionScheme, bound.getVersion());
-                }
-
-                @Override
-                public boolean isInclusive() {
-                    return bound.isInclusive();
-                }
-            };
-        }
-
-        @Override
-        public Boundary getLowerBoundary() {
-            org.eclipse.aether.version.VersionRange.Bound bound = delegate.getLowerBound();
-            if (bound == null) {
-                return null;
-            }
-            return new Boundary() {
-                @Override
-                public Version getVersion() {
-                    return new DefaultVersion(versionScheme, bound.getVersion());
-                }
-
-                @Override
-                public boolean isInclusive() {
-                    return bound.isInclusive();
-                }
-            };
-        }
-
-        @Override
-        public String asString() {
-            return delegate.toString();
-        }
-
-        @Override
-        public String toString() {
-            return asString();
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) {
-                return true;
-            }
-            if (o == null || getClass() != o.getClass()) {
-                return false;
-            }
-            DefaultVersionRange that = (DefaultVersionRange) o;
-            return delegate.equals(that.delegate);
-        }
-
-        @Override
-        public int hashCode() {
-            return delegate.hashCode();
-        }
-    }
-
-    static class DefaultVersionConstraint implements VersionConstraint {
-        private final VersionScheme versionScheme;
-        private final org.eclipse.aether.version.VersionConstraint delegate;
-
-        DefaultVersionConstraint(VersionScheme versionScheme, String delegateValue) {
-            this.versionScheme = versionScheme;
-            try {
-                this.delegate = versionScheme.parseVersionConstraint(delegateValue);
-            } catch (InvalidVersionSpecificationException e) {
-                throw new VersionParserException("Unable to parse version constraint: " + delegateValue, e);
-            }
-        }
-
-        @Override
-        public boolean contains(Version version) {
-            if (version instanceof DefaultVersion defaultVersion) {
-                return delegate.containsVersion(defaultVersion.delegate);
-            } else {
-                return contains(new DefaultVersion(versionScheme, version.asString()));
-            }
-        }
-
-        @Override
-        public String asString() {
-            return delegate.toString();
-        }
-
-        @Override
-        public VersionRange getVersionRange() {
-            if (delegate.getRange() == null) {
-                return null;
-            }
-            return new DefaultVersionRange(versionScheme, delegate.getRange());
-        }
-
-        @Override
-        public Version getRecommendedVersion() {
-            if (delegate.getVersion() == null) {
-                return null;
-            }
-            return new DefaultVersion(versionScheme, delegate.getVersion());
-        }
-
-        @Override
-        public String toString() {
-            return asString();
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) {
-                return true;
-            }
-            if (o == null || getClass() != o.getClass()) {
-                return false;
-            }
-            DefaultVersionConstraint that = (DefaultVersionConstraint) o;
-            return delegate.equals(that.delegate);
-        }
-
-        @Override
-        public int hashCode() {
-            return delegate.hashCode();
-        }
-    }
-}
diff --git a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
index 28953e96f8..5c5eb0cd0c 100644
--- a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
+++ b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
@@ -31,6 +31,7 @@
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.repository.metadata.Versioning;
 import org.apache.maven.metadata.v4.MetadataStaxReader;
 import org.eclipse.aether.RepositoryEvent;
@@ -226,9 +227,7 @@ private Versioning filterVersionsByRepositoryType(Versioning versioning, RemoteR
         Versioning filteredVersions = versioning.clone();
 
         for (String version : versioning.getVersions()) {
-            if (!remoteRepository
-                    .getPolicy(DefaultModelVersionParser.checkSnapshot(version))
-                    .isEnabled()) {
+            if (!remoteRepository.getPolicy(ArtifactUtils.isSnapshot(version)).isEnabled()) {
                 filteredVersions.removeVersion(version);
             }
         }
diff --git a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/VersionTest.java b/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/VersionTest.java
deleted file mode 100644
index 58404f5a28..0000000000
--- a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/VersionTest.java
+++ /dev/null
@@ -1,453 +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.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Locale;
-import java.util.UUID;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.maven.api.Version;
-import org.apache.maven.api.services.model.ModelVersionParser;
-import org.eclipse.aether.util.version.GenericVersionScheme;
-import org.junit.jupiter.api.Test;
-
-import static java.util.stream.Collectors.toList;
-import static org.junit.jupiter.api.Assertions.fail;
-
-/**
- */
-public class VersionTest extends AbstractVersionTest {
-    private final ModelVersionParser modelVersionParser = new DefaultModelVersionParser(new GenericVersionScheme());
-
-    protected Version newVersion(String version) {
-        return modelVersionParser.parseVersion(version);
-    }
-
-    @Test
-    void testEmptyVersion() {
-        assertOrder(X_EQ_Y, "0", "");
-    }
-
-    @Test
-    void testNumericOrdering() {
-        assertOrder(X_LT_Y, "2", "10");
-        assertOrder(X_LT_Y, "1.2", "1.10");
-        assertOrder(X_LT_Y, "1.0.2", "1.0.10");
-        assertOrder(X_LT_Y, "1.0.0.2", "1.0.0.10");
-        assertOrder(X_LT_Y, "1.0.20101206.111434.1", "1.0.20101206.111435.1");
-        assertOrder(X_LT_Y, "1.0.20101206.111434.2", "1.0.20101206.111434.10");
-    }
-
-    @Test
-    void testDelimiters() {
-        assertOrder(X_EQ_Y, "1.0", "1-0");
-        assertOrder(X_EQ_Y, "1.0", "1_0");
-        assertOrder(X_EQ_Y, "1.a", "1a");
-    }
-
-    @Test
-    void testLeadingZerosAreSemanticallyIrrelevant() {
-        assertOrder(X_EQ_Y, "1", "01");
-        assertOrder(X_EQ_Y, "1.2", "1.002");
-        assertOrder(X_EQ_Y, "1.2.3", "1.2.0003");
-        assertOrder(X_EQ_Y, "1.2.3.4", "1.2.3.00004");
-    }
-
-    @Test
-    void testTrailingZerosAreSemanticallyIrrelevant() {
-        assertOrder(X_EQ_Y, "1", "1.0.0.0.0.0.0.0.0.0.0.0.0.0");
-        assertOrder(X_EQ_Y, "1", "1-0-0-0-0-0-0-0-0-0-0-0-0-0");
-        assertOrder(X_EQ_Y, "1", "1.0-0.0-0.0-0.0-0.0-0.0-0.0");
-        assertOrder(X_EQ_Y, "1", "1.0000000000000");
-        assertOrder(X_EQ_Y, "1.0", "1.0.0");
-    }
-
-    @Test
-    void testTrailingZerosBeforeQualifierAreSemanticallyIrrelevant() {
-        assertOrder(X_EQ_Y, "1.0-ga", "1.0.0-ga");
-        assertOrder(X_EQ_Y, "1.0.ga", "1.0.0.ga");
-        assertOrder(X_EQ_Y, "1.0ga", "1.0.0ga");
-
-        assertOrder(X_EQ_Y, "1.0-alpha", "1.0.0-alpha");
-        assertOrder(X_EQ_Y, "1.0.alpha", "1.0.0.alpha");
-        assertOrder(X_EQ_Y, "1.0alpha", "1.0.0alpha");
-        assertOrder(X_EQ_Y, "1.0-alpha-snapshot", "1.0.0-alpha-snapshot");
-        assertOrder(X_EQ_Y, "1.0.alpha.snapshot", "1.0.0.alpha.snapshot");
-
-        assertOrder(X_EQ_Y, "1.x.0-alpha", "1.x.0.0-alpha");
-        assertOrder(X_EQ_Y, "1.x.0.alpha", "1.x.0.0.alpha");
-        assertOrder(X_EQ_Y, "1.x.0-alpha-snapshot", "1.x.0.0-alpha-snapshot");
-        assertOrder(X_EQ_Y, "1.x.0.alpha.snapshot", "1.x.0.0.alpha.snapshot");
-    }
-
-    @Test
-    void testTrailingDelimitersAreSemanticallyIrrelevant() {
-        assertOrder(X_EQ_Y, "1", "1.............");
-        assertOrder(X_EQ_Y, "1", "1-------------");
-        assertOrder(X_EQ_Y, "1.0", "1.............");
-        assertOrder(X_EQ_Y, "1.0", "1-------------");
-    }
-
-    @Test
-    void testInitialDelimiters() {
-        assertOrder(X_EQ_Y, "0.1", ".1");
-        assertOrder(X_EQ_Y, "0.0.1", "..1");
-        assertOrder(X_EQ_Y, "0.1", "-1");
-        assertOrder(X_EQ_Y, "0.0.1", "--1");
-    }
-
-    @Test
-    void testConsecutiveDelimiters() {
-        assertOrder(X_EQ_Y, "1.0.1", "1..1");
-        assertOrder(X_EQ_Y, "1.0.0.1", "1...1");
-        assertOrder(X_EQ_Y, "1.0.1", "1--1");
-        assertOrder(X_EQ_Y, "1.0.0.1", "1---1");
-    }
-
-    @Test
-    void testUnlimitedNumberOfVersionComponents() {
-        assertOrder(X_GT_Y, "1.0.1.2.3.4.5.6.7.8.9.0.1.2.10", "1.0.1.2.3.4.5.6.7.8.9.0.1.2.3");
-    }
-
-    @Test
-    void testUnlimitedNumberOfDigitsInNumericComponent() {
-        assertOrder(X_GT_Y, "1.1234567890123456789012345678901", "1.123456789012345678901234567891");
-    }
-
-    @Test
-    void testTransitionFromDigitToLetterAndViceVersaIsEqualivantToDelimiter() {
-        assertOrder(X_EQ_Y, "1alpha10", "1.alpha.10");
-        assertOrder(X_EQ_Y, "1alpha10", "1-alpha-10");
-
-        assertOrder(X_GT_Y, "1.alpha10", "1.alpha2");
-        assertOrder(X_GT_Y, "10alpha", "1alpha");
-    }
-
-    @Test
-    void testWellKnownQualifierOrdering() {
-        assertOrder(X_EQ_Y, "1-alpha1", "1-a1");
-        assertOrder(X_LT_Y, "1-alpha", "1-beta");
-        assertOrder(X_EQ_Y, "1-beta1", "1-b1");
-        assertOrder(X_LT_Y, "1-beta", "1-milestone");
-        assertOrder(X_EQ_Y, "1-milestone1", "1-m1");
-        assertOrder(X_LT_Y, "1-milestone", "1-rc");
-        assertOrder(X_EQ_Y, "1-rc", "1-cr");
-        assertOrder(X_LT_Y, "1-rc", "1-snapshot");
-        assertOrder(X_LT_Y, "1-snapshot", "1");
-        assertOrder(X_EQ_Y, "1", "1-ga");
-        assertOrder(X_EQ_Y, "1", "1.ga.0.ga");
-        assertOrder(X_EQ_Y, "1.0", "1-ga");
-        assertOrder(X_EQ_Y, "1", "1-ga.ga");
-        assertOrder(X_EQ_Y, "1", "1-ga-ga");
-        assertOrder(X_EQ_Y, "A", "A.ga.ga");
-        assertOrder(X_EQ_Y, "A", "A-ga-ga");
-        assertOrder(X_EQ_Y, "1", "1-final");
-        assertOrder(X_EQ_Y, "1", "1-release");
-        assertOrder(X_LT_Y, "1", "1-sp");
-
-        assertOrder(X_LT_Y, "A.rc.1", "A.ga.1");
-        assertOrder(X_GT_Y, "A.sp.1", "A.ga.1");
-        assertOrder(X_LT_Y, "A.rc.x", "A.ga.x");
-        assertOrder(X_GT_Y, "A.sp.x", "A.ga.x");
-    }
-
-    @Test
-    void testWellKnownQualifierVersusUnknownQualifierOrdering() {
-        assertOrder(X_GT_Y, "1-abc", "1-alpha");
-        assertOrder(X_GT_Y, "1-abc", "1-beta");
-        assertOrder(X_GT_Y, "1-abc", "1-milestone");
-        assertOrder(X_GT_Y, "1-abc", "1-rc");
-        assertOrder(X_GT_Y, "1-abc", "1-snapshot");
-        assertOrder(X_GT_Y, "1-abc", "1");
-        assertOrder(X_GT_Y, "1-abc", "1-sp");
-    }
-
-    @Test
-    void testWellKnownSingleCharQualifiersOnlyRecognizedIfImmediatelyFollowedByNumber() {
-        assertOrder(X_GT_Y, "1.0a", "1.0");
-        assertOrder(X_GT_Y, "1.0-a", "1.0");
-        assertOrder(X_GT_Y, "1.0.a", "1.0");
-        assertOrder(X_GT_Y, "1.0b", "1.0");
-        assertOrder(X_GT_Y, "1.0-b", "1.0");
-        assertOrder(X_GT_Y, "1.0.b", "1.0");
-        assertOrder(X_GT_Y, "1.0m", "1.0");
-        assertOrder(X_GT_Y, "1.0-m", "1.0");
-        assertOrder(X_GT_Y, "1.0.m", "1.0");
-
-        assertOrder(X_LT_Y, "1.0a1", "1.0");
-        assertOrder(X_LT_Y, "1.0-a1", "1.0");
-        assertOrder(X_LT_Y, "1.0.a1", "1.0");
-        assertOrder(X_LT_Y, "1.0b1", "1.0");
-        assertOrder(X_LT_Y, "1.0-b1", "1.0");
-        assertOrder(X_LT_Y, "1.0.b1", "1.0");
-        assertOrder(X_LT_Y, "1.0m1", "1.0");
-        assertOrder(X_LT_Y, "1.0-m1", "1.0");
-        assertOrder(X_LT_Y, "1.0.m1", "1.0");
-
-        assertOrder(X_GT_Y, "1.0a.1", "1.0");
-        assertOrder(X_GT_Y, "1.0a-1", "1.0");
-        assertOrder(X_GT_Y, "1.0b.1", "1.0");
-        assertOrder(X_GT_Y, "1.0b-1", "1.0");
-        assertOrder(X_GT_Y, "1.0m.1", "1.0");
-        assertOrder(X_GT_Y, "1.0m-1", "1.0");
-    }
-
-    @Test
-    void testUnknownQualifierOrdering() {
-        assertOrder(X_LT_Y, "1-abc", "1-abcd");
-        assertOrder(X_LT_Y, "1-abc", "1-bcd");
-        assertOrder(X_GT_Y, "1-abc", "1-aac");
-    }
-
-    @Test
-    void testCaseInsensitiveOrderingOfQualifiers() {
-        assertOrder(X_EQ_Y, "1.alpha", "1.ALPHA");
-        assertOrder(X_EQ_Y, "1.alpha", "1.Alpha");
-
-        assertOrder(X_EQ_Y, "1.beta", "1.BETA");
-        assertOrder(X_EQ_Y, "1.beta", "1.Beta");
-
-        assertOrder(X_EQ_Y, "1.milestone", "1.MILESTONE");
-        assertOrder(X_EQ_Y, "1.milestone", "1.Milestone");
-
-        assertOrder(X_EQ_Y, "1.rc", "1.RC");
-        assertOrder(X_EQ_Y, "1.rc", "1.Rc");
-        assertOrder(X_EQ_Y, "1.cr", "1.CR");
-        assertOrder(X_EQ_Y, "1.cr", "1.Cr");
-
-        assertOrder(X_EQ_Y, "1.snapshot", "1.SNAPSHOT");
-        assertOrder(X_EQ_Y, "1.snapshot", "1.Snapshot");
-
-        assertOrder(X_EQ_Y, "1.ga", "1.GA");
-        assertOrder(X_EQ_Y, "1.ga", "1.Ga");
-        assertOrder(X_EQ_Y, "1.final", "1.FINAL");
-        assertOrder(X_EQ_Y, "1.final", "1.Final");
-        assertOrder(X_EQ_Y, "1.release", "1.RELEASE");
-        assertOrder(X_EQ_Y, "1.release", "1.Release");
-
-        assertOrder(X_EQ_Y, "1.sp", "1.SP");
-        assertOrder(X_EQ_Y, "1.sp", "1.Sp");
-
-        assertOrder(X_EQ_Y, "1.unknown", "1.UNKNOWN");
-        assertOrder(X_EQ_Y, "1.unknown", "1.Unknown");
-    }
-
-    @Test
-    void testCaseInsensitiveOrderingOfQualifiersIsLocaleIndependent() {
-        Locale orig = Locale.getDefault();
-        try {
-            Locale[] locales = {Locale.ENGLISH, new Locale("tr")};
-            for (Locale locale : locales) {
-                Locale.setDefault(locale);
-                assertOrder(X_EQ_Y, "1-abcdefghijklmnopqrstuvwxyz", "1-ABCDEFGHIJKLMNOPQRSTUVWXYZ");
-            }
-        } finally {
-            Locale.setDefault(orig);
-        }
-    }
-
-    @Test
-    void testQualifierVersusNumberOrdering() {
-        assertOrder(X_LT_Y, "1-ga", "1-1");
-        assertOrder(X_LT_Y, "1.ga", "1.1");
-        assertOrder(X_EQ_Y, "1-ga", "1.0");
-        assertOrder(X_EQ_Y, "1.ga", "1.0");
-
-        assertOrder(X_LT_Y, "1-ga-1", "1-0-1");
-        assertOrder(X_LT_Y, "1.ga.1", "1.0.1");
-
-        assertOrder(X_GT_Y, "1.sp", "1.0");
-        assertOrder(X_LT_Y, "1.sp", "1.1");
-
-        assertOrder(X_LT_Y, "1-abc", "1-1");
-        assertOrder(X_LT_Y, "1.abc", "1.1");
-
-        assertOrder(X_LT_Y, "1-xyz", "1-1");
-        assertOrder(X_LT_Y, "1.xyz", "1.1");
-    }
-
-    @Test
-    void testVersionEvolution() {
-        assertSequence(
-                "0.9.9-SNAPSHOT",
-                "0.9.9",
-                "0.9.10-SNAPSHOT",
-                "0.9.10",
-                "1.0-alpha-2-SNAPSHOT",
-                "1.0-alpha-2",
-                "1.0-alpha-10-SNAPSHOT",
-                "1.0-alpha-10",
-                "1.0-beta-1-SNAPSHOT",
-                "1.0-beta-1",
-                "1.0-rc-1-SNAPSHOT",
-                "1.0-rc-1",
-                "1.0-SNAPSHOT",
-                "1.0",
-                "1.0-sp-1-SNAPSHOT",
-                "1.0-sp-1",
-                "1.0.1-alpha-1-SNAPSHOT",
-                "1.0.1-alpha-1",
-                "1.0.1-beta-1-SNAPSHOT",
-                "1.0.1-beta-1",
-                "1.0.1-rc-1-SNAPSHOT",
-                "1.0.1-rc-1",
-                "1.0.1-SNAPSHOT",
-                "1.0.1",
-                "1.1-SNAPSHOT",
-                "1.1");
-
-        assertSequence("1.0-alpha", "1.0", "1.0-1");
-        assertSequence("1.0.alpha", "1.0", "1.0-1");
-        assertSequence("1.0-alpha", "1.0", "1.0.1");
-        assertSequence("1.0.alpha", "1.0", "1.0.1");
-    }
-
-    @Test
-    void testMinimumSegment() {
-        assertOrder(X_LT_Y, "1.min", "1.0-alpha-1");
-        assertOrder(X_LT_Y, "1.min", "1.0-SNAPSHOT");
-        assertOrder(X_LT_Y, "1.min", "1.0");
-        assertOrder(X_LT_Y, "1.min", "1.9999999999");
-
-        assertOrder(X_EQ_Y, "1.min", "1.MIN");
-
-        assertOrder(X_GT_Y, "1.min", "0.99999");
-        assertOrder(X_GT_Y, "1.min", "0.max");
-    }
-
-    @Test
-    void testMaximumSegment() {
-        assertOrder(X_GT_Y, "1.max", "1.0-alpha-1");
-        assertOrder(X_GT_Y, "1.max", "1.0-SNAPSHOT");
-        assertOrder(X_GT_Y, "1.max", "1.0");
-        assertOrder(X_GT_Y, "1.max", "1.9999999999");
-
-        assertOrder(X_EQ_Y, "1.max", "1.MAX");
-
-        assertOrder(X_LT_Y, "1.max", "2.0-alpha-1");
-        assertOrder(X_LT_Y, "1.max", "2.min");
-    }
-
-    /**
-     * UT for <a href="https://issues.apache.org/jira/browse/MRESOLVER-314">MRESOLVER-314</a>.
-     *
-     * Generates random UUID string based versions and tries to sort them. While this test is not as reliable
-     * as {@link #testCompareUuidVersionStringStream()}, it covers broader range and in case it fails it records
-     * the failed array, so we can investigate more.
-     */
-    @Test
-    void testCompareUuidRandom() {
-        for (int j = 0; j < 32; j++) {
-            ArrayList<Version> versions = new ArrayList<>();
-            for (int i = 0; i < 64; i++) {
-                versions.add(newVersion(UUID.randomUUID().toString()));
-            }
-            try {
-                Collections.sort(versions);
-            } catch (Exception e) {
-                e.printStackTrace(System.err);
-                System.err.println("The UUIDs used");
-                System.err.println(versions.stream().map(Version::toString).collect(Collectors.joining("\n")));
-                fail("unexpected exception");
-            }
-        }
-    }
-
-    /**
-     * UT for <a href="https://issues.apache.org/jira/browse/MRESOLVER-314">MRESOLVER-314</a>.
-     *
-     * Works on known set that failed before fix, provided by {@link #uuidVersionStringStream()}.
-     */
-    @Test
-    void testCompareUuidVersionStringStream() {
-        // this operation below fails with IAEx if comparison is unstable
-        uuidVersionStringStream().map(this::newVersion).sorted().collect(toList());
-    }
-
-    private Stream<String> uuidVersionStringStream() {
-        return Stream.of(
-                "e3f6b227-e09d-4461-a030-b8c1755834f7",
-                "dfdf5e15-b047-4fee-94e5-3ddf6fe90a0c",
-                "bcc15412-6817-4b64-acef-169d048626f6",
-                "76093f07-ab1c-4cdd-ae92-9bb500ceed84",
-                "7ca8dc9f-4e73-459b-8f30-06aa7972f486",
-                "93fee46b-2715-4abd-877a-4197eb8601aa",
-                "0379da36-84ee-4d06-9388-83d3aa6536b5",
-                "4bb2c7a8-cf68-4ca5-8024-72dc93506da9",
-                "9dcc4cd1-34d2-4499-8dab-3ef8bca9680d",
-                "ea53d552-83ab-4f7d-852d-98951201083d",
-                "0bc420d2-4089-468b-bc54-0a4e2835feed",
-                "318d2433-fe40-4f28-9f3a-4e3d66d9b5fb",
-                "447b456c-81a4-4f24-9d2e-e5091c39cd19",
-                "85741f6e-26fe-40d0-a73a-283315409ab2",
-                "3165b9b2-9f8e-4117-ac70-87056eb45745",
-                "9d534bf3-a3b0-4a19-9809-670934c10752",
-                "86d78bba-d84e-4349-aea6-850721e78188",
-                "06392b8c-e26c-4a83-8ec2-085415bc513d",
-                "1fb13754-90be-42cb-bc7f-9b9211494e92",
-                "3018965c-3330-402a-8075-caa7613ec4fa",
-                "7ecc912b-4938-4411-895e-8ca7cf22ce02",
-                "6580ada2-4764-45a2-9789-98217d7cf5b6",
-                "be9d0de4-4ba7-4fdd-8f76-cb579168c549",
-                "7a8236d6-6bec-4176-b6a1-f869c02183c3",
-                "089f4195-881c-4f9e-8bc1-124531dee977",
-                "46ffda62-768a-4864-9581-cc75eafe1a67",
-                "1d6226f6-dacc-42a9-bd88-7aab1f59df74",
-                "0948ed55-c25e-4319-9801-5f817bac09b5",
-                "2fd52f5e-b856-47ad-9e58-45c1d0ba437b",
-                "6c325bd0-ac6b-4391-a5c5-caa160972fa2",
-                "d213f6be-f56b-42d2-abda-4300742e0add",
-                "efaae115-cc21-4b2e-a150-fb4e0d807736",
-                "30f872e8-9cb5-4b22-b65c-6819ca7a14ba",
-                "d8e5fb54-6e90-4f74-adb3-451abfbe76a8",
-                "b47d62b8-9256-47a1-8e21-21ba9639c212",
-                "b25da555-e1f7-4bc5-92fe-4c895d9c70d8",
-                "088f0de7-5973-4c10-a7ff-9f3cd7718572",
-                "b161de76-e5d5-4224-883b-a749b147d63d",
-                "19b7de96-09fa-4276-843d-c0fbdaf07767",
-                "e0503f73-33fd-4f9c-812f-8cae3a128c28",
-                "b8c57488-a42c-43ed-bfb9-acd112d6b68f",
-                "25997299-0825-4c9b-b0ed-75f935c63fd7",
-                "2b2e2fcd-3988-45af-855b-7646c0cdbfb5",
-                "4e6e16b9-2ae4-4593-b907-1febaf3988dc",
-                "ac8bd519-7fd4-4b85-8154-9dbb87f6cd4f",
-                "61473b39-b620-468b-abcf-16fe6adfd5cb",
-                "18e7a548-3f0b-492b-bc19-dce3eec736fa",
-                "c4d82839-3c46-4eff-b10c-ec0b5bcc600b",
-                "48f6e90f-924b-4859-9763-3ffe661f5af6",
-                "48852d79-ba23-475e-b675-a413b989a2a7",
-                "f7ee0915-ff00-4404-9e9a-6e753d5ff767",
-                "d6462359-a4e2-45ab-aedc-3b1849b0e6ca",
-                "e66228de-d1ed-4973-a108-c181d5059fdb",
-                "d49672a7-177d-475d-aad0-aab0ff4a11b7",
-                "bfa9337a-0489-4cba-b2db-e0d9d2424e4f",
-                "dc9bbe34-3c54-4c0f-a3cd-00e96604ae23",
-                "a8119cf1-9694-4b24-923a-3fc729b5f809",
-                "5d29cf45-3b9c-4697-85b8-86c81c6ec0c9",
-                "e3dcb4c2-a867-40f7-a3b1-fb1058a041e5",
-                "ae240754-2ea2-409a-a92c-648fc7a7b70b",
-                "8c187383-d59b-4e49-8dfd-98aa5f01925a",
-                "9b100ee6-71ed-4746-92c2-b5fb02af7ebd",
-                "f95e94f7-2443-4b2f-a10d-059d8d224dd9",
-                "b558af80-78bc-43c7-b916-d635a23cc4b5");
-    }
-}
diff --git a/compat/maven-settings-builder/pom.xml b/compat/maven-settings-builder/pom.xml
index ff587fd937..4287289de6 100644
--- a/compat/maven-settings-builder/pom.xml
+++ b/compat/maven-settings-builder/pom.xml
@@ -52,7 +52,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-impl</artifactId>
+      <artifactId>maven-support</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
diff --git a/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java b/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
index c20b4241b2..6df108748c 100644
--- a/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
+++ b/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
@@ -36,7 +36,7 @@
 import org.apache.maven.settings.building.SettingsProblemCollector;
 
 /**
- * @deprecated since 4.0.0, use {@link org.apache.maven.impl.DefaultSettingsValidator} instead
+ * @deprecated since 4.0.0, use {@code org.apache.maven.impl.DefaultSettingsValidator} instead
  */
 @Named
 @Singleton
diff --git a/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java b/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java
index 62f18cc7a3..dd93a3b6f8 100644
--- a/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java
+++ b/compat/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java
@@ -18,14 +18,13 @@
  */
 package org.apache.maven.settings.validation;
 
-import org.apache.maven.impl.DefaultSettingsValidator;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.building.SettingsProblemCollector;
 
 /**
  * Validate a model settings
  *
- * @deprecated since 4.0.0, use {@link DefaultSettingsValidator} instead
+ * @deprecated since 4.0.0, use {@code org.apache.maven.impl.DefaultSettingsValidator} instead
  */
 @Deprecated(since = "4.0.0")
 public interface SettingsValidator {
diff --git a/compat/maven-settings/src/main/java/org/apache/maven/settings/io/xpp3/SettingsXpp3Writer.java b/compat/maven-settings/src/main/java/org/apache/maven/settings/io/xpp3/SettingsXpp3Writer.java
index 890c7ecb72..ec189bc567 100644
--- a/compat/maven-settings/src/main/java/org/apache/maven/settings/io/xpp3/SettingsXpp3Writer.java
+++ b/compat/maven-settings/src/main/java/org/apache/maven/settings/io/xpp3/SettingsXpp3Writer.java
@@ -60,7 +60,7 @@ public void write(Writer writer, Settings settings) throws IOException {
         try {
             delegate.write(writer, settings.getDelegate());
         } catch (XMLStreamException e) {
-            throw new IOException(e);
+            throw new IOException("Error writing settings to " + writer, e);
         }
     }
 
diff --git a/compat/maven-toolchain-builder/pom.xml b/compat/maven-toolchain-builder/pom.xml
index 00c2710036..775fdcb0e6 100644
--- a/compat/maven-toolchain-builder/pom.xml
+++ b/compat/maven-toolchain-builder/pom.xml
@@ -38,7 +38,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-impl</artifactId>
+      <artifactId>maven-support</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -77,6 +77,11 @@ under the License.
       <artifactId>mockito-junit-jupiter</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/impl/maven-impl/pom.xml b/impl/maven-impl/pom.xml
index b71ab9f3fd..791ddcb73a 100644
--- a/impl/maven-impl/pom.xml
+++ b/impl/maven-impl/pom.xml
@@ -76,6 +76,10 @@ under the License.
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-di</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-support</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.apache.maven.resolver</groupId>
       <artifactId>maven-resolver-api</artifactId>
@@ -170,129 +174,4 @@ under the License.
     </dependency>
   </dependencies>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.modello</groupId>
-        <artifactId>modello-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>velocity-settings</id>
-            <goals>
-              <goal>velocity</goal>
-            </goals>
-            <phase>generate-sources</phase>
-            <configuration>
-              <version>2.0.0</version>
-              <basedir>${project.basedir}/../../api/maven-api-settings</basedir>
-              <velocityBasedir>${project.basedir}/../../src/mdo</velocityBasedir>
-              <models>
-                <model>src/main/mdo/settings.mdo</model>
-              </models>
-              <templates>
-                <template>merger.vm</template>
-                <template>transformer.vm</template>
-                <template>reader-stax.vm</template>
-                <template>writer-stax.vm</template>
-              </templates>
-              <params>
-                <param>forcedIOModelVersion=1.2.0</param>
-                <param>packageModelV3=org.apache.maven.settings</param>
-                <param>packageModelV4=org.apache.maven.api.settings</param>
-                <param>packageToolV4=org.apache.maven.settings.v4</param>
-                <param>locationTracking=true</param>
-                <param>generateLocationClasses=true</param>
-              </params>
-            </configuration>
-          </execution>
-          <execution>
-            <id>velocity-toolchains</id>
-            <goals>
-              <goal>velocity</goal>
-            </goals>
-            <phase>generate-sources</phase>
-            <configuration>
-              <version>1.2.0</version>
-              <basedir>${project.basedir}/../../api/maven-api-toolchain</basedir>
-              <velocityBasedir>${project.basedir}/../../src/mdo</velocityBasedir>
-              <models>
-                <model>src/main/mdo/toolchains.mdo</model>
-              </models>
-              <templates>
-                <template>merger.vm</template>
-                <template>transformer.vm</template>
-                <template>reader-stax.vm</template>
-                <template>writer-stax.vm</template>
-              </templates>
-              <params>
-                <param>packageModelV3=org.apache.maven.toolchain.model</param>
-                <param>packageModelV4=org.apache.maven.api.toolchain</param>
-                <param>packageToolV4=org.apache.maven.toolchain.v4</param>
-                <param>locationTracking=true</param>
-                <param>generateLocationClasses=true</param>
-              </params>
-            </configuration>
-          </execution>
-          <execution>
-            <id>velocity-metadata</id>
-            <goals>
-              <goal>velocity</goal>
-            </goals>
-            <phase>generate-sources</phase>
-            <configuration>
-              <version>1.1.0</version>
-              <basedir>${project.basedir}/../../api/maven-api-metadata</basedir>
-              <velocityBasedir>${project.basedir}/../../src/mdo</velocityBasedir>
-              <models>
-                <model>src/main/mdo/metadata.mdo</model>
-              </models>
-              <templates>
-                <template>reader-stax.vm</template>
-                <template>writer-stax.vm</template>
-              </templates>
-              <params>
-                <param>packageModelV4=org.apache.maven.api.metadata</param>
-                <param>packageToolV4=org.apache.maven.metadata.v4</param>
-              </params>
-            </configuration>
-          </execution>
-          <execution>
-            <id>model-v4</id>
-            <goals>
-              <goal>velocity</goal>
-            </goals>
-            <phase>generate-sources</phase>
-            <configuration>
-              <version>4.1.0</version>
-              <basedir>${project.basedir}/../../api/maven-api-model</basedir>
-              <velocityBasedir>${project.basedir}/../../src/mdo</velocityBasedir>
-              <models>
-                <model>src/main/mdo/maven.mdo</model>
-              </models>
-              <templates>
-                <template>merger.vm</template>
-                <template>transformer.vm</template>
-                <template>reader-stax.vm</template>
-                <template>writer-stax.vm</template>
-                <template>model-version.vm</template>
-              </templates>
-              <params>
-                <param>forcedIOModelVersion=4.0.0</param>
-                <param>packageModelV3=org.apache.maven.model</param>
-                <param>packageModelV4=org.apache.maven.api.model</param>
-                <param>packageToolV4=org.apache.maven.model.v4</param>
-                <param>isMavenModel=true</param>
-                <param>minimalVersion=4.0.0</param>
-              </params>
-            </configuration>
-          </execution>
-          <execution>
-            <id>modello-site-docs</id>
-            <phase>none</phase>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
diff --git a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/AbstractVersionTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/AbstractVersionTest.java
similarity index 98%
rename from compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/AbstractVersionTest.java
rename to impl/maven-impl/src/test/java/org/apache/maven/impl/AbstractVersionTest.java
index a7a568f7d1..f18074ec60 100644
--- a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/AbstractVersionTest.java
+++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/AbstractVersionTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.maven.repository.internal;
+package org.apache.maven.impl;
 
 import org.apache.maven.api.Version;
 
diff --git a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/ModelVersionParserTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/ModelVersionParserTest.java
similarity index 94%
rename from compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/ModelVersionParserTest.java
rename to impl/maven-impl/src/test/java/org/apache/maven/impl/ModelVersionParserTest.java
index 86a9e0ba72..0f17cb6fd7 100644
--- a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/ModelVersionParserTest.java
+++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/ModelVersionParserTest.java
@@ -16,11 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.maven.repository.internal;
+package org.apache.maven.impl;
 
 import org.apache.maven.api.VersionConstraint;
 import org.apache.maven.api.services.VersionParserException;
-import org.apache.maven.api.services.model.ModelVersionParser;
 import org.eclipse.aether.util.version.GenericVersionScheme;
 import org.junit.jupiter.api.Test;
 
@@ -33,7 +32,7 @@
  */
 public class ModelVersionParserTest {
 
-    private final ModelVersionParser versionParser = new DefaultModelVersionParser(new GenericVersionScheme());
+    private final DefaultModelVersionParser versionParser = new DefaultModelVersionParser(new GenericVersionScheme());
 
     private VersionParserException parseInvalid(String constraint) {
         try {
diff --git a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/VersionRangeTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/VersionRangeTest.java
similarity index 99%
rename from compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/VersionRangeTest.java
rename to impl/maven-impl/src/test/java/org/apache/maven/impl/VersionRangeTest.java
index bab5e38f2e..9e1b74ff3e 100644
--- a/compat/maven-resolver-provider/src/test/java/org/apache/maven/repository/internal/VersionRangeTest.java
+++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/VersionRangeTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.maven.repository.internal;
+package org.apache.maven.impl;
 
 import org.apache.maven.api.Version;
 import org.apache.maven.api.VersionRange;
diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/VersionTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/VersionTest.java
new file mode 100644
index 0000000000..ec0864a852
--- /dev/null
+++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/VersionTest.java
@@ -0,0 +1,454 @@
+/*
+ * 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.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Locale;
+import java.util.UUID;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.apache.maven.api.Version;
+import org.apache.maven.api.services.model.ModelVersionParser;
+import org.eclipse.aether.util.version.GenericVersionScheme;
+import org.junit.jupiter.api.Test;
+
+import static java.util.stream.Collectors.toList;
+import static org.junit.jupiter.api.Assertions.fail;
+
+/**
+ */
+public class VersionTest extends AbstractVersionTest {
+    private final ModelVersionParser modelVersionParser = new DefaultModelVersionParser(new GenericVersionScheme());
+
+    protected Version newVersion(String version) {
+        return modelVersionParser.parseVersion(version);
+    }
+
+    @Test
+    void testEmptyVersion() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "0", "");
+    }
+
+    @Test
+    void testNumericOrdering() {
+        assertOrder(AbstractVersionTest.X_LT_Y, "2", "10");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.2", "1.10");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0.2", "1.0.10");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0.0.2", "1.0.0.10");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0.20101206.111434.1", "1.0.20101206.111435.1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0.20101206.111434.2", "1.0.20101206.111434.10");
+    }
+
+    @Test
+    void testDelimiters() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0", "1-0");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0", "1_0");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.a", "1a");
+    }
+
+    @Test
+    void testLeadingZerosAreSemanticallyIrrelevant() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "01");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.2", "1.002");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.2.3", "1.2.0003");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.2.3.4", "1.2.3.00004");
+    }
+
+    @Test
+    void testTrailingZerosAreSemanticallyIrrelevant() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1.0.0.0.0.0.0.0.0.0.0.0.0.0");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1-0-0-0-0-0-0-0-0-0-0-0-0-0");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1.0-0.0-0.0-0.0-0.0-0.0-0.0");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1.0000000000000");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0", "1.0.0");
+    }
+
+    @Test
+    void testTrailingZerosBeforeQualifierAreSemanticallyIrrelevant() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0-ga", "1.0.0-ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0.ga", "1.0.0.ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0ga", "1.0.0ga");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0-alpha", "1.0.0-alpha");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0.alpha", "1.0.0.alpha");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0alpha", "1.0.0alpha");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0-alpha-snapshot", "1.0.0-alpha-snapshot");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0.alpha.snapshot", "1.0.0.alpha.snapshot");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.x.0-alpha", "1.x.0.0-alpha");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.x.0.alpha", "1.x.0.0.alpha");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.x.0-alpha-snapshot", "1.x.0.0-alpha-snapshot");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.x.0.alpha.snapshot", "1.x.0.0.alpha.snapshot");
+    }
+
+    @Test
+    void testTrailingDelimitersAreSemanticallyIrrelevant() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1.............");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1-------------");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0", "1.............");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0", "1-------------");
+    }
+
+    @Test
+    void testInitialDelimiters() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "0.1", ".1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "0.0.1", "..1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "0.1", "-1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "0.0.1", "--1");
+    }
+
+    @Test
+    void testConsecutiveDelimiters() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0.1", "1..1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0.0.1", "1...1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0.1", "1--1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0.0.1", "1---1");
+    }
+
+    @Test
+    void testUnlimitedNumberOfVersionComponents() {
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0.1.2.3.4.5.6.7.8.9.0.1.2.10", "1.0.1.2.3.4.5.6.7.8.9.0.1.2.3");
+    }
+
+    @Test
+    void testUnlimitedNumberOfDigitsInNumericComponent() {
+        assertOrder(
+                AbstractVersionTest.X_GT_Y, "1.1234567890123456789012345678901", "1.123456789012345678901234567891");
+    }
+
+    @Test
+    void testTransitionFromDigitToLetterAndViceVersaIsEqualivantToDelimiter() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1alpha10", "1.alpha.10");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1alpha10", "1-alpha-10");
+
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.alpha10", "1.alpha2");
+        assertOrder(AbstractVersionTest.X_GT_Y, "10alpha", "1alpha");
+    }
+
+    @Test
+    void testWellKnownQualifierOrdering() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1-alpha1", "1-a1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-alpha", "1-beta");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1-beta1", "1-b1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-beta", "1-milestone");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1-milestone1", "1-m1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-milestone", "1-rc");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1-rc", "1-cr");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-rc", "1-snapshot");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-snapshot", "1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1-ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1.ga.0.ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.0", "1-ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1-ga.ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1-ga-ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "A", "A.ga.ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "A", "A-ga-ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1-final");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1", "1-release");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1", "1-sp");
+
+        assertOrder(AbstractVersionTest.X_LT_Y, "A.rc.1", "A.ga.1");
+        assertOrder(AbstractVersionTest.X_GT_Y, "A.sp.1", "A.ga.1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "A.rc.x", "A.ga.x");
+        assertOrder(AbstractVersionTest.X_GT_Y, "A.sp.x", "A.ga.x");
+    }
+
+    @Test
+    void testWellKnownQualifierVersusUnknownQualifierOrdering() {
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1-alpha");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1-beta");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1-milestone");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1-rc");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1-snapshot");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1-sp");
+    }
+
+    @Test
+    void testWellKnownSingleCharQualifiersOnlyRecognizedIfImmediatelyFollowedByNumber() {
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0a", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0-a", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0.a", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0b", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0-b", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0.b", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0m", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0-m", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0.m", "1.0");
+
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0a1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0-a1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0.a1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0b1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0-b1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0.b1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0m1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0-m1", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.0.m1", "1.0");
+
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0a.1", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0a-1", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0b.1", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0b-1", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0m.1", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.0m-1", "1.0");
+    }
+
+    @Test
+    void testUnknownQualifierOrdering() {
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-abc", "1-abcd");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-abc", "1-bcd");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1-abc", "1-aac");
+    }
+
+    @Test
+    void testCaseInsensitiveOrderingOfQualifiers() {
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.alpha", "1.ALPHA");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.alpha", "1.Alpha");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.beta", "1.BETA");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.beta", "1.Beta");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.milestone", "1.MILESTONE");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.milestone", "1.Milestone");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.rc", "1.RC");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.rc", "1.Rc");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.cr", "1.CR");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.cr", "1.Cr");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.snapshot", "1.SNAPSHOT");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.snapshot", "1.Snapshot");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.ga", "1.GA");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.ga", "1.Ga");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.final", "1.FINAL");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.final", "1.Final");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.release", "1.RELEASE");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.release", "1.Release");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.sp", "1.SP");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.sp", "1.Sp");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.unknown", "1.UNKNOWN");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.unknown", "1.Unknown");
+    }
+
+    @Test
+    void testCaseInsensitiveOrderingOfQualifiersIsLocaleIndependent() {
+        Locale orig = Locale.getDefault();
+        try {
+            Locale[] locales = {Locale.ENGLISH, new Locale("tr")};
+            for (Locale locale : locales) {
+                Locale.setDefault(locale);
+                assertOrder(AbstractVersionTest.X_EQ_Y, "1-abcdefghijklmnopqrstuvwxyz", "1-ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+            }
+        } finally {
+            Locale.setDefault(orig);
+        }
+    }
+
+    @Test
+    void testQualifierVersusNumberOrdering() {
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-ga", "1-1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.ga", "1.1");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1-ga", "1.0");
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.ga", "1.0");
+
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-ga-1", "1-0-1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.ga.1", "1.0.1");
+
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.sp", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.sp", "1.1");
+
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-abc", "1-1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.abc", "1.1");
+
+        assertOrder(AbstractVersionTest.X_LT_Y, "1-xyz", "1-1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.xyz", "1.1");
+    }
+
+    @Test
+    void testVersionEvolution() {
+        assertSequence(
+                "0.9.9-SNAPSHOT",
+                "0.9.9",
+                "0.9.10-SNAPSHOT",
+                "0.9.10",
+                "1.0-alpha-2-SNAPSHOT",
+                "1.0-alpha-2",
+                "1.0-alpha-10-SNAPSHOT",
+                "1.0-alpha-10",
+                "1.0-beta-1-SNAPSHOT",
+                "1.0-beta-1",
+                "1.0-rc-1-SNAPSHOT",
+                "1.0-rc-1",
+                "1.0-SNAPSHOT",
+                "1.0",
+                "1.0-sp-1-SNAPSHOT",
+                "1.0-sp-1",
+                "1.0.1-alpha-1-SNAPSHOT",
+                "1.0.1-alpha-1",
+                "1.0.1-beta-1-SNAPSHOT",
+                "1.0.1-beta-1",
+                "1.0.1-rc-1-SNAPSHOT",
+                "1.0.1-rc-1",
+                "1.0.1-SNAPSHOT",
+                "1.0.1",
+                "1.1-SNAPSHOT",
+                "1.1");
+
+        assertSequence("1.0-alpha", "1.0", "1.0-1");
+        assertSequence("1.0.alpha", "1.0", "1.0-1");
+        assertSequence("1.0-alpha", "1.0", "1.0.1");
+        assertSequence("1.0.alpha", "1.0", "1.0.1");
+    }
+
+    @Test
+    void testMinimumSegment() {
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.min", "1.0-alpha-1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.min", "1.0-SNAPSHOT");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.min", "1.0");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.min", "1.9999999999");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.min", "1.MIN");
+
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.min", "0.99999");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.min", "0.max");
+    }
+
+    @Test
+    void testMaximumSegment() {
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.max", "1.0-alpha-1");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.max", "1.0-SNAPSHOT");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.max", "1.0");
+        assertOrder(AbstractVersionTest.X_GT_Y, "1.max", "1.9999999999");
+
+        assertOrder(AbstractVersionTest.X_EQ_Y, "1.max", "1.MAX");
+
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.max", "2.0-alpha-1");
+        assertOrder(AbstractVersionTest.X_LT_Y, "1.max", "2.min");
+    }
+
+    /**
+     * UT for <a href="https://issues.apache.org/jira/browse/MRESOLVER-314">MRESOLVER-314</a>.
+     *
+     * Generates random UUID string based versions and tries to sort them. While this test is not as reliable
+     * as {@link #testCompareUuidVersionStringStream()}, it covers broader range and in case it fails it records
+     * the failed array, so we can investigate more.
+     */
+    @Test
+    void testCompareUuidRandom() {
+        for (int j = 0; j < 32; j++) {
+            ArrayList<Version> versions = new ArrayList<>();
+            for (int i = 0; i < 64; i++) {
+                versions.add(newVersion(UUID.randomUUID().toString()));
+            }
+            try {
+                Collections.sort(versions);
+            } catch (Exception e) {
+                e.printStackTrace(System.err);
+                System.err.println("The UUIDs used");
+                System.err.println(versions.stream().map(Version::toString).collect(Collectors.joining("\n")));
+                fail("unexpected exception");
+            }
+        }
+    }
+
+    /**
+     * UT for <a href="https://issues.apache.org/jira/browse/MRESOLVER-314">MRESOLVER-314</a>.
+     *
+     * Works on known set that failed before fix, provided by {@link #uuidVersionStringStream()}.
+     */
+    @Test
+    void testCompareUuidVersionStringStream() {
+        // this operation below fails with IAEx if comparison is unstable
+        uuidVersionStringStream().map(this::newVersion).sorted().collect(toList());
+    }
+
+    private Stream<String> uuidVersionStringStream() {
+        return Stream.of(
+                "e3f6b227-e09d-4461-a030-b8c1755834f7",
+                "dfdf5e15-b047-4fee-94e5-3ddf6fe90a0c",
+                "bcc15412-6817-4b64-acef-169d048626f6",
+                "76093f07-ab1c-4cdd-ae92-9bb500ceed84",
+                "7ca8dc9f-4e73-459b-8f30-06aa7972f486",
+                "93fee46b-2715-4abd-877a-4197eb8601aa",
+                "0379da36-84ee-4d06-9388-83d3aa6536b5",
+                "4bb2c7a8-cf68-4ca5-8024-72dc93506da9",
+                "9dcc4cd1-34d2-4499-8dab-3ef8bca9680d",
+                "ea53d552-83ab-4f7d-852d-98951201083d",
+                "0bc420d2-4089-468b-bc54-0a4e2835feed",
+                "318d2433-fe40-4f28-9f3a-4e3d66d9b5fb",
+                "447b456c-81a4-4f24-9d2e-e5091c39cd19",
+                "85741f6e-26fe-40d0-a73a-283315409ab2",
+                "3165b9b2-9f8e-4117-ac70-87056eb45745",
+                "9d534bf3-a3b0-4a19-9809-670934c10752",
+                "86d78bba-d84e-4349-aea6-850721e78188",
+                "06392b8c-e26c-4a83-8ec2-085415bc513d",
+                "1fb13754-90be-42cb-bc7f-9b9211494e92",
+                "3018965c-3330-402a-8075-caa7613ec4fa",
+                "7ecc912b-4938-4411-895e-8ca7cf22ce02",
+                "6580ada2-4764-45a2-9789-98217d7cf5b6",
+                "be9d0de4-4ba7-4fdd-8f76-cb579168c549",
+                "7a8236d6-6bec-4176-b6a1-f869c02183c3",
+                "089f4195-881c-4f9e-8bc1-124531dee977",
+                "46ffda62-768a-4864-9581-cc75eafe1a67",
+                "1d6226f6-dacc-42a9-bd88-7aab1f59df74",
+                "0948ed55-c25e-4319-9801-5f817bac09b5",
+                "2fd52f5e-b856-47ad-9e58-45c1d0ba437b",
+                "6c325bd0-ac6b-4391-a5c5-caa160972fa2",
+                "d213f6be-f56b-42d2-abda-4300742e0add",
+                "efaae115-cc21-4b2e-a150-fb4e0d807736",
+                "30f872e8-9cb5-4b22-b65c-6819ca7a14ba",
+                "d8e5fb54-6e90-4f74-adb3-451abfbe76a8",
+                "b47d62b8-9256-47a1-8e21-21ba9639c212",
+                "b25da555-e1f7-4bc5-92fe-4c895d9c70d8",
+                "088f0de7-5973-4c10-a7ff-9f3cd7718572",
+                "b161de76-e5d5-4224-883b-a749b147d63d",
+                "19b7de96-09fa-4276-843d-c0fbdaf07767",
+                "e0503f73-33fd-4f9c-812f-8cae3a128c28",
+                "b8c57488-a42c-43ed-bfb9-acd112d6b68f",
+                "25997299-0825-4c9b-b0ed-75f935c63fd7",
+                "2b2e2fcd-3988-45af-855b-7646c0cdbfb5",
+                "4e6e16b9-2ae4-4593-b907-1febaf3988dc",
+                "ac8bd519-7fd4-4b85-8154-9dbb87f6cd4f",
+                "61473b39-b620-468b-abcf-16fe6adfd5cb",
+                "18e7a548-3f0b-492b-bc19-dce3eec736fa",
+                "c4d82839-3c46-4eff-b10c-ec0b5bcc600b",
+                "48f6e90f-924b-4859-9763-3ffe661f5af6",
+                "48852d79-ba23-475e-b675-a413b989a2a7",
+                "f7ee0915-ff00-4404-9e9a-6e753d5ff767",
+                "d6462359-a4e2-45ab-aedc-3b1849b0e6ca",
+                "e66228de-d1ed-4973-a108-c181d5059fdb",
+                "d49672a7-177d-475d-aad0-aab0ff4a11b7",
+                "bfa9337a-0489-4cba-b2db-e0d9d2424e4f",
+                "dc9bbe34-3c54-4c0f-a3cd-00e96604ae23",
+                "a8119cf1-9694-4b24-923a-3fc729b5f809",
+                "5d29cf45-3b9c-4697-85b8-86c81c6ec0c9",
+                "e3dcb4c2-a867-40f7-a3b1-fb1058a041e5",
+                "ae240754-2ea2-409a-a92c-648fc7a7b70b",
+                "8c187383-d59b-4e49-8dfd-98aa5f01925a",
+                "9b100ee6-71ed-4746-92c2-b5fb02af7ebd",
+                "f95e94f7-2443-4b2f-a10d-059d8d224dd9",
+                "b558af80-78bc-43c7-b916-d635a23cc4b5");
+    }
+}
diff --git a/impl/maven-impl/pom.xml b/impl/maven-support/pom.xml
similarity index 57%
copy from impl/maven-impl/pom.xml
copy to impl/maven-support/pom.xml
index b71ab9f3fd..7be29db755 100644
--- a/impl/maven-impl/pom.xml
+++ b/impl/maven-support/pom.xml
@@ -1,22 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
@@ -26,44 +8,9 @@ under the License.
     <version>4.0.0-rc-3-SNAPSHOT</version>
   </parent>
 
-  <artifactId>maven-impl</artifactId>
-  <name>Maven 4 API Implementation</name>
-  <description>Provides the implementation classes for the Maven API</description>
-
-  <properties>
-    <!-- in: DefaultModelValidator, DefaultModelBuilder -->
-    <checkstyle.violation.ignore>FileLength</checkstyle.violation.ignore>
-  </properties>
+  <artifactId>maven-support</artifactId>
 
   <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-api-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-api-spi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-api-metadata</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-api-xml</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-api-toolchain</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-api-di</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-api-annotations</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-api-model</artifactId>
@@ -74,100 +21,16 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-di</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-spi</artifactId>
+      <artifactId>maven-api-toolchain</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-util</artifactId>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-api-metadata</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-xml</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.fasterxml.woodstox</groupId>
-      <artifactId>woodstox-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.woodstox</groupId>
-      <artifactId>stax2-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-sec-dispatcher</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-junit-jupiter</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.assertj</groupId>
-      <artifactId>assertj-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-named-locks</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-connector-basic</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-transport-file</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-transport-apache</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.google.jimfs</groupId>
-      <artifactId>jimfs</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
   <build>
diff --git a/impl/pom.xml b/impl/pom.xml
index 200e9b3c00..885054b261 100644
--- a/impl/pom.xml
+++ b/impl/pom.xml
@@ -31,6 +31,7 @@ under the License.
   <name>Maven 4 Implementation Modules</name>
 
   <modules>
+    <module>maven-support</module>
     <module>maven-impl</module>
     <module>maven-di</module>
     <module>maven-xml</module>
diff --git a/its/pom.xml b/its/pom.xml
index 193b04854d..d287614b72 100644
--- a/its/pom.xml
+++ b/its/pom.xml
@@ -99,6 +99,11 @@ under the License.
         <artifactId>maven-logging</artifactId>
         <version>${maven-version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-support</artifactId>
+        <version>${maven-version}</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-core</artifactId>
diff --git a/pom.xml b/pom.xml
index 7e3c4670b2..ebc3b74188 100644
--- a/pom.xml
+++ b/pom.xml
@@ -283,6 +283,11 @@ under the License.
         <artifactId>maven-di</artifactId>
         <version>${project.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-support</artifactId>
+        <version>${project.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-model-builder</artifactId>
diff --git a/src/graph/ReactorGraph.java b/src/graph/ReactorGraph.java
index d8cc12a683..817359b9ca 100755
--- a/src/graph/ReactorGraph.java
+++ b/src/graph/ReactorGraph.java
@@ -42,7 +42,7 @@ public class ReactorGraph {
         CLUSTER_PATTERNS.put("JLine", Pattern.compile("^org\\.jline:.*"));
         CLUSTER_PATTERNS.put("Maven API", Pattern.compile("^org\\.apache\\.maven:maven-api-(?!impl).*"));
         CLUSTER_PATTERNS.put("Maven Resolver", Pattern.compile("^org\\.apache\\.maven\\.resolver:.*"));
-        CLUSTER_PATTERNS.put("Maven Implementation", Pattern.compile("^org\\.apache\\.maven:maven-(impl|di|core|cli|xml|jline|logging|executor):.*"));
+        CLUSTER_PATTERNS.put("Maven Implementation", Pattern.compile("^org\\.apache\\.maven:maven-(support|impl|di|core|cli|xml|jline|logging|executor):.*"));
         CLUSTER_PATTERNS.put("Maven Compatibility", Pattern.compile("^org\\.apache\\.maven:maven-(artifact|builder-support|compat|embedder|model|model-builder|plugin-api|repository-metadata|resolver-provider|settings|settings-builder|toolchain-builder|toolchain-model):.*"));
         CLUSTER_PATTERNS.put("Sisu", Pattern.compile("(^org\\.eclipse\\.sisu:.*)|(.*:guice:.*)|(.*:javax.inject:.*)|(.*:javax.annotation-api:.*)"));
         CLUSTER_PATTERNS.put("Plexus", Pattern.compile("^org\\.codehaus\\.plexus:.*"));