[MPLUGINTESTING-89] Upgrade Maven from 4.0.0-alpha-4 to 4.0.0-alpha-8 (#33)

diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java
index 433386a..b3624cf 100644
--- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java
+++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java
@@ -41,8 +41,9 @@
     private Model model = Model.newInstance();
     private Path basedir;
     private File pomPath;
-    private boolean executionRoot;
+    private boolean topProject;
     private Artifact artifact;
+    private Path rootDirectory;
 
     public void setModel(Model model) {
         this.model = model;
@@ -117,7 +118,7 @@
 
     @Override
     public boolean isExecutionRoot() {
-        return executionRoot;
+        return isTopProject();
     }
 
     @Override
@@ -135,6 +136,21 @@
         return Collections.emptyList();
     }
 
+    @Override
+    public boolean isTopProject() {
+        return topProject;
+    }
+
+    @Override
+    public boolean isRootProject() {
+        return model.isRoot();
+    }
+
+    @Override
+    public Path getRootDirectory() {
+        return rootDirectory;
+    }
+
     public void setGroupId(String groupId) {
         model = model.withGroupId(groupId);
     }
@@ -163,11 +179,15 @@
         this.pomPath = pomPath;
     }
 
-    public void setExecutionRoot(boolean executionRoot) {
-        this.executionRoot = executionRoot;
+    public void setTopProject(boolean topProject) {
+        this.topProject = topProject;
     }
 
     public void setMavenModel(org.apache.maven.model.Model model) {
         this.model = model.getDelegate();
     }
+
+    public void setRootDirectory(Path rootDirectory) {
+        this.rootDirectory = rootDirectory;
+    }
 }
diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java
index 6e069c0..2b05567 100644
--- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java
+++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/stubs/SessionStub.java
@@ -50,7 +50,7 @@
 import org.apache.maven.api.services.RepositoryFactory;
 import org.apache.maven.api.services.xml.ModelXmlFactory;
 import org.apache.maven.internal.impl.DefaultModelXmlFactory;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.model.v4.MavenStaxReader;
 import org.mockito.ArgumentMatchers;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -185,9 +185,7 @@
         when(projectBuilder.build(any(ProjectBuilderRequest.class))).then(iom -> {
             ProjectBuilderRequest request = iom.getArgument(0, ProjectBuilderRequest.class);
             ProjectBuilderResult result = mock(ProjectBuilderResult.class);
-            Model model = new MavenXpp3Reader()
-                    .read(request.getSource().get().getInputStream())
-                    .getDelegate();
+            Model model = new MavenStaxReader().read(request.getSource().get().openStream());
             ProjectStub projectStub = new ProjectStub();
             projectStub.setModel(model);
             ArtifactStub artifactStub = new ArtifactStub(
diff --git a/maven-plugin-testing-harness/src/test/java/org/apache/maven/api/plugin/testing/ExpressionEvaluatorTest.java b/maven-plugin-testing-harness/src/test/java/org/apache/maven/api/plugin/testing/ExpressionEvaluatorTest.java
index 5003b47..9869aeb 100644
--- a/maven-plugin-testing-harness/src/test/java/org/apache/maven/api/plugin/testing/ExpressionEvaluatorTest.java
+++ b/maven-plugin-testing-harness/src/test/java/org/apache/maven/api/plugin/testing/ExpressionEvaluatorTest.java
@@ -89,7 +89,7 @@
         Session session = SessionStub.getMockSession(LOCAL_REPO);
         doReturn(new Properties()).when(session).getSystemProperties();
         doReturn(new Properties()).when(session).getUserProperties();
-        doAnswer(iom -> Paths.get(MojoExtension.getBasedir())).when(session).getExecutionRootDirectory();
+        doAnswer(iom -> Paths.get(MojoExtension.getBasedir())).when(session).getRootDirectory();
         return session;
     }
 }
diff --git a/pom.xml b/pom.xml
index 515c9e5..2c5b183 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,7 +65,7 @@
 
   <properties>
     <surefire.version>3.2.1</surefire.version>
-    <mavenVersion>4.0.0-alpha-4</mavenVersion>
+    <mavenVersion>4.0.0-alpha-8</mavenVersion>
     <maven.site.path>plugin-testing-archives/LATEST</maven.site.path>
     <javaVersion>8</javaVersion>
     <project.build.outputTimestamp>2023-02-15T20:04:02Z</project.build.outputTimestamp>