You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/02/11 23:36:34 UTC

[maven-jxr] branch doxia-2.0.0 updated (dac9195 -> 6426904)

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

michaelo pushed a change to branch doxia-2.0.0
in repository https://gitbox.apache.org/repos/asf/maven-jxr.git


 discard dac9195  Prepare for Doxia 2.0.0
     new 6426904  Prepare for Doxia 2.0.0

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (dac9195)
            \
             N -- N -- N   refs/heads/doxia-2.0.0 (6426904)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 maven-jxr-plugin/pom.xml | 2 +-
 maven-jxr/pom.xml        | 2 +-
 pom.xml                  | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)


[maven-jxr] 01/01: Prepare for Doxia 2.0.0

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch doxia-2.0.0
in repository https://gitbox.apache.org/repos/asf/maven-jxr.git

commit 642690477572c62a72a2bda90b6d4fa900d7059e
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Fri Dec 2 22:50:59 2022 +0100

    Prepare for Doxia 2.0.0
    
    This also fixes JXR-169
---
 maven-jxr-plugin/pom.xml                           |  6 +++---
 .../apache/maven/plugin/jxr/AbstractJxrReport.java | 17 ++++++---------
 .../org/apache/maven/plugin/jxr/JxrReport.java     |  8 +++----
 .../org/apache/maven/plugin/jxr/JxrTestReport.java |  6 +++---
 .../maven/plugin/jxr/AbstractJxrTestCase.java      |  6 ++++++
 .../org/apache/maven/plugin/jxr/JxrReportTest.java | 20 ++++++++---------
 .../jxr/stubs/AggregateTestMavenProjectStub.java   | 17 ++++++++++++---
 .../DefaultConfigurationMavenProjectStub.java      | 17 +++++++++++----
 .../ExcludeConfigurationMavenProjectStub.java      | 16 +++++++++++---
 .../IncludeConfigurationMavenProjectStub.java      | 16 +++++++++++---
 .../maven/plugin/jxr/stubs/JxrProjectStub.java     | 18 ++++++++++++++++
 .../jxr/stubs/NoJavadocDirMavenProjectStub.java    | 16 +++++++++++---
 ...NoJavadocLinkConfigurationMavenProjectStub.java | 18 +++++++++++-----
 .../plugin/jxr/stubs/PomMavenProjectStub.java      | 25 +++++++++++-----------
 .../jxr/stubs/TestSourceDirMavenProjectStub.java   | 14 ++++++++++--
 maven-jxr/pom.xml                                  |  6 +++---
 .../org/apache/maven/jxr/DirectoryIndexer.java     | 14 +++++-------
 pom.xml                                            |  6 +++---
 18 files changed, 165 insertions(+), 81 deletions(-)

diff --git a/maven-jxr-plugin/pom.xml b/maven-jxr-plugin/pom.xml
index 226b9ed..4be6ac0 100644
--- a/maven-jxr-plugin/pom.xml
+++ b/maven-jxr-plugin/pom.xml
@@ -25,7 +25,7 @@ under the License.
   <parent>
     <groupId>org.apache.maven.jxr</groupId>
     <artifactId>jxr</artifactId>
-    <version>3.3.1-SNAPSHOT</version>
+    <version>4.0.0-M1-SNAPSHOT</version>
   </parent>
 
   <groupId>org.apache.maven.plugins</groupId>
@@ -89,12 +89,12 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-api</artifactId>
-      <version>3.1.1</version>
+      <version>4.0.0-M4</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-impl</artifactId>
-      <version>3.2.0</version>
+      <version>4.0.0-M4</version>
     </dependency>
 
     <!-- shared utils -->
diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java
index 6d201ab..82e44d3 100644
--- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java
+++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java
@@ -76,7 +76,7 @@ public abstract class AbstractJxrReport
     /**
      * String used at the bottom of the Xref HTML files.
      */
