You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2024/01/10 12:55:58 UTC
(maven) branch master updated: [MNG-7999] Confine Plexus Container as much as possible (#1367)
This is an automated email from the ASF dual-hosted git repository.
cstamas 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 cfa13f5cc7 [MNG-7999] Confine Plexus Container as much as possible (#1367)
cfa13f5cc7 is described below
commit cfa13f5cc71ac0c2591650cae81772d572dcdd26
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Wed Jan 10 13:55:54 2024 +0100
[MNG-7999] Confine Plexus Container as much as possible (#1367)
This is an ongoing effort to confine Plexus, but also perform a bit of cleanup in Maven Core and around. No logic changes, just replacing Plexus with Lookup (that is a thin wrapper around it), and removing unused members, redundant checks, etc. Module maven-compat omitted on purpose.
---
https://issues.apache.org/jira/browse/MNG-7999
---
.../java/org/apache/maven/api/services/Lookup.java | 63 +++++++++++++++++++++-
.../AbstractArtifactComponentTestCase.java | 3 +-
.../main/java/org/apache/maven/DefaultMaven.java | 56 +++++++------------
.../main/java/org/apache/maven/ReactorReader.java | 10 ++--
.../scope/internal/MojoExecutionScopeModule.java | 8 +--
.../apache/maven/internal/impl/DefaultLookup.java | 26 +++++++++
.../maven/internal/impl/DefaultProjectManager.java | 5 +-
.../apache/maven/internal/impl/DefaultSession.java | 22 ++++----
.../maven/internal/impl/DefaultSessionFactory.java | 10 ++--
.../transformation/impl/ConsumerPomBuilder.java | 3 +-
.../DefaultConsumerPomArtifactTransformer.java | 3 +-
.../transformation/impl/TransformedArtifact.java | 10 +---
.../maven/lifecycle/DefaultLifecycleExecutor.java | 8 +--
.../apache/maven/lifecycle/DefaultLifecycles.java | 22 ++++----
.../apache/maven/lifecycle/MavenExecutionPlan.java | 5 +-
.../lifecycle/internal/BuildThreadFactory.java | 1 +
.../internal/CompoundProjectExecutionListener.java | 4 ++
.../lifecycle/internal/DefaultExecutionEvent.java | 5 ++
.../internal/DefaultExecutionEventCatapult.java | 2 +
.../DefaultLifecycleExecutionPlanCalculator.java | 3 +-
.../internal/DefaultLifecycleMappingDelegate.java | 1 +
.../internal/DefaultLifecyclePluginAnalyzer.java | 20 ++-----
.../DefaultLifecycleTaskSegmentCalculator.java | 9 +++-
.../internal/DefaultMojoExecutionConfigurator.java | 19 ++++++-
.../lifecycle/internal/DependencyContext.java | 9 +---
.../internal/LifecycleDependencyResolver.java | 2 +-
.../lifecycle/internal/LifecycleModuleBuilder.java | 6 +--
.../maven/lifecycle/internal/LifecycleStarter.java | 3 --
.../lifecycle/internal/MojoDescriptorCreator.java | 2 +-
.../maven/lifecycle/internal/ProjectBuildList.java | 1 +
.../maven/plugin/PluginConfigurationException.java | 30 +++++++----
.../maven/plugin/PluginContainerException.java | 20 ++++---
.../maven/plugin/PluginManagerException.java | 37 +++++++------
.../plugin/internal/DefaultMavenPluginManager.java | 6 ++-
.../project/DefaultProjectBuildingHelper.java | 4 --
.../session/scope/internal/SessionScopeModule.java | 8 +--
.../org/apache/maven/internal/impl/TestApi.java | 2 +-
.../maven/lifecycle/DefaultLifecyclesTest.java | 3 +-
.../internal/stub/DefaultLifecyclesStub.java | 3 +-
.../PluginParameterExpressionEvaluatorV4Test.java | 13 ++---
.../main/java/org/apache/maven/cli/MavenCli.java | 6 ++-
41 files changed, 274 insertions(+), 199 deletions(-)
diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/Lookup.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/Lookup.java
index 07a0d4bca6..c80c2ed10e 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/Lookup.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/Lookup.java
@@ -20,16 +20,77 @@ package org.apache.maven.api.services;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.apache.maven.api.Service;
+import org.apache.maven.api.annotations.Nonnull;
public interface Lookup extends Service {
-
+ /**
+ * Performs a lookup for given typed component.
+ *
+ * @param type The component type.
+ * @return The component.
+ * @param <T> The component type.
+ * @throws LookupException if no such component or there is some provisioning related issue.
+ */
+ @Nonnull
<T> T lookup(Class<T> type);
+ /**
+ * Performs a lookup for given typed component.
+ *
+ * @param type The component type.
+ * @param name The component name.
+ * @return The component.
+ * @param <T> The component type.
+ * @throws LookupException if no such component or there is some provisioning related issue.
+ */
+ @Nonnull
<T> T lookup(Class<T> type, String name);
+ /**
+ * Performs a lookup for optional typed component.
+ *
+ * @param type The component type.
+ * @return Optional carrying component or empty optional if no such component.
+ * @param <T> The component type.
+ * @throws LookupException if there is some provisioning related issue.
+ */
+ @Nonnull
+ <T> Optional<T> lookupOptional(Class<T> type);
+
+ /**
+ * Performs a lookup for optional typed component.
+ *
+ * @param type The component type.
+ * @param name The component name.
+ * @return Optional carrying component or empty optional if no such component.
+ * @param <T> The component type.
+ * @throws LookupException if there is some provisioning related issue.
+ */
+ @Nonnull
+ <T> Optional<T> lookupOptional(Class<T> type, String name);
+
+ /**
+ * Performs a collection lookup for given typed components.
+ *
+ * @param type The component type.
+ * @return The list of components. The list may be empty if no components found.
+ * @param <T> The component type.
+ * @throws LookupException if there is some provisioning related issue.
+ */
+ @Nonnull
<T> List<T> lookupList(Class<T> type);
+ /**
+ * Performs a collection lookup for given typed components.
+ *
+ * @param type The component type.
+ * @return The map of components. The map may be empty if no components found.
+ * @param <T> The component type.
+ * @throws LookupException if there is some provisioning related issue.
+ */
+ @Nonnull
<T> Map<String, T> lookupMap(Class<T> type);
}
diff --git a/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java b/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java
index 9746b24ffa..5ffffb62ba 100644
--- a/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java
+++ b/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java
@@ -39,6 +39,7 @@ import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.internal.impl.DefaultLookup;
import org.apache.maven.internal.impl.DefaultSessionFactory;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.repository.legacy.repository.ArtifactRepositoryFactory;
@@ -107,7 +108,7 @@ public abstract class AbstractArtifactComponentTestCase // extends PlexusTestCas
new DefaultSessionFactory(
getContainer().lookup(RepositorySystem.class),
getContainer().lookup(MavenRepositorySystem.class),
- getContainer(),
+ new DefaultLookup(getContainer()),
getContainer().lookup(RuntimeInformation.class))
.getSession(session);
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 10d28bc438..9ada51245d 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -43,6 +43,8 @@ import org.apache.maven.api.Session;
import org.apache.maven.api.model.Model;
import org.apache.maven.api.model.Prerequisites;
import org.apache.maven.api.model.Profile;
+import org.apache.maven.api.services.Lookup;
+import org.apache.maven.api.services.LookupException;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.execution.BuildResumptionAnalyzer;
import org.apache.maven.execution.BuildResumptionDataRepository;
@@ -69,10 +71,7 @@ import org.apache.maven.model.building.Result;
import org.apache.maven.model.superpom.SuperPomProvider;
import org.apache.maven.plugin.LegacySupport;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuilder;
import org.apache.maven.session.scope.internal.SessionScope;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.RepositorySystemSession.CloseableSession;
import org.eclipse.aether.repository.WorkspaceReader;
@@ -89,19 +88,17 @@ import static java.util.stream.Collectors.toSet;
public class DefaultMaven implements Maven {
private final Logger logger = LoggerFactory.getLogger(getClass());
- protected ProjectBuilder projectBuilder;
+ private final Lookup lookup;
- private LifecycleStarter lifecycleStarter;
+ private final LifecycleStarter lifecycleStarter;
- protected PlexusContainer container;
+ private final ExecutionEventCatapult eventCatapult;
- private ExecutionEventCatapult eventCatapult;
+ private final LegacySupport legacySupport;
- private LegacySupport legacySupport;
+ private final SessionScope sessionScope;
- private SessionScope sessionScope;
-
- private DefaultRepositorySystemSessionFactory repositorySessionFactory;
+ private final DefaultRepositorySystemSessionFactory repositorySessionFactory;
private final GraphBuilder graphBuilder;
@@ -118,9 +115,8 @@ public class DefaultMaven implements Maven {
@Inject
@SuppressWarnings("checkstyle:ParameterNumber")
public DefaultMaven(
- ProjectBuilder projectBuilder,
+ Lookup lookup,
LifecycleStarter lifecycleStarter,
- PlexusContainer container,
ExecutionEventCatapult eventCatapult,
LegacySupport legacySupport,
SessionScope sessionScope,
@@ -130,9 +126,8 @@ public class DefaultMaven implements Maven {
BuildResumptionDataRepository buildResumptionDataRepository,
SuperPomProvider superPomProvider,
DefaultSessionFactory defaultSessionFactory) {
- this.projectBuilder = projectBuilder;
+ this.lookup = lookup;
this.lifecycleStarter = lifecycleStarter;
- this.container = container;
this.eventCatapult = eventCatapult;
this.legacySupport = legacySupport;
this.sessionScope = sessionScope;
@@ -243,9 +238,9 @@ public class DefaultMaven implements Maven {
}
try {
- WorkspaceReader reactorReader = container.lookup(WorkspaceReader.class, ReactorReader.HINT);
+ WorkspaceReader reactorReader = lookup.lookup(WorkspaceReader.class, ReactorReader.HINT);
chainedWorkspaceReader.setReaders(Collections.singletonList(reactorReader));
- } catch (ComponentLookupException e) {
+ } catch (LookupException e) {
return addExceptionToResult(result, e);
}
@@ -266,7 +261,7 @@ public class DefaultMaven implements Maven {
try {
setupWorkspaceReader(session, chainedWorkspaceReader);
- } catch (ComponentLookupException e) {
+ } catch (LookupException e) {
return addExceptionToResult(result, e);
}
try {
@@ -328,19 +323,18 @@ public class DefaultMaven implements Maven {
try {
afterSessionEnd(session);
} catch (MavenExecutionException e) {
- return addExceptionToResult(result, e);
+ addExceptionToResult(result, e);
}
}
return result;
}
- private void setupWorkspaceReader(MavenSession session, MavenChainedWorkspaceReader chainedWorkspaceReader)
- throws ComponentLookupException {
+ private void setupWorkspaceReader(MavenSession session, MavenChainedWorkspaceReader chainedWorkspaceReader) {
// Desired order of precedence for workspace readers before querying the local artifact repositories
Set<WorkspaceReader> workspaceReaders = new LinkedHashSet<>();
// 1) Reactor workspace reader
- WorkspaceReader reactorReader = container.lookup(WorkspaceReader.class, ReactorReader.HINT);
+ WorkspaceReader reactorReader = lookup.lookup(WorkspaceReader.class, ReactorReader.HINT);
workspaceReaders.add(reactorReader);
// 2) Repository system session-scoped workspace reader
for (WorkspaceReader repoWorkspaceReader : chainedWorkspaceReader.getReaders()) {
@@ -435,16 +429,8 @@ public class DefaultMaven implements Maven {
private <T> Collection<T> getExtensionComponents(Collection<MavenProject> projects, Class<T> role) {
Collection<T> foundComponents = new LinkedHashSet<>();
-
- try {
- foundComponents.addAll(container.lookupList(role));
- } catch (ComponentLookupException e) {
- // this is just silly, lookupList should return an empty list!
- logger.warn("Failed to lookup {}: {}", role, e.getMessage());
- }
-
+ foundComponents.addAll(lookup.lookupList(role));
foundComponents.addAll(getProjectScopedExtensionComponents(projects, role));
-
return foundComponents;
}
@@ -464,13 +450,7 @@ public class DefaultMaven implements Maven {
if (projectRealm != null && scannedRealms.add(projectRealm)) {
currentThread.setContextClassLoader(projectRealm);
-
- try {
- foundComponents.addAll(container.lookupList(role));
- } catch (ComponentLookupException e) {
- // this is just silly, lookupList should return an empty list!
- logger.warn("Failed to lookup {}: {}", role, e.getMessage());
- }
+ foundComponents.addAll(lookup.lookupList(role));
}
}
return foundComponents;
diff --git a/maven-core/src/main/java/org/apache/maven/ReactorReader.java b/maven-core/src/main/java/org/apache/maven/ReactorReader.java
index 8bb0660d0d..2f3e197c8c 100644
--- a/maven-core/src/main/java/org/apache/maven/ReactorReader.java
+++ b/maven-core/src/main/java/org/apache/maven/ReactorReader.java
@@ -34,6 +34,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import org.apache.maven.api.services.Lookup;
import org.apache.maven.eventspy.EventSpy;
import org.apache.maven.execution.ExecutionEvent;
import org.apache.maven.execution.MavenSession;
@@ -41,7 +42,6 @@ import org.apache.maven.model.Model;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.ProjectArtifact;
import org.apache.maven.repository.internal.MavenWorkspaceReader;
-import org.codehaus.plexus.PlexusContainer;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.repository.WorkspaceRepository;
import org.eclipse.aether.util.artifact.ArtifactIdUtils;
@@ -504,11 +504,11 @@ class ReactorReader implements MavenWorkspaceReader {
@SuppressWarnings("unused")
static class ReactorReaderSpy implements EventSpy {
- final PlexusContainer container;
+ private final Lookup lookup;
@Inject
- ReactorReaderSpy(PlexusContainer container) {
- this.container = container;
+ ReactorReaderSpy(Lookup lookup) {
+ this.lookup = lookup;
}
@Override
@@ -518,7 +518,7 @@ class ReactorReader implements MavenWorkspaceReader {
@SuppressWarnings("checkstyle:MissingSwitchDefault")
public void onEvent(Object event) throws Exception {
if (event instanceof ExecutionEvent) {
- ReactorReader reactorReader = container.lookup(ReactorReader.class);
+ ReactorReader reactorReader = lookup.lookup(ReactorReader.class);
reactorReader.processEvent((ExecutionEvent) event);
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScopeModule.java b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScopeModule.java
index f574e43c8c..c79182839c 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScopeModule.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScopeModule.java
@@ -23,8 +23,6 @@ import org.apache.maven.api.plugin.Log;
import org.apache.maven.execution.scope.MojoExecutionScoped;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
/**
* MojoExecutionScopeModule
@@ -32,11 +30,7 @@ import org.codehaus.plexus.component.repository.exception.ComponentLookupExcepti
public class MojoExecutionScopeModule extends AbstractModule {
protected final MojoExecutionScope scope;
- public MojoExecutionScopeModule(PlexusContainer container) throws ComponentLookupException {
- this(container.lookup(MojoExecutionScope.class));
- }
-
- protected MojoExecutionScopeModule(MojoExecutionScope scope) {
+ public MojoExecutionScopeModule(MojoExecutionScope scope) {
this.scope = scope;
}
diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java
index 8acf1f0ddc..a5a0f82d94 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java
@@ -24,6 +24,8 @@ import javax.inject.Singleton;
import java.util.List;
import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Optional;
import org.apache.maven.api.services.Lookup;
import org.apache.maven.api.services.LookupException;
@@ -59,6 +61,30 @@ public class DefaultLookup implements Lookup {
}
}
+ @Override
+ public <T> Optional<T> lookupOptional(Class<T> type) {
+ try {
+ return Optional.of(container.lookup(type));
+ } catch (ComponentLookupException e) {
+ if (e.getCause() instanceof NoSuchElementException) {
+ return Optional.empty();
+ }
+ throw new LookupException(e);
+ }
+ }
+
+ @Override
+ public <T> Optional<T> lookupOptional(Class<T> type, String name) {
+ try {
+ return Optional.of(container.lookup(type, name));
+ } catch (ComponentLookupException e) {
+ if (e.getCause() instanceof NoSuchElementException) {
+ return Optional.empty();
+ }
+ throw new LookupException(e);
+ }
+ }
+
@Override
public <T> List<T> lookupList(Class<T> type) {
try {
diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
index 3613313933..1f0a22f7ae 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProjectManager.java
@@ -35,7 +35,6 @@ import org.apache.maven.api.di.SessionScoped;
import org.apache.maven.api.model.Resource;
import org.apache.maven.api.services.*;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.PlexusContainer;
import org.eclipse.sisu.Typed;
import static org.apache.maven.internal.impl.Utils.map;
@@ -47,13 +46,11 @@ public class DefaultProjectManager implements ProjectManager {
private final InternalSession session;
private final ArtifactManager artifactManager;
- private final PlexusContainer container;
@Inject
- public DefaultProjectManager(InternalSession session, ArtifactManager artifactManager, PlexusContainer container) {
+ public DefaultProjectManager(InternalSession session, ArtifactManager artifactManager) {
this.session = session;
this.artifactManager = artifactManager;
- this.container = container;
}
@Nonnull
diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
index dbb60599b9..2dd67f73ec 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSession.java
@@ -32,6 +32,8 @@ import org.apache.maven.RepositoryUtils;
import org.apache.maven.api.*;
import org.apache.maven.api.annotations.Nonnull;
import org.apache.maven.api.annotations.Nullable;
+import org.apache.maven.api.services.Lookup;
+import org.apache.maven.api.services.LookupException;
import org.apache.maven.api.services.MavenException;
import org.apache.maven.api.settings.Settings;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -41,8 +43,6 @@ import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.rtinfo.RuntimeInformation;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
@@ -57,7 +57,7 @@ public class DefaultSession extends AbstractSession {
private final RepositorySystem repositorySystem;
private final List<RemoteRepository> repositories;
private final MavenRepositorySystem mavenRepositorySystem;
- private final PlexusContainer container;
+ private final Lookup lookup;
private final RuntimeInformation runtimeInformation;
private final Map<Class<? extends Service>, Service> services = new ConcurrentHashMap<>();
@@ -67,7 +67,7 @@ public class DefaultSession extends AbstractSession {
@Nonnull RepositorySystem repositorySystem,
@Nullable List<RemoteRepository> repositories,
@Nonnull MavenRepositorySystem mavenRepositorySystem,
- @Nonnull PlexusContainer container,
+ @Nonnull Lookup lookup,
@Nonnull RuntimeInformation runtimeInformation) {
this.mavenSession = nonNull(session);
this.session = mavenSession.getRepositorySession();
@@ -78,7 +78,7 @@ public class DefaultSession extends AbstractSession {
mavenSession.getRequest().getRemoteRepositories(),
r -> getRemoteRepository(RepositoryUtils.toRepo(r)));
this.mavenRepositorySystem = mavenRepositorySystem;
- this.container = container;
+ this.lookup = lookup;
this.runtimeInformation = runtimeInformation;
}
@@ -154,11 +154,11 @@ public class DefaultSession extends AbstractSession {
public Map<String, Object> getPluginContext(Project project) {
nonNull(project, "project");
try {
- MojoExecution mojoExecution = container.lookup(MojoExecution.class);
+ MojoExecution mojoExecution = lookup.lookup(MojoExecution.class);
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
PluginDescriptor pluginDescriptor = mojoDescriptor.getPluginDescriptor();
return mavenSession.getPluginContext(pluginDescriptor, ((DefaultProject) project).getProject());
- } catch (ComponentLookupException e) {
+ } catch (LookupException e) {
throw new MavenException("The PluginContext is only available during a mojo execution", e);
}
}
@@ -208,14 +208,14 @@ public class DefaultSession extends AbstractSession {
new DefaultRepositorySystemSession(session).setLocalRepositoryManager(localRepositoryManager);
MavenSession newSession = new MavenSession(repoSession, mavenSession.getRequest(), mavenSession.getResult());
return new DefaultSession(
- newSession, repositorySystem, repositories, mavenRepositorySystem, container, runtimeInformation);
+ newSession, repositorySystem, repositories, mavenRepositorySystem, lookup, runtimeInformation);
}
@Nonnull
@Override
public Session withRemoteRepositories(@Nonnull List<RemoteRepository> repositories) {
return new DefaultSession(
- mavenSession, repositorySystem, repositories, mavenRepositorySystem, container, runtimeInformation);
+ mavenSession, repositorySystem, repositories, mavenRepositorySystem, lookup, runtimeInformation);
}
@Nonnull
@@ -231,8 +231,8 @@ public class DefaultSession extends AbstractSession {
private Service lookup(Class<? extends Service> c) {
try {
- return container.lookup(c);
- } catch (ComponentLookupException e) {
+ return lookup.lookup(c);
+ } catch (LookupException e) {
NoSuchElementException nsee = new NoSuchElementException(c.getName());
e.initCause(e);
throw nsee;
diff --git a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSessionFactory.java
index e727a345d3..db81236abd 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultSessionFactory.java
@@ -23,10 +23,10 @@ import javax.inject.Named;
import javax.inject.Singleton;
import org.apache.maven.api.Session;
+import org.apache.maven.api.services.Lookup;
import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.rtinfo.RuntimeInformation;
-import org.codehaus.plexus.PlexusContainer;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.SessionData;
@@ -35,7 +35,7 @@ import org.eclipse.aether.SessionData;
public class DefaultSessionFactory {
private final RepositorySystem repositorySystem;
private final MavenRepositorySystem mavenRepositorySystem;
- private final PlexusContainer plexusContainer;
+ private final Lookup lookup;
private final RuntimeInformation runtimeInformation;
@Inject
@@ -43,11 +43,11 @@ public class DefaultSessionFactory {
public DefaultSessionFactory(
RepositorySystem repositorySystem,
MavenRepositorySystem mavenRepositorySystem,
- PlexusContainer plexusContainer,
+ Lookup lookup,
RuntimeInformation runtimeInformation) {
this.repositorySystem = repositorySystem;
this.mavenRepositorySystem = mavenRepositorySystem;
- this.plexusContainer = plexusContainer;
+ this.lookup = lookup;
this.runtimeInformation = runtimeInformation;
}
@@ -58,6 +58,6 @@ public class DefaultSessionFactory {
private Session newSession(MavenSession mavenSession) {
return new DefaultSession(
- mavenSession, repositorySystem, null, mavenRepositorySystem, plexusContainer, runtimeInformation);
+ mavenSession, repositorySystem, null, mavenRepositorySystem, lookup, runtimeInformation);
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java b/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java
index f001fdd712..70cfec6b86 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java
@@ -26,7 +26,6 @@ import java.nio.file.Path;
import org.apache.maven.api.model.Model;
import org.apache.maven.model.building.ModelBuildingException;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.eclipse.aether.RepositorySystemSession;
/**
@@ -36,5 +35,5 @@ import org.eclipse.aether.RepositorySystemSession;
interface ConsumerPomBuilder {
Model build(RepositorySystemSession session, MavenProject project, Path src)
- throws ModelBuildingException, ComponentLookupException, IOException, XMLStreamException;
+ throws ModelBuildingException, IOException, XMLStreamException;
}
diff --git a/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java b/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
index f0d6c04266..fe8776884f 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
@@ -41,7 +41,6 @@ import org.apache.maven.model.building.ModelBuildingException;
import org.apache.maven.model.v4.MavenStaxWriter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.ProjectArtifact;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
@@ -113,7 +112,7 @@ class DefaultConsumerPomArtifactTransformer implements ConsumerPomArtifactTransf
}
void transform(MavenProject project, RepositorySystemSession session, Path src, Path tgt)
- throws ModelBuildingException, ComponentLookupException, XMLStreamException, IOException {
+ throws ModelBuildingException, XMLStreamException, IOException {
Model model = builder.build(session, project, src);
write(model, tgt);
}
diff --git a/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java b/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java
index 5800048bc4..bcd3fae734 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java
@@ -35,7 +35,6 @@ import org.apache.maven.artifact.DefaultArtifact;
import org.apache.maven.internal.transformation.TransformationFailedException;
import org.apache.maven.model.building.ModelBuildingException;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.eclipse.aether.RepositorySystemSession;
/**
@@ -97,18 +96,13 @@ class TransformedArtifact extends DefaultArtifact {
return null;
}
return target.toFile();
- } catch (IOException
- | NoSuchAlgorithmException
- | XMLStreamException
- | ModelBuildingException
- | ComponentLookupException e) {
+ } catch (IOException | NoSuchAlgorithmException | XMLStreamException | ModelBuildingException e) {
throw new TransformationFailedException(e);
}
}
private String mayUpdate()
- throws IOException, NoSuchAlgorithmException, XMLStreamException, ModelBuildingException,
- ComponentLookupException {
+ throws IOException, NoSuchAlgorithmException, XMLStreamException, ModelBuildingException {
String result;
Path src = sourcePathProvider.get();
if (src == null) {
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
index 8361ad6b6f..5e9bd430fd 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
@@ -31,7 +31,6 @@ import org.apache.maven.execution.MavenSession;
import org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator;
import org.apache.maven.lifecycle.internal.LifecycleStarter;
import org.apache.maven.lifecycle.internal.LifecycleTaskSegmentCalculator;
-import org.apache.maven.lifecycle.internal.MojoDescriptorCreator;
import org.apache.maven.lifecycle.internal.MojoExecutor;
import org.apache.maven.lifecycle.internal.ProjectIndex;
import org.apache.maven.lifecycle.internal.TaskSegment;
@@ -49,7 +48,7 @@ import org.apache.maven.project.MavenProject;
/**
* A facade that provides lifecycle services to components outside maven core.
- *
+ * <p>
* Note that this component is not normally used from within core itself.
*
*/
@@ -63,7 +62,6 @@ public class DefaultLifecycleExecutor implements LifecycleExecutor {
private final LifecycleExecutionPlanCalculator lifecycleExecutionPlanCalculator;
private final MojoExecutor mojoExecutor;
private final LifecycleStarter lifecycleStarter;
- private final MojoDescriptorCreator mojoDescriptorCreator;
@Inject
public DefaultLifecycleExecutor(
@@ -72,15 +70,13 @@ public class DefaultLifecycleExecutor implements LifecycleExecutor {
LifecycleTaskSegmentCalculator lifecycleTaskSegmentCalculator,
LifecycleExecutionPlanCalculator lifecycleExecutionPlanCalculator,
MojoExecutor mojoExecutor,
- LifecycleStarter lifecycleStarter,
- MojoDescriptorCreator mojoDescriptorCreator) {
+ LifecycleStarter lifecycleStarter) {
this.lifeCyclePluginAnalyzer = lifeCyclePluginAnalyzer;
this.defaultLifeCycles = defaultLifeCycles;
this.lifecycleTaskSegmentCalculator = lifecycleTaskSegmentCalculator;
this.lifecycleExecutionPlanCalculator = lifecycleExecutionPlanCalculator;
this.mojoExecutor = mojoExecutor;
this.lifecycleStarter = lifecycleStarter;
- this.mojoDescriptorCreator = mojoDescriptorCreator;
}
public void execute(MavenSession session) {
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
index 76cb5a0e5a..ed9313db75 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
@@ -30,8 +30,8 @@ import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.apache.maven.api.services.Lookup;
+import org.apache.maven.api.services.LookupException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,26 +49,26 @@ public class DefaultLifecycles {
// @Configuration(source="org/apache/maven/lifecycle/lifecycles.xml")
- private final PlexusContainer plexusContainer;
+ private final Lookup lookup;
private Map<String, Lifecycle> customLifecycles;
public DefaultLifecycles() {
- this.plexusContainer = null;
+ this.lookup = null;
}
/**
- * @deprecated Rely on {@link #DefaultLifecycles(PlexusContainer)} instead
+ * @deprecated Rely on {@link #DefaultLifecycles(Lookup)} instead
*/
@Deprecated
public DefaultLifecycles(Map<String, Lifecycle> lifecycles, org.codehaus.plexus.logging.Logger logger) {
this.customLifecycles = lifecycles;
- this.plexusContainer = null;
+ this.lookup = null;
}
@Inject
- public DefaultLifecycles(PlexusContainer plexusContainer) {
- this.plexusContainer = plexusContainer;
+ public DefaultLifecycles(Lookup lookup) {
+ this.lookup = lookup;
}
/**
@@ -143,14 +143,14 @@ public class DefaultLifecycles {
private Map<String, Lifecycle> lookupLifecycles() {
// TODO: Remove the following code when maven-compat is gone
// This code is here to ensure maven-compat's EmptyLifecycleExecutor keeps on working.
- if (plexusContainer == null) {
+ if (lookup == null) {
return customLifecycles != null ? customLifecycles : new HashMap<>();
}
// Lifecycles cannot be cached as extensions might add custom lifecycles later in the execution.
try {
- return plexusContainer.lookupMap(Lifecycle.class);
- } catch (ComponentLookupException e) {
+ return lookup.lookupMap(Lifecycle.class);
+ } catch (LookupException e) {
throw new IllegalStateException("Unable to lookup lifecycles from the plexus container", e);
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java b/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
index e3d14977e5..e0f26f8b35 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
@@ -118,10 +118,7 @@ public class MavenExecutionPlan implements Iterable<ExecutionPlanItem> {
List<ExecutionPlanItem> planItems) {
LinkedHashSet<String> result = new LinkedHashSet<>();
for (ExecutionPlanItem executionPlanItem : planItems) {
- final String phase = executionPlanItem.getLifecyclePhase();
- if (!result.contains(phase)) {
- result.add(phase);
- }
+ result.add(executionPlanItem.getLifecyclePhase());
}
return result;
}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildThreadFactory.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildThreadFactory.java
index f0886b61e9..7f55ba972f 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildThreadFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildThreadFactory.java
@@ -29,6 +29,7 @@ public class BuildThreadFactory implements ThreadFactory {
private static final String PREFIX = "BuilderThread";
+ @Override
public Thread newThread(Runnable r) {
return new Thread(r, String.format("%s-%d", PREFIX, id.getAndIncrement()));
}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/CompoundProjectExecutionListener.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/CompoundProjectExecutionListener.java
index 515c53e902..34cee12b95 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/CompoundProjectExecutionListener.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/CompoundProjectExecutionListener.java
@@ -31,24 +31,28 @@ class CompoundProjectExecutionListener implements ProjectExecutionListener {
this.listeners = listeners; // NB this is live injected collection
}
+ @Override
public void beforeProjectExecution(ProjectExecutionEvent event) throws LifecycleExecutionException {
for (ProjectExecutionListener listener : listeners) {
listener.beforeProjectExecution(event);
}
}
+ @Override
public void beforeProjectLifecycleExecution(ProjectExecutionEvent event) throws LifecycleExecutionException {
for (ProjectExecutionListener listener : listeners) {
listener.beforeProjectLifecycleExecution(event);
}
}
+ @Override
public void afterProjectExecutionSuccess(ProjectExecutionEvent event) throws LifecycleExecutionException {
for (ProjectExecutionListener listener : listeners) {
listener.afterProjectExecutionSuccess(event);
}
}
+ @Override
public void afterProjectExecutionFailure(ProjectExecutionEvent event) {
for (ProjectExecutionListener listener : listeners) {
listener.afterProjectExecutionFailure(event);
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEvent.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEvent.java
index a657e63248..1363a6fb9b 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEvent.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEvent.java
@@ -44,22 +44,27 @@ class DefaultExecutionEvent implements ExecutionEvent {
this.exception = exception;
}
+ @Override
public Type getType() {
return type;
}
+ @Override
public MavenSession getSession() {
return session;
}
+ @Override
public MavenProject getProject() {
return session.getCurrentProject();
}
+ @Override
public MojoExecution getMojoExecution() {
return mojoExecution;
}
+ @Override
public Exception getException() {
return exception;
}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEventCatapult.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEventCatapult.java
index 505119a621..ccc03ffc32 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEventCatapult.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEventCatapult.java
@@ -36,10 +36,12 @@ import org.apache.maven.plugin.MojoExecution;
@Singleton
public class DefaultExecutionEventCatapult implements ExecutionEventCatapult {
+ @Override
public void fire(ExecutionEvent.Type eventType, MavenSession session, MojoExecution mojoExecution) {
fire(eventType, session, mojoExecution, null);
}
+ @Override
public void fire(
ExecutionEvent.Type eventType, MavenSession session, MojoExecution mojoExecution, Exception exception) {
ExecutionListener listener = session.getRequest().getExecutionListener();
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
index de72358a8b..da62421e1c 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
@@ -106,8 +106,7 @@ public class DefaultLifecycleExecutionPlanCalculator implements LifecycleExecuti
this.lifecyclePluginResolver = lifecyclePluginResolver;
this.standardDelegate = null;
this.delegates = null;
- this.mojoExecutionConfigurators =
- Collections.singletonMap("default", (MojoExecutionConfigurator) new DefaultMojoExecutionConfigurator());
+ this.mojoExecutionConfigurators = Collections.singletonMap("default", new DefaultMojoExecutionConfigurator());
}
@Override
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java
index 96ba78ed35..6ce06531e5 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java
@@ -60,6 +60,7 @@ public class DefaultLifecycleMappingDelegate implements LifecycleMappingDelegate
this.pluginManager = pluginManager;
}
+ @Override
public Map<String, List<MojoExecution>> calculateLifecycleMappings(
MavenSession session, MavenProject project, Lifecycle lifecycle, String lifecyclePhase)
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
index 652de2ca03..9301355d92 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
@@ -26,9 +26,9 @@ import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.NoSuchElementException;
import java.util.Set;
+import org.apache.maven.api.services.Lookup;
import org.apache.maven.api.xml.XmlNode;
import org.apache.maven.lifecycle.DefaultLifecycles;
import org.apache.maven.lifecycle.LifeCyclePluginAnalyzer;
@@ -40,8 +40,6 @@ import org.apache.maven.model.InputLocation;
import org.apache.maven.model.InputSource;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -62,14 +60,13 @@ public class DefaultLifecyclePluginAnalyzer implements LifeCyclePluginAnalyzer {
private final Logger logger = LoggerFactory.getLogger(getClass());
- private final PlexusContainer plexusContainer;
+ private final Lookup lookup;
private final DefaultLifecycles defaultLifeCycles;
@Inject
- public DefaultLifecyclePluginAnalyzer(
- final PlexusContainer plexusContainer, final DefaultLifecycles defaultLifeCycles) {
- this.plexusContainer = requireNonNull(plexusContainer);
+ public DefaultLifecyclePluginAnalyzer(Lookup lookup, DefaultLifecycles defaultLifeCycles) {
+ this.lookup = requireNonNull(lookup);
this.defaultLifeCycles = requireNonNull(defaultLifeCycles);
}
@@ -129,14 +126,7 @@ public class DefaultLifecyclePluginAnalyzer implements LifeCyclePluginAnalyzer {
* from current module and for example not extensions coming from other modules.
*/
private LifecycleMapping lookupLifecycleMapping(final String packaging) {
- try {
- return plexusContainer.lookup(LifecycleMapping.class, packaging);
- } catch (ComponentLookupException e) {
- if (e.getCause() instanceof NoSuchElementException) {
- return null;
- }
- throw new RuntimeException(e);
- }
+ return lookup.lookupOptional(LifecycleMapping.class, packaging).orElse(null);
}
private void parseLifecyclePhaseDefinitions(Map<Plugin, Plugin> plugins, String phase, LifecyclePhase goals) {
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
index 78dc0b7728..39faca5300 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
@@ -40,6 +40,8 @@ import org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException;
import org.apache.maven.plugin.version.PluginVersionResolutionException;
import org.apache.maven.project.MavenProject;
+import static java.util.Objects.requireNonNull;
+
/**
* <p>
* Calculates the task segments in the build
@@ -62,6 +64,7 @@ public class DefaultLifecycleTaskSegmentCalculator implements LifecycleTaskSegme
this.lifecyclePluginResolver = lifecyclePluginResolver;
}
+ @Override
public List<TaskSegment> calculateTaskSegments(MavenSession session)
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException,
@@ -69,9 +72,9 @@ public class DefaultLifecycleTaskSegmentCalculator implements LifecycleTaskSegme
MavenProject rootProject = session.getTopLevelProject();
- List<String> tasks = session.getGoals();
+ List<String> tasks = requireNonNull(session.getGoals()); // session never returns null, but empty list
- if ((tasks == null || tasks.isEmpty())
+ if (tasks.isEmpty()
&& (rootProject.getDefaultGoal() != null
&& !rootProject.getDefaultGoal().isEmpty())) {
tasks = Stream.of(rootProject.getDefaultGoal().split("\\s+"))
@@ -82,6 +85,7 @@ public class DefaultLifecycleTaskSegmentCalculator implements LifecycleTaskSegme
return calculateTaskSegments(session, tasks);
}
+ @Override
public List<TaskSegment> calculateTaskSegments(MavenSession session, List<String> tasks)
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException,
@@ -122,6 +126,7 @@ public class DefaultLifecycleTaskSegmentCalculator implements LifecycleTaskSegme
return taskSegments;
}
+ @Override
public boolean requiresProject(MavenSession session) {
List<String> goals = session.getGoals();
if (goals != null) {
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java
index a00d3b51d1..9bdd750441 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java
@@ -30,6 +30,7 @@ import java.util.stream.Stream;
import org.apache.maven.api.services.MessageBuilder;
import org.apache.maven.api.services.MessageBuilderFactory;
import org.apache.maven.api.xml.XmlNode;
+import org.apache.maven.internal.impl.DefaultMessageBuilderFactory;
import org.apache.maven.internal.xml.XmlNodeImpl;
import org.apache.maven.lifecycle.MojoExecutionConfigurator;
import org.apache.maven.model.Plugin;
@@ -43,6 +44,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static java.util.Arrays.stream;
+import static java.util.Objects.requireNonNull;
/**
* @since 3.3.1, MNG-5753
@@ -52,8 +54,23 @@ import static java.util.Arrays.stream;
public class DefaultMojoExecutionConfigurator implements MojoExecutionConfigurator {
private final Logger logger = LoggerFactory.getLogger(getClass());
+ private final MessageBuilderFactory messageBuilderFactory;
+
+ /**
+ * Default ctor is used in IT and most probably some 3rd party code. For those cases, we do provide sane defaults
+ * but given this is a component, injection should be used, replacing direct instantiation.
+ *
+ * @deprecated Do not use this ctor directly, inject this component instead.
+ */
+ @Deprecated
+ public DefaultMojoExecutionConfigurator() {
+ this.messageBuilderFactory = new DefaultMessageBuilderFactory();
+ }
+
@Inject
- MessageBuilderFactory messageBuilderFactory;
+ public DefaultMojoExecutionConfigurator(MessageBuilderFactory messageBuilderFactory) {
+ this.messageBuilderFactory = requireNonNull(messageBuilderFactory);
+ }
@Override
public void configure(MavenProject project, MojoExecution mojoExecution, boolean allowPluginLevelConfig) {
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java
index 3a71995baa..b467df6bb7 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java
@@ -18,10 +18,7 @@
*/
package org.apache.maven.lifecycle.internal;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.TreeSet;
+import java.util.*;
import org.apache.maven.project.MavenProject;
@@ -36,8 +33,6 @@ import org.apache.maven.project.MavenProject;
// TODO From a concurrency perspective, this class is not good. The combination of mutable/immutable state is not nice
public class DependencyContext {
- private static final Collection<?> UNRESOLVED = Arrays.asList();
-
private final MavenProject project;
private final Collection<String> scopesToCollectForCurrentProject;
@@ -48,7 +43,7 @@ public class DependencyContext {
private final Collection<String> scopesToResolveForAggregatedProjects;
- private volatile Collection<?> lastDependencyArtifacts = UNRESOLVED;
+ private volatile Collection<?> lastDependencyArtifacts = Collections.emptyList();
private volatile int lastDependencyArtifactCount = -1;
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
index bc571ea74a..525fb59612 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
@@ -346,7 +346,7 @@ public class LifecycleDependencyResolver {
private static class ReactorDependencyFilter implements DependencyFilter {
- private Set<String> keys = new HashSet<>();
+ private final Set<String> keys = new HashSet<>();
ReactorDependencyFilter(Collection<Artifact> artifacts) {
for (Artifact artifact : artifacts) {
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
index caec1dc9aa..842410ca4d 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
@@ -35,7 +35,6 @@ import org.apache.maven.lifecycle.MavenExecutionPlan;
import org.apache.maven.lifecycle.internal.builder.BuilderCommon;
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.session.scope.internal.SessionScope;
/**
* <p>
@@ -54,7 +53,6 @@ public class LifecycleModuleBuilder {
private final ExecutionEventCatapult eventCatapult;
private final ProjectExecutionListener projectExecutionListener;
private final ConsumerPomArtifactTransformer consumerPomArtifactTransformer;
- private final SessionScope sessionScope;
@Inject
public LifecycleModuleBuilder(
@@ -62,14 +60,12 @@ public class LifecycleModuleBuilder {
BuilderCommon builderCommon,
ExecutionEventCatapult eventCatapult,
List<ProjectExecutionListener> listeners,
- ConsumerPomArtifactTransformer consumerPomArtifactTransformer,
- SessionScope sessionScope) {
+ ConsumerPomArtifactTransformer consumerPomArtifactTransformer) {
this.mojoExecutor = mojoExecutor;
this.builderCommon = builderCommon;
this.eventCatapult = eventCatapult;
this.projectExecutionListener = new CompoundProjectExecutionListener(listeners);
this.consumerPomArtifactTransformer = consumerPomArtifactTransformer;
- this.sessionScope = sessionScope;
}
public void buildProject(
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
index 9bdc59a0c6..b17f6b8099 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
@@ -58,8 +58,6 @@ public class LifecycleStarter {
private final Map<String, Builder> builders;
- private final SessionScope sessionScope;
-
@Inject
public LifecycleStarter(
ExecutionEventCatapult eventCatapult,
@@ -75,7 +73,6 @@ public class LifecycleStarter {
this.lifecycleDebugLogger = lifecycleDebugLogger;
this.lifecycleTaskSegmentCalculator = lifecycleTaskSegmentCalculator;
this.builders = builders;
- this.sessionScope = sessionScope;
}
public void execute(MavenSession session) {
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
index 1557879dca..b380123955 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
@@ -231,7 +231,7 @@ public class MojoDescriptorCreator {
}
return pluginManager.getMojoDescriptor(
- plugin, goal.toString(), project.getRemotePluginRepositories(), session.getRepositorySession());
+ plugin, goal, project.getRemotePluginRepositories(), session.getRepositorySession());
}
// TODO take repo mans into account as one may be aggregating prefixes of many
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java
index 8b2a9aeb81..1e1719eda0 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java
@@ -76,6 +76,7 @@ public class ProjectBuildList implements Iterable<ProjectSegment> {
.orElse(null);
}
+ @Override
public Iterator<ProjectSegment> iterator() {
return items.iterator();
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginConfigurationException.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginConfigurationException.java
index 408e9c7119..616f95c4cf 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginConfigurationException.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginConfigurationException.java
@@ -42,24 +42,36 @@ public class PluginConfigurationException extends Exception {
this.originalMessage = originalMessage;
}
+ /**
+ * Ctor left for binary compatibility.
+ *
+ * @deprecated Use {@link #PluginConfigurationException(PluginDescriptor, String, Throwable)}
+ */
+ @Deprecated
public PluginConfigurationException(
PluginDescriptor pluginDescriptor, String originalMessage, ExpressionEvaluationException cause) {
- super(originalMessage, cause);
- this.pluginDescriptor = pluginDescriptor;
- this.originalMessage = originalMessage;
+ this(pluginDescriptor, originalMessage, (Throwable) cause);
}
+ /**
+ * Ctor left for binary compatibility.
+ *
+ * @deprecated Use {@link #PluginConfigurationException(PluginDescriptor, String, Throwable)}
+ */
+ @Deprecated
public PluginConfigurationException(
PluginDescriptor pluginDescriptor, String originalMessage, ComponentConfigurationException cause) {
- super(originalMessage, cause);
- this.pluginDescriptor = pluginDescriptor;
- this.originalMessage = originalMessage;
+ this(pluginDescriptor, originalMessage, (Throwable) cause);
}
+ /**
+ * Ctor left for binary compatibility.
+ *
+ * @deprecated Use {@link #PluginConfigurationException(PluginDescriptor, String, Throwable)}
+ */
+ @Deprecated
public PluginConfigurationException(
PluginDescriptor pluginDescriptor, String originalMessage, ComponentLookupException cause) {
- super(originalMessage, cause);
- this.pluginDescriptor = pluginDescriptor;
- this.originalMessage = originalMessage;
+ this(pluginDescriptor, originalMessage, (Throwable) cause);
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginContainerException.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginContainerException.java
index 27bde882cd..55ac337cdd 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginContainerException.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginContainerException.java
@@ -58,18 +58,26 @@ public class PluginContainerException extends PluginManagerException {
this.pluginRealm = pluginRealm;
}
+ /**
+ * Ctor left for binary compatibility.
+ *
+ * @deprecated Use {@link #PluginContainerException(Plugin, ClassRealm, String, Throwable)}
+ */
+ @Deprecated
public PluginContainerException(
Plugin plugin, ClassRealm pluginRealm, String message, PlexusConfigurationException e) {
- super(plugin, message, e);
-
- this.pluginRealm = pluginRealm;
+ this(plugin, pluginRealm, message, (Throwable) e);
}
+ /**
+ * Ctor left for binary compatibility.
+ *
+ * @deprecated Use {@link #PluginContainerException(Plugin, ClassRealm, String, Throwable)}
+ */
+ @Deprecated
public PluginContainerException(
Plugin plugin, ClassRealm pluginRealm, String message, ComponentRepositoryException e) {
- super(plugin, message, e);
-
- this.pluginRealm = pluginRealm;
+ this(plugin, pluginRealm, message, (Throwable) e);
}
public ClassRealm getPluginRealm() {
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/PluginManagerException.java b/maven-core/src/main/java/org/apache/maven/plugin/PluginManagerException.java
index dd00d94ec1..f3fd390fc0 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/PluginManagerException.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/PluginManagerException.java
@@ -30,7 +30,6 @@ import org.codehaus.plexus.configuration.PlexusConfigurationException;
/**
* Exception in the plugin manager.
- *
*/
public class PluginManagerException extends Exception {
@@ -96,20 +95,24 @@ public class PluginManagerException extends Exception {
pluginVersion = plugin.getVersion();
}
+ /**
+ * Constructor.
+ *
+ * @deprecated Left for binary compatibility.
+ */
+ @Deprecated
public PluginManagerException(Plugin plugin, String message, PlexusConfigurationException cause) {
- super(message, cause);
-
- pluginGroupId = plugin.getGroupId();
- pluginArtifactId = plugin.getArtifactId();
- pluginVersion = plugin.getVersion();
+ this(plugin, message, (Throwable) cause);
}
+ /**
+ * Constructor.
+ *
+ * @deprecated Left for binary compatibility.
+ */
+ @Deprecated
public PluginManagerException(Plugin plugin, String message, ComponentRepositoryException cause) {
- super(message, cause);
-
- pluginGroupId = plugin.getGroupId();
- pluginArtifactId = plugin.getArtifactId();
- pluginVersion = plugin.getVersion();
+ this(plugin, message, (Throwable) cause);
}
public PluginManagerException(
@@ -137,12 +140,14 @@ public class PluginManagerException extends Exception {
goal = mojoDescriptor.getGoal();
}
+ /**
+ * Constructor.
+ *
+ * @deprecated Left for binary compatibility.
+ */
+ @Deprecated
public PluginManagerException(Plugin plugin, String message, PlexusContainerException cause) {
- super(message, cause);
-
- pluginGroupId = plugin.getGroupId();
- pluginArtifactId = plugin.getArtifactId();
- pluginVersion = plugin.getVersion();
+ this(plugin, message, (Throwable) cause);
}
public PluginManagerException(Plugin plugin, String message, MavenProject project) {
diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
index e1f046742a..22019842f1 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
@@ -45,6 +45,7 @@ import org.apache.maven.api.xml.XmlNode;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.classrealm.ClassRealmManager;
import org.apache.maven.execution.MavenSession;
+import org.apache.maven.execution.scope.internal.MojoExecutionScope;
import org.apache.maven.execution.scope.internal.MojoExecutionScopeModule;
import org.apache.maven.internal.impl.DefaultMojoExecution;
import org.apache.maven.internal.impl.InternalSession;
@@ -83,6 +84,7 @@ import org.apache.maven.plugin.version.PluginVersionResolver;
import org.apache.maven.project.ExtensionDescriptor;
import org.apache.maven.project.ExtensionDescriptorBuilder;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.session.scope.internal.SessionScope;
import org.apache.maven.session.scope.internal.SessionScopeModule;
import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.PlexusContainer;
@@ -450,8 +452,8 @@ public class DefaultMavenPluginManager implements MavenPluginManager {
}
}
},
- new SessionScopeModule(container),
- new MojoExecutionScopeModule(container),
+ new SessionScopeModule(container.lookup(SessionScope.class)),
+ new MojoExecutionScopeModule(container.lookup(MojoExecutionScope.class)),
new PluginConfigurationModule(plugin.getDelegate()));
} catch (ComponentLookupException | CycleDetectedInComponentGraphException e) {
throw new PluginContainerException(
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
index aac66e674e..345ffeb658 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
@@ -49,7 +49,6 @@ import org.apache.maven.plugin.MavenPluginManager;
import org.apache.maven.plugin.PluginManagerException;
import org.apache.maven.plugin.PluginResolutionException;
import org.apache.maven.plugin.version.PluginVersionResolutionException;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.eclipse.aether.graph.DependencyFilter;
@@ -67,7 +66,6 @@ import org.slf4j.LoggerFactory;
@Singleton
public class DefaultProjectBuildingHelper implements ProjectBuildingHelper {
private final Logger logger = LoggerFactory.getLogger(getClass());
- private final PlexusContainer container; // TODO not used? Then remove
private final ClassRealmManager classRealmManager;
private final ProjectRealmCache projectRealmCache;
private final MavenRepositorySystem repositorySystem;
@@ -75,12 +73,10 @@ public class DefaultProjectBuildingHelper implements ProjectBuildingHelper {
@Inject
public DefaultProjectBuildingHelper(
- PlexusContainer container,
ClassRealmManager classRealmManager,
ProjectRealmCache projectRealmCache,
MavenRepositorySystem repositorySystem,
MavenPluginManager pluginManager) {
- this.container = container;
this.classRealmManager = classRealmManager;
this.projectRealmCache = projectRealmCache;
this.repositorySystem = repositorySystem;
diff --git a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java
index 7325dfccd7..5adcd0bd25 100644
--- a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java
+++ b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java
@@ -26,8 +26,6 @@ import org.apache.maven.SessionScoped;
import org.apache.maven.api.Session;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.internal.impl.InternalSession;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
/**
* SessionScopeModule
@@ -41,11 +39,7 @@ public class SessionScopeModule extends AbstractModule {
this(new SessionScope());
}
- public SessionScopeModule(PlexusContainer container) throws ComponentLookupException {
- this(container.lookup(SessionScope.class));
- }
-
- private SessionScopeModule(SessionScope scope) {
+ public SessionScopeModule(SessionScope scope) {
this.scope = scope;
}
diff --git a/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java b/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java
index f4ce6b1b1b..2e6846d8e3 100644
--- a/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java
+++ b/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java
@@ -114,7 +114,7 @@ class TestApi {
repositorySystem,
Collections.emptyList(),
mavenRepositorySystem,
- plexusContainer,
+ new DefaultLookup(plexusContainer),
runtimeInformation);
DefaultLocalRepository localRepository =
new DefaultLocalRepository(new LocalRepository("target/test-classes/apiv4-repo"));
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
index 584c258ddd..fe42923898 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+import org.apache.maven.internal.impl.DefaultLookup;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.testing.PlexusTest;
@@ -93,7 +94,7 @@ class DefaultLifecyclesTest {
PlexusContainer mockedPlexusContainer = mock(PlexusContainer.class);
when(mockedPlexusContainer.lookupMap(Lifecycle.class)).thenReturn(lifeCycles);
- DefaultLifecycles dl = new DefaultLifecycles(mockedPlexusContainer);
+ DefaultLifecycles dl = new DefaultLifecycles(new DefaultLookup(mockedPlexusContainer));
assertThat(dl.getLifeCycles().get(0).getId(), is("clean"));
assertThat(dl.getLifeCycles().get(1).getId(), is("default"));
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java
index 98548004f1..9260b8332c 100644
--- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java
@@ -24,6 +24,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.apache.maven.internal.impl.DefaultLookup;
import org.apache.maven.lifecycle.DefaultLifecycles;
import org.apache.maven.lifecycle.Lifecycle;
import org.codehaus.plexus.PlexusContainer;
@@ -70,6 +71,6 @@ public class DefaultLifecyclesStub {
PlexusContainer mockedContainer = mock(PlexusContainer.class);
when(mockedContainer.lookupMap(Lifecycle.class)).thenReturn(lifeCycles);
- return new DefaultLifecycles(mockedContainer);
+ return new DefaultLifecycles(new DefaultLookup(mockedContainer));
}
}
diff --git a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java
index eb67659913..7a83279f4f 100644
--- a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java
+++ b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java
@@ -44,10 +44,7 @@ import org.apache.maven.execution.DefaultMavenExecutionRequest;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
-import org.apache.maven.internal.impl.AbstractSession;
-import org.apache.maven.internal.impl.DefaultMojoExecution;
-import org.apache.maven.internal.impl.DefaultProject;
-import org.apache.maven.internal.impl.DefaultSession;
+import org.apache.maven.internal.impl.*;
import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.DefaultModelBuildingRequest;
@@ -394,8 +391,8 @@ public class PluginParameterExpressionEvaluatorV4Test extends AbstractCoreMavenC
mavenSession.getRequest().setRootDirectory(rootDirectory);
mavenSession.getRequest().setTopDirectory(rootDirectory);
- DefaultSession session =
- new DefaultSession(mavenSession, mock(RepositorySystem.class), null, null, container, null);
+ DefaultSession session = new DefaultSession(
+ mavenSession, mock(RepositorySystem.class), null, null, new DefaultLookup(container), null);
MojoExecution mojoExecution = newMojoExecution(session);
@@ -434,8 +431,8 @@ public class PluginParameterExpressionEvaluatorV4Test extends AbstractCoreMavenC
}
private DefaultSession newSession() throws Exception {
- DefaultSession session =
- new DefaultSession(newMavenSession(), mock(RepositorySystem.class), null, null, container, null);
+ DefaultSession session = new DefaultSession(
+ newMavenSession(), mock(RepositorySystem.class), null, null, new DefaultLookup(container), null);
return session;
}
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index a2b51a9c47..9ecd9685ff 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -79,6 +79,7 @@ import org.apache.maven.execution.MavenExecutionRequestPopulator;
import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.execution.ProfileActivation;
import org.apache.maven.execution.ProjectActivation;
+import org.apache.maven.execution.scope.internal.MojoExecutionScope;
import org.apache.maven.execution.scope.internal.MojoExecutionScopeModule;
import org.apache.maven.extension.internal.CoreExports;
import org.apache.maven.extension.internal.CoreExtensionEntry;
@@ -90,6 +91,7 @@ import org.apache.maven.model.root.RootLocator;
import org.apache.maven.project.MavenProject;
import org.apache.maven.properties.internal.EnvironmentUtils;
import org.apache.maven.properties.internal.SystemProperties;
+import org.apache.maven.session.scope.internal.SessionScope;
import org.apache.maven.session.scope.internal.SessionScopeModule;
import org.apache.maven.toolchain.building.DefaultToolchainsBuildingRequest;
import org.apache.maven.toolchain.building.ToolchainsBuilder;
@@ -705,8 +707,8 @@ public class MavenCli {
for (CoreExtensionEntry extension : extensions) {
container.discoverComponents(
extension.getClassRealm(),
- new SessionScopeModule(container),
- new MojoExecutionScopeModule(container),
+ new SessionScopeModule(container.lookup(SessionScope.class)),
+ new MojoExecutionScopeModule(container.lookup(MojoExecutionScope.class)),
new ExtensionConfigurationModule(extension, extensionSource));
}