You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2022/02/24 16:05:04 UTC

[maven-filtering] branch mvn4 updated: Switch a few core plugins to the new api

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch mvn4
in repository https://gitbox.apache.org/repos/asf/maven-filtering.git


The following commit(s) were added to refs/heads/mvn4 by this push:
     new ea6b7a0  Switch a few core plugins to the new api
ea6b7a0 is described below

commit ea6b7a09b69bd7d08277129d753a133235448457
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Feb 24 17:00:58 2022 +0100

    Switch a few core plugins to the new api
---
 pom.xml                                            |   2 +-
 .../filtering/AbstractMavenFilteringRequest.java   |  20 ++--
 .../apache/maven/shared/filtering/BaseFilter.java  |  32 ++++---
 .../maven/shared/filtering/DefaultFilterInfo.java  |   8 +-
 .../shared/filtering/DefaultMavenFileFilter.java   |   8 +-
 .../shared/filtering/DefaultMavenReaderFilter.java |   8 +-
 .../filtering/DefaultMavenResourcesFiltering.java  |  12 +--
 .../maven/shared/filtering/MavenFileFilter.java    |  14 +--
 .../shared/filtering/MavenFileFilterRequest.java   |   8 +-
 .../maven/shared/filtering/MavenReaderFilter.java  |  16 ++--
 .../shared/filtering/MavenReaderFilterRequest.java |   8 +-
 .../shared/filtering/MavenResourcesExecution.java  |  26 ++---
 .../filtering/DefaultMavenFileFilterTest.java      |   6 +-
 .../DefaultMavenResourcesFilteringTest.java        |  98 +++++++++----------
 .../maven/shared/filtering/EscapeStringTest.java   |   4 +-
 .../IncrementalResourceFilteringTest.java          |   4 +-
 .../maven/shared/filtering/InvalidMarkTest.java    |   2 +-
 .../MuliLinesMavenResourcesFilteringTest.java      |   4 +-
 .../maven/shared/filtering/StubMavenProject.java   | 106 +++++++++++++++++----
 .../maven/shared/filtering/StubMavenSession.java   |  81 ++++++++++++++--
 .../shared/filtering/TestReflectionProperties.java |   7 +-
 21 files changed, 306 insertions(+), 168 deletions(-)

diff --git a/pom.xml b/pom.xml
index 52414f8..5f2226b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,7 +68,7 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-core</artifactId>
+      <artifactId>maven-core-api</artifactId>
       <version>${mavenVersion}</version>
     </dependency>
     <dependency>
diff --git a/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java b/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java
index 0b10ab8..8ce0b6b 100644
--- a/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java
+++ b/src/main/java/org/apache/maven/shared/filtering/AbstractMavenFilteringRequest.java
@@ -24,8 +24,8 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 
 /**
  * @since 1.0-beta-3
@@ -33,13 +33,13 @@ import org.apache.maven.project.MavenProject;
 public class AbstractMavenFilteringRequest
 {
 
-    private MavenProject mavenProject;
+    private Project mavenProject;
 
     private List<String> filters;
 
     private boolean escapeWindowsPaths = true;
 
-    private MavenSession mavenSession;
+    private Session mavenSession;
 
     /**
      * List of Strings considered as expressions which contains values in the project/pom: pom project Default value
@@ -96,8 +96,8 @@ public class AbstractMavenFilteringRequest
      * @param filters The list of filters.
      * @param mavenSession The MavenSession.
      */
