diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Dependency.java b/api/maven-api-core/src/main/java/org/apache/maven/api/Dependency.java index d0906581b62..8af8b69fb91 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/Dependency.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Dependency.java @@ -18,8 +18,16 @@ */ package org.apache.maven.api; +import org.apache.maven.api.annotations.Experimental; +import org.apache.maven.api.annotations.Immutable; import org.apache.maven.api.annotations.Nonnull; +/** + * + * @since 4.0.0 + */ +@Experimental +@Immutable public interface Dependency extends Artifact { /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/ExtensibleEnum.java b/api/maven-api-core/src/main/java/org/apache/maven/api/ExtensibleEnum.java index 87d80075dd5..fc1412a36a2 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/ExtensibleEnum.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/ExtensibleEnum.java @@ -18,12 +18,16 @@ */ package org.apache.maven.api; +import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; /** * Implementation must have {@code equals()} and {@code hashCode()} implemented, so implementations of this interface * can be used as keys. + * + * @since 4.0.0 */ +@Experimental public interface ExtensibleEnum { /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/MojoExecution.java b/api/maven-api-core/src/main/java/org/apache/maven/api/MojoExecution.java index 2aa5d8a2eb0..15ffac662fb 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/MojoExecution.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/MojoExecution.java @@ -31,6 +31,8 @@ * An instance of this object is bound to the {@link org.apache.maven.api.di.MojoExecutionScoped} * and available as {@code mojoExecution} within {@link org.apache.maven.api.plugin.annotations.Parameter} * expressions. + * + * @since 4.0.0 */ @Experimental public interface MojoExecution { diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Plugin.java b/api/maven-api-core/src/main/java/org/apache/maven/api/Plugin.java index 66f93d204a9..df26c2b8e9d 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/Plugin.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Plugin.java @@ -29,6 +29,8 @@ /** * Represents a maven plugin runtime + * + * @since 4.0.0 */ @Experimental public interface Plugin { diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/RemoteRepository.java b/api/maven-api-core/src/main/java/org/apache/maven/api/RemoteRepository.java index 98dadefd3f5..f4a425df1bc 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/RemoteRepository.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/RemoteRepository.java @@ -24,6 +24,8 @@ /** * A remote repository that can be used to download or upload artifacts. + * + * @since 4.0.0 */ @Experimental @Immutable diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Service.java b/api/maven-api-core/src/main/java/org/apache/maven/api/Service.java index 5f53c06d502..d39bdc6766d 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/Service.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Service.java @@ -27,6 +27,7 @@ * Services can be retrieved from the session using the * {@link Session#getService(Class)} method. * + * @since 4.0.0 * @see Session#getService(Class) */ @Experimental diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java b/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java index 0bc177f75a8..3aaa1f11654 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java @@ -502,15 +502,63 @@ Artifact createArtifact( @Nonnull VersionConstraint parseVersionConstraint(@Nonnull String versionConstraint); - Type requireType(String id); + /** + * Obtain the {@link Type} from the specified {@code id}. + *

+ * Shortcut for {@code getService(TypeRegistry.class).require(...)}. + * + * @see org.apache.maven.api.services.TypeRegistry#require(String) + */ + @Nonnull + Type requireType(@Nonnull String id); - Language requireLanguage(String id); + /** + * Obtain the {@link Language} from the specified {@code id}. + *

+ * Shortcut for {@code getService(LanguageRegistry.class).require(...)}. + * + * @see org.apache.maven.api.services.LanguageRegistry#require(String) + */ + @Nonnull + Language requireLanguage(@Nonnull String id); - Packaging requirePackaging(String id); + /** + * Obtain the {@link Packaging} from the specified {@code id}. + *

+ * Shortcut for {@code getService(PackagingRegistry.class).require(...)}. + * + * @see org.apache.maven.api.services.PackagingRegistry#require(String) + */ + @Nonnull + Packaging requirePackaging(@Nonnull String id); - ProjectScope requireProjectScope(String id); + /** + * Obtain the {@link ProjectScope} from the specified {@code id}. + *

+ * Shortcut for {@code getService(ProjectScopeRegistry.class).require(...)}. + * + * @see org.apache.maven.api.services.ProjectScopeRegistry#require(String) + */ + @Nonnull + ProjectScope requireProjectScope(@Nonnull String id); + /** + * Obtain the {@link DependencyScope} from the specified {@code id}. + *

+ * Shortcut for {@code DependencyScope.forId(...)}. + * + * @see org.apache.maven.api.DependencyScope#forId(String) + */ + @Nonnull DependencyScope requireDependencyScope(@Nonnull String id); - PathScope requirePathScope(String id); + /** + * Obtain the {@link PathScope} from the specified {@code id}. + *

+ * Shortcut for {@code getService(PathScopeRegistry.class).require(...)}. + * + * @see org.apache.maven.api.services.PathScopeRegistry#require(String) + */ + @Nonnull + PathScope requirePathScope(@Nonnull String id); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java index 05046da6a22..1f0d61b2c41 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java @@ -30,6 +30,8 @@ * annotation. If a {@code META-INF/maven/lifecycle.xml} file is packaged * in the plugin, Maven will provide a default implementation that will parse * the file and return the contained lifecycle definitions. + * + * @since 4.0.0 */ @Experimental @Consumer diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java index 2e28129d046..8fb3a7b947a 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java @@ -20,6 +20,7 @@ import java.util.function.Supplier; +import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Provider; /** @@ -32,6 +33,7 @@ * * @since 4.0.0 */ +@Experimental @Provider public interface Log { /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ExtensibleEnumRegistry.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ExtensibleEnumRegistry.java index 3a5673c583e..5d391e513fc 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ExtensibleEnumRegistry.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ExtensibleEnumRegistry.java @@ -26,9 +26,10 @@ public interface ExtensibleEnumRegistry extends Service { @Nonnull - Optional lookup(String id); + Optional lookup(@Nonnull String id); - default T require(String id) { + @Nonnull + default T require(@Nonnull String id) { return lookup(id).orElseThrow(() -> new IllegalArgumentException("Unknown extensible enum value '" + id + "'")); } } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectScopeRegistry.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectScopeRegistry.java index a3b4f24a5d5..edeae15488f 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectScopeRegistry.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectScopeRegistry.java @@ -19,8 +19,12 @@ package org.apache.maven.api.services; import org.apache.maven.api.ProjectScope; +import org.apache.maven.api.annotations.Experimental; /** * Manager for {@link ProjectScope}. + * + * @since 4.0.0 */ +@Experimental public interface ProjectScopeRegistry extends ExtensibleEnumRegistry {} diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilder.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilder.java index bc216c9d781..681c96d99ef 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilder.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilder.java @@ -22,11 +22,15 @@ import org.apache.maven.api.Service; import org.apache.maven.api.Session; +import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; /** * Builds the effective settings from a user settings file and/or a global settings file. + * + * @since 4.0.0 */ +@Experimental public interface SettingsBuilder extends Service { /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderResult.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderResult.java index 201501ea505..7286fba9c17 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderResult.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SettingsBuilderResult.java @@ -20,9 +20,15 @@ import java.util.List; +import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.settings.Settings; +/** + * + * @since 4.0.0 + */ +@Experimental public interface SettingsBuilderResult { /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SuperPomProvider.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SuperPomProvider.java index 8b94ab83898..ec52981a6a4 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/SuperPomProvider.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/SuperPomProvider.java @@ -25,6 +25,8 @@ /** * Provides the super POM that all models implicitly inherit from. + * + * @since 4.0.0 */ @Experimental public interface SuperPomProvider extends Service { diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java index 8de4a647e3f..ecd4a2b2d2f 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java @@ -25,6 +25,8 @@ /** * Builds the effective toolchains from a user toolchains file and/or a global toolchains file. + * + * @since 4.0.0 */ @Experimental public interface ToolchainsBuilder extends Service { diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderRequest.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderRequest.java index 7999fe157bc..abdb0dcc761 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderRequest.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderRequest.java @@ -22,12 +22,18 @@ import java.util.Optional; import org.apache.maven.api.Session; +import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.annotations.NotThreadSafe; import org.apache.maven.api.annotations.Nullable; import static org.apache.maven.api.services.BaseRequest.nonNull; +/** + * + * @since 4.0.0 + */ +@Experimental public interface ToolchainsBuilderRequest { @Nonnull Session getSession(); diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderResult.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderResult.java index 30ac872af3b..dbf9d91d3f6 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderResult.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilderResult.java @@ -20,9 +20,15 @@ import java.util.List; +import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.toolchain.PersistedToolchains; +/** + * + * @since 4.0.0 + */ +@Experimental public interface ToolchainsBuilderResult { /** * Gets the assembled toolchains. diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolver.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolver.java index 8a2e85aaa32..8f6fb70311b 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolver.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolver.java @@ -27,6 +27,8 @@ /** * Parses and evaluates version ranges encountered in dependency declarations. + * + * @since 4.0.0 */ @Experimental @Consumer diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverRequest.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverRequest.java index eb1fc1f74fa..3f3ac62355e 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverRequest.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverRequest.java @@ -26,6 +26,10 @@ import static org.apache.maven.api.services.BaseRequest.nonNull; +/** + * + * @since 4.0.0 + */ @Experimental public interface VersionRangeResolverRequest { diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverResult.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverResult.java index c626a9d6741..3d2f038f140 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverResult.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionRangeResolverResult.java @@ -26,6 +26,10 @@ import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; +/** + * + * @since 4.0.0 + */ @Experimental public interface VersionRangeResolverResult { diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolver.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolver.java index c909cf6e9df..0a27f97d7c4 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolver.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolver.java @@ -27,6 +27,8 @@ /** * Resolves artifact meta/pseudo versions. + * + * @since 4.0.0 */ @Experimental @Consumer diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverRequest.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverRequest.java index 896a05788f4..9c50f3e0f3f 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverRequest.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverRequest.java @@ -26,6 +26,10 @@ import static org.apache.maven.api.services.BaseRequest.nonNull; +/** + * + * @since 4.0.0 + */ @Experimental public interface VersionResolverRequest { diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverResult.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverResult.java index 90da559ac5e..2897183e8c1 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverResult.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/VersionResolverResult.java @@ -26,6 +26,10 @@ import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; +/** + * + * @since 4.0.0 + */ @Experimental public interface VersionResolverResult { diff --git a/api/maven-api-meta/src/main/java/org/apache/maven/api/annotations/Consumer.java b/api/maven-api-meta/src/main/java/org/apache/maven/api/annotations/Consumer.java index 813002373fb..63e720c62e1 100644 --- a/api/maven-api-meta/src/main/java/org/apache/maven/api/annotations/Consumer.java +++ b/api/maven-api-meta/src/main/java/org/apache/maven/api/annotations/Consumer.java @@ -31,7 +31,7 @@ * A type can be marked {@link Consumer} or {@link Provider} but not both. A type is assumed to be * {@link Consumer} if it is not marked either {@link Consumer} or {@link Provider}. *

- * A package can be marked {@link Provider}. In this case, all types in the package are considered + * A package can be marked {@link Consumer}. In this case, all types in the package are considered * to be a provider type regardless of whether they are marked {@link Consumer} or {@link Provider}. * * @see Provider diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ExtensibleEnumProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ExtensibleEnumProvider.java index b81554bc86a..7efa416d20a 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ExtensibleEnumProvider.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ExtensibleEnumProvider.java @@ -21,8 +21,24 @@ import java.util.Collection; import org.apache.maven.api.ExtensibleEnum; +import org.apache.maven.api.annotations.Consumer; +import org.apache.maven.api.annotations.Experimental; +import org.apache.maven.api.annotations.Nonnull; +/** + * An SPI interface to extend Maven with a new enum value. + * + * @param The type of extensible enum to extend + */ +@Experimental +@Consumer public interface ExtensibleEnumProvider extends SpiService { + /** + * Registers new values for the T extensible enum. + * + * @return a collection of T instances to register + */ + @Nonnull Collection provides(); } diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java index 9757d04f200..c6c06aec950 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java @@ -19,5 +19,12 @@ package org.apache.maven.api.spi; import org.apache.maven.api.Language; +import org.apache.maven.api.annotations.Consumer; +import org.apache.maven.api.annotations.Experimental; +/** + * @since 4.0.0 + */ +@Experimental +@Consumer public interface LanguageProvider extends ExtensibleEnumProvider {} diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ModelParser.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ModelParser.java index 73e884fbc9e..c9e2efc486a 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ModelParser.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ModelParser.java @@ -22,6 +22,7 @@ import java.util.Map; import java.util.Optional; +import org.apache.maven.api.annotations.Consumer; import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.annotations.Nullable; @@ -31,8 +32,11 @@ /** * The {@code ModelParser} interface is used to locate and read {@link Model}s from the file system. * This allows plugging in additional syntaxes for the main model read by Maven when building a project. + * + * @since 4.0.0 */ @Experimental +@Consumer public interface ModelParser extends SpiService { /** @@ -64,6 +68,7 @@ public interface ModelParser extends SpiService { * @return an optional parsed {@link Model} or {@code null} if none could be found * @throws ModelParserException if the located model cannot be parsed */ + @Nonnull default Optional locateAndParse(@Nonnull Path dir, @Nullable Map options) throws ModelParserException { return locate(dir).map(s -> parse(s, options)); diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java index 2e2597b839d..ab9b747a8aa 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java @@ -19,5 +19,12 @@ package org.apache.maven.api.spi; import org.apache.maven.api.PathScope; +import org.apache.maven.api.annotations.Consumer; +import org.apache.maven.api.annotations.Experimental; +/** + * @since 4.0.0 + */ +@Experimental +@Consumer public interface PathScopeProvider extends ExtensibleEnumProvider {} diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java index c4a9a1f992a..8a551af959d 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java @@ -19,5 +19,12 @@ package org.apache.maven.api.spi; import org.apache.maven.api.ProjectScope; +import org.apache.maven.api.annotations.Consumer; +import org.apache.maven.api.annotations.Experimental; +/** + * @since 4.0.0 + */ +@Experimental +@Consumer public interface ProjectScopeProvider extends ExtensibleEnumProvider {} diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PropertyContributor.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PropertyContributor.java index b29a0cc061d..1bdfdeb5af5 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PropertyContributor.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PropertyContributor.java @@ -20,13 +20,17 @@ import java.util.Map; +import org.apache.maven.api.annotations.Consumer; import org.apache.maven.api.annotations.Experimental; /** * Component able to contribute to Maven session user properties. This SPI component is invoked * very early, while there is no session created yet. + * + * @since 4.0.0 */ @Experimental +@Consumer public interface PropertyContributor extends SpiService { /** * Invoked just before session is created with a mutable map that carries collected user properties so far. diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/TypeProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/TypeProvider.java index a47e99b5864..3f60952d760 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/TypeProvider.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/TypeProvider.java @@ -19,5 +19,12 @@ package org.apache.maven.api.spi; import org.apache.maven.api.Type; +import org.apache.maven.api.annotations.Consumer; +import org.apache.maven.api.annotations.Experimental; +/** + * @since 4.0.0 + */ +@Experimental +@Consumer public interface TypeProvider extends ExtensibleEnumProvider {}