-    @Parameter( property = "bottom", defaultValue = "Copyright &#169; {inceptionYear}&#x2013;{currentYear} {organizationName}. All rights reserved." )
+    @Parameter( property = "bottom", defaultValue = "&#169; {inceptionYear}&#x2013;{currentYear} {organizationName}" )
     private String bottom;
 
     // CHECKSTYLE_ON: LineLength
@@ -111,12 +111,6 @@ public abstract class AbstractJxrReport
     @Parameter
     private ArrayList<String> includes;
 
-    /**
-     * The projects in the reactor for aggregation report.
-     */
-    @Parameter( defaultValue = "${reactorProjects}", readonly = true )
-    protected List<MavenProject> reactorProjects;
-
     /**
      * Whether to skip this execution.
      *
@@ -418,15 +412,16 @@ public abstract class AbstractJxrReport
         return project;
     }
 
-    /**
-     * Returns the Maven session.
-     * @return Maven session
-     */
     protected MavenSession getSession()
     {
         return session;
     }
 
+    protected List<MavenProject> getReactorProjects()
+    {
+        return reactorProjects;
+    }
+
     /**
      * Returns the correct resource bundle according to the locale.
      *
diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java
index 7bc724f..ad298d6 100644
--- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java
+++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java
@@ -87,14 +87,14 @@ public class JxrReport
 
         List<String> l = new ArrayList<>();
 
-        if ( !"pom".equals( getProject().getPackaging().toLowerCase( Locale.US ) ) )
+        if ( !"pom".equals( getProject().getPackaging().toLowerCase( Locale.ENGLISH ) ) )
         {
             l.addAll( sourceDirs );
         }
 
         if ( getProject().getExecutionProject() != null )
         {
-            if ( !"pom".equals( getProject().getExecutionProject().getPackaging().toLowerCase( Locale.US ) ) )
+            if ( !"pom".equals( getProject().getExecutionProject().getPackaging().toLowerCase( Locale.ENGLISH ) ) )
             {
                 l.addAll( getProject().getExecutionProject().getCompileSourceRoots() );
             }
@@ -108,14 +108,14 @@ public class JxrReport
     {
         List<String> l = new ArrayList<>();
 
-        if ( !"pom".equals( project.getPackaging().toLowerCase( Locale.US ) ) )
+        if ( !"pom".equals( project.getPackaging().toLowerCase( Locale.ENGLISH ) ) )
         {
             l.addAll( project.getCompileSourceRoots() );
         }
 
         if ( project.getExecutionProject() != null )
         {
-            if ( !"pom".equals( project.getExecutionProject().getPackaging().toLowerCase( Locale.US ) ) )
+            if ( !"pom".equals( project.getExecutionProject().getPackaging().toLowerCase( Locale.ENGLISH ) ) )
             {
                 l.addAll( project.getExecutionProject().getCompileSourceRoots() );
             }
diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java
index 99945d6..2c8be84 100644
--- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java
+++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java
@@ -65,14 +65,14 @@ public class JxrTestReport
     {
         List<String> l = new ArrayList<>();
 
-        if ( !"pom".equals( getProject().getPackaging().toLowerCase( Locale.US ) ) )
+        if ( !"pom".equals( getProject().getPackaging().toLowerCase( Locale.ENGLISH ) ) )
         {
             l.addAll( sourceDirs );
         }
 
         if ( getProject().getExecutionProject() != null )
         {
-            if ( !"pom".equals( getProject().getExecutionProject().getPackaging().toLowerCase( Locale.US ) ) )
+            if ( !"pom".equals( getProject().getExecutionProject().getPackaging().toLowerCase( Locale.ENGLISH ) ) )
             {
                 l.addAll( getProject().getExecutionProject().getTestCompileSourceRoots() );
             }
@@ -88,7 +88,7 @@ public class JxrTestReport
 
         if ( project.getExecutionProject() != null )
         {
-            if ( !"pom".equals( project.getExecutionProject().getPackaging().toLowerCase( Locale.US ) ) )
+            if ( !"pom".equals( project.getExecutionProject().getPackaging().toLowerCase( Locale.ENGLISH ) ) )
             {
                 l.addAll( project.getExecutionProject().getTestCompileSourceRoots() );
             }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java
index 3b008b0..01c2dcc 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java
@@ -22,6 +22,8 @@ package org.apache.maven.plugin.jxr;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
+import java.util.Collections;
+import java.util.List;
 
 import org.apache.maven.plugin.LegacySupport;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
@@ -125,8 +127,12 @@ public abstract class AbstractJxrTestCase
             (DefaultRepositorySystemSession) legacySupport.getRepositorySession();
         repoSession.setLocalRepositoryManager( new SimpleLocalRepositoryManagerFactory().newInstance( repoSession, new LocalRepository( artifactStubFactory.getWorkingDir() ) ) );
 
+        List<MavenProject> reactorProjects = mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList();
+
         setVariableValueToObject( mojo, "session", legacySupport.getSession() );
+        setVariableValueToObject( mojo, "reactorProjects", reactorProjects );
         setVariableValueToObject( mojo, "remoteRepositories", mojo.getProject().getRemoteArtifactRepositories() );
+        setVariableValueToObject( mojo, "siteDirectory", new File( mojo.getProject().getBasedir(), "src/site" ) );
         return mojo;
     }
 
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java
index 90b0a74..66b934f 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java
@@ -102,10 +102,10 @@ public class JxrReportTest
 
         //check if there's a link to the javadoc files
         String str = readFile( xrefDir, "def/configuration/AppSample.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/def/configuration/appsample.html\"" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/def/configuration/appsample.html\"" ) );
 
         str = readFile( xrefDir, "def/configuration/App.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/def/configuration/app.html\"" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/def/configuration/app.html\"" ) );
 
         // check if encoding is UTF-8, the default value
         assertTrue( str.contains( "text/html; charset=UTF-8" ) );
@@ -141,10 +141,10 @@ public class JxrReportTest
 
         //check if there's a link to the javadoc files
         String str = readFile( xrefDir, "def/configuration/AppSample.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/def/configuration/appsample.html\"" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/def/configuration/appsample.html\"" ) );
 
         str = readFile( xrefDir, "def/configuration/App.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/def/configuration/app.html\"" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/def/configuration/app.html\"" ) );
 
         // check if encoding is UTF-8, the default value
         assertTrue( str.contains( "text/html; charset=UTF-8" ) );
@@ -184,10 +184,10 @@ public class JxrReportTest
 
         //check if there's a link to the javadoc files
         String str = readFile( xrefDir, "def/configuration/AppSample.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/def/configuration/appsample.html\"" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/def/configuration/appsample.html\"" ) );
 
         str = readFile( xrefDir, "def/configuration/App.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/def/configuration/app.html\"" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/def/configuration/app.html\"" ) );
 
         // check if encoding is UTF-8, the default value
         assertTrue( str.contains( "text/html; charset=UTF-8" ) );
@@ -260,11 +260,11 @@ public class JxrReportTest
 
         //check if there's a link to the javadoc files
         String str = readFile( xrefDir, "nojavadoclink/configuration/AppSample.html" );
-        assertEquals( str.toLowerCase( Locale.US ).indexOf( "/apidocs/nojavadoclink/configuration/appsample.html\"" ),
+        assertEquals( str.toLowerCase( Locale.ENGLISH ).indexOf( "/apidocs/nojavadoclink/configuration/appsample.html\"" ),
                 -1 );
 
         str = readFile( xrefDir, "nojavadoclink/configuration/App.html" );
-        assertEquals( str.toLowerCase( Locale.US ).indexOf( "/apidocs/nojavadoclink/configuration/app.html\"" ), -1 );
+        assertEquals( str.toLowerCase( Locale.ENGLISH ).indexOf( "/apidocs/nojavadoclink/configuration/app.html\"" ), -1 );
 
         str = readFile( xrefDir, "nojavadoclink/configuration/sample/Sample.html" );
         assertEquals( str.toLowerCase().indexOf( "/apidocs/nojavadoclink/configuration/sample/sample.html\"" ), -1 );
@@ -312,10 +312,10 @@ public class JxrReportTest
 
         //check if there's a link to the javadoc files
         String str = readFile( xrefDir, "nojavadocdir/test/AppSample.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/nojavadocdir/test/appsample.html" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/nojavadocdir/test/appsample.html" ) );
 
         str = readFile( xrefDir, "nojavadocdir/test/App.html" );
-        assertTrue( str.toLowerCase( Locale.US ).contains( "/apidocs/nojavadocdir/test/app.html" ) );
+        assertTrue( str.toLowerCase( Locale.ENGLISH ).contains( "/apidocs/nojavadocdir/test/app.html" ) );
     }
 
     /**
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java
index 057aebb..9b236f5 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java
@@ -25,6 +25,7 @@ import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 
+import java.io.File;
 import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.List;
@@ -33,7 +34,7 @@ import java.util.List;
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  */
 public class AggregateTestMavenProjectStub