-    protected AbstractMavenFilteringRequest( MavenProject mavenProject, List<String> filters,
-                                             MavenSession mavenSession )
+    protected AbstractMavenFilteringRequest( Project mavenProject, List<String> filters,
+                                             Session mavenSession )
     {
         initDefaults();
         this.mavenProject = mavenProject;
@@ -117,7 +117,7 @@ public class AbstractMavenFilteringRequest
     /**
      * @return The MavenProject
      */
-    public MavenProject getMavenProject()
+    public Project getMavenProject()
     {
         return mavenProject;
     }
@@ -127,7 +127,7 @@ public class AbstractMavenFilteringRequest
      *
      * @param mavenProject The MavenProject to be set.
      */
-    public void setMavenProject( MavenProject mavenProject )
+    public void setMavenProject( Project mavenProject )
     {
         this.mavenProject = mavenProject;
     }
@@ -213,7 +213,7 @@ public class AbstractMavenFilteringRequest
     /**
      * @return Current value of mavenSession
      */
-    public MavenSession getMavenSession()
+    public Session getMavenSession()
     {
         return mavenSession;
     }
@@ -221,7 +221,7 @@ public class AbstractMavenFilteringRequest
     /**
      * @param mavenSession Set new value for the MavenSession of the instance.
      */
-    public void setMavenSession( MavenSession mavenSession )
+    public void setMavenSession( Session mavenSession )
     {
         this.mavenSession = mavenSession;
     }
diff --git a/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java b/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
index be8908f..85032b2 100644
--- a/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/BaseFilter.java
@@ -29,8 +29,8 @@ import java.util.List;
 import java.util.Properties;
 import java.util.TreeSet;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.shared.utils.StringUtils;
 import org.apache.maven.shared.utils.io.FileUtils;
@@ -52,10 +52,10 @@ class BaseFilter
 {
 
     @Override
-    public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final MavenProject mavenProject,
+    public List<FileUtils.FilterWrapper> getDefaultFilterWrappers( final Project mavenProject,
                                                                    List<String> filters,
                                                                    final boolean escapedBackslashesInFilePath,
-                                                                   MavenSession mavenSession,
+                                                                   Session mavenSession,
                                                                    MavenResourcesExecution mavenResourcesExecution )
                                                                        throws MavenFilteringException
     {
@@ -92,8 +92,8 @@ class BaseFilter
         // Project properties
         if ( request.getMavenProject() != null )
         {
-            baseProps.putAll( request.getMavenProject().getProperties() == null ? Collections.emptyMap()
-                            : request.getMavenProject().getProperties() );
+            baseProps.putAll( request.getMavenProject().getModel().getProperties() == null ? Collections.emptyMap()
+                            : request.getMavenProject().getModel().getProperties() );
         }
         // TODO this is NPE free but do we consider this as normal
         // or do we have to throw an MavenFilteringException with mavenSession cannot be null
@@ -118,7 +118,8 @@ class BaseFilter
 
         final Properties filterProperties = new Properties();
 
-        File basedir = request.getMavenProject() != null ? request.getMavenProject().getBasedir() : new File( "." );
+        File basedir = request.getMavenProject() != null
+                ? request.getMavenProject().getBasedir().toFile() : new File( "." );
 
         loadProperties( filterProperties, basedir, request.getFileFilters(), baseProps );
         if ( filterProperties.size() < 1 )
@@ -130,7 +131,8 @@ class BaseFilter
         {
             if ( request.isInjectProjectBuildFilters() )
             {
-                List<String> buildFilters = new ArrayList<>( request.getMavenProject().getBuild().getFilters() );
+                List<String> buildFilters =
+                        new ArrayList<>( request.getMavenProject().getModel().getBuild().getFilters() );
 
                 // JDK-8015656: (coll) unexpected NPE from removeAll
                 if ( request.getFileFilters() != null )
@@ -142,8 +144,8 @@ class BaseFilter
             }
 
             // Project properties
-            filterProperties.putAll( request.getMavenProject().getProperties() == null ? Collections.emptyMap()
-                            : request.getMavenProject().getProperties() );
+            filterProperties.putAll( request.getMavenProject().getModel().getProperties() == null
+                    ? Collections.emptyMap() : request.getMavenProject().getModel().getProperties() );
         }
         if ( request.getMavenSession() != null )
         {
@@ -221,7 +223,7 @@ class BaseFilter
 
         private LinkedHashSet<String> delimiters;
 
-        private MavenProject project;
+        private Project project;
 
         private ValueSource propertiesValueSource;
 
@@ -231,11 +233,11 @@ class BaseFilter
 
         private boolean escapeWindowsPaths;
 
-        private final MavenSession mavenSession;
+        private final Session mavenSession;
 
         private boolean supportMultiLineFiltering;
 
-        Wrapper( LinkedHashSet<String> delimiters, MavenProject project, MavenSession mavenSession,
+        Wrapper( LinkedHashSet<String> delimiters, Project project, Session mavenSession,
                  ValueSource propertiesValueSource, List<String> projectStartExpressions, String escapeString,
                  boolean escapeWindowsPaths, boolean supportMultiLineFiltering )
         {
@@ -282,8 +284,8 @@ class BaseFilter
 
     private static Interpolator createInterpolator( LinkedHashSet<String> delimiters,
                                                     List<String> projectStartExpressions,
-                                                    ValueSource propertiesValueSource, MavenProject project,
-                                                    MavenSession mavenSession, String escapeString,
+                                                    ValueSource propertiesValueSource, Project project,
+                                                    Session mavenSession, String escapeString,
                                                     boolean escapeWindowsPaths )
     {
         MultiDelimiterStringSearchInterpolator interpolator = new MultiDelimiterStringSearchInterpolator();
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultFilterInfo.java b/src/main/java/org/apache/maven/shared/filtering/DefaultFilterInfo.java
index a123123..ae49fc0 100644
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultFilterInfo.java
+++ b/src/main/java/org/apache/maven/shared/filtering/DefaultFilterInfo.java
@@ -21,8 +21,8 @@ package org.apache.maven.shared.filtering;
 
 import java.util.List;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 import org.apache.maven.shared.utils.io.FileUtils;
 
 /**
@@ -41,9 +41,9 @@ public interface DefaultFilterInfo
      * @return {@link java.util.List} of FileUtils.FilterWrapper
      * @since 1.0-beta-2
      */
-    List<FileUtils.FilterWrapper> getDefaultFilterWrappers( MavenProject mavenProject, List<String> filters,
+    List<FileUtils.FilterWrapper> getDefaultFilterWrappers( Project mavenProject, List<String> filters,
                                                             boolean escapedBackslashesInFilePath,
-                                                            MavenSession mavenSession,
+                                                            Session mavenSession,
                                                             MavenResourcesExecution mavenResourcesExecution )
                                                                 throws MavenFilteringException;
 
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
index 3995650..f2d9bb2 100644
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenFileFilter.java
@@ -23,8 +23,8 @@ import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 import org.apache.maven.shared.utils.io.FileUtils;
 import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
 import org.codehaus.plexus.component.annotations.Component;
@@ -47,8 +47,8 @@ public class DefaultMavenFileFilter
     private BuildContext buildContext;
 
     @Override
-    public void copyFile( File from, File to, boolean filtering, MavenProject mavenProject, List<String> filters,
-                          boolean escapedBackslashesInFilePath, String encoding, MavenSession mavenSession )
+    public void copyFile( File from, File to, boolean filtering, Project mavenProject, List<String> filters,
+                          boolean escapedBackslashesInFilePath, String encoding, Session mavenSession )
                               throws MavenFilteringException
     {
         MavenResourcesExecution mre = new MavenResourcesExecution();
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenReaderFilter.java b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenReaderFilter.java
index 9d3566d..ee91e12 100644
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenReaderFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenReaderFilter.java
@@ -23,8 +23,8 @@ import java.io.Reader;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
 import org.codehaus.plexus.component.annotations.Component;
 
@@ -37,8 +37,8 @@ public class DefaultMavenReaderFilter
     implements MavenReaderFilter
 {
     @Override
-    public Reader filter( Reader from, boolean filtering, MavenProject mavenProject, List<String> filters,
-                          boolean escapedBackslashesInFilePath, MavenSession mavenSession )
+    public Reader filter( Reader from, boolean filtering, Project mavenProject, List<String> filters,
+                          boolean escapedBackslashesInFilePath, Session mavenSession )
                               throws MavenFilteringException
     {
         MavenResourcesExecution mre = new MavenResourcesExecution();
diff --git a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
index 9d0b579..e2fc2cc 100644
--- a/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
+++ b/src/main/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFiltering.java
@@ -188,8 +188,8 @@ public class DefaultMavenResourcesFiltering
 
             if ( resourceDirectory != null && !resourceDirectory.isAbsolute() )
             {
-                resourceDirectory =
-                        new File( mavenResourcesExecution.getResourcesBaseDirectory(), resourceDirectory.getPath() );
+                resourceDirectory = mavenResourcesExecution
+                        .getResourcesBaseDirectory().resolve( resourceDirectory.getPath() ).toFile();
             }
 
             if ( resourceDirectory == null || !resourceDirectory.exists() )
@@ -201,7 +201,7 @@ public class DefaultMavenResourcesFiltering
             // this part is required in case the user specified "../something"
             // as destination
             // see MNG-1345
-            File outputDirectory = mavenResourcesExecution.getOutputDirectory();
+            File outputDirectory = mavenResourcesExecution.getOutputDirectory().toFile();
             boolean outputExists = outputDirectory.exists();
             if ( !outputExists && !outputDirectory.mkdirs() )
             {
@@ -497,15 +497,15 @@ public class DefaultMavenResourcesFiltering
 
     private String getRelativeOutputDirectory( MavenResourcesExecution execution )
     {
-        String relOutDir = execution.getOutputDirectory().getAbsolutePath();
+        String relOutDir = execution.getOutputDirectory().toAbsolutePath().toString();
 
         if ( execution.getMavenProject() != null && execution.getMavenProject().getBasedir() != null )
         {
-            String basedir = execution.getMavenProject().getBasedir().getAbsolutePath();
+            String basedir = execution.getMavenProject().getBasedir().toAbsolutePath().toString();
             relOutDir = PathTool.getRelativeFilePath( basedir, relOutDir );
             if ( relOutDir == null )
             {
-                relOutDir = execution.getOutputDirectory().getPath();
+                relOutDir = execution.getOutputDirectory().toAbsolutePath().toString();
             }
             else
             {
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java b/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
index 109ece0..558241a 100644
--- a/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/MavenFileFilter.java
@@ -22,8 +22,8 @@ package org.apache.maven.shared.filtering;
 import java.io.File;
 import java.util.List;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 import org.apache.maven.shared.utils.io.FileUtils;
 
 /**
@@ -39,16 +39,16 @@ public interface MavenFileFilter
      * @param from file to copy/filter
      * @param to destination file
      * @param filtering enable or not filtering
-     * @param mavenProject {@link MavenProject}
-     * @param mavenSession {@link MavenSession}
+     * @param mavenProject {@link Project}
+     * @param mavenSession {@link Session}
      * @param escapedBackslashesInFilePath escape backslashes in file path.
      * @param filters {@link List} of String which are path to a Property file
      * @param encoding The encoding which is used during the filtering process.
      * @throws MavenFilteringException in case of failure.
-     * @see DefaultFilterInfo#getDefaultFilterWrappers(MavenProject, List, boolean,MavenSession, MavenResourcesExecution)
+     * @see DefaultFilterInfo#getDefaultFilterWrappers(Project, List, boolean, Session, MavenResourcesExecution)
      */
-    void copyFile( File from, File to, boolean filtering, MavenProject mavenProject, List<String> filters,
-                   boolean escapedBackslashesInFilePath, String encoding, MavenSession mavenSession )
+    void copyFile( File from, File to, boolean filtering, Project mavenProject, List<String> filters,
+                   boolean escapedBackslashesInFilePath, String encoding, Session mavenSession )
                        throws MavenFilteringException;
 
     /**
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenFileFilterRequest.java b/src/main/java/org/apache/maven/shared/filtering/MavenFileFilterRequest.java
index 27d0fc6..b47036b 100644
--- a/src/main/java/org/apache/maven/shared/filtering/MavenFileFilterRequest.java
+++ b/src/main/java/org/apache/maven/shared/filtering/MavenFileFilterRequest.java
@@ -23,8 +23,8 @@ import java.io.File;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 
 /**
  * @author Olivier Lamy
@@ -61,9 +61,9 @@ public class MavenFileFilterRequest
      * @param mavenSession The Maven Session.
      * @param additionalProperties Supplemental properties.
      */
-    public MavenFileFilterRequest( File from, File to, boolean filtering, MavenProject mavenProject,
+    public MavenFileFilterRequest( File from, File to, boolean filtering, Project mavenProject,
                                    List<String> filters, boolean escapedBackslashesInFilePath, String encoding,
-                                   MavenSession mavenSession, Properties additionalProperties )
+                                   Session mavenSession, Properties additionalProperties )
     {
         super( mavenProject, filters, mavenSession );
         this.encoding = encoding;
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilter.java b/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilter.java
index 2ec1075..c14a7b5 100644
--- a/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilter.java
+++ b/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilter.java
@@ -22,8 +22,8 @@ package org.apache.maven.shared.filtering;
 import java.io.Reader;
 import java.util.List;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 import org.apache.maven.shared.utils.io.FileUtils;
 
 /**
@@ -39,17 +39,17 @@ public interface MavenReaderFilter
      *
      * @param from the source reader
      * @param filtering enable or not filtering
-     * @param mavenProject {@link MavenProject}
-     * @param mavenSession {@link MavenSession}
+     * @param Project {@link Project}
+     * @param Session {@link Session}
      * @param filters {@link java.util.List} of String which are path to a Property file
      * @param escapedBackslashesInFilePath escape backslashes in file path.
      * @return an input stream that applies the filter
      * @throws org.apache.maven.shared.filtering.MavenFilteringException in case of failure.
-     * @see #getDefaultFilterWrappers(org.apache.maven.project.MavenProject, java.util.List, boolean,
-     *      org.apache.maven.execution.MavenSession, org.apache.maven.shared.filtering.MavenResourcesExecution)
+     * @see #getDefaultFilterWrappers(Project, java.util.List, boolean,
+     *      Session, org.apache.maven.shared.filtering.MavenResourcesExecution)
      */
-    Reader filter( Reader from, boolean filtering, MavenProject mavenProject, List<String> filters,
-                   boolean escapedBackslashesInFilePath, MavenSession mavenSession )
+    Reader filter( Reader from, boolean filtering, Project project, List<String> filters,
+                   boolean escapedBackslashesInFilePath, Session session )
                        throws MavenFilteringException;
 
     /**
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilterRequest.java b/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilterRequest.java
index aa3fa77..6dcf6d3 100644
--- a/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilterRequest.java
+++ b/src/main/java/org/apache/maven/shared/filtering/MavenReaderFilterRequest.java
@@ -23,8 +23,8 @@ import java.io.Reader;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 
 /**
  * @author Olivier Lamy
@@ -56,8 +56,8 @@ public class MavenReaderFilterRequest
      * @param mavenSession The Maven Session.
      * @param additionalProperties supplemental properties.
      */
-    public MavenReaderFilterRequest( Reader from, boolean filtering, MavenProject mavenProject, List<String> filters,
-                                     boolean escapedBackslashesInFilePath, MavenSession mavenSession,
+    public MavenReaderFilterRequest( Reader from, boolean filtering, Project mavenProject, List<String> filters,
+                                     boolean escapedBackslashesInFilePath, Session mavenSession,
                                      Properties additionalProperties )
     {
         super( mavenProject, filters, mavenSession );
diff --git a/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java b/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
index 449e405..dfcacea 100644
--- a/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
+++ b/src/main/java/org/apache/maven/shared/filtering/MavenResourcesExecution.java
@@ -19,14 +19,14 @@ package org.apache.maven.shared.filtering;
  * under the License.
  */
 
-import java.io.File;
 import java.io.Reader;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.maven.execution.MavenSession;
+import org.apache.maven.api.Project;
+import org.apache.maven.api.Session;
 import org.apache.maven.model.Resource;
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.utils.io.FileUtils;
 import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
 import org.codehaus.plexus.interpolation.StringSearchInterpolator;
@@ -43,13 +43,13 @@ public class MavenResourcesExecution
 
     private List<Resource> resources;
 
-    private File outputDirectory;
+    private Path outputDirectory;
 
     private List<String> nonFilteredFileExtensions;
 
     private List<FileUtils.FilterWrapper> filterWrappers;
 
-    private File resourcesBaseDirectory;
+    private Path resourcesBaseDirectory;
 
     private boolean useDefaultFilterWrappers = false;
 
@@ -138,9 +138,9 @@ public class MavenResourcesExecution
      * @param nonFilteredFileExtensions The extensions which should not being filtered.
      * @param mavenSession The maven session.
      */
-    public MavenResourcesExecution( List<Resource> resources, File outputDirectory, MavenProject mavenProject,
+    public MavenResourcesExecution( List<Resource> resources, Path outputDirectory, Project mavenProject,
                                     String encoding, List<String> fileFilters, List<String> nonFilteredFileExtensions,
-                                    MavenSession mavenSession )
+                                    Session mavenSession )
     {
         super( mavenProject, fileFilters, mavenSession );
         this.encoding = encoding;
@@ -160,8 +160,8 @@ public class MavenResourcesExecution
      * @param resourcesBaseDirectory The resources base directory.
      * @param nonFilteredFileExtensions The list of extensions which should not being filtered.
      */
-    public MavenResourcesExecution( List<Resource> resources, File outputDirectory, String encoding,
-                                    List<FileUtils.FilterWrapper> filterWrappers, File resourcesBaseDirectory,
+    public MavenResourcesExecution( List<Resource> resources, Path outputDirectory, String encoding,
+                                    List<FileUtils.FilterWrapper> filterWrappers, Path resourcesBaseDirectory,
                                     List<String> nonFilteredFileExtensions )
     {
         this();
@@ -235,7 +235,7 @@ public class MavenResourcesExecution
     /**
      * @return The output directory.
      */
-    public File getOutputDirectory()
+    public Path getOutputDirectory()
     {
         return outputDirectory;
     }
@@ -243,7 +243,7 @@ public class MavenResourcesExecution
     /**
      * @param outputDirectory The output directory.
      */
-    public void setOutputDirectory( File outputDirectory )
+    public void setOutputDirectory( Path outputDirectory )
     {
         this.outputDirectory = outputDirectory;
     }
@@ -323,7 +323,7 @@ public class MavenResourcesExecution
     /**
      * @return The resource base directory.
      */
-    public File getResourcesBaseDirectory()
+    public Path getResourcesBaseDirectory()
     {
         return resourcesBaseDirectory;
     }
@@ -331,7 +331,7 @@ public class MavenResourcesExecution
     /**
      * @param resourcesBaseDirectory Set the resource base directory.
      */
-    public void setResourcesBaseDirectory( File resourcesBaseDirectory )
+    public void setResourcesBaseDirectory( Path resourcesBaseDirectory )
     {
         this.resourcesBaseDirectory = resourcesBaseDirectory;
     }
diff --git a/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java b/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
index 249aa79..1ba136e 100644
--- a/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
+++ b/src/test/java/org/apache/maven/shared/filtering/DefaultMavenFileFilterTest.java
@@ -31,7 +31,7 @@ import java.util.List;
 import java.util.Properties;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Project;
 import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
 import org.codehaus.plexus.PlexusTestCase;
 
@@ -139,8 +139,8 @@ public class DefaultMavenFileFilterTest
         AbstractMavenFilteringRequest req = new AbstractMavenFilteringRequest();
         req.setFileFilters( Collections.singletonList( "src/main/filters/filefilter.properties" ) );
 
-        MavenProject mavenProject = new StubMavenProject( new File( "src/test/units-files/MSHARED-161" ) );
-        mavenProject.getBuild().setFilters( Collections.singletonList( "src/main/filters/buildfilter.properties" ) );
+        Project mavenProject = new StubMavenProject( new File( "src/test/units-files/MSHARED-161" ) );
+        mavenProject.getModel().getBuild().setFilters( Collections.singletonList( "src/main/filters/buildfilter.properties" ) );
         req.setMavenProject( mavenProject );
         req.setInjectProjectBuildFilters( true );
 
diff --git a/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java b/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
index db6a6f6..d1e6a5c 100644
--- a/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
+++ b/src/test/java/org/apache/maven/shared/filtering/DefaultMavenResourcesFilteringTest.java
@@ -30,7 +30,7 @@ import java.util.List;
 import java.util.Properties;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.execution.MavenSession;
+import org.apache.maven.api.Session;
 import org.apache.maven.model.Resource;
 import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.PlexusTestCase;
@@ -75,7 +75,7 @@ public class DefaultMavenResourcesFilteringTest
         Properties projectProperties = new Properties();
         projectProperties.put( "foo", "bar" );
         projectProperties.put( "java.version", "zloug" );
-        mavenProject.setProperties( projectProperties );
+        mavenProject.getModel().setProperties( projectProperties );
 
         String unitFilesDir = getBasedir() + "/src/test/units-files/maven-resources-filtering";
         File initialImageFile = new File( unitFilesDir, "happy_duke.gif" );
@@ -93,7 +93,7 @@ public class DefaultMavenResourcesFilteringTest
         List<String> nonFilteredFileExtensions = Collections.singletonList( "gif" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8", filtersFile,
                                          nonFilteredFileExtensions, new StubMavenSession() );
         mavenResourcesExecution.setUseDefaultFilterWrappers( true );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
@@ -120,11 +120,11 @@ public class DefaultMavenResourcesFilteringTest
                                                          System.getProperty( "maven.repo.local",
                                                                              "/path/to/local/repo" ) ) );
 
-        MavenSession session = new StubMavenSession( settings );
+        Session session = new StubMavenSession( settings );
 
         MavenResourcesExecution mre = new MavenResourcesExecution();
         mre.setResources( resources );
-        mre.setOutputDirectory( outputDirectory );
+        mre.setOutputDirectory( outputDirectory.toPath() );
         mre.setEncoding( "UTF-8" );
         mre.setMavenProject( mavenProject );
         mre.setFilters( filtersFile );
@@ -152,7 +152,7 @@ public class DefaultMavenResourcesFilteringTest
         Properties projectProperties = new Properties();
         projectProperties.put( "foo", "bar" );
         projectProperties.put( "java.version", "zloug" );
-        mavenProject.setProperties( projectProperties );
+        mavenProject.getModel().setProperties( projectProperties );
 
         String unitFilesDir = getBasedir() + "/src/test/units-files/maven-resources-filtering";
         File initialImageFile = new File( unitFilesDir, "happy_duke.gif" );
@@ -169,8 +169,8 @@ public class DefaultMavenResourcesFilteringTest
 
         List<String> nonFilteredFileExtensions = Collections.singletonList( "gif" );
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                                         nonFilteredFileExtensions, new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         filtersFile, nonFilteredFileExtensions, new StubMavenSession() );
         mavenResourcesExecution.setEscapeString( "\\" );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
         assertFiltering( initialImageFile, true, false );
@@ -182,7 +182,7 @@ public class DefaultMavenResourcesFilteringTest
         Properties projectProperties = new Properties();
         projectProperties.put( "foo", "bar" );
         projectProperties.put( "java.version", "zloug" );
-        mavenProject.setProperties( projectProperties );
+        mavenProject.getModel().setProperties( projectProperties );
 
         String unitFilesDir = getBasedir() + "/src/test/units-files/maven-resources-filtering";
         File initialImageFile = new File( unitFilesDir, "happy_duke.gif" );
@@ -202,8 +202,8 @@ public class DefaultMavenResourcesFilteringTest
         additionalProperties.put( "greatDate", "1973-06-14" );
         additionalProperties.put( "pom.version", "99.00" );
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                                         nonFilteredFileExtensions, new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         filtersFile, nonFilteredFileExtensions, new StubMavenSession() );
         mavenResourcesExecution.setAdditionalProperties( additionalProperties );
         mavenResourcesExecution.setEscapeString( "\\" );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
@@ -279,7 +279,7 @@ public class DefaultMavenResourcesFilteringTest
         Properties projectProperties = new Properties();
         projectProperties.put( "foo", "bar" );
         projectProperties.put( "java.version", "zloug" );
-        mavenProject.setProperties( projectProperties );
+        mavenProject.getModel().setProperties( projectProperties );
 
         String unitFilesDir = getBasedir() + "/src/test/units-files/maven-resources-filtering";
         File initialImageFile = new File( unitFilesDir, "happy_duke.gif" );
@@ -297,8 +297,8 @@ public class DefaultMavenResourcesFilteringTest
         List<String> nonFilteredFileExtensions = Collections.singletonList( "gif" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", null,
-                                         nonFilteredFileExtensions, new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         null, nonFilteredFileExtensions, new StubMavenSession() );
 
         ValueSource vs =
             new PrefixedObjectValueSource( mavenResourcesExecution.getProjectStartExpressions(), mavenProject, true );
@@ -329,11 +329,11 @@ public class DefaultMavenResourcesFilteringTest
 
         MavenResourcesExecution mre = new MavenResourcesExecution();
         mre.setResources( resources );
-        mre.setOutputDirectory( outputDirectory );
+        mre.setOutputDirectory( outputDirectory.toPath() );
         mre.setEncoding( "UTF-8" );
         mre.setMavenProject( mavenProject );
         mre.setFilters( null );
-        mre.setNonFilteredFileExtensions( Collections.<String> emptyList() );
+        mre.setNonFilteredFileExtensions( Collections.emptyList() );
         mre.setMavenSession( new StubMavenSession() );
 
         mavenResourcesFiltering.filterResources( mre );
@@ -397,8 +397,8 @@ public class DefaultMavenResourcesFilteringTest
             + "/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                                         Collections.<String> emptyList(), new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         filtersFile, Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
 
         File[] files = outputDirectory.listFiles();
@@ -425,8 +425,8 @@ public class DefaultMavenResourcesFilteringTest
             + "/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                                         Collections.<String> emptyList(), new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         filtersFile, Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
 
         File[] files = outputDirectory.listFiles();
@@ -466,8 +466,8 @@ public class DefaultMavenResourcesFilteringTest
                 + "/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt" );
 
         MavenResourcesExecution mavenResourcesExecution =
-                new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                        Collections.<String> emptyList(), new StubMavenSession() );
+                new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                             filtersFile, Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesExecution.setFlatten(true);
         mavenResourcesExecution.setOverwrite(true);
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
@@ -509,8 +509,8 @@ public class DefaultMavenResourcesFilteringTest
                 + "/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt" );
 
         MavenResourcesExecution mavenResourcesExecution =
-                new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                        Collections.<String> emptyList(), new StubMavenSession() );
+                new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                             filtersFile, Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesExecution.setFlatten(true);
         mavenResourcesExecution.setOverwrite(false);
         try {
@@ -541,8 +541,8 @@ public class DefaultMavenResourcesFilteringTest
             + "/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                                         Collections.<String> emptyList(), new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         filtersFile, Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
 
         File[] files = outputDirectory.listFiles();
@@ -590,8 +590,8 @@ public class DefaultMavenResourcesFilteringTest
             + "/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                                         Collections.<String> emptyList(), new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         filtersFile, Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
 
         File[] files = targetPathFile.listFiles();
@@ -617,8 +617,8 @@ public class DefaultMavenResourcesFilteringTest
             + "/src/test/units-files/maven-resources-filtering/empty-maven-resources-filtering.txt" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
-                                         Collections.<String> emptyList(), new StubMavenSession() );
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
+                                         filtersFile, Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
 
         File targetPathFile = new File( outputDirectory, "testTargetPath" );
@@ -642,7 +642,7 @@ public class DefaultMavenResourcesFilteringTest
             }
         } );
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8",
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
                                          Collections.<String> emptyList(), Collections.<String> emptyList(),
                                          new StubMavenSession() );
         mavenResourcesExecution.setIncludeEmptyDirs( true );
@@ -697,7 +697,7 @@ public class DefaultMavenResourcesFilteringTest
             }
         } );
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8",
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8",
                                          Collections.<String> emptyList(), Collections.<String> emptyList(),
                                          new StubMavenSession() );
         mavenResourcesExecution.setIncludeEmptyDirs( true );
@@ -779,10 +779,10 @@ public class DefaultMavenResourcesFilteringTest
     public void testMSHARED81()
         throws Exception
     {
-        mavenProject.addProperty( "escaped", "this is escaped" );
-        mavenProject.addProperty( "escaped.at", "this is escaped.at" );
-        mavenProject.addProperty( "foo", "this is foo" );
-        mavenProject.addProperty( "bar", "this is bar" );
+        mavenProject.getModel().addProperty( "escaped", "this is escaped" );
+        mavenProject.getModel().addProperty( "escaped.at", "this is escaped.at" );
+        mavenProject.getModel().addProperty( "foo", "this is foo" );
+        mavenProject.getModel().addProperty( "bar", "this is bar" );
 
 
         List<Resource> resources = new ArrayList<>();
@@ -802,8 +802,8 @@ public class DefaultMavenResourcesFilteringTest
         } );
         File output = new File( outputDirectory, "MSHARED-81" );
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, output, mavenProject, "UTF-8", Collections.<String> emptyList(),
-                                         Collections.<String> emptyList(), new StubMavenSession() );
+            new MavenResourcesExecution( resources, output.toPath(), mavenProject, "UTF-8",
+                                         Collections.emptyList(), Collections.emptyList(), new StubMavenSession() );
         mavenResourcesExecution.setIncludeEmptyDirs( true );
         mavenResourcesExecution.setEscapeString( "\\" );
 
@@ -873,12 +873,12 @@ public class DefaultMavenResourcesFilteringTest
     public void testEdgeCases()
         throws Exception
     {
-        mavenProject.addProperty( "escaped", "this is escaped" );
-        mavenProject.addProperty( "escaped.at", "this is escaped.at" );
-        mavenProject.addProperty( "foo", "this is foo" );
-        mavenProject.addProperty( "bar", "this is bar" );
-        mavenProject.addProperty( "domain", "this.is.domain.com" );
-        mavenProject.addProperty( "com.xxxxxxx.xxxx.root.build.environment.CLOUD_AZURE_AKS_KUBERNETES_NODE_LABEL_AGENTPOOL_VALUE_PRODUCTION_XXXXXXXXXXX_NODE_IMPL_PRODUCT_SEGMENT_PROCESSOR", "longpropvalue" );
+        mavenProject.getModel().addProperty( "escaped", "this is escaped" );
+        mavenProject.getModel().addProperty( "escaped.at", "this is escaped.at" );
+        mavenProject.getModel().addProperty( "foo", "this is foo" );
+        mavenProject.getModel().addProperty( "bar", "this is bar" );
+        mavenProject.getModel().addProperty( "domain", "this.is.domain.com" );
+        mavenProject.getModel().addProperty( "com.xxxxxxx.xxxx.root.build.environment.CLOUD_AZURE_AKS_KUBERNETES_NODE_LABEL_AGENTPOOL_VALUE_PRODUCTION_XXXXXXXXXXX_NODE_IMPL_PRODUCT_SEGMENT_PROCESSOR", "longpropvalue" );
 
 
         List<Resource> resources = new ArrayList<>();
@@ -898,7 +898,7 @@ public class DefaultMavenResourcesFilteringTest
         } );
         File output = new File( outputDirectory, "edge-cases" );
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, output, mavenProject, "UTF-8", Collections.<String> emptyList(),
+            new MavenResourcesExecution( resources, output.toPath(), mavenProject, "UTF-8", Collections.<String> emptyList(),
                                          Collections.<String> emptyList(), new StubMavenSession() );
         mavenResourcesExecution.setIncludeEmptyDirs( true );
         mavenResourcesExecution.setEscapeString( "\\" );
@@ -939,8 +939,8 @@ public class DefaultMavenResourcesFilteringTest
         resource.setTargetPath( "testTargetPath" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( Collections.singletonList( resource ), outputDirectory, mavenProject, "UTF-8",
-                                         Collections.<String> emptyList(), Collections.<String> emptyList(),
+            new MavenResourcesExecution( Collections.singletonList( resource ), outputDirectory.toPath(), mavenProject,
+                                         "UTF-8", Collections.emptyList(), Collections.emptyList(),
                                          new StubMavenSession() );
         mavenResourcesExecution.setFilterFilenames( true );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
@@ -967,8 +967,8 @@ public class DefaultMavenResourcesFilteringTest
         resource.setTargetPath( "testFilterPropertiesFiles" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( Collections.singletonList( resource ), outputDirectory, mavenProject, "UTF-8",
-                                         Collections.<String> emptyList(), Collections.<String> emptyList(),
+            new MavenResourcesExecution( Collections.singletonList( resource ), outputDirectory.toPath(), mavenProject,
+                                         "UTF-8", Collections.emptyList(), Collections.emptyList(),
                                          new StubMavenSession() );
         mavenResourcesExecution.setPropertiesEncoding( "ISO-8859-1" );
         mavenResourcesFiltering.filterResources( mavenResourcesExecution );
diff --git a/src/test/java/org/apache/maven/shared/filtering/EscapeStringTest.java b/src/test/java/org/apache/maven/shared/filtering/EscapeStringTest.java
index 7d0b426..0f23b80 100644
--- a/src/test/java/org/apache/maven/shared/filtering/EscapeStringTest.java
+++ b/src/test/java/org/apache/maven/shared/filtering/EscapeStringTest.java
@@ -66,7 +66,7 @@ public class EscapeStringTest
         projectProperties.put( "foo", "bar" );
         projectProperties.put( "java.version", "zloug" );
         projectProperties.put( "replaceThis", "I am the replacement" );
-        mavenProject.setProperties( projectProperties );
+        mavenProject.getModel().setProperties( projectProperties );
         MavenResourcesFiltering mavenResourcesFiltering = lookup( MavenResourcesFiltering.class );
 
         Resource resource = new Resource();
@@ -80,7 +80,7 @@ public class EscapeStringTest
         List<String> nonFilteredFileExtensions = Collections.singletonList( "gif" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8", filtersFile,
                                          nonFilteredFileExtensions, new StubMavenSession() );
         mavenResourcesExecution.setUseDefaultFilterWrappers( true );
 
diff --git a/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java b/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java
index d63b02d..0195fff 100644
--- a/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java
+++ b/src/test/java/org/apache/maven/shared/filtering/IncrementalResourceFilteringTest.java
@@ -182,7 +182,7 @@ public class IncrementalResourceFilteringTest
         Properties projectProperties = new Properties();
         projectProperties.put( "time", time );
         projectProperties.put( "java.version", "zloug" );
-        mavenProject.setProperties( projectProperties );
+        mavenProject.getModel().setProperties( projectProperties );
         MavenResourcesFiltering mavenResourcesFiltering = lookup( MavenResourcesFiltering.class );
 
         String unitFilesDir = new File( unitDirectory, "files" ).getPath();
@@ -198,7 +198,7 @@ public class IncrementalResourceFilteringTest
 
         MavenResourcesExecution mre = new MavenResourcesExecution();
         mre.setResources( resources );
-        mre.setOutputDirectory( outputDirectory );
+        mre.setOutputDirectory( outputDirectory.toPath() );
         mre.setEncoding( "UTF-8" );
         mre.setMavenProject( mavenProject );
         mre.setFilters( filtersFile );
diff --git a/src/test/java/org/apache/maven/shared/filtering/InvalidMarkTest.java b/src/test/java/org/apache/maven/shared/filtering/InvalidMarkTest.java
index 324e94c..9f3fc9b 100644
--- a/src/test/java/org/apache/maven/shared/filtering/InvalidMarkTest.java
+++ b/src/test/java/org/apache/maven/shared/filtering/InvalidMarkTest.java
@@ -56,7 +56,7 @@ public class InvalidMarkTest
         resource.setFiltering( true );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( Collections.singletonList( resource ), outputDirectory,
+            new MavenResourcesExecution( Collections.singletonList( resource ), outputDirectory.toPath(),
                                          new StubMavenProject( new File( "." ) ), "UTF-8",
                                          Collections.<String>emptyList(), Collections.<String>emptyList(),
                                          new StubMavenSession() );
diff --git a/src/test/java/org/apache/maven/shared/filtering/MuliLinesMavenResourcesFilteringTest.java b/src/test/java/org/apache/maven/shared/filtering/MuliLinesMavenResourcesFilteringTest.java
index c3eef47..cc102af 100644
--- a/src/test/java/org/apache/maven/shared/filtering/MuliLinesMavenResourcesFilteringTest.java
+++ b/src/test/java/org/apache/maven/shared/filtering/MuliLinesMavenResourcesFilteringTest.java
@@ -67,7 +67,7 @@ public class MuliLinesMavenResourcesFilteringTest
         Properties projectProperties = new Properties();
         projectProperties.put( "foo", "bar" );
         projectProperties.put( "java.version", "zloug" );
-        mavenProject.setProperties( projectProperties );
+        mavenProject.getModel().setProperties( projectProperties );
         MavenResourcesFiltering mavenResourcesFiltering = lookup( MavenResourcesFiltering.class );
 
         String unitFilesDir = getBasedir() + "/src/test/units-files/MRESOURCES-104";
@@ -84,7 +84,7 @@ public class MuliLinesMavenResourcesFilteringTest
         List<String> nonFilteredFileExtensions = Collections.singletonList( "gif" );
 
         MavenResourcesExecution mavenResourcesExecution =
-            new MavenResourcesExecution( resources, outputDirectory, mavenProject, "UTF-8", filtersFile,
+            new MavenResourcesExecution( resources, outputDirectory.toPath(), mavenProject, "UTF-8", filtersFile,
                                          nonFilteredFileExtensions, new StubMavenSession() );
         mavenResourcesExecution.setUseDefaultFilterWrappers( true );
 
diff --git a/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java b/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java
index 4bc9b2a..f8d27e4 100644
--- a/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java
+++ b/src/test/java/org/apache/maven/shared/filtering/StubMavenProject.java
@@ -19,10 +19,16 @@ package org.apache.maven.shared.filtering;
  * under the License.
  */
 
+import javax.annotation.Nonnull;
+
 import java.io.File;
-import java.util.Properties;
+import java.nio.file.Path;
+import java.util.List;
 
-import org.apache.maven.project.MavenProject;
+import org.apache.maven.api.Artifact;
+import org.apache.maven.api.Dependency;
+import org.apache.maven.api.Project;
+import org.apache.maven.model.Model;
 
 /**
  * @author Olivier Lamy
@@ -30,10 +36,10 @@ import org.apache.maven.project.MavenProject;
  *
  */
 public class StubMavenProject
-    extends MavenProject
+        implements Project
 {
-    private Properties properties;
 
+    private Model model = new Model();
     private File basedir;
 
     protected StubMavenProject( File basedir )
@@ -41,30 +47,98 @@ public class StubMavenProject
         this.basedir = basedir;
     }
 
+    @Nonnull
+    @Override
+    public String getGroupId()
+    {
+        return model.getGroupId();
+    }
+
+    public void setGroupId( String groupId )
+    {
+        model.setGroupId( groupId );
+    }
+
+    @Nonnull
+    @Override
+    public String getArtifactId()
+    {
+        return model.getArtifactId();
+    }
+
+    public void setArtifactId( String artifactId )
+    {
+        model.setArtifactId( artifactId );
+    }
+
+    @Nonnull
+    @Override
+    public String getVersion()
+    {
+        return model.getVersion();
+    }
+
+    public void setVersion( String version )
+    {
+        model.setVersion( version );
+    }
+
+    public String getName()
+    {
+        return model.getName();
+    }
+
+    public void setName( String name )
+    {
+        model.setName( name );
+    }
+
+    @Nonnull
     @Override
-    public Properties getProperties()
+    public String getPackaging()
     {
-        return this.properties;
+        return model.getPackaging();
     }
 
-    public void setProperties( Properties properties )
+    @Nonnull
+    @Override
+    public Artifact getArtifact()
     {
-        this.properties = properties;
+        return null;
     }
 
-    public void addProperty( String key, String value )
+    @Nonnull
+    @Override
+    public Model getModel()
+    {
+        return model;
+    }
+
+    @Nonnull
+    @Override
+    public Path getPomPath()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public List<Dependency> getDependencies()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public List<Dependency> getManagedDependencies()
     {
-        if ( this.properties == null )
-        {
-            this.properties = new Properties();
-        }
-        this.properties.put( key, value );
+        return null;
     }
 
     @Override
-    public File getBasedir()
+    public Path getBasedir()
     {
-        return basedir;
+        return basedir.toPath();
     }
 
 }
diff --git a/src/test/java/org/apache/maven/shared/filtering/StubMavenSession.java b/src/test/java/org/apache/maven/shared/filtering/StubMavenSession.java
index 644329a..3095767 100644
--- a/src/test/java/org/apache/maven/shared/filtering/StubMavenSession.java
+++ b/src/test/java/org/apache/maven/shared/filtering/StubMavenSession.java
@@ -19,14 +19,20 @@ package org.apache.maven.shared.filtering;
  * under the License.
  */
 
+import javax.annotation.Nonnull;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.NoSuchElementException;
 import java.util.Properties;
 
-import org.apache.maven.execution.DefaultMavenExecutionRequest;
-import org.apache.maven.execution.MavenExecutionResult;
-import org.apache.maven.execution.MavenSession;
+import org.apache.maven.api.Listener;
+import org.apache.maven.api.LocalRepository;
+import org.apache.maven.api.RemoteRepository;
+import org.apache.maven.api.Session;
+import org.apache.maven.api.SessionData;
+import org.apache.maven.api.services.Service;
 import org.apache.maven.settings.Settings;
-import org.codehaus.plexus.PlexusContainer;
-import org.eclipse.aether.RepositorySystemSession;
 
 /**
  * @author Olivier Lamy
@@ -34,7 +40,7 @@ import org.eclipse.aether.RepositorySystemSession;
  *
  */
 public class StubMavenSession
-    extends MavenSession
+    implements Session
 {
 
     private Properties userProperties;
@@ -61,9 +67,6 @@ public class StubMavenSession
     public StubMavenSession( Properties systemProperties, Properties userProperties, Settings settings )
     {
 
-        super( (PlexusContainer) null, (RepositorySystemSession) null, new DefaultMavenExecutionRequest(),
-               (MavenExecutionResult) null );
-
         this.settings = settings;
 
         this.systemProperties = new Properties();
@@ -98,4 +101,64 @@ public class StubMavenSession
         return this.userProperties;
     }
 
+    @Nonnull
+    @Override
+    public LocalRepository getLocalRepository()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public List<RemoteRepository> getRemoteRepositories()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public SessionData getData()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public <T extends Service> T getService( Class<T> clazz ) throws NoSuchElementException
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public Session withLocalRepository( @Nonnull LocalRepository localRepository )
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public Session withRemoteRepositories( @Nonnull List<RemoteRepository> repositories )
+    {
+        return null;
+    }
+
+    @Override
+    public void registerListener( @Nonnull Listener listener )
+    {
+
+    }
+
+    @Override
+    public void unregisterListener( @Nonnull Listener listener )
+    {
+
+    }
+
+    @Nonnull
+    @Override
+    public Collection<Listener> getListeners()
+    {
+        return null;
+    }
 }
diff --git a/src/test/java/org/apache/maven/shared/filtering/TestReflectionProperties.java b/src/test/java/org/apache/maven/shared/filtering/TestReflectionProperties.java
index 40b8054..cbdb3a1 100644
--- a/src/test/java/org/apache/maven/shared/filtering/TestReflectionProperties.java
+++ b/src/test/java/org/apache/maven/shared/filtering/TestReflectionProperties.java
@@ -23,7 +23,6 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.util.Properties;
 
-import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.PlexusTestCase;
 
 /**
@@ -38,7 +37,7 @@ public class TestReflectionProperties
     public void testSimpleFiltering()
         throws Exception
     {
-        MavenProject mavenProject = new MavenProject();
+        StubMavenProject mavenProject = new StubMavenProject( null );
         mavenProject.setVersion( "1.0" );
         mavenProject.setGroupId( "org.apache" );
         Properties userProperties = new Properties();
@@ -72,8 +71,8 @@ public class TestReflectionProperties
     public void testSimpleNonFiltering()
         throws Exception
     {
-        
-        MavenProject mavenProject = new MavenProject();
+
+        StubMavenProject mavenProject = new StubMavenProject( null );
         mavenProject.setVersion( "1.0" );
         mavenProject.setGroupId( "org.apache" );
         Properties userProperties = new Properties();