diff --git a/maven-plugin-testing-harness/pom.xml b/maven-plugin-testing-harness/pom.xml
index fc36aea1..af46327d 100644
--- a/maven-plugin-testing-harness/pom.xml
+++ b/maven-plugin-testing-harness/pom.xml
@@ -165,4 +165,13 @@ under the License.
test
+
+
+
+
+ org.eclipse.sisu
+ sisu-maven-plugin
+
+
+
diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java
index bed529e9..268a033f 100644
--- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java
+++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java
@@ -42,6 +42,7 @@
import java.util.Optional;
import java.util.Properties;
import java.util.Set;
+import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -61,6 +62,7 @@
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugin.testing.MojoLogWrapper;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.session.scope.internal.SessionScope;
import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.configurator.BasicComponentConfigurator;
@@ -151,11 +153,19 @@ public void beforeEach(ExtensionContext context) throws Exception {
((DefaultPlexusContainer) plexusContainer).addPlexusInjector(Collections.emptyList(), binder -> {
binder.install(ProviderMethodsModule.forObject(context.getRequiredTestInstance()));
binder.install(new MavenProvidesModule(context.getRequiredTestInstance()));
+ });
+
+ addMock(plexusContainer, Log.class, () -> new MojoLogWrapper(LoggerFactory.getLogger("anonymous")));
+ addMock(plexusContainer, MavenProject.class, this::mockMavenProject);
+ addMock(plexusContainer, MojoExecution.class, this::mockMojoExecution);
+
+ MavenSession mavenSession = addMock(plexusContainer, MavenSession.class, this::mockMavenSession);
+ SessionScope sessionScope = plexusContainer.lookup(SessionScope.class);
+ sessionScope.enter();
+ sessionScope.seed(MavenSession.class, mavenSession);
+
+ ((DefaultPlexusContainer) plexusContainer).addPlexusInjector(Collections.emptyList(), binder -> {
binder.requestInjection(context.getRequiredTestInstance());
- binder.bind(Log.class).toInstance(new MojoLogWrapper(LoggerFactory.getLogger("anonymous")));
- binder.bind(MavenProject.class).toInstance(mockMavenProject());
- binder.bind(MavenSession.class).toInstance(mockMavenSession());
- binder.bind(MojoExecution.class).toInstance(mockMojoExecution());
});
Map