-    extends MavenProjectStub
+    extends JxrProjectStub
 {
     private List<ReportPlugin> reportPlugins = new ArrayList<>();
 
@@ -45,7 +46,7 @@ public class AggregateTestMavenProjectStub
         try
         {
             model = pomReader.read( new FileReader(
-                getBasedir() + "/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml" ) );
+                getBasedir() + "/" + getPOM() ) );
             setModel( model );
         }
         catch ( Exception ignored )
@@ -61,7 +62,7 @@ public class AggregateTestMavenProjectStub
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/aggregate-test/aggregate/test" );
+        compileSourceRoots.add( basedir + "/aggregate/test" );
         setCompileSourceRoots( compileSourceRoots );
 
         //set the report plugins
@@ -78,4 +79,14 @@ public class AggregateTestMavenProjectStub
     {
         return reportPlugins;
     }
+
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/aggregate-test" );
+    }
+
+    @Override
+    protected String getPOM() {
+        return "aggregate-test-plugin-config.xml";
+    }
 }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java
index 326a754..3aa85d6 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java
@@ -23,8 +23,8 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 
+import java.io.File;
 import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.List;
@@ -33,7 +33,7 @@ import java.util.List;
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  */
 public class DefaultConfigurationMavenProjectStub
-    extends MavenProjectStub
+    extends JxrProjectStub
 {
     private List<ReportPlugin> reportPlugins = new ArrayList<>();
 
@@ -45,7 +45,7 @@ public class DefaultConfigurationMavenProjectStub
         try
         {
             model = pomReader.read( new FileReader( getBasedir() +
-                "/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" ) );
+                "/" + getPOM() ) );
             setModel( model );
         }
         catch ( Exception ignored )
