From 3a5a40c6d23bc4af7ab7945eaac0fa689d2c6143 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Tue, 15 Mar 2022 06:55:50 +0100 Subject: [PATCH] [MNG-7391] Fix MojosExecutionStrategy lookup to be able to look into the SessionScope (#692) --- .../maven/lifecycle/internal/MojoExecutor.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java index f81c71376d..2980e88585 100644 --- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java +++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java @@ -38,8 +38,10 @@ import org.apache.maven.plugin.PluginIncompatibleException; import org.apache.maven.plugin.PluginManagerException; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; +import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.util.StringUtils; import org.eclipse.aether.SessionData; @@ -88,7 +90,7 @@ public class MojoExecutor private final ReadWriteLock aggregatorLock = new ReentrantReadWriteLock(); @Requirement - private MojosExecutionStrategy mojosExecutionStrategy; + private PlexusContainer container; public MojoExecutor() { @@ -159,7 +161,16 @@ public class MojoExecutor final PhaseRecorder phaseRecorder = new PhaseRecorder( session.getCurrentProject() ); - mojosExecutionStrategy.execute( mojoExecutions, session, new MojoExecutionRunner() + MojosExecutionStrategy strategy; + try + { + strategy = container.lookup( MojosExecutionStrategy.class ); + } + catch ( ComponentLookupException e ) + { + throw new IllegalStateException( "Unable to lookup MojosExecutionStrategy", e ); + } + strategy.execute( mojoExecutions, session, new MojoExecutionRunner() { @Override public void run( MojoExecution mojoExecution ) throws LifecycleExecutionException