diff --git a/compat/maven-plugin-api/pom.xml b/compat/maven-plugin-api/pom.xml
index 4dd2d2cd1b7b..31e4b6396d10 100644
--- a/compat/maven-plugin-api/pom.xml
+++ b/compat/maven-plugin-api/pom.xml
@@ -56,6 +56,10 @@ under the License.
org.apache.maven
maven-artifact
+
+ org.apache.maven
+ maven-support
+
com.fasterxml.woodstox
woodstox-core
@@ -92,62 +96,6 @@ under the License.
-
- org.codehaus.modello
- modello-maven-plugin
-
- ${project.basedir}/../../src/mdo
-
-
-
- velocity-lifecycle
-
- velocity
-
- generate-sources
-
-
- reader-stax.vm
- writer-stax.vm
-
-
- packageModelV4=org.apache.maven.api.plugin.descriptor.lifecycle
- packageToolV4=org.apache.maven.plugin.lifecycle.io
-
-
- ../../api/maven-api-plugin/src/main/mdo/lifecycle.mdo
-
- 2.0.0
-
-
-
- velocity-plugin
-
- velocity
-
- generate-sources
-
-
- reader-stax.vm
- writer-stax.vm
-
-
- packageModelV3=org.apache.maven.plugin.descriptor
- packageModelV4=org.apache.maven.api.plugin.descriptor
- packageToolV4=org.apache.maven.plugin.descriptor.io
-
-
- ../../api/maven-api-plugin/src/main/mdo/plugin.mdo
-
- 2.0.0
-
-
-
- modello-site-docs
- none
-
-
-
com.github.siom79.japicmp
japicmp-maven-plugin
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java
index d7e7e869c1da..8427203faf7f 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java
@@ -54,11 +54,11 @@
import org.apache.maven.properties.internal.SystemProperties;
import static java.util.Objects.requireNonNull;
-import static org.apache.maven.cling.invoker.Utils.getCanonicalPath;
-import static org.apache.maven.cling.invoker.Utils.or;
-import static org.apache.maven.cling.invoker.Utils.prefix;
-import static org.apache.maven.cling.invoker.Utils.stripLeadingAndTrailingQuotes;
-import static org.apache.maven.cling.invoker.Utils.toMap;
+import static org.apache.maven.cling.invoker.CliUtils.getCanonicalPath;
+import static org.apache.maven.cling.invoker.CliUtils.or;
+import static org.apache.maven.cling.invoker.CliUtils.prefix;
+import static org.apache.maven.cling.invoker.CliUtils.stripLeadingAndTrailingQuotes;
+import static org.apache.maven.cling.invoker.CliUtils.toMap;
public abstract class BaseParser implements Parser {
@@ -335,7 +335,7 @@ protected Path getTopDirectory(LocalContext context) {
@Nullable
protected Path getRootDirectory(LocalContext context) {
- return Utils.findRoot(context.topDirectory);
+ return CliUtils.findRoot(context.topDirectory);
}
protected Map populateSystemProperties(LocalContext context) {
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CWD.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CWD.java
index c4492dbb75ce..f5b68acd4004 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CWD.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CWD.java
@@ -35,7 +35,7 @@ public final class CWD implements Supplier {
* Creates instance out of {@link Path}.
*/
public static CWD create(Path path) {
- return new CWD(Utils.getCanonicalPath(path));
+ return new CWD(CliUtils.getCanonicalPath(path));
}
private Path directory;
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/Utils.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CliUtils.java
similarity index 98%
rename from impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/Utils.java
rename to impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CliUtils.java
index f781be4b6b33..503ee85908a4 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/Utils.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CliUtils.java
@@ -41,8 +41,8 @@
/**
* Various utilities, mostly to bridge "old" and "new" stuff, like Properties vs Maps, File vs Paths, etc.
*/
-public final class Utils {
- private Utils() {}
+public final class CliUtils {
+ private CliUtils() {}
@Nonnull
public static String stripLeadingAndTrailingQuotes(String str) {
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CommonsCliOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CommonsCliOptions.java
index 3ffa9da8322a..cc914e7d9382 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CommonsCliOptions.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/CommonsCliOptions.java
@@ -37,7 +37,7 @@
import org.apache.maven.jline.MessageUtils;
import static java.util.Objects.requireNonNull;
-import static org.apache.maven.cling.invoker.Utils.toMap;
+import static org.apache.maven.cling.invoker.CliUtils.toMap;
public abstract class CommonsCliOptions implements Options {
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupContext.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupContext.java
index 06bf49f1f8ba..36fcf92424e7 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupContext.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupContext.java
@@ -57,8 +57,8 @@ public LookupContext(InvokerRequest invokerRequest) {
public LookupContext(InvokerRequest invokerRequest, boolean containerCapsuleManaged) {
this.invokerRequest = requireNonNull(invokerRequest);
this.cwd = CWD.create(invokerRequest.cwd());
- this.installationDirectory = Utils.getCanonicalPath(invokerRequest.installationDirectory());
- this.userDirectory = Utils.getCanonicalPath(invokerRequest.userHomeDirectory());
+ this.installationDirectory = CliUtils.getCanonicalPath(invokerRequest.installationDirectory());
+ this.userDirectory = CliUtils.getCanonicalPath(invokerRequest.userHomeDirectory());
this.containerCapsuleManaged = containerCapsuleManaged;
this.logger = invokerRequest.parserRequest().logger();
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java
index ccdfa4370021..a5935320f40d 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java
@@ -94,8 +94,8 @@
import org.slf4j.spi.LocationAwareLogger;
import static java.util.Objects.requireNonNull;
-import static org.apache.maven.cling.invoker.Utils.toMavenExecutionRequestLoggingLevel;
-import static org.apache.maven.cling.invoker.Utils.toProperties;
+import static org.apache.maven.cling.invoker.CliUtils.toMavenExecutionRequestLoggingLevel;
+import static org.apache.maven.cling.invoker.CliUtils.toProperties;
/**
* Lookup invoker implementation, that boots up DI container.
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsule.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsule.java
index 81a705404718..99effbf4e260 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsule.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsule.java
@@ -25,7 +25,7 @@
import org.codehaus.plexus.DefaultPlexusContainer;
import static java.util.Objects.requireNonNull;
-import static org.apache.maven.cling.invoker.Utils.toPlexusLoggingLevel;
+import static org.apache.maven.cling.invoker.CliUtils.toPlexusLoggingLevel;
/**
* Container capsule backed by Plexus Container.
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java
index 15e4630c9a51..d3463acaf772 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/PlexusContainerCapsuleFactory.java
@@ -61,7 +61,7 @@
import org.slf4j.ILoggerFactory;
import static java.util.Objects.requireNonNull;
-import static org.apache.maven.cling.invoker.Utils.toPlexusLoggingLevel;
+import static org.apache.maven.cling.invoker.CliUtils.toPlexusLoggingLevel;
/**
* Container capsule backed by Plexus Container.
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java
index 180d756e4d73..2632d71e48c2 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/CommonsCliMavenOptions.java
@@ -32,7 +32,7 @@
import org.apache.maven.api.services.InterpolatorException;
import org.apache.maven.cling.invoker.CommonsCliOptions;
-import static org.apache.maven.cling.invoker.Utils.createInterpolator;
+import static org.apache.maven.cling.invoker.CliUtils.createInterpolator;
public class CommonsCliMavenOptions extends CommonsCliOptions implements MavenOptions {
public static CommonsCliMavenOptions parse(String source, String[] args) throws ParseException {
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/MavenInvoker.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/MavenInvoker.java
index 325de096e785..1365de51e17b 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/MavenInvoker.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvn/MavenInvoker.java
@@ -48,9 +48,9 @@
import org.apache.maven.api.services.model.ModelProcessor;
import org.apache.maven.api.toolchain.PersistedToolchains;
import org.apache.maven.cling.event.ExecutionEventLogger;
+import org.apache.maven.cling.invoker.CliUtils;
import org.apache.maven.cling.invoker.LookupContext;
import org.apache.maven.cling.invoker.LookupInvoker;
-import org.apache.maven.cling.invoker.Utils;
import org.apache.maven.cling.transfer.ConsoleMavenTransferListener;
import org.apache.maven.cling.transfer.QuietMavenTransferListener;
import org.apache.maven.cling.transfer.SimplexTransferListener;
@@ -257,7 +257,7 @@ protected void populateRequest(MavenContext context, Lookup lookup, MavenExecuti
// project present, but we could not determine rootDirectory: extra work needed
if (context.invokerRequest.rootDirectory().isEmpty()) {
- Path rootDirectory = Utils.findMandatoryRoot(context.invokerRequest.topDirectory());
+ Path rootDirectory = CliUtils.findMandatoryRoot(context.invokerRequest.topDirectory());
request.setMultiModuleProjectDirectory(rootDirectory.toFile());
request.setRootDirectory(rootDirectory);
}
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java
index d67e93ec0034..65d12d93ae89 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/CommonsCliEncryptOptions.java
@@ -34,7 +34,7 @@
import org.apache.maven.api.services.InterpolatorException;
import org.apache.maven.cling.invoker.CommonsCliOptions;
-import static org.apache.maven.cling.invoker.Utils.createInterpolator;
+import static org.apache.maven.cling.invoker.CliUtils.createInterpolator;
/**
* Implementation of {@link EncryptOptions} (base + mvnenc).
diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java
index a45a973eaa41..8b7957cb3203 100644
--- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java
+++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/CommonsCliShellOptions.java
@@ -31,7 +31,7 @@
import org.apache.maven.api.services.InterpolatorException;
import org.apache.maven.cling.invoker.CommonsCliOptions;
-import static org.apache.maven.cling.invoker.Utils.createInterpolator;
+import static org.apache.maven.cling.invoker.CliUtils.createInterpolator;
/**
* Implementation of {@link ShellOptions} (base + shell).
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/CoreUtils.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/CoreUtils.java
new file mode 100644
index 000000000000..07844b9368e3
--- /dev/null
+++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/CoreUtils.java
@@ -0,0 +1,55 @@
+/*
+ * 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.internal.impl;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+class CoreUtils {
+ public static T nonNull(T t) {
+ if (t == null) {
+ throw new IllegalArgumentException();
+ }
+ return t;
+ }
+
+ public static T nonNull(T t, String name) {
+ if (t == null) {
+ throw new IllegalArgumentException(name + " cannot be null");
+ }
+ return t;
+ }
+
+ public static T cast(Class clazz, Object o, String name) {
+ if (!clazz.isInstance(o)) {
+ if (o == null) {
+ throw new IllegalArgumentException(name + " is null");
+ }
+ throw new IllegalArgumentException(name + " is not an instance of " + clazz.getName());
+ }
+ return clazz.cast(o);
+ }
+
+ public static List map(Collection list, Function mapper) {
+ return list.stream().map(mapper).filter(Objects::nonNull).collect(Collectors.toList());
+ }
+}
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
index 2257c97239fa..50571774ea00 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
+++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
@@ -37,7 +37,7 @@
import org.apache.maven.project.MavenProject;
import org.eclipse.sisu.Typed;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.internal.impl.CoreUtils.nonNull;
@Named
@Typed
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java
index 0ac8148029cd..787ceee5651e 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java
+++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java
@@ -47,7 +47,7 @@
import org.apache.maven.project.artifact.ProjectArtifact;
import org.eclipse.aether.util.artifact.ArtifactIdUtils;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.internal.impl.CoreUtils.nonNull;
public class DefaultProject implements Project {
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
index 8c3df60cd3d3..ee1294a0104f 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
+++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
@@ -49,8 +49,8 @@
import org.apache.maven.project.MavenProject;
import org.eclipse.sisu.Typed;
-import static org.apache.maven.impl.Utils.map;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.internal.impl.CoreUtils.map;
+import static org.apache.maven.internal.impl.CoreUtils.nonNull;
@Named
@Typed
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
index 0341d9dc6c9c..4809cd35051b 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
+++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
@@ -53,8 +53,8 @@
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
-import static org.apache.maven.impl.Utils.map;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.internal.impl.CoreUtils.map;
+import static org.apache.maven.internal.impl.CoreUtils.nonNull;
public class DefaultSession extends AbstractSession implements InternalMavenSession {
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultTypeRegistry.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultTypeRegistry.java
index bafa45c08ae0..f38877377256 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultTypeRegistry.java
+++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultTypeRegistry.java
@@ -41,7 +41,7 @@
import org.apache.maven.impl.resolver.type.DefaultType;
import static java.util.function.Function.identity;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.internal.impl.CoreUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/InternalMavenSession.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/InternalMavenSession.java
index af0d32d2f916..dbc679d903e2 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/InternalMavenSession.java
+++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/InternalMavenSession.java
@@ -27,7 +27,7 @@
import org.apache.maven.execution.MavenSession;
import org.apache.maven.impl.InternalSession;
-import static org.apache.maven.impl.Utils.cast;
+import static org.apache.maven.internal.impl.CoreUtils.cast;
public interface InternalMavenSession extends InternalSession {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java
index c883ee215ce9..6aed0e963a23 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java
@@ -103,8 +103,8 @@
import org.eclipse.aether.repository.ArtifactRepository;
import org.eclipse.aether.transfer.TransferResource;
-import static org.apache.maven.impl.Utils.map;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.map;
+import static org.apache.maven.impl.ImplUtils.nonNull;
public abstract class AbstractSession implements InternalSession {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java
index 18d25e43a23b..c757d930ac15 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java
@@ -25,7 +25,7 @@
import org.apache.maven.api.Version;
import org.apache.maven.api.annotations.Nonnull;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
/**
* A wrapper class around a maven resolver artifact.
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java
index 8e1fa9ec33cf..3abf27729d60 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java
@@ -24,7 +24,7 @@
import org.apache.maven.api.VersionConstraint;
import org.apache.maven.api.annotations.Nonnull;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
/**
* A wrapper class around a maven resolver artifact.
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java
index a587db4d9ae3..6832ae6f164b 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java
@@ -26,7 +26,7 @@
import org.apache.maven.api.services.ArtifactCoordinatesFactoryRequest;
import org.eclipse.aether.artifact.ArtifactType;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java
index b255762b2175..572522b646b8 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java
@@ -31,7 +31,7 @@
import org.eclipse.aether.deployment.DeployRequest;
import org.eclipse.aether.deployment.DeploymentException;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
/**
* Implementation of {@link ArtifactDeployer} service.
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java
index 6cc0f62aa387..40af9412c7c1 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java
@@ -27,7 +27,7 @@
import org.apache.maven.api.services.ArtifactFactoryRequest;
import org.eclipse.aether.artifact.ArtifactType;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java
index 81b9869265c9..e3b1936f30fd 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java
@@ -29,7 +29,7 @@
import org.eclipse.aether.installation.InstallRequest;
import org.eclipse.aether.installation.InstallationException;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java
index 244b6b990dd0..9d68a0aa630f 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java
@@ -51,7 +51,7 @@
import org.eclipse.aether.resolution.ArtifactResult;
import org.eclipse.aether.transfer.ArtifactNotFoundException;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java
index 5dbe218cc684..ef062acdc7ba 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java
@@ -41,7 +41,7 @@
import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory;
import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactorySelector;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java
index 97a6eb19f5c5..9ebb084cb363 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java
@@ -27,8 +27,8 @@
import org.apache.maven.api.services.DependencyCoordinatesFactoryRequest;
import org.eclipse.aether.artifact.ArtifactType;
-import static org.apache.maven.impl.Utils.map;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.map;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java
index 1badc8a299b3..7bab2446c6f0 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java
@@ -60,9 +60,9 @@
import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
-import static org.apache.maven.impl.Utils.cast;
-import static org.apache.maven.impl.Utils.map;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.cast;
+import static org.apache.maven.impl.ImplUtils.map;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java
index 1f73a8eb0553..af657a403ee0 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java
@@ -23,7 +23,7 @@
import org.apache.maven.api.LocalRepository;
import org.apache.maven.api.annotations.Nonnull;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
public class DefaultLocalRepository implements LocalRepository {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java
index 8505beccf384..a750688ef02b 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java
@@ -40,9 +40,9 @@
import org.apache.maven.model.v4.MavenStaxReader;
import org.apache.maven.model.v4.MavenStaxWriter;
+import static org.apache.maven.impl.ImplUtils.nonNull;
import static org.apache.maven.impl.StaxLocation.getLocation;
import static org.apache.maven.impl.StaxLocation.getMessage;
-import static org.apache.maven.impl.Utils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPluginXmlFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java
similarity index 96%
rename from impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPluginXmlFactory.java
rename to impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java
index 78b8a01a2ea3..f3f20b281551 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPluginXmlFactory.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java
@@ -16,10 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.maven.internal.impl;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
+package org.apache.maven.impl;
import java.io.InputStream;
import java.io.OutputStream;
@@ -30,6 +27,8 @@
import java.nio.file.Path;
import org.apache.maven.api.annotations.Nonnull;
+import org.apache.maven.api.di.Named;
+import org.apache.maven.api.di.Singleton;
import org.apache.maven.api.plugin.descriptor.PluginDescriptor;
import org.apache.maven.api.services.xml.PluginXmlFactory;
import org.apache.maven.api.services.xml.XmlReaderException;
@@ -39,9 +38,9 @@
import org.apache.maven.plugin.descriptor.io.PluginDescriptorStaxReader;
import org.apache.maven.plugin.descriptor.io.PluginDescriptorStaxWriter;
+import static org.apache.maven.impl.ImplUtils.nonNull;
import static org.apache.maven.impl.StaxLocation.getLocation;
import static org.apache.maven.impl.StaxLocation.getMessage;
-import static org.apache.maven.impl.Utils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java
index d1a1a0d5f16d..ec6edf462712 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java
@@ -32,7 +32,7 @@
import org.eclipse.aether.impl.RemoteRepositoryManager;
import org.eclipse.aether.repository.RepositoryPolicy;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java
index d707ac824b89..5037f7696b0d 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java
@@ -37,9 +37,9 @@
import org.apache.maven.toolchain.v4.MavenToolchainsStaxReader;
import org.apache.maven.toolchain.v4.MavenToolchainsStaxWriter;
+import static org.apache.maven.impl.ImplUtils.nonNull;
import static org.apache.maven.impl.StaxLocation.getLocation;
import static org.apache.maven.impl.StaxLocation.getMessage;
-import static org.apache.maven.impl.Utils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java
index f6d01ce02af1..d84ebcddc3a3 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java
@@ -27,7 +27,7 @@
import org.apache.maven.api.services.VersionParser;
import org.apache.maven.api.services.model.ModelVersionParser;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
/**
* A wrapper class around a resolver version that works as model version parser as well.
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionRangeResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionRangeResolver.java
index b3ef4d59b8ab..df182d976a3a 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionRangeResolver.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionRangeResolver.java
@@ -39,7 +39,7 @@
import org.eclipse.aether.resolution.VersionRangeResult;
import static java.util.Objects.requireNonNull;
-import static org.apache.maven.impl.Utils.map;
+import static org.apache.maven.impl.ImplUtils.map;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java
index ff07e5bb26d4..cc140caf92d6 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java
@@ -35,7 +35,7 @@
import org.eclipse.aether.resolution.VersionResolutionException;
import org.eclipse.aether.resolution.VersionResult;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
@Named
@Singleton
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java
index 9fdfe53e7082..d70796812ccb 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java
@@ -42,7 +42,7 @@
import org.apache.maven.api.spi.PathScopeProvider;
import org.apache.maven.api.spi.ProjectScopeProvider;
-import static org.apache.maven.impl.Utils.nonNull;
+import static org.apache.maven.impl.ImplUtils.nonNull;
public class ExtensibleEnumRegistries {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/Utils.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/ImplUtils.java
similarity index 98%
rename from impl/maven-impl/src/main/java/org/apache/maven/impl/Utils.java
rename to impl/maven-impl/src/main/java/org/apache/maven/impl/ImplUtils.java
index a3fcdf73d3d4..37e0f36e1bee 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/Utils.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/ImplUtils.java
@@ -24,7 +24,7 @@
import java.util.function.Function;
import java.util.stream.Collectors;
-public class Utils {
+class ImplUtils {
public static T nonNull(T t) {
if (t == null) {
throw new IllegalArgumentException();
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/InternalSession.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/InternalSession.java
index e6d6d4c53f95..e39836e2552d 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/InternalSession.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/InternalSession.java
@@ -40,7 +40,7 @@
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
-import static org.apache.maven.impl.Utils.cast;
+import static org.apache.maven.impl.ImplUtils.cast;
public interface InternalSession extends Session {
diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/WrapperNode.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/WrapperNode.java
index 4059e5cf2311..a057b68a5e04 100644
--- a/impl/maven-impl/src/main/java/org/apache/maven/impl/WrapperNode.java
+++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/WrapperNode.java
@@ -39,7 +39,7 @@ class WrapperNode extends AbstractNode {
@Override
DependencyNode getDependencyNode() {
- return Utils.cast(AbstractNode.class, delegate, "delegate").getDependencyNode();
+ return ImplUtils.cast(AbstractNode.class, delegate, "delegate").getDependencyNode();
}
@Override
diff --git a/impl/maven-support/pom.xml b/impl/maven-support/pom.xml
index 5607d62ce78b..21c44ed0c555 100644
--- a/impl/maven-support/pom.xml
+++ b/impl/maven-support/pom.xml
@@ -29,6 +29,10 @@
org.apache.maven
maven-api-metadata
+
+ org.apache.maven
+ maven-api-plugin
+
org.apache.maven
maven-xml
@@ -41,6 +45,53 @@
org.codehaus.modello
modello-maven-plugin
+
+ velocity-lifecycle
+
+ velocity
+
+ generate-sources
+
+ 2.0.0
+ ${project.basedir}/../../api/maven-api-plugin
+ ${project.basedir}/../../src/mdo
+
+ src/main/mdo/lifecycle.mdo
+
+
+ reader-stax.vm
+ writer-stax.vm
+
+
+ packageModelV4=org.apache.maven.api.plugin.descriptor.lifecycle
+ packageToolV4=org.apache.maven.plugin.lifecycle.io
+
+
+
+
+ velocity-plugin
+
+ velocity
+
+ generate-sources
+
+ 2.0.0
+ ${project.basedir}/../../api/maven-api-plugin
+ ${project.basedir}/../../src/mdo
+
+ src/main/mdo/plugin.mdo
+
+
+ reader-stax.vm
+ writer-stax.vm
+
+
+ packageModelV3=org.apache.maven.plugin.descriptor
+ packageModelV4=org.apache.maven.api.plugin.descriptor
+ packageToolV4=org.apache.maven.plugin.descriptor.io
+
+
+
velocity-settings