@@ -61,7 +61,7 @@ public class DefaultConfigurationMavenProjectStub
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/default-configuration/def/configuration" );
+        compileSourceRoots.add( basedir + "/def/configuration" );
         setCompileSourceRoots( compileSourceRoots );
 
         //set the report plugins
@@ -79,4 +79,13 @@ public class DefaultConfigurationMavenProjectStub
         return reportPlugins;
     }
 
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/default-configuration" );
+    }
+
+    @Override
+    protected String getPOM() {
+        return "default-configuration-plugin-config.xml";
+    }
 }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java
index 24c0fa0..4fa0099 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java
@@ -24,6 +24,7 @@ import org.apache.maven.model.Model;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 
+import java.io.File;
 import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.List;
@@ -43,8 +44,7 @@ public class ExcludeConfigurationMavenProjectStub
 
         try
         {
-            model = pomReader.read( new FileReader( getBasedir() +
-                "/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml" ) );
+            model = pomReader.read( new FileReader( getBasedir() + "/" + getPOM() ) );
             setModel( model );
         }
         catch ( Exception ignored )
@@ -60,7 +60,7 @@ public class ExcludeConfigurationMavenProjectStub
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/exclude-configuration/exclude/configuration" );
+        compileSourceRoots.add( basedir + "/exclude/configuration" );
         setCompileSourceRoots( compileSourceRoots );
 
         // set the report plugins
