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 2026/06/16 16:41:52 UTC
(maven) branch move-spi-interfaces-to-api-spi created (now d3671bd70f)
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a change to branch move-spi-interfaces-to-api-spi
in repository https://gitbox.apache.org/repos/asf/maven.git
at d3671bd70f Move model SPI interfaces from maven-impl to maven-api-spi
This branch includes the following new commits:
new d3671bd70f Move model SPI interfaces from maven-impl to maven-api-spi
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(maven) 01/01: Move model SPI interfaces from maven-impl to maven-api-spi
Posted by gn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch move-spi-interfaces-to-api-spi
in repository https://gitbox.apache.org/repos/asf/maven.git
commit d3671bd70f308a32901f41e9309318700876721f
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Jun 16 16:40:59 2026 +0000
Move model SPI interfaces from maven-impl to maven-api-spi
Move 23 interfaces from the org.apache.maven.api.services.model
package in impl/maven-impl to api/maven-api-spi where they
belong as part of the public API surface.
Add proper Javadoc to all moved interfaces.
---
.../maven/api/services/model/DependencyManagementImporter.java | 1 +
.../maven/api/services/model/DependencyManagementInjector.java | 1 +
.../org/apache/maven/api/services/model/InheritanceAssembler.java | 1 +
.../maven/api/services/model/LifecycleBindingsInjector.java | 1 +
.../org/apache/maven/api/services/model/ModelInterpolator.java | 1 +
.../java/org/apache/maven/api/services/model/ModelNormalizer.java | 1 +
.../org/apache/maven/api/services/model/ModelPathTranslator.java | 1 +
.../java/org/apache/maven/api/services/model/ModelProcessor.java | 4 +++-
.../java/org/apache/maven/api/services/model/ModelResolver.java | 2 ++
.../apache/maven/api/services/model/ModelResolverException.java | 1 +
.../org/apache/maven/api/services/model/ModelUrlNormalizer.java | 1 +
.../java/org/apache/maven/api/services/model/ModelValidator.java | 1 +
.../org/apache/maven/api/services/model/ModelVersionParser.java | 0
.../java/org/apache/maven/api/services/model/PathTranslator.java | 1 +
.../maven/api/services/model/PluginConfigurationExpander.java | 1 +
.../apache/maven/api/services/model/PluginManagementInjector.java | 1 +
.../apache/maven/api/services/model/ProfileActivationContext.java | 3 ++-
.../org/apache/maven/api/services/model/ProfileActivator.java | 1 +
.../java/org/apache/maven/api/services/model/ProfileInjector.java | 1 +
.../java/org/apache/maven/api/services/model/ProfileSelector.java | 1 +
.../java/org/apache/maven/api/services/model/RootDetector.java | 4 +++-
.../java/org/apache/maven/api/services/model/RootLocator.java | 8 +++++---
.../java/org/apache/maven/api/services/model/UrlNormalizer.java | 5 +++++
23 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/DependencyManagementImporter.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/DependencyManagementImporter.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/DependencyManagementImporter.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/DependencyManagementImporter.java
index e48079b268..cdcb385a7b 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/DependencyManagementImporter.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/DependencyManagementImporter.java
@@ -28,6 +28,7 @@
/**
* Handles the import of dependency management from other models into the target model.
*
+ * @since 4.0.0
*/
public interface DependencyManagementImporter {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/DependencyManagementInjector.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/DependencyManagementInjector.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/DependencyManagementInjector.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/DependencyManagementInjector.java
index 129eaaa53e..fb91b232cf 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/DependencyManagementInjector.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/DependencyManagementInjector.java
@@ -25,6 +25,7 @@
/**
* Handles injection of dependency management into the model.
*
+ * @since 4.0.0
*/
public interface DependencyManagementInjector {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/InheritanceAssembler.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/InheritanceAssembler.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/InheritanceAssembler.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/InheritanceAssembler.java
index 4b1632809f..59b24f370d 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/InheritanceAssembler.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/InheritanceAssembler.java
@@ -25,6 +25,7 @@
/**
* Handles inheritance of model values.
*
+ * @since 4.0.0
*/
public interface InheritanceAssembler {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/LifecycleBindingsInjector.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/LifecycleBindingsInjector.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/LifecycleBindingsInjector.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/LifecycleBindingsInjector.java
index beba17ad3b..1f7701b749 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/LifecycleBindingsInjector.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/LifecycleBindingsInjector.java
@@ -25,6 +25,7 @@
/**
* Handles injection of plugin executions induced by the lifecycle bindings for a packaging.
*
+ * @since 4.0.0
*/
public interface LifecycleBindingsInjector {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelInterpolator.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelInterpolator.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelInterpolator.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelInterpolator.java
index dbb65c7084..c24a8a4d7f 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelInterpolator.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelInterpolator.java
@@ -30,6 +30,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.
*
+ * @since 4.0.0
*/
public interface ModelInterpolator {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelNormalizer.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelNormalizer.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelNormalizer.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelNormalizer.java
index 40891f041c..50225fd417 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelNormalizer.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelNormalizer.java
@@ -26,6 +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.
*
+ * @since 4.0.0
*/
public interface ModelNormalizer {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelPathTranslator.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelPathTranslator.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelPathTranslator.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelPathTranslator.java
index 07a36b9549..c2ec4ce522 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelPathTranslator.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelPathTranslator.java
@@ -26,6 +26,7 @@
/**
* Resolves relative paths of a model against a specific base directory.
*
+ * @since 4.0.0
*/
public interface ModelPathTranslator {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelProcessor.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelProcessor.java
similarity index 96%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelProcessor.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelProcessor.java
index eb1c46e27a..091e8f45fd 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelProcessor.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelProcessor.java
@@ -28,7 +28,9 @@
import org.apache.maven.api.services.xml.XmlReaderRequest;
/**
- * ModelProcessor
+ * Locates and reads POM files from the filesystem.
+ *
+ * @since 4.0.0
*/
public interface ModelProcessor {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelResolver.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelResolver.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelResolver.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelResolver.java
index 668f450bc7..58cd0aef0f 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelResolver.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelResolver.java
@@ -36,6 +36,8 @@
/**
* Resolves a POM from its coordinates.
+ *
+ * @since 4.0.0
*/
public interface ModelResolver extends Service {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelResolverException.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelResolverException.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelResolverException.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelResolverException.java
index 0c9f829210..a383cabf0d 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelResolverException.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelResolverException.java
@@ -23,6 +23,7 @@
/**
* Signals an error when resolving the path to an external model.
*
+ * @since 4.0.0
*/
public class ModelResolverException extends MavenException {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelUrlNormalizer.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelUrlNormalizer.java
similarity index 98%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelUrlNormalizer.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelUrlNormalizer.java
index 221e233d8d..a216b99d7a 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelUrlNormalizer.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelUrlNormalizer.java
@@ -25,6 +25,7 @@
* Normalizes URLs to remove the ugly parent references "../" that got potentially inserted by URL adjustment during
* model inheritance.
*
+ * @since 4.0.0
*/
public interface ModelUrlNormalizer {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelValidator.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelValidator.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelValidator.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelValidator.java
index 116b918959..a4f7c4adbd 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelValidator.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelValidator.java
@@ -25,6 +25,7 @@
/**
* Checks the model for missing or invalid values.
*
+ * @since 4.0.0
*/
public interface ModelValidator {
/**
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelVersionParser.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelVersionParser.java
similarity index 100%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ModelVersionParser.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ModelVersionParser.java
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PathTranslator.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PathTranslator.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PathTranslator.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PathTranslator.java
index 8f1fec0b57..aef26d335c 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PathTranslator.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PathTranslator.java
@@ -23,6 +23,7 @@
/**
* Resolves relative paths against a specific base directory.
*
+ * @since 4.0.0
*/
public interface PathTranslator {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PluginConfigurationExpander.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PluginConfigurationExpander.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PluginConfigurationExpander.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PluginConfigurationExpander.java
index 2481a583d6..bdd249489d 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PluginConfigurationExpander.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PluginConfigurationExpander.java
@@ -25,6 +25,7 @@
/**
* Handles expansion of general build plugin configuration into individual executions.
*
+ * @since 4.0.0
*/
public interface PluginConfigurationExpander {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PluginManagementInjector.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PluginManagementInjector.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PluginManagementInjector.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PluginManagementInjector.java
index 9733e253ac..36d7f7e19f 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/PluginManagementInjector.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/PluginManagementInjector.java
@@ -25,6 +25,7 @@
/**
* Handles injection of plugin management into the model.
*
+ * @since 4.0.0
*/
public interface PluginManagementInjector {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileActivationContext.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileActivationContext.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileActivationContext.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileActivationContext.java
index b7951ea3e1..c9e73242f6 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileActivationContext.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileActivationContext.java
@@ -26,10 +26,11 @@
/**
* Describes the environmental context used to determine the activation status of profiles.
- *
+ * <p>
* The {@link Model} is available from the activation context, but only static parts of it
* are allowed to be used, i.e. those that do not change between file model and effective model.
*
+ * @since 4.0.0
*/
public interface ProfileActivationContext {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileActivator.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileActivator.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileActivator.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileActivator.java
index 99153fa557..5184a20aad 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileActivator.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileActivator.java
@@ -24,6 +24,7 @@
/**
* Determines whether a profile should be activated.
*
+ * @since 4.0.0
*/
public interface ProfileActivator {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileInjector.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileInjector.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileInjector.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileInjector.java
index 87eb50abe3..7361318f98 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileInjector.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileInjector.java
@@ -28,6 +28,7 @@
/**
* Handles profile injection into the model.
*
+ * @since 4.0.0
*/
public interface ProfileInjector {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileSelector.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileSelector.java
similarity index 99%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileSelector.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileSelector.java
index b85cdd43eb..6bf6e2251d 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/ProfileSelector.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/ProfileSelector.java
@@ -27,6 +27,7 @@
/**
* Calculates the active profiles among a given collection of profiles.
*
+ * @since 4.0.0
*/
public interface ProfileSelector {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/RootDetector.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/RootDetector.java
similarity index 92%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/RootDetector.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/RootDetector.java
index 7c1f1b3015..2c341d2709 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/RootDetector.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/RootDetector.java
@@ -23,7 +23,9 @@
import org.apache.maven.api.Service;
/**
- * Interface used to detect is a given directory "root directory".
+ * Detects whether a given directory is a root directory.
+ *
+ * @since 4.0.0
*/
public interface RootDetector extends Service {
boolean isRootDirectory(Path dir);
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/RootLocator.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/RootLocator.java
similarity index 96%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/RootLocator.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/RootLocator.java
index 5cb8bd841f..739c279db8 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/RootLocator.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/RootLocator.java
@@ -25,15 +25,17 @@
import org.apache.maven.api.annotations.Nullable;
/**
- * Interface used to locate the root directory for a given project.
- *
+ * Locates the root directory for a given project.
+ * <p>
* The root locator is usually looked up from the DI container.
* One notable exception is the computation of the early {@code session.rootDirectory}
* property which happens very early. The implementation used in this case
* will be discovered using the JDK service mechanism.
- *
+ * <p>
* The default implementation will look for a {@code .mvn} child directory
* or a {@code pom.xml} containing the {@code root="true"} attribute.
+ *
+ * @since 4.0.0
*/
public interface RootLocator extends Service {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/UrlNormalizer.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/UrlNormalizer.java
similarity index 93%
rename from impl/maven-impl/src/main/java/org/apache/maven/api/services/model/UrlNormalizer.java
rename to api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/UrlNormalizer.java
index 29dab47f05..8ee4e470ac 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/api/services/model/UrlNormalizer.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/services/model/UrlNormalizer.java
@@ -18,6 +18,11 @@
*/
package org.apache.maven.api.services.model;
+/**
+ * Normalizes URLs by resolving relative references.
+ *
+ * @since 4.0.0
+ */
public interface UrlNormalizer {
/**