@@ -77,4 +77,14 @@ public class ExcludeConfigurationMavenProjectStub
     {
         return reportPlugins;
     }
+
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/exclude-configuration" );
+    }
+
+    @Override
+    protected String getPOM() {
+        return "exclude-configuration-plugin-config.xml";
+    }
 }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java
index 10a1623..2e9d0a5 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java
@@ -24,6 +24,7 @@ import org.apache.maven.model.Model;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 
+import java.io.File;
 import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.List;
@@ -43,8 +44,7 @@ public class IncludeConfigurationMavenProjectStub
 
         try
         {
-            model = pomReader.read( new FileReader( getBasedir() +
-                "/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml" ) );
+            model = pomReader.read( new FileReader( getBasedir() + "/" + getPOM() ) );
             setModel( model );
         }
         catch ( Exception ignored )
@@ -61,7 +61,7 @@ public class IncludeConfigurationMavenProjectStub
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
         compileSourceRoots.add(
-            basedir + "/src/test/resources/unit/include-configuration/include/configuration" );
+            basedir + "/include/configuration" );
         setCompileSourceRoots( compileSourceRoots );
 
         // set the report plugins
@@ -78,4 +78,14 @@ public class IncludeConfigurationMavenProjectStub
     {
         return reportPlugins;
     }
+
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/include-configuration" );
+    }
+
+    @Override
+    protected String getPOM() {
+        return "include-configuration-plugin-config.xml";
+    }
 }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java
index 45f4b5f..7454247 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java
@@ -19,6 +19,7 @@ package org.apache.maven.plugin.jxr.stubs;
  * under the License.
  */
 
+import java.io.File;
 import java.util.Collections;
 import java.util.List;
 
@@ -31,6 +32,23 @@ import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 public abstract class JxrProjectStub
     extends MavenProjectStub
 {
+    /**
+     * @return the POM file name
+     */
+    protected abstract String getPOM();
+
+    @Override
+    public File getBasedir()
+    {
+        return new File( super.getBasedir() + "/src/test/resources/unit/" );
+    }
+
+    @Override
+    public File getFile()
+    {
+        return new File( getBasedir(), getPOM() );
+    }
+
     @Override
     public List<ArtifactRepository> getRemoteArtifactRepositories()
     {
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java
index 0448f95..576038c 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java
@@ -23,8 +23,8 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 
+import java.io.File;
 import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.List;
@@ -45,7 +45,7 @@ public class NoJavadocDirMavenProjectStub
         try
         {
             model = pomReader.read( new FileReader(
-                getBasedir() + "/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml" ) );
+                getBasedir() + "/" + getPOM() ) );
             setModel( model );
         }
         catch ( Exception ignored )
@@ -61,7 +61,7 @@ public class NoJavadocDirMavenProjectStub
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/nojavadocdir-test/nojavadocdir/test" );
+        compileSourceRoots.add( basedir + "/nojavadocdir/test" );
         setCompileSourceRoots( compileSourceRoots );
 
         //set the report plugins
@@ -77,4 +77,14 @@ public class NoJavadocDirMavenProjectStub
     {
         return reportPlugins;
     }
+
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/nojavadocdir-test" );
+    }
+
+    @Override
+    protected String getPOM() {
+        return "nojavadocdir-test-plugin-config.xml";
+    }
 }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java
index 47df067..418f393 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java
@@ -23,7 +23,6 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 
 import java.io.File;
 import java.io.FileReader;
@@ -34,7 +33,7 @@ import java.util.List;
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  */
 public class NoJavadocLinkConfigurationMavenProjectStub
-    extends MavenProjectStub
+    extends JxrProjectStub
 {
     List<ReportPlugin> reportPlugins;
 
@@ -45,8 +44,7 @@ public class NoJavadocLinkConfigurationMavenProjectStub
 
         try
         {
-            model = pomReader.read( new FileReader( getBasedir() +
-                "/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml" ) );
+            model = pomReader.read( new FileReader( getBasedir() + "/" + getPOM() ) );
             setModel( model );
         }
         catch ( Exception ignored )
@@ -63,7 +61,7 @@ public class NoJavadocLinkConfigurationMavenProjectStub
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
         compileSourceRoots.add(
-            basedir + "/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink/configuration" );
+            basedir + "/nojavadoclink/configuration" );
         setCompileSourceRoots( compileSourceRoots );
 
         //set the report plugins
@@ -80,4 +78,14 @@ public class NoJavadocLinkConfigurationMavenProjectStub
     {
         return reportPlugins;
     }
+
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/nojavadoclink-configuration" );
+    }
+
+    @Override
+    protected String getPOM() {
+        return "nojavadoclink-configuration-plugin-config.xml";
+    }
 }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java
index ba9aee7..e749720 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java
@@ -27,13 +27,12 @@ import java.util.List;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 
 /**
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  */
 public class PomMavenProjectStub
-    extends MavenProjectStub
+    extends JxrProjectStub
 {
     private Build build;
 
@@ -44,7 +43,7 @@ public class PomMavenProjectStub
 
         try
         {
-            model = pomReader.read( new FileReader( new File( getBasedir(), "pom-test-plugin-config.xml" ) ) );
+            model = pomReader.read( new FileReader( new File( getBasedir() + "/" + getPOM() ) ) );
             setModel( model );
         }
         catch ( Exception e )
@@ -61,11 +60,11 @@ public class PomMavenProjectStub
 
         Build build = new Build();
         build.setFinalName( model.getArtifactId() );
-        build.setDirectory( super.getBasedir() + "/target/test/unit/pom-test/target" );
+        build.setDirectory( getBasedir() + "/target/test/unit/pom-test/target" );
         build.setSourceDirectory( getBasedir() + "/src/main/java" );
-        build.setOutputDirectory( super.getBasedir() + "/target/test/unit/pom-test/target/classes" );
+        build.setOutputDirectory( getBasedir() + "/target/test/unit/pom-test/target/classes" );
         build.setTestSourceDirectory( getBasedir() + "/src/test/java" );
-        build.setTestOutputDirectory( super.getBasedir() + "/target/test/unit/pom-test/target/test-classes" );
+        build.setTestOutputDirectory( getBasedir() + "/target/test/unit/pom-test/target/test-classes" );
         setBuild( build );
 
         List<String> compileSourceRoots = new ArrayList<>();
@@ -93,11 +92,13 @@ public class PomMavenProjectStub
         this.build = build;
     }
 
-    /**
-     * @see org.apache.maven.plugin.testing.stubs.MavenProjectStub#getBasedir()
-     */
-    public File getBasedir()
-    {
-        return new File( super.getBasedir() + "/src/test/resources/unit/pom-test" );
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/pom-test" );
+    }
+
+    @Override
+    protected String getPOM() {
+        return "pom-test-plugin-config.xml";
     }
 }
diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java
index b441285..d85fd89 100644
--- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java
+++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java
@@ -23,6 +23,7 @@ import org.apache.maven.artifact.Artifact;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 
+import java.io.File;
 import java.io.FileReader;
 import java.util.ArrayList;
 import java.util.List;
@@ -42,7 +43,7 @@ public class TestSourceDirMavenProjectStub
         try
         {
             model = pomReader.read( new FileReader(
-                getBasedir() + "/src/test/resources/unit/testsourcedir-test/testsourcedir-test-plugin-config.xml" ) );
+                getBasedir() + "/" + getPOM() ) );
             setModel( model );
         }
         catch ( Exception ignored )
@@ -58,13 +59,22 @@ public class TestSourceDirMavenProjectStub
 
         String basedir = getBasedir().getAbsolutePath();
         List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add( basedir + "/src/test/resources/unit/testsourcedir-test" );
+        compileSourceRoots.add( basedir );
         setCompileSourceRoots( compileSourceRoots );
 
         Artifact artifact = new JxrPluginArtifactStub( getGroupId(), getArtifactId(), getVersion(), getPackaging() );
         artifact.setArtifactHandler( new DefaultArtifactHandlerStub() );
         setArtifact( artifact );
+    }
+
+    @Override
+    public File getBasedir() {
+        return new File( super.getBasedir() + "/testsourcedir-test" );
+    }
 
+    @Override
+    protected String getPOM() {
+        return "testsourcedir-test-plugin-config.xml";
     }
 
 }
diff --git a/maven-jxr/pom.xml b/maven-jxr/pom.xml
index 06a921b..4252d04 100644
--- a/maven-jxr/pom.xml
+++ b/maven-jxr/pom.xml
@@ -25,7 +25,7 @@ under the License.
   <parent>
     <groupId>org.apache.maven.jxr</groupId>
     <artifactId>jxr</artifactId>
-    <version>3.3.1-SNAPSHOT</version>
+    <version>4.0.0-M1-SNAPSHOT</version>
   </parent>
 
   <groupId>org.apache.maven</groupId>
@@ -89,8 +89,8 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.velocity</groupId>
-      <artifactId>velocity</artifactId>
-      <version>1.7</version>
+      <artifactId>velocity-engine-core</artifactId>
+      <version>2.3</version>
     </dependency>
 
     <dependency>
diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java b/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java
index ea2710e..17975c6 100644
--- a/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java
+++ b/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java
@@ -257,22 +257,18 @@ public class DirectoryIndexer
         if ( templateDirFile.isAbsolute() )
         {
             // the property has been overridden: need to use a FileResourceLoader
-            engine.setProperty( "resource.loader", "file" );
-            engine.setProperty( "file.resource.loader.class",
+            engine.setProperty( "resource.loaders", "file" );
+            engine.setProperty( "resource.loader.file.class",
                                 "org.apache.velocity.runtime.resource.loader.FileResourceLoader" );
-            engine.setProperty( "file.resource.loader.path", templateDirFile.toString() );
+            engine.setProperty( "resource.loader.file.path", templateDirFile.toString() );
         }
         else
         {
             // use of the default templates
-            engine.setProperty( "resource.loader", "classpath" );
-            engine.setProperty( "classpath.resource.loader.class",
+            engine.setProperty( "resource.loaders", "classpath" );
+            engine.setProperty( "resource.loader.classpath.class",
                                 "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader" );
         }
-        // avoid "unable to find resource 'VM_global_library.vm' in any resource loader."
-        engine.setProperty( "velocimacro.library", "" );
-//        engine.setProperty( Log.class.getName(), log );
-//        engine.setProperty( "runtime.log.logsystem.class", VelocityLogger.class.getName() );
     }
 
     /*
diff --git a/pom.xml b/pom.xml
index 020c227..2897f76 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@ under the License.
 
   <groupId>org.apache.maven.jxr</groupId>
   <artifactId>jxr</artifactId>
-  <version>3.3.1-SNAPSHOT</version>
+  <version>4.0.0-M1-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <name>Maven JXR Parent</name>
@@ -64,12 +64,12 @@ under the License.
 
   <properties>
     <javaVersion>8</javaVersion>
-    <sitePluginVersion>3.12.1</sitePluginVersion>
     <slf4jVersion>1.7.36</slf4jVersion>
+    <sitePluginVersion>4.0.0-M5</sitePluginVersion>
     <javadocPluginVersion>3.4.1</javadocPluginVersion>
     <maven.site.path>jxr-archives/jxr-LATEST</maven.site.path>
     <checkstyle.violation.ignore>None</checkstyle.violation.ignore>
-    <project.build.outputTimestamp>2022-08-16T10:28:45Z</project.build.outputTimestamp>
+    <project.build.outputTimestamp>2023-02-11T23:35:51Z</project.build.outputTimestamp>
   </properties>
 
   <modules>