You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2026/02/12 22:27:13 UTC

(maven-javadoc-plugin) branch master updated: chore: AbstractMojoTestCase Migration (#1304)

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

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-javadoc-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new dc92fc39 chore: AbstractMojoTestCase Migration (#1304)
dc92fc39 is described below

commit dc92fc39ac7bd261c61b99141c061e35077eaee2
Author: Sandra Parsick <sp...@users.noreply.github.com>
AuthorDate: Thu Feb 12 22:27:07 2026 +0000

    chore: AbstractMojoTestCase Migration (#1304)
    
    
    Signed-off-by: Sandra Parsick <sa...@parsick.dev>
    Co-authored-by: Slawomir Jaranowski <s....@gmail.com>
---
 pom.xml                                            |  22 +-
 .../plugins/javadoc/AbstractJavadocMojoTest.java   |  14 +-
 .../javadoc/AggregatorJavadocReportTest.java       | 161 +---
 .../maven/plugins/javadoc/JavadocJarMojoTest.java  | 218 ++----
 .../maven/plugins/javadoc/JavadocReportTest.java   | 829 ++++++++++-----------
 .../maven/plugins/javadoc/JavadocUtilTest.java     |  78 +-
 .../maven/plugins/javadoc/JavadocVersionTest.java  |   8 +-
 .../plugins/javadoc/TestJavadocReportTest.java     |  51 +-
 .../io/xpp3/JavadocOptionsXpp3ReaderTest.java      |   8 +-
 ...InSubDirectoryProject1TestMavenProjectStub.java |   4 +-
 ...InSubDirectoryProject2TestMavenProjectStub.java |   4 +-
 ...egateNotInSubDirectoryTestMavenProjectStub.java |   4 +-
 .../AggregateProject1TestMavenProjectStub.java     |   4 +-
 .../AggregateProject2TestMavenProjectStub.java     |   4 +-
 ...egateResourcesProject1TestMavenProjectStub.java |   5 +-
 ...egateResourcesProject2TestMavenProjectStub.java |   5 +-
 .../AggregateResourcesTestMavenProjectStub.java    |   2 +-
 .../stubs/AggregateTestMavenProjectStub.java       |   4 +-
 .../stubs/CustomConfigurationMavenProjectStub.java |  95 ---
 .../DefaultConfigurationMavenProjectStub.java      |  76 --
 .../stubs/DocfilesTestMavenProjectStub.java        |  77 --
 .../DocfilesWithJavaTestMavenProjectStub.java      |  55 --
 .../stubs/DocletPathTestMavenProjectStub.java      |  76 --
 .../javadoc/stubs/DocletTestMavenProjectStub.java  |  77 --
 .../plugins/javadoc/stubs/FixMavenProjectStub.java |  93 ---
 .../stubs/HeaderFooterTestMavenProjectStub.java    |  58 --
 .../javadoc/stubs/HelpFileMavenProjectStub.java    |  64 --
 .../stubs/JavadocJarArchiveConfigProjectStub.java  |  92 ---
 .../stubs/JavadocJarDefaultMavenProjectStub.java   |  83 ---
 .../JavadocJarFailOnErrorMavenProjectStub.java     |  83 ---
 .../javadoc/stubs/Jdk5TestMavenProjectStub.java    |  76 --
 .../javadoc/stubs/Jdk6TestMavenProjectStub.java    |  76 --
 .../javadoc/stubs/NewlineTestMavenProjectStub.java |  58 --
 .../OptionsUmlautEncodingMavenProjectStub.java     |  73 --
 .../plugins/javadoc/stubs/PomMavenProjectStub.java |  65 --
 .../javadoc/stubs/ProxyTestMavenProjectStub.java   |  84 ---
 .../javadoc/stubs/QuotedPathMavenProjectStub.java  |  76 --
 .../stubs/ResourcesTestMavenProjectStub.java       |  58 --
 .../ResourcesWithExcludesTestMavenProjectStub.java |  58 --
 .../maven/plugins/javadoc/stubs/SettingsStub.java  |  50 --
 ...dDocletConflictOptionsTestMavenProjectStub.java |  58 --
 .../stubs/StylesheetFileMavenProjectStub.java      |  64 --
 .../stubs/SubpackagesTestMavenProjectStub.java     |  76 --
 .../javadoc/stubs/TagTestMavenProjectStub.java     |  58 --
 .../stubs/TagletArtifactsMavenProjectStub.java     |  73 --
 .../javadoc/stubs/TagletTestMavenProjectStub.java  |  76 --
 .../javadoc/stubs/TestJavadocMavenProjectStub.java |  93 ---
 .../WrongEncodingOptionsTestMavenProjectStub.java  |  58 --
 .../all/pom.xml                                    |   6 +-
 .../aggregate-resources-test-plugin-config.xml     |   6 +-
 .../aggregate-test-plugin-config.xml               |   6 +-
 .../custom-configuration-plugin-config.xml         |  11 +-
 .../default-configuration-plugin-config.xml        |   9 +-
 .../docfiles-test/docfiles-test-plugin-config.xml  |   9 +-
 .../docfiles-with-java-test-plugin-config.xml      |  10 +-
 .../doclet-path-test-plugin-config.xml             |  10 +-
 .../unit/doclet-test/doclet-test-plugin-config.xml |  10 +-
 .../file-include-exclude-plugin-config.xml         |  10 +-
 .../src/main/java/fix/test/ClassWithJavadoc.java   | 476 ------------
 .../src/main/java/fix/test/ClassWithNoJavadoc.java | 283 -------
 .../main/java/fix/test/InterfaceWithJavadoc.java   |  84 ---
 .../main/java/fix/test/InterfaceWithNoJavadoc.java |  59 --
 src/test/resources/unit/fix-test/pom.xml           |  63 --
 .../unit/fix-test/1.0/fix-test-1.0.jar             | Bin 6860 -> 0 bytes
 .../unit/fix-test/1.0/fix-test-1.0.pom             |  61 --
 .../unit/fix-test/maven-metadata-local.xml         |  31 -
 .../src/main/java/fix/test/ClassWithJavadoc.java   | 440 -----------
 .../src/main/java/fix/test/ClassWithNoJavadoc.java | 184 -----
 .../main/java/fix/test/InterfaceWithJavadoc.java   |  68 --
 .../main/java/fix/test/InterfaceWithNoJavadoc.java |  36 -
 .../header-footer-test-plugin-config.xml           |   8 +-
 .../1.0-SNAPSHOT/helpfile-test-1.0-SNAPSHOT.pom    |   5 +-
 src/test/resources/unit/helpfile-test/pom.xml      |  10 +-
 .../javaHome-test/javaHome-test-plugin-config.xml  |   9 +-
 .../javadocjar-archive-config.xml                  |  11 +-
 .../javadocjar-default-plugin-config.xml           |  11 +-
 .../javadocjar-failonerror-plugin-config.xml       |  11 +-
 .../unit/jdk5-test/jdk5-test-plugin-config.xml     |   9 +-
 .../unit/jdk6-test/jdk6-test-plugin-config.xml     |   9 +-
 .../newline-test/newline-test-plugin-config.xml    |   8 +-
 .../optionsumlautencoding-test-plugin-config.xml   |   9 +-
 .../unit/pom-test/pom-test-plugin-config.xml       |  15 +-
 .../unit/proxy-test/proxy-test-plugin-config.xml   |   9 +-
 .../quotedpath-test-plugin-config.xml              |   9 +-
 .../resources-test-plugin-config.xml               |  10 +-
 .../resources-with-excludes-test-plugin-config.xml |  10 +-
 .../unit/stale-test/stale-test-plugin-config.xml   |  22 +-
 .../stylesheetfile-test-1.0-SNAPSHOT.pom           |   5 +-
 .../resources/unit/stylesheetfile-test/pom.xml     |  17 +-
 .../subpackages-test-plugin-config.xml             |  10 +-
 .../unit/tag-test/tag-test-plugin-config.xml       |   8 +-
 .../unit/taglet-test/taglet-test-plugin-config.xml |   9 +-
 .../tagletArtifacts-test-plugin-config.xml         |   8 +-
 .../junit/junit/3.8.1/junit-3.8.1.jar              | Bin 121070 -> 0 bytes
 .../junit/junit/3.8.1/junit-3.8.1.pom              |  29 -
 .../junit/junit/3.8.1/junit-3.8.1.pom.sha1         |   1 -
 .../test-javadoc-test/src/main/java/maven/App.java |  32 -
 .../test-javadoc-test-plugin-config.xml            |  19 +-
 .../conflict-options-test-plugin-config.xml        |   5 +-
 .../wrong-charset-test-plugin-config.xml           |   5 +-
 .../wrong-docencoding-test-plugin-config.xml       |   5 +-
 .../wrong-encoding-test-plugin-config.xml          |   5 +-
 ...rong-locale-with-variant-test-plugin-config.xml |   8 +-
 103 files changed, 737 insertions(+), 5060 deletions(-)

diff --git a/pom.xml b/pom.xml
index f3715f2e..9bd89cc9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -326,20 +326,18 @@ under the License.
       <artifactId>plexus-interactivity-api</artifactId>
       <version>1.5.1</version>
     </dependency>
-
-    <!-- test -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.13.2</version>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.hamcrest</groupId>
       <artifactId>hamcrest</artifactId>
       <version>3.0</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
@@ -349,7 +347,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.plugin-testing</groupId>
       <artifactId>maven-plugin-testing-harness</artifactId>
-      <version>3.4.0</version>
+      <version>3.5.0</version>
       <scope>test</scope>
     </dependency>
     <dependency>
@@ -407,6 +405,12 @@ under the License.
       <version>3.27.7</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.opentest4j</groupId>
+      <artifactId>opentest4j</artifactId>
+      <version>1.3.0</version>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojoTest.java b/src/test/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojoTest.java
index 323b41f7..9a9fc6c4 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojoTest.java
@@ -21,8 +21,8 @@ package org.apache.maven.plugins.javadoc;
 import java.io.File;
 
 import org.apache.maven.plugin.logging.Log;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.ArgumentMatchers.anyString;
@@ -32,11 +32,11 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-public class AbstractJavadocMojoTest {
+class AbstractJavadocMojoTest {
     AbstractJavadocMojo mojo;
 
-    @Before
-    public void setUp() {
+    @BeforeEach
+    void setUp() {
         mojo = new AbstractJavadocMojo(null, null, null, null, null, null, null) {
             @Override
             public void doExecute() {}
@@ -44,7 +44,7 @@ public class AbstractJavadocMojoTest {
     }
 
     @Test
-    public void testMJAVADOC432DetectLinksMessages() {
+    void testMJAVADOC432DetectLinksMessages() {
         Log log = mock(Log.class);
         when(log.isErrorEnabled()).thenReturn(true);
         mojo.setLog(log);
@@ -69,7 +69,7 @@ public class AbstractJavadocMojoTest {
     }
 
     @Test
-    public void testMJAVADOC527DetectLinksRecursion() {
+    void testMJAVADOC527DetectLinksRecursion() {
         Log log = mock(Log.class);
         when(log.isErrorEnabled()).thenReturn(true);
         mojo.setLog(log);
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java
index f32413fa..d09398cb 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/AggregatorJavadocReportTest.java
@@ -18,137 +18,40 @@
  */
 package org.apache.maven.plugins.javadoc;
 
+import javax.inject.Inject;
+
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
-import java.util.List;
 import java.util.Locale;
 
+import org.apache.maven.api.plugin.testing.Basedir;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.execution.MavenSession;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.MojoExecution;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.languages.java.version.JavaVersion;
-import org.codehaus.plexus.util.FileUtils;
-import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
-import org.eclipse.aether.repository.LocalRepository;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-public class AggregatorJavadocReportTest extends AbstractMojoTestCase {
-    private static final char LINE_SEPARATOR = ' ';
+import static org.apache.maven.api.plugin.testing.MojoExtension.getBasedir;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
-    /** flag to copy repo only one time */
-    private static boolean testRepoCreated = false;
+@MojoTest(realRepositorySession = true)
+public class AggregatorJavadocReportTest {
 
-    private File unit;
+    @Inject
+    private MavenSession mavenSession;
+
+    private static final char LINE_SEPARATOR = ' ';
 
     private File localRepo;
 
     /** {@inheritDoc} */
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        unit = new File(getBasedir(), "src/test/resources/unit");
-
+    @BeforeEach
+    public void setUp() {
         localRepo = new File(getBasedir(), "target/local-repo/");
-
-        createTestRepo();
-    }
-
-    private JavadocReport lookupMojo(File testPom) throws Exception {
-        JavadocReport mojo = (JavadocReport) lookupMojo("aggregate", testPom);
-
-        Plugin p = new Plugin();
-        p.setGroupId("org.apache.maven.plugins");
-        p.setArtifactId("maven-javadoc-plugin");
-        MojoExecution mojoExecution = new MojoExecution(p, "aggregate", null);
-
-        setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
-
-        MavenProject currentProject = new MavenProjectStub();
-        currentProject.setGroupId("GROUPID");
-        currentProject.setArtifactId("ARTIFACTID");
-
-        MavenSession session = newMavenSession(currentProject);
-        DefaultRepositorySystemSession repoSysSession = (DefaultRepositorySystemSession) session.getRepositorySession();
-        repoSysSession.setLocalRepositoryManager(
-                new SimpleLocalRepositoryManagerFactory().newInstance(repoSysSession, new LocalRepository(localRepo)));
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repoSysSession);
-        return mojo;
-    }
-
-    /**
-     * Create test repository in target directory.
-     *
-     * @throws IOException if any
-     */
-    private void createTestRepo() throws IOException {
-        if (testRepoCreated) {
-            return;
-        }
-
-        localRepo.mkdirs();
-
-        // ----------------------------------------------------------------------
-        // UMLGraph
-        // ----------------------------------------------------------------------
-
-        File sourceDir = new File(unit, "doclet-test/artifact-doclet");
-        assertTrue(sourceDir.exists());
-        FileUtils.copyDirectoryStructure(sourceDir, localRepo);
-
-        // ----------------------------------------------------------------------
-        // UMLGraph-bis
-        // ----------------------------------------------------------------------
-
-        sourceDir = new File(unit, "doclet-path-test/artifact-doclet");
-        assertTrue(sourceDir.exists());
-        FileUtils.copyDirectoryStructure(sourceDir, localRepo);
-
-        // ----------------------------------------------------------------------
-        // commons-attributes-compiler
-        // http://www.tullmann.org/pat/taglets/
-        // ----------------------------------------------------------------------
-
-        sourceDir = new File(unit, "taglet-test/artifact-taglet");
-        assertTrue(sourceDir.exists());
-        FileUtils.copyDirectoryStructure(sourceDir, localRepo);
-
-        // ----------------------------------------------------------------------
-        // stylesheetfile-test
-        // ----------------------------------------------------------------------
-
-        sourceDir = new File(unit, "stylesheetfile-test/artifact-stylesheetfile");
-        assertTrue(sourceDir.exists());
-        FileUtils.copyDirectoryStructure(sourceDir, localRepo);
-
-        // ----------------------------------------------------------------------
-        // helpfile-test
-        // ----------------------------------------------------------------------
-
-        sourceDir = new File(unit, "helpfile-test/artifact-helpfile");
-        assertTrue(sourceDir.exists());
-        FileUtils.copyDirectoryStructure(sourceDir, localRepo);
-
-        // Remove SCM files
-        List<String> files = FileUtils.getFileAndDirectoryNames(
-                localRepo, FileUtils.getDefaultExcludesAsString(), null, true, true, true, true);
-        for (String filename : files) {
-            File file = new File(filename);
-
-            if (file.isDirectory()) {
-                FileUtils.deleteDirectory(file);
-            } else {
-                file.delete();
-            }
-        }
-
-        testRepoCreated = true;
+        mavenSession.getRequest().setLocalRepositoryPath(localRepo);
     }
 
     /**
@@ -179,12 +82,13 @@ public class AggregatorJavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testAggregate() throws Exception {
-        File testPom = new File(unit, "aggregate-test/aggregate-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "aggregate", pom = "aggregate-test/aggregate-test-plugin-config.xml")
+    @Basedir("/unit")
+    @Test
+    void testAggregate(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        File apidocs = new File(getBasedir(), "target/test/unit/aggregate-test/target/site/apidocs/");
+        File apidocs = new File(getBasedir(), "aggregate-test/target/site/apidocs/");
 
         // check if project1 api files exist
         assertTrue(new File(apidocs, "aggregate/test/project1/Project1App.html").exists());
@@ -204,12 +108,13 @@ public class AggregatorJavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testAggregateJavadocResources() throws Exception {
-        File testPom = new File(unit, "aggregate-resources-test/aggregate-resources-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "aggregate", pom = "aggregate-resources-test/aggregate-resources-test-plugin-config.xml")
+    @Basedir("/unit")
+    @Test
+    void testAggregateJavadocResources(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        File apidocs = new File(getBasedir(), "target/test/unit/aggregate-resources-test/target/site/apidocs");
+        File apidocs = new File(getBasedir(), "aggregate-resources-test/target/site/apidocs");
 
         // Test overview
         File overviewSummary = getOverviewSummary(apidocs);
@@ -230,13 +135,13 @@ public class AggregatorJavadocReportTest extends AbstractMojoTestCase {
         assertTrue(new File(apidocs, "resources/test/doc-files/maven-feather.png").exists());
     }
 
-    public void testAggregateWithModulsNotInSubDirectories() throws Exception {
-        File testPom = new File(unit, "aggregate-modules-not-in-subdirectories-test/all/pom.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "aggregate", pom = "aggregate-modules-not-in-subdirectories-test/all/pom.xml")
+    @Basedir("/unit")
+    @Test
+    void testAggregateWithModulsNotInSubDirectories(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        File apidocs = new File(
-                getBasedir(), "target/test/unit/aggregate-modules-not-in-subdirectories-test/target/site/apidocs");
+        File apidocs = new File(getBasedir(), "aggregate-modules-not-in-subdirectories-test/target/site/apidocs");
         assertTrue(apidocs.isDirectory());
         assertTrue(getOverviewSummary(apidocs).isFile());
     }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarMojoTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarMojoTest.java
index a5ddc562..f36257eb 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocJarMojoTest.java
@@ -18,72 +18,68 @@
  */
 package org.apache.maven.plugins.javadoc;
 
+import javax.inject.Inject;
+
 import java.io.File;
-import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import org.apache.maven.execution.MavenSession;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.MojoExecution;
+import org.apache.maven.api.plugin.testing.Basedir;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoTest;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.languages.java.version.JavaVersion;
-import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
-import org.eclipse.aether.repository.LocalRepository;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
+import static org.apache.maven.api.plugin.testing.MojoExtension.getBasedir;
+import static org.apache.maven.api.plugin.testing.MojoExtension.getVariableValueFromObject;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.clearInvocations;
+import static org.mockito.Mockito.verify;
 
 /**
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  */
-public class JavadocJarMojoTest extends AbstractMojoTestCase {
-
-    private JavadocJarMojo lookupMojo(File testPom) throws Exception {
-        JavadocJarMojo mojo = (JavadocJarMojo) lookupMojo("jar", testPom);
-
-        Plugin p = new Plugin();
-        p.setGroupId("org.apache.maven.plugins");
-        p.setArtifactId("maven-javadoc-plugin");
-        MojoExecution mojoExecution = new MojoExecution(p, "jar", null);
+@MojoTest
+class JavadocJarMojoTest {
 
-        setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
+    @Inject
+    private MavenProject project;
 
-        MavenProject currentProject = new MavenProjectStub();
-        currentProject.setGroupId("GROUPID");
-        currentProject.setArtifactId("ARTIFACTID");
+    @Inject
+    private Log log;
 
-        MavenSession session = newMavenSession(currentProject);
-        ((DefaultRepositorySystemSession) session.getRepositorySession())
-                .setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                        .newInstance(
-                                session.getRepositorySession(), new LocalRepository(new File("target/local-repo"))));
-        setVariableValueToObject(mojo, "session", session);
+    @BeforeEach
+    void setup() {
+        DefaultArtifactHandler artifactHandler = new DefaultArtifactHandler("jar");
+        artifactHandler.setLanguage("java");
 
-        return mojo;
+        DefaultArtifact artifact =
+                new DefaultArtifact("GROUPID", "ARTIFACTID", "1.0-SNAPSHOT", "compile", "jar", null, artifactHandler);
+        project.setArtifact(artifact);
     }
-
     /**
      * Test when default configuration is provided
      *
      * @throws Exception if any
      */
-    public void testDefaultConfig() throws Exception {
-        File testPom = new File(
-                getBasedir(), "src/test/resources/unit/javadocjar-default/javadocjar-default-plugin-config.xml");
-        JavadocJarMojo mojo = lookupMojo(testPom);
+    @Test
+    @InjectMojo(goal = "jar", pom = "javadocjar-default-plugin-config.xml")
+    @Basedir("/unit/javadocjar-default")
+    void testDefaultConfig(JavadocJarMojo mojo) throws Exception {
         mojo.execute();
 
         // check if the javadoc jar file was generated
-        File generatedFile =
-                new File(getBasedir(), "target/test/unit/javadocjar-default/target/javadocjar-default-javadoc.jar");
+        File generatedFile = new File(getBasedir(), "/target/javadocjar-default-javadoc.jar");
         assertThat(generatedFile).exists();
 
         Set<String> set = new HashSet<>();
@@ -100,7 +96,7 @@ public class JavadocJarMojoTest extends AbstractMojoTestCase {
         } else {
             assertTrue(set.contains("stylesheet.css"));
         }
-        JavaVersion javadocVersion = (JavaVersion) getVariableValueFromObject(mojo, "javadocRuntimeVersion");
+        JavaVersion javadocVersion = getVariableValueFromObject(mojo, "javadocRuntimeVersion");
         if (javadocVersion.isBefore("1.7")) {
             assertTrue(set.contains("resources/inherit.gif"));
         } else if (javadocVersion.isBefore("1.8")) {
@@ -129,38 +125,36 @@ public class JavadocJarMojoTest extends AbstractMojoTestCase {
         assertFalse(set.contains(AbstractJavadocMojo.PACKAGES_FILE_NAME));
 
         // check if the javadoc files were created
-        generatedFile = new File(
-                getBasedir(), "target/test/unit/javadocjar-default/target/site/apidocs/javadocjar/def/App.html");
+        generatedFile = new File(getBasedir(), "/target/site/apidocs/javadocjar/def/App.html");
         assertThat(generatedFile).exists();
 
-        generatedFile = new File(
-                getBasedir(), "target/test/unit/javadocjar-default/target/site/apidocs/javadocjar/def/AppSample.html");
+        generatedFile = new File(getBasedir(), "/target/site/apidocs/javadocjar/def/AppSample.html");
         assertThat(generatedFile).exists();
     }
 
-    public void testContinueIfFailOnErrorIsFalse() throws Exception {
-        File testPom = new File(
-                getBasedir(),
-                "src/test/resources/unit/javadocjar-failonerror/javadocjar-failonerror-plugin-config.xml");
-        JavadocJarMojo mojo = lookupMojo(testPom);
+    @Test
+    @InjectMojo(goal = "jar", pom = "javadocjar-failonerror-plugin-config.xml")
+    @Basedir("/unit/javadocjar-failonerror")
+    void testContinueIfFailOnErrorIsFalse(JavadocJarMojo mojo) throws Exception {
         mojo.execute();
 
         // check if the javadoc jar file was generated
-        File generatedFile = new File(
-                getBasedir(), "target/test/unit/javadocjar-failonerror/target/javadocjar-failonerror-javadoc.jar");
+        File generatedFile = new File(getBasedir(), "/target/javadocjar-failonerror-javadoc.jar");
         assertThat(generatedFile).exists();
     }
 
-    public void testIncludeMavenDescriptorWhenExplicitlyConfigured() throws Exception {
-        File testPom = new File(
-                getBasedir(), "src/test/resources/unit/javadocjar-archive-config/javadocjar-archive-config.xml");
-        JavadocJarMojo mojo = lookupMojo(testPom);
+    @Test
+    @InjectMojo(goal = "jar", pom = "javadocjar-archive-config.xml")
+    @Basedir("/unit/javadocjar-archive-config")
+    void testIncludeMavenDescriptorWhenExplicitlyConfigured(JavadocJarMojo mojo) throws Exception {
+
+        project.setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
+        project.setArtifactId("javadocjar-archive-config");
+
         mojo.execute();
 
         // check if the javadoc jar file was generated
-        File generatedFile = new File(
-                getBasedir(),
-                "target/test/unit/javadocjar-archive-config/target/javadocjar-archive-config-javadoc.jar");
+        File generatedFile = new File(getBasedir(), "/target/javadocjar-archive-config-javadoc.jar");
         assertThat(generatedFile).exists();
 
         // validate contents of jar file
@@ -182,115 +176,19 @@ public class JavadocJarMojoTest extends AbstractMojoTestCase {
                         "META-INF/maven/org.apache.maven.plugins.maven-javadoc-plugin.unit/javadocjar-archive-config/pom.properties");
     }
 
-    public void testStale() throws Exception {
-        File testPom = new File(getBasedir(), "src/test/resources/unit/stale-test/stale-test-plugin-config.xml");
-        JavadocJarMojo mojo = lookupMojo(testPom);
-        BufferingLog log = new BufferingLog();
-        mojo.setLog(log);
+    @Test
+    @InjectMojo(goal = "jar", pom = "stale-test-plugin-config.xml")
+    @Basedir("/unit/stale-test")
+    void testStale(JavadocJarMojo mojo) throws Exception {
 
-        Thread.sleep(500);
+        new File(getBasedir(), "/target/maven-javadoc-plugin-stale-data.txt").delete();
 
-        new File(getBasedir(), "target/test/unit/stale-test/target/maven-javadoc-plugin-stale-data.txt").delete();
         mojo.execute();
-        assertThat(log.getMessages()).contains("[DEBUG] No previous run data found, generating javadoc.");
+        verify(log).debug("No previous run data found, generating javadoc.");
 
-        Thread.sleep(500);
+        clearInvocations(log);
 
-        log.getMessages().clear();
         mojo.execute();
-        assertThat(log.getMessages()).contains("[DEBUG] Skipping javadoc generation, everything is up to date.");
-    }
-
-    private static class BufferingLog implements Log {
-        private final List<String> messages = new ArrayList<>();
-
-        public List<String> getMessages() {
-            return messages;
-        }
-
-        @Override
-        public boolean isDebugEnabled() {
-            return true;
-        }
-
-        @Override
-        public void debug(CharSequence charSequence) {
-            debug(charSequence, null);
-        }
-
-        @Override
-        public void debug(CharSequence charSequence, Throwable throwable) {
-            message("DEBUG", charSequence, throwable);
-        }
-
-        @Override
-        public void debug(Throwable throwable) {
-            debug(null, throwable);
-        }
-
-        @Override
-        public boolean isInfoEnabled() {
-            return true;
-        }
-
-        @Override
-        public void info(CharSequence charSequence) {
-            info(charSequence, null);
-        }
-
-        @Override
-        public void info(CharSequence charSequence, Throwable throwable) {
-            message("INFO", charSequence, throwable);
-        }
-
-        @Override
-        public void info(Throwable throwable) {
-            info(null, throwable);
-        }
-
-        @Override
-        public boolean isWarnEnabled() {
-            return true;
-        }
-
-        @Override
-        public void warn(CharSequence charSequence) {
-            warn(charSequence, null);
-        }
-
-        @Override
-        public void warn(CharSequence charSequence, Throwable throwable) {
-            message("WARN", charSequence, throwable);
-        }
-
-        @Override
-        public void warn(Throwable throwable) {
-            warn(null, throwable);
-        }
-
-        @Override
-        public boolean isErrorEnabled() {
-            return true;
-        }
-
-        @Override
-        public void error(CharSequence charSequence) {
-            error(charSequence, null);
-        }
-
-        @Override
-        public void error(CharSequence charSequence, Throwable throwable) {
-            message("ERROR", charSequence, throwable);
-        }
-
-        @Override
-        public void error(Throwable throwable) {
-            error(null, throwable);
-        }
-
-        private void message(String level, CharSequence message, Throwable throwable) {
-            messages.add("[" + level + "]" + (message != null ? " " + message : "")
-                    + (throwable != null ? " " + throwable : ""));
-        }
+        verify(log).debug("Skipping javadoc generation, everything is up to date.");
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
index 3218221d..d6c510f1 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocReportTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.plugins.javadoc;
 
+import javax.inject.Inject;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.HttpURLConnection;
@@ -29,46 +31,50 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 
 import org.apache.commons.lang3.StringUtils;
+import org.apache.maven.api.plugin.testing.Basedir;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoParameter;
+import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.LegacySupport;
-import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.apache.maven.plugins.javadoc.ProxyServer.AuthAsyncProxyServlet;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.project.ProjectBuildingRequest.RepositoryMerging;
+import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Settings;
-import org.apache.maven.shared.utils.io.FileUtils;
 import org.codehaus.plexus.languages.java.version.JavaVersion;
-import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
-import org.eclipse.aether.repository.LocalRepository;
 import org.hamcrest.MatcherAssert;
-import org.junit.AssumptionViolatedException;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledForJreRange;
+import org.junit.jupiter.api.condition.EnabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
+import org.opentest4j.TestAbortedException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.apache.commons.io.FileUtils.copyDirectory;
 import static org.apache.commons.io.FileUtils.deleteDirectory;
+import static org.apache.maven.api.plugin.testing.MojoExtension.getBasedir;
+import static org.apache.maven.api.plugin.testing.MojoExtension.getTestFile;
+import static org.apache.maven.api.plugin.testing.MojoExtension.setVariableValueToObject;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assumptions.assumeThat;
+import static org.assertj.core.api.Fail.fail;
 import static org.hamcrest.CoreMatchers.anyOf;
 import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assume.assumeThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.contains;
+import static org.mockito.Mockito.verify;
 
 /**
  * Test {@link org.apache.maven.plugins.javadoc.JavadocReport} class.
@@ -76,13 +82,18 @@ import static org.mockito.Mockito.when;
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  */
-public class JavadocReportTest extends AbstractMojoTestCase {
+@MojoTest(realRepositorySession = true)
+class JavadocReportTest {
 
-    private static final char LINE_SEPARATOR = ' ';
+    @Inject
+    private MavenSession mavenSession;
 
-    public static final String OPTIONS_UMLAUT_ENCODING = "Options Umlaut Encoding ö ä ü ß";
+    @Inject
+    private Log log;
 
-    private Path unit;
+    private static final char LINE_SEPARATOR = ' ';
+
+    private static final String OPTIONS_UMLAUT_ENCODING = "Options Umlaut Encoding ö ä ü ß";
 
     private Path tempDirectory;
 
@@ -90,19 +101,17 @@ public class JavadocReportTest extends AbstractMojoTestCase {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(JavadocReportTest.class);
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
+    @BeforeEach
+    void setUp() throws Exception {
         tempDirectory = Files.createTempDirectory("JavadocReportTest");
         localRepo = tempDirectory.resolve(Paths.get("target/local-repo/")).toFile();
-        unit = new File(getBasedir(), "src/test/resources/unit").toPath();
 
-        createTestRepo();
+        localRepo = tempDirectory.resolve(Paths.get("target/local-repo/")).toFile();
+        mavenSession.getRequest().setLocalRepositoryPath(localRepo);
     }
 
-    @Override
-    protected void tearDown() throws Exception {
+    @AfterEach
+    void tearDown() throws Exception {
         try {
             deleteDirectory(tempDirectory.toFile());
         } catch (IOException ex) {
@@ -110,94 +119,14 @@ public class JavadocReportTest extends AbstractMojoTestCase {
             // It will get cleared out eventually, and since
             // temporary directories have unique names,
             // it shouldn't affect subsequent tests.
-        }
-
-        super.tearDown();
-    }
-
-    private JavadocReport lookupMojo(Path testPom) throws Exception {
-        JavadocReport mojo = (JavadocReport) lookupMojo("javadoc", testPom.toFile());
-
-        Plugin p = new Plugin();
-        p.setGroupId("org.apache.maven.plugins");
-        p.setArtifactId("maven-javadoc-plugin");
-        MojoExecution mojoExecution = new MojoExecution(p, "javadoc", null);
-
-        setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
-
-        MavenProject currentProject = new MavenProjectStub();
-        currentProject.setGroupId("GROUPID");
-        currentProject.setArtifactId("ARTIFACTID");
-
-        List<MavenProject> reactorProjects =
-                mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList();
-        MavenSession session = newMavenSession(currentProject);
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", session.getRepositorySession());
-        setVariableValueToObject(mojo, "reactorProjects", reactorProjects);
-        return mojo;
-    }
-
-    /**
-     * Create test repository in target directory.
-     *
-     * @throws IOException if any
-     */
-    private void createTestRepo() throws IOException {
-        assertTrue(localRepo.mkdirs());
-
-        // ----------------------------------------------------------------------
-        // UMLGraph
-        // ----------------------------------------------------------------------
-
-        Path sourceDir = unit.resolve("doclet-test/artifact-doclet");
-        assertThat(sourceDir).exists();
-        copyDirectory(sourceDir.toFile(), localRepo);
 
-        // ----------------------------------------------------------------------
-        // UMLGraph-bis
-        // ----------------------------------------------------------------------
-
-        sourceDir = unit.resolve("doclet-path-test/artifact-doclet");
-        assertThat(sourceDir).exists();
-        copyDirectory(sourceDir.toFile(), localRepo);
+            // on Windows this can happen due to file locking
 
-        // ----------------------------------------------------------------------
-        // commons-attributes-compiler
-        // https://www.tullmann.org/pat/taglets/
-        // ----------------------------------------------------------------------
-
-        sourceDir = unit.resolve("taglet-test/artifact-taglet");
-        assertThat(sourceDir).exists();
-        copyDirectory(sourceDir.toFile(), localRepo);
-
-        // ----------------------------------------------------------------------
-        // stylesheetfile-test
-        // ----------------------------------------------------------------------
-
-        sourceDir = unit.resolve("stylesheetfile-test/artifact-stylesheetfile");
-        assertThat(sourceDir).exists();
-        copyDirectory(sourceDir.toFile(), localRepo);
-
-        // ----------------------------------------------------------------------
-        // helpfile-test
-        // ----------------------------------------------------------------------
-
-        sourceDir = unit.resolve("helpfile-test/artifact-helpfile");
-        assertThat(sourceDir).exists();
-        copyDirectory(sourceDir.toFile(), localRepo);
-
-        // Remove SCM files
-        List<String> files = FileUtils.getFileAndDirectoryNames(
-                localRepo, FileUtils.getDefaultExcludesAsString(), null, true, true, true, true);
-        for (String filename : files) {
-            File file = new File(filename);
-
-            if (file.isDirectory()) {
-                deleteDirectory(file);
-            } else {
-                file.delete();
-            }
+            // Suppressed: java.nio.file.FileSystemException:
+            // ...\junit-9294477811364490607\target\local-repo\...\stylesheetfile-test-1.0-SNAPSHOT.jar
+            // 	Suppressed: java.nio.file.FileSystemException:
+            // ...\junit-9412699201343745478\target\local-repo\....\helpfile-test-1.0-SNAPSHOT.jar:
+            // 	The process cannot access the file because it is being used by another process
         }
     }
 
@@ -240,13 +169,17 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testDefaultConfiguration() throws Exception {
-        Path testPom = unit.resolve("default-configuration/default-configuration-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "default-configuration-plugin-config.xml")
+    @MojoParameter(
+            name = "detectOfflineLinks",
+            value = "false") // before refactoring this parameter was set to false (root cause unknown)
+    @Basedir("/unit/default-configuration")
+    @Test
+    void testDefaultConfiguration(JavadocReport mojo) throws Exception {
         mojo.execute();
 
         // package level generated javadoc files
-        Path apidocs = new File(getBasedir(), "target/test/unit/default-configuration/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         String appHtml = "def/configuration/App.html";
         Path generatedFile = apidocs.resolve(appHtml);
@@ -260,7 +193,7 @@ public class JavadocReportTest extends AbstractMojoTestCase {
                 // only test when URL can be reached
                 if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                     try {
-                        assumeThat(connection.getURL().toString(), is(url));
+                        assumeThat(connection.getURL().toString()).isEqualTo(url);
 
                         // https://bugs.openjdk.java.net/browse/JDK-8216497
                         MatcherAssert.assertThat(
@@ -269,7 +202,7 @@ public class JavadocReportTest extends AbstractMojoTestCase {
                                 anyOf(
                                         containsString("/docs/api/java/lang/Object.html"),
                                         containsString("/docs/api/java.base/java/lang/Object.html")));
-                    } catch (AssumptionViolatedException e) {
+                    } catch (TestAbortedException e) {
                         LOGGER.warn("ignoring defaultAPI check: {}", e.getMessage());
                     }
                 }
@@ -334,12 +267,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testSubpackages() throws Exception {
-        Path testPom = unit.resolve("subpackages-test/subpackages-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "subpackages-test-plugin-config.xml")
+    @Basedir("/unit/subpackages-test")
+    @Test
+    void testSubpackages(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/subpackages-test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         // check the excluded packages
         assertThat(apidocs.resolve("subpackages/test/excluded")).doesNotExist();
@@ -354,13 +288,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
                 .exists();
     }
 
-    public void testIncludesExcludes() throws Exception {
-        Path testPom = unit.resolve("file-include-exclude-test/file-include-exclude-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "file-include-exclude-plugin-config.xml")
+    @Basedir("/unit/file-include-exclude-test")
+    @Test
+    void testIncludesExcludes(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        Path apidocs =
-                new File(getBasedir(), "target/test/unit/file-include-exclude-test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         // check if the classes in the specified subpackages were included
         assertThat(apidocs.resolve("subpackages/test/App.html")).exists();
@@ -377,18 +311,14 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testDocfiles() throws Exception {
-        // Should be an assumption, but not supported by TestCase
-        // Seems like a bug in Javadoc 9 and above
-        if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("9")) {
-            return;
-        }
-
-        Path testPom = unit.resolve("docfiles-test/docfiles-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "docfiles-test-plugin-config.xml")
+    @Basedir("/unit/docfiles-test")
+    @Test
+    @EnabledOnJre(JRE.JAVA_8) // Seems like a bug in Javadoc 9 and above
+    void testDocfiles(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/docfiles-test/target/site/apidocs/").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs/").toPath();
 
         // check if the doc-files subdirectories were copied
         assertThat(apidocs.resolve("docfiles/test/doc-files")).exists();
@@ -398,10 +328,21 @@ public class JavadocReportTest extends AbstractMojoTestCase {
                 .exists();
         assertThat(apidocs.resolve("docfiles/test/doc-files/excluded-dir1")).doesNotExist();
         assertThat(apidocs.resolve("docfiles/test/doc-files/excluded-dir2")).doesNotExist();
+    }
 
-        testPom = unit.resolve("docfiles-with-java-test/docfiles-with-java-test-plugin-config.xml");
-        mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "docfiles-with-java-test-plugin-config.xml")
+    @Basedir("/unit/docfiles-with-java-test")
+    @Test
+    @EnabledOnJre(JRE.JAVA_8)
+    void testDocfilesWithJava(JavadocReport mojo) throws Exception {
         mojo.execute();
+
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs/").toPath();
+
+        // check if the doc-files subdirectories were copied
+        assertThat(apidocs.resolve("test/doc-files")).exists();
+        assertThat(apidocs.resolve("test/doc-files/App.java")).exists();
+        assertThat(apidocs.resolve("test/App.html")).exists();
     }
 
     /**
@@ -410,12 +351,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testCustomConfiguration() throws Exception {
-        Path testPom = unit.resolve("custom-configuration/custom-configuration-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "custom-configuration-plugin-config.xml")
+    @Basedir("/unit/custom-configuration")
+    @Test
+    void testCustomConfiguration(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/custom-configuration/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         // check if there is a tree page generated (notree == true)
         assertThat(apidocs.resolve("overview-tree.html")).doesNotExist();
@@ -440,8 +382,12 @@ public class JavadocReportTest extends AbstractMojoTestCase {
 
         // offlineLinks
         if (JavaVersion.JAVA_VERSION.isBefore("11.0.2")) {
+            // some java 8 jdks produce a link to oracle
             assertThat(str)
-                    .containsIgnoringCase("href=\"http://java.sun.com/j2se/1.4.2/docs/api/java/lang/string.html");
+                    .containsAnyOf(
+                            "href=\"http://java.sun.com/j2se/1.4.2/docs/api/java/lang/string.html",
+                            "href=\"https://docs.oracle.com/javase/8/docs/api/java/lang/String.html");
+
         } else {
             assertTrue(str.toLowerCase(Locale.ENGLISH)
                     .contains("href=\"http://java.sun.com/j2se/1.4.2/docs/api/java.base/java/lang/string.html"));
@@ -480,62 +426,59 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testDoclets() throws Exception {
-        if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("13")) {
-            // As of JDK 13, the com.sun.javadoc API is no longer supported.
-            return;
-        }
+    @InjectMojo(goal = "javadoc", pom = "doclet-test-plugin-config.xml")
+    @Basedir("/unit/doclet-test")
+    @Test
+    @EnabledForJreRange(max = JRE.JAVA_12) // As of JDK 13, the com.sun.javadoc API is no longer supported.
+    void testDoclets(JavadocReport mojo) throws Exception {
 
         // ----------------------------------------------------------------------
         // doclet-test: check if the file generated by UmlGraph exists and if
         // doclet path contains the UmlGraph artifact
         // ----------------------------------------------------------------------
 
-        Path testPom = unit.resolve("doclet-test/doclet-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
-
-        MavenSession session = spy(newMavenSession(mojo.project));
-        ProjectBuildingRequest buildingRequest = mock(ProjectBuildingRequest.class);
-        when(buildingRequest.getRemoteRepositories()).thenReturn(mojo.project.getRemoteArtifactRepositories());
-        when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
-        DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new LocalRepository(localRepo)));
-        when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
-        when(session.getRepositorySession()).thenReturn(repositorySession);
-        LegacySupport legacySupport = lookup(LegacySupport.class);
-        legacySupport.setSession(session);
-
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repositorySession);
+        File sourceDir = getTestFile("artifact-doclet");
+        assertThat(sourceDir).exists();
+        copyDirectory(sourceDir, localRepo);
+
         mojo.execute();
 
-        Path generatedFile =
-                new File(getBasedir(), "target/test/unit/doclet-test/target/site/apidocs/graph.dot").toPath();
+        Path generatedFile = new File(getBasedir(), "/target/site/apidocs/graph.dot").toPath();
         assertThat(generatedFile).exists();
 
         Path optionsFile = new File(mojo.getPluginReportOutputDirectory(), "options").toPath();
         assertThat(optionsFile).exists();
         String options = readFile(optionsFile);
         assertThat(options).contains("/target/local-repo/umlgraph/UMLGraph/2.1/UMLGraph-2.1.jar");
+    }
 
-        // ----------------------------------------------------------------------
-        // doclet-path: check if the file generated by UmlGraph exists and if
-        // doclet path contains the twice UmlGraph artifacts
-        // ----------------------------------------------------------------------
+    @InjectMojo(goal = "javadoc", pom = "doclet-path-test-plugin-config.xml")
+    @Basedir("/unit/doclet-path-test")
+    @Test
+    @EnabledForJreRange(max = JRE.JAVA_12) // As of JDK 13, the com.sun.javadoc API is no longer supported.
+    void testDocletsPath(JavadocReport mojo) throws Exception {
+
+        ////     ----------------------------------------------------------------------
+        ////     doclet-path: check if the file generated by UmlGraph exists and if
+        ////     doclet path contains the twice UmlGraph artifacts
+        ////     ----------------------------------------------------------------------
+
+        File sourceDir = getTestFile("artifact-doclet");
+        assertThat(sourceDir).exists();
+        copyDirectory(sourceDir, localRepo);
+
+        sourceDir = getTestFile("../doclet-test/artifact-doclet");
+        assertThat(sourceDir).exists();
+        copyDirectory(sourceDir, localRepo);
 
-        testPom = unit.resolve("doclet-path-test/doclet-path-test-plugin-config.xml");
-        mojo = lookupMojo(testPom);
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repositorySession);
         mojo.execute();
 
-        generatedFile = new File(getBasedir(), "target/test/unit/doclet-test/target/site/apidocs/graph.dot").toPath();
+        Path generatedFile = new File(getBasedir(), "/target/site/apidocs/graph.dot").toPath();
         assertThat(generatedFile).exists();
 
-        optionsFile = new File(mojo.getPluginReportOutputDirectory(), "options").toPath();
+        Path optionsFile = new File(mojo.getPluginReportOutputDirectory(), "options").toPath();
         assertThat(optionsFile).exists();
-        options = readFile(optionsFile);
+        String options = readFile(optionsFile);
         assertThat(options)
                 .contains("/target/local-repo/umlgraph/UMLGraph/2.1/UMLGraph-2.1.jar")
                 .contains("/target/local-repo/umlgraph/UMLGraph-bis/2.1/UMLGraph-bis-2.1.jar");
@@ -546,12 +489,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testQuotedPath() throws Exception {
-        Path testPom = unit.resolve("quotedpath'test/quotedpath-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "quotedpath-test-plugin-config.xml")
+    @Basedir("/unit/quotedpath'test")
+    @Test
+    void testQuotedPath(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/quotedpath'test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         // package level generated javadoc files
         assertThat(apidocs.resolve("quotedpath/test/App.html")).exists();
@@ -579,9 +523,10 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testOptionsUmlautEncoding() throws Exception {
-        Path testPom = unit.resolve("optionsumlautencoding-test/optionsumlautencoding-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "optionsumlautencoding-test-plugin-config.xml")
+    @Basedir("/unit/optionsumlautencoding-test")
+    @Test
+    void testOptionsUmlautEncoding(JavadocReport mojo) throws Exception {
         mojo.execute();
 
         Path optionsFile = new File(mojo.getPluginReportOutputDirectory(), "options").toPath();
@@ -600,8 +545,7 @@ public class JavadocReportTest extends AbstractMojoTestCase {
 
         assertThat(content).contains(expected);
 
-        Path apidocs =
-                new File(getBasedir(), "target/test/unit/optionsumlautencoding-test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         // package level generated javadoc files
         assertThat(apidocs.resolve("optionsumlautencoding/test/App.html")).exists();
@@ -629,39 +573,24 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testTaglets() throws Exception {
+    @InjectMojo(goal = "javadoc", pom = "taglet-test-plugin-config.xml")
+    @Basedir("/unit/taglet-test")
+    @Test
+    @EnabledForJreRange(max = JRE.JAVA_9)
+    void testTaglets(JavadocReport mojo) throws Exception {
         // ----------------------------------------------------------------------
         // taglet-test: check if a taglet is used
         // ----------------------------------------------------------------------
-
-        // Should be an assumption, but not supported by TestCase
         // com.sun.tools.doclets.Taglet not supported by Java9 anymore
         // Should be refactored with jdk.javadoc.doclet.Taglet
-        if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("10")) {
-            return;
-        }
 
-        Path testPom = unit.resolve("taglet-test/taglet-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
-
-        MavenSession session = spy(newMavenSession(mojo.project));
-        ProjectBuildingRequest buildingRequest = mock(ProjectBuildingRequest.class);
-        when(buildingRequest.getRemoteRepositories()).thenReturn(mojo.project.getRemoteArtifactRepositories());
-        when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
-        DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new LocalRepository(localRepo)));
-        when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
-        when(session.getRepositorySession()).thenReturn(repositorySession);
-        LegacySupport legacySupport = lookup(LegacySupport.class);
-        legacySupport.setSession(session);
-
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repositorySession);
+        File sourceDir = getTestFile("artifact-taglet");
+        assertThat(sourceDir).exists();
+        copyDirectory(sourceDir, localRepo);
 
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/taglet-test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         assertThat(apidocs.resolve("index.html")).exists();
 
@@ -676,18 +605,16 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testJdk5() throws Exception {
-        // Should be an assumption, but not supported by TestCase
+    @InjectMojo(goal = "javadoc", pom = "jdk5-test-plugin-config.xml")
+    @Basedir("/unit/jdk5-test")
+    @Test
+    @EnabledForJreRange(max = JRE.JAVA_8)
+    void testJdk5(JavadocReport mojo) throws Exception {
         // Java 5 not supported by Java9 anymore
-        if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("9")) {
-            return;
-        }
 
-        Path testPom = unit.resolve("jdk5-test/jdk5-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/jdk5-test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         assertThat(apidocs.resolve("index.html")).exists();
 
@@ -708,12 +635,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testToFindJavadoc() throws Exception {
+    @InjectMojo(goal = "javadoc", pom = "javaHome-test-plugin-config.xml")
+    @Basedir("/unit/javaHome-test")
+    @Test
+    void testToFindJavadoc(JavadocReport mojo) throws Exception {
         String oldJreHome = System.getProperty("java.home");
         System.setProperty("java.home", "foo/bar");
 
-        Path testPom = unit.resolve("javaHome-test/javaHome-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
         mojo.execute();
 
         System.setProperty("java.home", oldJreHome);
@@ -724,12 +652,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testJavadocResources() throws Exception {
-        Path testPom = unit.resolve("resources-test/resources-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "resources-test-plugin-config.xml")
+    @Basedir("/unit/resources-test")
+    @Test
+    void testJavadocResources(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/resources-test/target/site/apidocs/").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs/").toPath();
 
         Path app = apidocs.resolve("resources/test/App.html");
         assertThat(app).exists();
@@ -744,36 +673,33 @@ public class JavadocReportTest extends AbstractMojoTestCase {
         assertThat(content).contains("<img src=\"doc-files/maven-feather.png\" alt=\"Maven\">");
         assertThat(apidocs.resolve("resources/test2/doc-files/maven-feather.png"))
                 .doesNotExist();
+    }
 
-        // with excludes
-        testPom = unit.resolve("resources-with-excludes-test/resources-with-excludes-test-plugin-config.xml");
-        mojo = lookupMojo(testPom);
+    /**
+     * Test the javadoc resources.
+     *
+     * @throws Exception if any
+     */
+    @InjectMojo(goal = "javadoc", pom = "resources-with-excludes-test-plugin-config.xml")
+    @Basedir("/unit/resources-with-excludes-test")
+    @Test
+    void testJavadocResourcesWithExcludes(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        apidocs = new File(getBasedir(), "target/test/unit/resources-with-excludes-test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
-        app = apidocs.resolve("resources/test/App.html");
+        Path app = apidocs.resolve("resources/test/App.html");
         assertThat(app).exists();
-        content = readFile(app);
-        assertThat(content).contains("<img src=\"doc-files/maven-feather.png\" alt=\"Maven\">");
 
-        JavaVersion javadocVersion = (JavaVersion) getVariableValueFromObject(mojo, "javadocRuntimeVersion");
-        if (javadocVersion.isAtLeast("1.8") /* && javadocVersion.isBefore( "14" ) */) {
-            // https://bugs.openjdk.java.net/browse/JDK-8032205
-            assertThat(apidocs.resolve("resources/test/doc-files/maven-feather.png"))
-                    .as("Javadoc runtime version: " + javadocVersion
-                            + "\nThis bug appeared in JDK8 and was planned to be fixed in JDK9, see JDK-8032205")
-                    .exists();
-        } else {
-            assertThat(apidocs.resolve("resources/test/doc-files/maven-feather.png"))
-                    .doesNotExist();
-        }
+        assertThat(apidocs.resolve("resources/test/doc-files/maven-feather.png"))
+                .exists();
+
         assertThat(apidocs.resolve("resources/test2/doc-files/maven-feather.png"))
                 .exists();
 
-        app2 = apidocs.resolve("resources/test2/App2.html");
+        Path app2 = apidocs.resolve("resources/test2/App2.html");
         assertThat(app2).exists();
-        content = readFile(app2);
+        String content = readFile(app2);
         assertThat(content).contains("<img src=\"doc-files/maven-feather.png\" alt=\"Maven\">");
         assertThat(apidocs.resolve("resources/test2/doc-files/maven-feather.png"))
                 .exists();
@@ -784,13 +710,18 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testPom() throws Exception {
-        Path testPom = unit.resolve("pom-test/pom-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "pom-test-plugin-config.xml")
+    @Basedir("/unit/pom-test")
+    @Test
+    void testPom(JavadocReport mojo) throws Exception {
+
+        mojo.getProject().setPackaging("pom");
+
         mojo.execute();
 
-        assertThat(new File(getBasedir(), "target/test/unit/pom-test/target/site"))
-                .doesNotExist();
+        assertThat(new File(getBasedir(), "/target/site")).doesNotExist();
+
+        verify(log).info(contains("Skipping org.apache.maven.plugins:maven-javadoc-plugin"));
     }
 
     /**
@@ -798,12 +729,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testTag() throws Exception {
-        Path testPom = unit.resolve("tag-test/tag-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "tag-test-plugin-config.xml")
+    @Basedir("/unit/tag-test")
+    @Test
+    void testTag(JavadocReport mojo) throws Exception {
         mojo.execute();
 
-        Path app = new File(getBasedir(), "target/test/unit/tag-test/target/site/apidocs/tag/test/App.html").toPath();
+        Path app = new File(getBasedir(), "/target/site/apidocs/tag/test/App.html").toPath();
         assertThat(app).exists();
         String readed = readFile(app);
         assertThat(readed).contains(">To do something:</").contains(">Generator Class:</");
@@ -823,9 +755,10 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testHeaderFooter() throws Exception {
-        Path testPom = unit.resolve("header-footer-test/header-footer-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "header-footer-test-plugin-config.xml")
+    @Basedir("/unit/header-footer-test")
+    @Test
+    void testHeaderFooter(JavadocReport mojo) throws Exception {
         try {
             mojo.execute();
         } catch (MojoExecutionException e) {
@@ -838,9 +771,10 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testNewline() throws Exception {
-        Path testPom = unit.resolve("newline-test/newline-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
+    @InjectMojo(goal = "javadoc", pom = "newline-test-plugin-config.xml")
+    @Basedir("/unit/newline-test")
+    @Test
+    void testNewline(JavadocReport mojo) throws Exception {
         try {
             mojo.execute();
         } catch (MojoExecutionException e) {
@@ -853,18 +787,15 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testJdk6() throws Exception {
-        // Should be an assumption, but not supported by TestCase
+    @InjectMojo(goal = "javadoc", pom = "jdk6-test-plugin-config.xml")
+    @Basedir("/unit/jdk6-test")
+    @EnabledForJreRange(max = JRE.JAVA_11)
+    @Test
+    void testJdk6(JavadocReport mojo) throws Exception {
         // Java 6 not supported by Java 12 anymore
-        if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("12")) {
-            return;
-        }
-
-        Path testPom = unit.resolve("jdk6-test/jdk6-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
         mojo.execute();
 
-        Path apidocs = new File(getBasedir(), "target/test/unit/jdk6-test/target/site/apidocs").toPath();
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
         assertThat(apidocs.resolve("index.html")).exists();
 
         Path overview;
@@ -902,7 +833,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testProxy() throws Exception {
+    @InjectMojo(goal = "javadoc", pom = "proxy-test-plugin-config.xml")
+    @Basedir("/unit/proxy-test")
+    @Test
+    void testProxyWithDummy(JavadocReport mojo) throws Exception {
+
+        mojo.getProject().setDependencyArtifacts(Collections.emptySet());
+
         Settings settings = new Settings();
         Proxy proxy = new Proxy();
 
@@ -916,32 +853,12 @@ public class JavadocReportTest extends AbstractMojoTestCase {
         proxy.setNonProxyHosts("www.google.com|*.somewhere.com");
         settings.addProxy(proxy);
 
-        Path testPom =
-                new File(getBasedir(), "src/test/resources/unit/proxy-test/proxy-test-plugin-config.xml").toPath();
-        JavadocReport mojo = lookupMojo(testPom);
-
-        MavenSession session = spy(newMavenSession(mojo.project));
-        ProjectBuildingRequest buildingRequest = mock(ProjectBuildingRequest.class);
-        when(buildingRequest.getRemoteRepositories()).thenReturn(mojo.project.getRemoteArtifactRepositories());
-        when(buildingRequest.getRepositoryMerging()).thenReturn(RepositoryMerging.POM_DOMINANT);
-        when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
-        DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new LocalRepository(localRepo)));
-        when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
-        when(session.getRepositorySession()).thenReturn(repositorySession);
-        LegacySupport legacySupport = lookup(LegacySupport.class);
-        legacySupport.setSession(session);
-
         setVariableValueToObject(mojo, "settings", settings);
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repositorySession);
+
         mojo.execute();
 
         Path commandLine = new File(
-                        getBasedir(),
-                        "target/test/unit/proxy-test/target/site/apidocs/javadoc."
-                                + (SystemUtils.IS_OS_WINDOWS ? "bat" : "sh"))
+                        getBasedir(), "/target/site/apidocs/javadoc." + (SystemUtils.IS_OS_WINDOWS ? "bat" : "sh"))
                 .toPath();
         assertThat(commandLine).exists();
         String readed = readFile(commandLine);
@@ -952,64 +869,99 @@ public class JavadocReportTest extends AbstractMojoTestCase {
             assertThat(readed).contains(" \"-J-Dhttp.nonProxyHosts=\\\"www.google.com^|*.somewhere.com\\\"\" ");
         }
 
-        Path options = new File(getBasedir(), "target/test/unit/proxy-test/target/site/apidocs/options").toPath();
+        Path options = new File(getBasedir(), "/target/site/apidocs/options").toPath();
         assertThat(options).exists();
         String optionsContent = readFile(options);
         // NO -link expected
         assertThat(optionsContent).doesNotContain("-link");
+    }
+
+    /**
+     * Method to test proxy support in the javadoc
+     *
+     * @throws Exception if any
+     */
+    @InjectMojo(goal = "javadoc", pom = "proxy-test-plugin-config.xml")
+    @MojoParameter(
+            name = "detectOfflineLinks",
+            value = "false") // before refactoring this parameter was set to false (root cause unknown)
+    @Basedir("/unit/proxy-test")
+    @Test
+    void testRealProxy(JavadocReport mojo) throws Exception {
+        mojo.getProject().setDependencyArtifacts(Collections.emptySet());
 
         // real proxy
         ProxyServer proxyServer = null;
-        AuthAsyncProxyServlet proxyServlet;
+        ProxyServer.AuthAsyncProxyServlet proxyServlet;
         try {
-            proxyServlet = new AuthAsyncProxyServlet();
+            proxyServlet = new ProxyServer.AuthAsyncProxyServlet();
             proxyServer = new ProxyServer(proxyServlet);
             proxyServer.start();
 
-            settings = new Settings();
-            proxy = new Proxy();
+            Settings settings = new Settings();
+            Proxy proxy = new Proxy();
             proxy.setActive(true);
             proxy.setHost(proxyServer.getHostName());
             proxy.setPort(proxyServer.getPort());
             proxy.setProtocol("http");
             settings.addProxy(proxy);
 
-            mojo = lookupMojo(testPom);
             setVariableValueToObject(mojo, "settings", settings);
-            setVariableValueToObject(mojo, "session", session);
-            setVariableValueToObject(mojo, "repoSession", repositorySession);
+
             mojo.execute();
-            readed = readFile(commandLine);
+            Path commandLine = new File(
+                            getBasedir(), "/target/site/apidocs/javadoc." + (SystemUtils.IS_OS_WINDOWS ? "bat" : "sh"))
+                    .toPath();
+            String readed = readFile(commandLine);
             assertTrue(readed.contains("-J-Dhttp.proxyHost=" + proxyServer.getHostName()));
             assertTrue(readed.contains("-J-Dhttp.proxyPort=" + proxyServer.getPort()));
 
-            optionsContent = readFile(options);
+            Path options = new File(getBasedir(), "/target/site/apidocs/options").toPath();
+            assertThat(options).exists();
+            //            String optionsContent = readFile(options);
             // -link expected
             // TODO: This got disabled for now!
             // This test fails since the last commit but I actually think it only ever worked by accident.
-            // It did rely on a commons-logging-1.0.4.pom which got resolved by a test which did run previously.
+            // It did rely on a commons-logging-1.0.4.pom which got resolved by a test which did run
+            //         previously.
             // But after updating to commons-logging.1.1.1 there is no pre-resolved artifact available in
             // target/local-repo anymore, thus the javadoc link info cannot get built and the test fails
             // I'll for now just disable this line of code, because the test as far as I can see _never_
             // did go upstream. The remoteRepository list used is always empty!.
             //
-            //            assertTrue( optionsContent.contains( "-link 'http://commons.apache.org/logging/apidocs'" ) );
+            //            assertTrue( optionsContent.contains( "-link
+            //         'http://commons.apache.org/logging/apidocs'"
+            //             ) );
         } finally {
             if (proxyServer != null) {
                 proxyServer.stop();
             }
         }
+    }
+
+    /**
+     * Method to test proxy support in the javadoc
+     *
+     * @throws Exception if any
+     */
+    @InjectMojo(goal = "javadoc", pom = "proxy-test-plugin-config.xml")
+    @Basedir("/unit/proxy-test")
+    @Test
+    void testAuthProxy(JavadocReport mojo) throws Exception {
+        mojo.getProject().setDependencyArtifacts(Collections.emptySet());
 
         // auth proxy
         Map<String, String> authentications = new HashMap<>();
         authentications.put("foo", "bar");
+        ProxyServer proxyServer = null;
+        ProxyServer.AuthAsyncProxyServlet proxyServlet;
         try {
-            proxyServlet = new AuthAsyncProxyServlet(authentications);
+            proxyServlet = new ProxyServer.AuthAsyncProxyServlet(authentications);
             proxyServer = new ProxyServer(proxyServlet);
             proxyServer.start();
 
-            settings = new Settings();
-            proxy = new Proxy();
+            Settings settings = new Settings();
+            Proxy proxy = new Proxy();
             proxy.setActive(true);
             proxy.setHost(proxyServer.getHostName());
             proxy.setPort(proxyServer.getPort());
@@ -1018,20 +970,32 @@ public class JavadocReportTest extends AbstractMojoTestCase {
             proxy.setPassword("bar");
             settings.addProxy(proxy);
 
-            mojo = lookupMojo(testPom);
             setVariableValueToObject(mojo, "settings", settings);
-            setVariableValueToObject(mojo, "session", session);
-            setVariableValueToObject(mojo, "repoSession", repositorySession);
+
             mojo.execute();
-            readed = readFile(commandLine);
-            assertThat(readed)
-                    .contains("-J-Dhttp.proxyHost=" + proxyServer.getHostName())
-                    .contains("-J-Dhttp.proxyPort=" + proxyServer.getPort());
+            Path commandLine = new File(
+                            getBasedir(), "/target/site/apidocs/javadoc." + (SystemUtils.IS_OS_WINDOWS ? "bat" : "sh"))
+                    .toPath();
+            String readed = readFile(commandLine);
+            assertTrue(readed.contains("-J-Dhttp.proxyHost=" + proxyServer.getHostName()));
+            assertTrue(readed.contains("-J-Dhttp.proxyPort=" + proxyServer.getPort()));
 
-            optionsContent = readFile(options);
+            Path options = new File(getBasedir(), "/target/site/apidocs/options").toPath();
+            assertThat(options).exists();
+            //            String optionsContent = readFile(options);
             // -link expected
-            // see comment above (line 829)
-            //             assertTrue( optionsContent.contains( "-link 'http://commons.apache.org/logging/apidocs'" ) );
+            // TODO: This got disabled for now!
+            // This test fails since the last commit but I actually think it only ever worked by accident.
+            // It did rely on a commons-logging-1.0.4.pom which got resolved by a test which did run
+            //         previously.
+            // But after updating to commons-logging.1.1.1 there is no pre-resolved artifact available in
+            // target/local-repo anymore, thus the javadoc link info cannot get built and the test fails
+            // I'll for now just disable this line of code, because the test as far as I can see _never_
+            // did go upstream. The remoteRepository list used is always empty!.
+            //
+            //            assertTrue( optionsContent.contains( "-link
+            //         'http://commons.apache.org/logging/apidocs'"
+            //             ) );
         } finally {
             if (proxyServer != null) {
                 proxyServer.stop();
@@ -1044,46 +1008,79 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testValidateOptions() throws Exception {
+    @InjectMojo(goal = "javadoc", pom = "wrong-encoding-test-plugin-config.xml")
+    @Basedir("/unit/validate-options-test")
+    @Test
+    void testValidateOptionsWrongEncoding(JavadocReport mojo) throws Exception {
         // encoding
-        Path testPom = unit.resolve("validate-options-test/wrong-encoding-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
         try {
             mojo.execute();
             fail("No wrong encoding catch");
         } catch (MojoExecutionException e) {
-            assertTrue("No wrong encoding catch", e.getMessage().contains("Unsupported option <encoding/>"));
+            assertTrue(e.getMessage().contains("Unsupported option <encoding/>"), "No wrong encoding catch");
         }
-        testPom = unit.resolve("validate-options-test/wrong-docencoding-test-plugin-config.xml");
-        mojo = lookupMojo(testPom);
+    }
+    /**
+     * Method to test error or conflict in Javadoc options and in standard doclet options.
+     *
+     * @throws Exception if any
+     */
+    @InjectMojo(goal = "javadoc", pom = "wrong-docencoding-test-plugin-config.xml")
+    @Basedir("/unit/validate-options-test")
+    @Test
+    void testValidateOptionsWrongDocencoding(JavadocReport mojo) throws Exception {
         try {
             mojo.execute();
             fail("No wrong docencoding catch");
         } catch (MojoExecutionException e) {
-            assertTrue("No wrong docencoding catch", e.getMessage().contains("Unsupported option <docencoding/>"));
+            assertTrue(e.getMessage().contains("Unsupported option <docencoding/>"), "No wrong docencoding catch");
         }
-        testPom = unit.resolve("validate-options-test/wrong-charset-test-plugin-config.xml");
-        mojo = lookupMojo(testPom);
+    }
+
+    /**
+     * Method to test error or conflict in Javadoc options and in standard doclet options.
+     *
+     * @throws Exception if any
+     */
+    @InjectMojo(goal = "javadoc", pom = "wrong-charset-test-plugin-config.xml")
+    @Basedir("/unit/validate-options-test")
+    @Test
+    void testValidateOptionsWrongCharset(JavadocReport mojo) throws Exception {
         try {
             mojo.execute();
             fail("No wrong charset catch");
         } catch (MojoExecutionException e) {
-            assertTrue("No wrong charset catch", e.getMessage().contains("Unsupported option <charset/>"));
+            assertTrue(e.getMessage().contains("Unsupported option <charset/>"), "No wrong charset catch");
         }
+    }
 
-        testPom = unit.resolve("validate-options-test/wrong-locale-with-variant-test-plugin-config.xml");
-        mojo = lookupMojo(testPom);
+    /**
+     * Method to test error or conflict in Javadoc options and in standard doclet options.
+     *
+     * @throws Exception if any
+     */
+    @InjectMojo(goal = "javadoc", pom = "wrong-locale-with-variant-test-plugin-config.xml")
+    @Basedir("/unit/validate-options-test")
+    @Test
+    void testValidateOptionsWrongLocale(JavadocReport mojo) throws Exception {
         mojo.execute();
-        assertTrue("No wrong locale catch", true);
+        assertTrue(true, "No wrong locale catch");
+    }
 
-        // conflict options
-        testPom = unit.resolve("validate-options-test/conflict-options-test-plugin-config.xml");
-        mojo = lookupMojo(testPom);
+    /**
+     * Method to test error or conflict in Javadoc options and in standard doclet options.
+     *
+     * @throws Exception if any
+     */
+    @InjectMojo(goal = "javadoc", pom = "conflict-options-test-plugin-config.xml")
+    @Basedir("/unit/validate-options-test")
+    @Test
+    void testValidateOptionsConflicts(JavadocReport mojo) throws Exception {
         try {
             mojo.execute();
             fail("No conflict catch");
         } catch (MojoExecutionException e) {
-            assertTrue("No conflict catch", e.getMessage().contains("Option <nohelp/> conflicts with <helpfile/>"));
+            assertTrue(e.getMessage().contains("Option <nohelp/> conflicts with <helpfile/>"), "No conflict catch");
         }
     }
 
@@ -1092,25 +1089,12 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testTagletArtifacts() throws Exception {
-        // Should be an assumption, but not supported by TestCase
-        // com.sun.tools.doclets.Taglet not supported by Java 10 anymore
-        if (JavaVersion.JAVA_SPECIFICATION_VERSION.isAtLeast("10")) {
-            return;
-        }
+    @InjectMojo(goal = "javadoc", pom = "tagletArtifacts-test-plugin-config.xml")
+    @Basedir("/unit/tagletArtifacts-test")
+    @Test
+    @EnabledForJreRange(max = JRE.JAVA_9)
+    void testTagletArtifacts(JavadocReport mojo) throws Exception {
 
-        Path testPom = unit.resolve("tagletArtifacts-test/tagletArtifacts-test-plugin-config.xml");
-        JavadocReport mojo = lookupMojo(testPom);
-
-        MavenSession session = newMavenSession(mojo.project);
-        DefaultRepositorySystemSession repoSysSession = (DefaultRepositorySystemSession) session.getRepositorySession();
-        repoSysSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                .newInstance(session.getRepositorySession(), new LocalRepository(new File("target/local-repo"))));
-        // Ensure remote repo connection uses SSL
-        LegacySupport legacySupport = lookup(LegacySupport.class);
-        legacySupport.setSession(session);
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repoSysSession);
         mojo.execute();
 
         Path optionsFile = new File(mojo.getPluginReportOutputDirectory(), "options").toPath();
@@ -1130,27 +1114,35 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testStylesheetfile() throws Exception {
-        Path testPom = unit.resolve("stylesheetfile-test/pom.xml");
-
-        JavadocReport mojo = lookupMojo(testPom);
-        assertNotNull(mojo);
-
-        MavenSession session = spy(newMavenSession(mojo.project));
-        ProjectBuildingRequest buildingRequest = mock(ProjectBuildingRequest.class);
-        when(buildingRequest.getRemoteRepositories()).thenReturn(mojo.project.getRemoteArtifactRepositories());
-        when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
-        DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new LocalRepository(localRepo)));
-        when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
-        when(session.getRepositorySession()).thenReturn(repositorySession);
-        LegacySupport legacySupport = lookup(LegacySupport.class);
-        legacySupport.setSession(session);
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repositorySession);
-
-        Path apidocs = new File(getBasedir(), "target/test/unit/stylesheetfile-test/target/site/apidocs").toPath();
+    @InjectMojo(goal = "javadoc", pom = "pom.xml")
+    @Basedir("/unit/stylesheetfile-test")
+    @Test
+    void testStylesheetfile(JavadocReport mojo) throws Exception {
+
+        // bug in testing framework - wrong resource dir name
+        mojo.getProject()
+                .getBuild()
+                .getResources()
+                .get(0)
+                .setDirectory(getTestFile("src/main/resources").getAbsolutePath());
+
+        // add dependency to find the stylesheetfile in a plugin dependency
+        Plugin plugin = new Plugin();
+        plugin.setGroupId("org.apache.maven.plugins");
+        plugin.setArtifactId("maven-javadoc-plugin");
+        Dependency dependency = new Dependency();
+        dependency.setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
+        dependency.setArtifactId("stylesheetfile-test");
+        dependency.setVersion("1.0-SNAPSHOT");
+        plugin.addDependency(dependency);
+
+        mojo.getProject().getBuild().setPlugins(Collections.singletonList(plugin));
+
+        File testArtifactDir = getTestFile("/artifact-stylesheetfile");
+        assertThat(testArtifactDir).exists();
+        copyDirectory(testArtifactDir, localRepo);
+
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         Path stylesheetfile = apidocs.resolve("stylesheet.css");
         if (JavaVersion.JAVA_VERSION.isAtLeast("23")) {
@@ -1185,7 +1177,7 @@ public class JavadocReportTest extends AbstractMojoTestCase {
 
         // stylesheetfile defined as a project resource
         setVariableValueToObject(mojo, "stylesheet", null);
-        setVariableValueToObject(mojo, "stylesheetfile", "com/mycompany/app/javadoc/css/stylesheet.css");
+        setVariableValueToObject(mojo, "stylesheetfile", "/com/mycompany/app/javadoc/css/stylesheet.css");
         mojo.execute();
 
         content = readFile(stylesheetfile);
@@ -1193,13 +1185,12 @@ public class JavadocReportTest extends AbstractMojoTestCase {
 
         optionsContent = readFile(options);
         assertTrue(optionsContent.contains("-stylesheetfile"));
-        Path stylesheetResource =
-                unit.resolve("stylesheetfile-test/src/main/resources/com/mycompany/app/javadoc/css/stylesheet.css");
+        File stylesheetResource = getTestFile("/src/main/resources/com/mycompany/app/javadoc/css/stylesheet.css");
         assertTrue(optionsContent.contains(
-                "'" + stylesheetResource.toFile().getAbsolutePath().replaceAll("\\\\", "/") + "'"));
+                "'" + stylesheetResource.getAbsolutePath().replaceAll("\\\\", "/") + "'"));
 
         // stylesheetfile defined in a javadoc plugin dependency
-        setVariableValueToObject(mojo, "stylesheetfile", "com/mycompany/app/javadoc/css2/stylesheet.css");
+        setVariableValueToObject(mojo, "stylesheetfile", "/com/mycompany/app/javadoc/css2/stylesheet.css");
         mojo.execute();
 
         content = readFile(stylesheetfile);
@@ -1212,8 +1203,8 @@ public class JavadocReportTest extends AbstractMojoTestCase {
                 .contains("'" + stylesheetfile.toFile().getAbsolutePath().replaceAll("\\\\", "/") + "'");
 
         // stylesheetfile defined as file
-        Path css = unit.resolve("stylesheetfile-test/src/main/resources/com/mycompany/app/javadoc/css3/stylesheet.css");
-        setVariableValueToObject(mojo, "stylesheetfile", css.toFile().getAbsolutePath());
+        File css = getTestFile("/src/main/resources/com/mycompany/app/javadoc/css3/stylesheet.css");
+        setVariableValueToObject(mojo, "stylesheetfile", css.getAbsolutePath());
         mojo.execute();
 
         content = readFile(stylesheetfile);
@@ -1221,10 +1212,9 @@ public class JavadocReportTest extends AbstractMojoTestCase {
 
         optionsContent = readFile(options);
         assertTrue(optionsContent.contains("-stylesheetfile"));
-        stylesheetResource =
-                unit.resolve("stylesheetfile-test/src/main/resources/com/mycompany/app/javadoc/css3/stylesheet.css");
+        stylesheetResource = getTestFile("/src/main/resources/com/mycompany/app/javadoc/css3/stylesheet.css");
         assertTrue(optionsContent.contains(
-                "'" + stylesheetResource.toFile().getAbsolutePath().replaceAll("\\\\", "/") + "'"));
+                "'" + stylesheetResource.getAbsolutePath().replaceAll("\\\\", "/") + "'"));
     }
 
     /**
@@ -1232,27 +1222,35 @@ public class JavadocReportTest extends AbstractMojoTestCase {
      *
      * @throws Exception if any
      */
-    public void testHelpfile() throws Exception {
-        Path testPom = unit.resolve("helpfile-test/pom.xml");
-
-        JavadocReport mojo = lookupMojo(testPom);
-        assertNotNull(mojo);
-
-        MavenSession session = spy(newMavenSession(mojo.project));
-        ProjectBuildingRequest buildingRequest = mock(ProjectBuildingRequest.class);
-        when(buildingRequest.getRemoteRepositories()).thenReturn(mojo.project.getRemoteArtifactRepositories());
-        when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
-        DefaultRepositorySystemSession repositorySession = new DefaultRepositorySystemSession();
-        repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
-                .newInstance(repositorySession, new LocalRepository(localRepo)));
-        when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
-        when(session.getRepositorySession()).thenReturn(repositorySession);
-        LegacySupport legacySupport = lookup(LegacySupport.class);
-        legacySupport.setSession(session);
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repositorySession);
-
-        Path apidocs = new File(getBasedir(), "target/test/unit/helpfile-test/target/site/apidocs").toPath();
+    @InjectMojo(goal = "javadoc", pom = "pom.xml")
+    @Basedir("/unit/helpfile-test")
+    @Test
+    void testHelpfile(JavadocReport mojo) throws Exception {
+
+        // bug in testing framework - wrong resource dir name
+        mojo.getProject()
+                .getBuild()
+                .getResources()
+                .get(0)
+                .setDirectory(getTestFile("src/main/resources").getAbsolutePath());
+
+        // add dependency to find the helpfile in a plugin dependency
+        Plugin plugin = new Plugin();
+        plugin.setGroupId("org.apache.maven.plugins");
+        plugin.setArtifactId("maven-javadoc-plugin");
+        Dependency dependency = new Dependency();
+        dependency.setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
+        dependency.setArtifactId("helpfile-test");
+        dependency.setVersion("1.0-SNAPSHOT");
+        plugin.addDependency(dependency);
+
+        mojo.getProject().getBuild().setPlugins(Collections.singletonList(plugin));
+
+        File testArtifactDir = getTestFile("/artifact-helpfile");
+        assertThat(testArtifactDir).exists();
+        copyDirectory(testArtifactDir, localRepo);
+
+        Path apidocs = new File(getBasedir(), "/target/site/apidocs").toPath();
 
         Path helpfile = apidocs.resolve("help-doc.html");
         Path options = apidocs.resolve("options");
@@ -1269,9 +1267,6 @@ public class JavadocReportTest extends AbstractMojoTestCase {
         // helpfile defined in a javadoc plugin dependency
         setVariableValueToObject(mojo, "helpfile", "com/mycompany/app/javadoc/helpfile/help-doc.html");
 
-        setVariableValueToObject(mojo, "session", session);
-        setVariableValueToObject(mojo, "repoSession", repositorySession);
-
         mojo.execute();
 
         content = readFile(helpfile);
@@ -1291,11 +1286,13 @@ public class JavadocReportTest extends AbstractMojoTestCase {
 
         optionsContent = readFile(options);
         assertTrue(optionsContent.contains("-helpfile"));
-        help = unit.resolve("helpfile-test/src/main/resources/com/mycompany/app/javadoc/helpfile2/help-doc.html");
+        help = getTestFile("/src/main/resources/com/mycompany/app/javadoc/helpfile2/help-doc.html")
+                .toPath();
         assertTrue(optionsContent.contains("'" + help.toFile().getAbsolutePath().replaceAll("\\\\", "/") + "'"));
 
         // helpfile defined as file
-        help = unit.resolve("helpfile-test/src/main/resources/com/mycompany/app/javadoc/helpfile2/help-doc.html");
+        help = getTestFile("/src/main/resources/com/mycompany/app/javadoc/helpfile2/help-doc.html")
+                .toPath();
         setVariableValueToObject(mojo, "helpfile", help.toFile().getAbsolutePath());
         mojo.execute();
 
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
index 3b4f50e3..b82cae26 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocUtilTest.java
@@ -44,7 +44,6 @@ import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 import org.apache.maven.plugins.javadoc.ProxyServer.AuthAsyncProxyServlet;
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Settings;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 import org.eclipse.jetty.server.Request;
 import org.eclipse.jetty.server.Server;
@@ -52,15 +51,24 @@ import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.handler.AbstractHandler;
 import org.eclipse.jetty.server.handler.MovedContextHandler;
 import org.eclipse.jetty.util.ByteArrayISO8859Writer;
+import org.junit.jupiter.api.Test;
 
+import static org.apache.maven.api.plugin.testing.MojoExtension.getBasedir;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  */
-public class JavadocUtilTest extends PlexusTestCase {
+class JavadocUtilTest {
 
-    public void testParseJavadocVersionNull() {
+    @Test
+    void testParseJavadocVersionNull() {
         try {
             JavadocUtil.extractJavadocVersion(null);
             fail("Not catch null");
@@ -69,7 +77,8 @@ public class JavadocUtilTest extends PlexusTestCase {
         }
     }
 
-    public void testParseJavadocVersionEmptyString() {
+    @Test
+    void testParseJavadocVersionEmptyString() {
         try {
             JavadocUtil.extractJavadocVersion("");
             fail("Not catch empty version");
@@ -81,7 +90,8 @@ public class JavadocUtilTest extends PlexusTestCase {
     /**
      * Test the javadoc version parsing.
      */
-    public void testParseJavadocVersion() {
+    @Test
+    void testParseJavadocVersion() {
         // Sun JDK 1.4
         String version = "java full version \"1.4.2_12-b03\"";
         assertEquals("1.4.2", JavadocUtil.extractJavadocVersion(version));
@@ -161,7 +171,8 @@ public class JavadocUtilTest extends PlexusTestCase {
         assertEquals("10.0.1", JavadocUtil.extractJavadocVersion(version));
     }
 
-    public void testParseJavadocMemoryNull() {
+    @Test
+    void testParseJavadocMemoryNull() {
         try {
             JavadocUtil.parseJavadocMemory(null);
             fail("Not catch null");
@@ -170,7 +181,8 @@ public class JavadocUtilTest extends PlexusTestCase {
         }
     }
 
-    public void testParseJavadocMemoryEmpty() {
+    @Test
+    void testParseJavadocMemoryEmpty() {
         try {
             JavadocUtil.parseJavadocMemory("");
             fail("Not catch null");
@@ -182,7 +194,8 @@ public class JavadocUtilTest extends PlexusTestCase {
     /**
      * Method to test the javadoc memory parsing.
      */
-    public void testParseJavadocMemory() {
+    @Test
+    void testParseJavadocMemory() {
         String memory = "128";
         assertEquals("128m", JavadocUtil.parseJavadocMemory(memory));
 
@@ -235,12 +248,13 @@ public class JavadocUtilTest extends PlexusTestCase {
     /**
      * Method to test the validate encoding parsing.
      */
-    public void testValidateEncoding() {
-        assertFalse("Not catch null", JavadocUtil.validateEncoding(null));
-        assertTrue("UTF-8 not supported on this platform", JavadocUtil.validateEncoding("UTF-8"));
-        assertTrue("ISO-8859-1 not supported on this platform", JavadocUtil.validateEncoding("ISO-8859-1"));
-        assertFalse("latin is supported on this platform???", JavadocUtil.validateEncoding("latin"));
-        assertFalse("WRONG is supported on this platform???", JavadocUtil.validateEncoding("WRONG"));
+    @Test
+    void testValidateEncoding() {
+        assertFalse(JavadocUtil.validateEncoding(null), "Not catch null");
+        assertTrue(JavadocUtil.validateEncoding("UTF-8"), "UTF-8 not supported on this platform");
+        assertTrue(JavadocUtil.validateEncoding("ISO-8859-1"), "ISO-8859-1 not supported on this platform");
+        assertFalse(JavadocUtil.validateEncoding("latin"), "latin is supported on this platform???");
+        assertFalse(JavadocUtil.validateEncoding("WRONG"), "WRONG is supported on this platform???");
     }
 
     /**
@@ -248,7 +262,8 @@ public class JavadocUtilTest extends PlexusTestCase {
      *
      * @throws Exception if any
      */
-    public void testIsValidPackageList() throws Exception {
+    @Test
+    void testIsValidPackageList() throws Exception {
         Settings settings = null;
         Proxy proxy;
 
@@ -388,7 +403,8 @@ public class JavadocUtilTest extends PlexusTestCase {
         }
     }
 
-    public void testGetRedirectUrlNotHttp() throws Exception {
+    @Test
+    void testGetRedirectUrlNotHttp() throws Exception {
         URL url = new URI("ftp://some.where").toURL();
         assertEquals(
                 url.toString(), JavadocUtil.getRedirectUrl(url, new Settings()).toString());
@@ -401,7 +417,8 @@ public class JavadocUtilTest extends PlexusTestCase {
     /**
      * Tests a redirect from localhost:port1 to localhost:port2
      */
-    public void testGetRedirectUrl() throws Exception {
+    @Test
+    void testGetRedirectUrl() throws Exception {
         Server server = null, redirectServer = null;
         try {
             redirectServer = new Server(0);
@@ -445,7 +462,8 @@ public class JavadocUtilTest extends PlexusTestCase {
     /**
      * Tests that getRedirectUrl returns the same URL when there are no redirects.
      */
-    public void testGetRedirectUrlWithNoRedirects() throws Exception {
+    @Test
+    void testGetRedirectUrlWithNoRedirects() throws Exception {
         Server server = null;
         try {
             server = new Server(0);
@@ -481,7 +499,8 @@ public class JavadocUtilTest extends PlexusTestCase {
      * Tests that getRedirectUrl adds an Accept header in HTTP requests. Necessary because some sites like Cloudflare
      * reject requests without an Accept header.
      */
-    public void testGetRedirectUrlVerifyHeaders() throws Exception {
+    @Test
+    void testGetRedirectUrlVerifyHeaders() throws Exception {
         Server server = null;
         try {
             server = new Server(0);
@@ -514,7 +533,8 @@ public class JavadocUtilTest extends PlexusTestCase {
      *
      * @throws Exception if any
      */
-    public void testCopyJavadocResources() throws Exception {
+    @Test
+    void testCopyJavadocResources() throws Exception {
         File input = new File(getBasedir(), "src/test/resources/unit/docfiles-test/docfiles/");
         assertThat(input).exists();
 
@@ -565,7 +585,8 @@ public class JavadocUtilTest extends PlexusTestCase {
     /**
      * Method to test pruneDirs()
      */
-    public void testPruneDirs() {
+    @Test
+    void testPruneDirs() {
         List<String> list = new ArrayList<>();
         String classesDir = getBasedir() + "/target/classes";
         list.add(classesDir);
@@ -584,7 +605,8 @@ public class JavadocUtilTest extends PlexusTestCase {
      * Method to test prunePaths()
      *
      */
-    public void testPrunePaths() {
+    @Test
+    void testPrunePaths() {
         List<String> list = new ArrayList<>();
         String classesDir = getBasedir() + "/target/classes";
         String tagletJar = getBasedir()
@@ -609,7 +631,8 @@ public class JavadocUtilTest extends PlexusTestCase {
     /**
      * Method to test unifyPathSeparator()
      */
-    public void testUnifyPathSeparator() {
+    @Test
+    void testUnifyPathSeparator() {
         assertNull(JavadocUtil.unifyPathSeparator(null));
 
         final String ps = File.pathSeparator;
@@ -643,7 +666,8 @@ public class JavadocUtilTest extends PlexusTestCase {
                 JavadocUtil.unifyPathSeparator(path1));
     }
 
-    public void testGetIncludedFiles() {
+    @Test
+    void testGetIncludedFiles() {
         File sourceDirectory = new File("target/it").getAbsoluteFile();
         String[] fileList = new String[] {"Main.java"};
         Collection<String> excludePackages = Collections.singleton("*.it");
@@ -663,7 +687,8 @@ public class JavadocUtilTest extends PlexusTestCase {
         }
     }
 
-    public void testQuotedArgument() {
+    @Test
+    void testQuotedArgument() {
 
         String value = "      org.apache.uima.analysis_component:\n      org.apache.uima.analysis_engine\n";
 
@@ -676,7 +701,8 @@ public class JavadocUtilTest extends PlexusTestCase {
         assertEquals("'org.apache.uima.analysis_component:org.apache.uima.analysis_engine'", arg);
     }
 
-    public void testToList() {
+    @Test
+    void testToList() {
         String value = "     *.internal:org.acme.exclude1.*:\n       org.acme.exclude2\n       ";
         List<String> values = JavadocUtil.toList(value);
         assertThat(values).containsExactly("*.internal", "org.acme.exclude1.*", "org.acme.exclude2");
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/JavadocVersionTest.java b/src/test/java/org/apache/maven/plugins/javadoc/JavadocVersionTest.java
index b70547bb..c519da62 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/JavadocVersionTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/JavadocVersionTest.java
@@ -21,17 +21,17 @@ package org.apache.maven.plugins.javadoc;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class JavadocVersionTest {
+class JavadocVersionTest {
     /**
      * Parsing is lazy, only triggered when comparing
      */
     @Test
     @SuppressWarnings("deprecation")
-    public void testParse() {
+    void testParse() {
         assertThat(JavadocVersion.parse("1.4"))
                 .isLessThan(JavadocVersion.parse("1.4.2"))
                 .isLessThan(JavadocVersion.parse("1.5"));
@@ -48,7 +48,7 @@ public class JavadocVersionTest {
     }
 
     @Test
-    public void testApiVersion() {
+    void testApiVersion() {
         Pattern p = Pattern.compile("(1\\.\\d|\\d\\d*)");
         Matcher m = p.matcher("9");
         assertThat(m.find()).isTrue();
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java b/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java
index c60e0a1a..e855076d 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/TestJavadocReportTest.java
@@ -19,50 +19,49 @@
 package org.apache.maven.plugins.javadoc;
 
 import java.io.File;
+import java.util.Collections;
 
-import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.MojoExecution;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.FileUtils;
+import org.apache.maven.api.plugin.testing.Basedir;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoTest;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
+import org.junit.jupiter.api.Test;
 
+import static org.apache.maven.api.plugin.testing.MojoExtension.getBasedir;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /**
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  */
-public class TestJavadocReportTest extends AbstractMojoTestCase {
+@MojoTest
+public class TestJavadocReportTest {
     /**
      * Test the test-javadoc configuration for the plugin
      *
      * @throws Exception if any
      */
-    public void testTestJavadoc() throws Exception {
-        File testPom =
-                new File(getBasedir(), "src/test/resources/unit/test-javadoc-test/test-javadoc-test-plugin-config.xml");
-        TestJavadocReport mojo = (TestJavadocReport) lookupMojo("test-javadoc", testPom);
+    @Test
+    @InjectMojo(goal = "test-javadoc", pom = "test-javadoc-test-plugin-config.xml")
+    @Basedir("/unit/test-javadoc-test")
+    public void testTestJavadoc(TestJavadocReport mojo) throws Exception {
 
-        Plugin p = new Plugin();
-        p.setGroupId("org.apache.maven.plugins");
-        p.setArtifactId("maven-javadoc-plugin");
-        MojoExecution mojoExecution = new MojoExecution(p, "test-javadoc", null);
+        Artifact testArtifact = new DefaultArtifact(
+                "groupId", "artifactId", "1.2.3", "test", "jar", null, new DefaultArtifactHandler("jar"));
+        testArtifact.setFile(new File("test/test-dependency-1.2.3.jar"));
 
-        setVariableValueToObject(mojo, "mojoExecution", mojoExecution);
-
-        MavenProject currentProject = new MavenProjectStub();
-        currentProject.setGroupId("GROUPID");
-        currentProject.setArtifactId("ARTIFACTID");
-
-        setVariableValueToObject(mojo, "session", newMavenSession(currentProject));
+        mojo.getProject().setArtifacts(Collections.singleton(testArtifact));
 
         mojo.execute();
 
-        File generatedFile =
-                new File(getBasedir(), "target/test/unit/test-javadoc-test/target/site/testapidocs/maven/AppTest.html");
+        File generatedFile = new File(getBasedir(), "/target/site/testapidocs/maven/AppTest.html");
         assertThat(generatedFile).exists();
 
-        File options = new File(getBasedir(), "target/test/unit/test-javadoc-test/target/site/testapidocs/options");
-        assertThat(FileUtils.fileRead(options)).contains("junit-3.8.1.jar");
+        // -classpath
+        // '/Users/slawomir.jaranowski/repos/apache/maven-javadoc-plugin/target/test/unit/test-javadoc-test/target/classes:/Users/slawomir.jaranowski/repos/apache/maven-javadoc-plugin/target/test/unit/test-javadoc-test/target/test-classes:/Users/slawomir.jaranowski/repos/apache/maven-javadoc-plugin/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.jar'
+
+        File options = new File(getBasedir(), "/target/site/testapidocs/options");
+        assertThat(options).content().contains("test-dependency-1.2.3.jar");
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/options/io/xpp3/JavadocOptionsXpp3ReaderTest.java b/src/test/java/org/apache/maven/plugins/javadoc/options/io/xpp3/JavadocOptionsXpp3ReaderTest.java
index 617a6d09..b7030868 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/options/io/xpp3/JavadocOptionsXpp3ReaderTest.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/options/io/xpp3/JavadocOptionsXpp3ReaderTest.java
@@ -22,14 +22,14 @@ import java.io.StringReader;
 
 import org.apache.maven.plugins.javadoc.options.JavadocOptions;
 import org.apache.maven.plugins.javadoc.options.Tag;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class JavadocOptionsXpp3ReaderTest {
+class JavadocOptionsXpp3ReaderTest {
 
     @Test
-    public void testNameAndHead() throws Exception {
+    void testNameAndHead() throws Exception {
         JavadocOptionsXpp3Reader parser = new JavadocOptionsXpp3Reader();
         String testString = "<javadocOptions><tags><tag><name>foo</name><head>bar</head></tag></tags></javadocOptions>";
         StringReader reader = new StringReader(testString);
@@ -42,7 +42,7 @@ public class JavadocOptionsXpp3ReaderTest {
     }
 
     @Test
-    public void testPlacement() throws Exception {
+    void testPlacement() throws Exception {
         JavadocOptionsXpp3Reader parser = new JavadocOptionsXpp3Reader();
         String testString =
                 "<javadocOptions><tags><tag><name>foo</name><placement>Xaoptcmf</placement><head>bar</head></tag></tags></javadocOptions>";
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject1TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject1TestMavenProjectStub.java
index d3ee8c91..b8b39010 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject1TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject1TestMavenProjectStub.java
@@ -24,8 +24,8 @@ package org.apache.maven.plugins.javadoc.stubs;
 public class AggregateNotInSubDirectoryProject1TestMavenProjectStub extends AbstractAggregateChildMavenProjectStub {
     public AggregateNotInSubDirectoryProject1TestMavenProjectStub() {
         super(
-                "/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/project1",
+                "/aggregate-modules-not-in-subdirectories-test/project1",
                 "pom.xml",
-                "/target/test/unit/aggregate-modules-not-in-subdirectories-test/project1/target");
+                "/aggregate-modules-not-in-subdirectories-test/project1/target");
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject2TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject2TestMavenProjectStub.java
index 52bfd90e..be23effb 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject2TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryProject2TestMavenProjectStub.java
@@ -24,8 +24,8 @@ package org.apache.maven.plugins.javadoc.stubs;
 public class AggregateNotInSubDirectoryProject2TestMavenProjectStub extends AbstractAggregateChildMavenProjectStub {
     public AggregateNotInSubDirectoryProject2TestMavenProjectStub() {
         super(
-                "/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/project2",
+                "/aggregate-modules-not-in-subdirectories-test/project2",
                 "pom.xml",
-                "/target/test/unit/aggregate-modules-not-in-subdirectories-test/project2/target");
+                "/aggregate-modules-not-in-subdirectories-test/project2/target");
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryTestMavenProjectStub.java
index a0a8f706..6e8b8add 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryTestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateNotInSubDirectoryTestMavenProjectStub.java
@@ -24,9 +24,9 @@ package org.apache.maven.plugins.javadoc.stubs;
 public class AggregateNotInSubDirectoryTestMavenProjectStub extends AbstractAggregateMavenProjectStub {
     public AggregateNotInSubDirectoryTestMavenProjectStub() {
         super(
-                "/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/all",
+                "/aggregate-modules-not-in-subdirectories-test/all",
                 "pom.xml",
-                "/target/test/unit/aggregate-modules-not-in-subdirectories-test/target",
+                "/aggregate-modules-not-in-subdirectories-test/target",
                 "../project1",
                 "../project2");
     }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java
index 5e1454c6..4f40f387 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject1TestMavenProjectStub.java
@@ -44,7 +44,7 @@ public class AggregateProject1TestMavenProjectStub extends MavenProjectStub {
 
         Build build = new Build();
         build.setFinalName("aggregate-test-project1");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/aggregate-test/target");
+        build.setDirectory(super.getBasedir() + "/aggregate-test/target");
         setBuild(build);
 
         String basedir = getBasedir().getAbsolutePath();
@@ -56,7 +56,7 @@ public class AggregateProject1TestMavenProjectStub extends MavenProjectStub {
     /** {@inheritDoc} */
     @Override
     public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/aggregate-test/project1");
+        return new File(super.getBasedir() + "/aggregate-test/project1");
     }
 
     /** {@inheritDoc} */
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java
index fb5064de..94684592 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateProject2TestMavenProjectStub.java
@@ -44,7 +44,7 @@ public class AggregateProject2TestMavenProjectStub extends MavenProjectStub {
 
         Build build = new Build();
         build.setFinalName("aggregate-test-project2");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/aggregate-test/target");
+        build.setDirectory(super.getBasedir() + "/target");
         setBuild(build);
 
         String basedir = getBasedir().getAbsolutePath();
@@ -56,7 +56,7 @@ public class AggregateProject2TestMavenProjectStub extends MavenProjectStub {
     /** {@inheritDoc} */
     @Override
     public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/aggregate-test/project2");
+        return new File(super.getBasedir() + "/aggregate-test/project2");
     }
 
     /** {@inheritDoc} */
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java
index 9557ad14..fe386b6b 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject1TestMavenProjectStub.java
@@ -23,9 +23,6 @@ package org.apache.maven.plugins.javadoc.stubs;
  */
 public class AggregateResourcesProject1TestMavenProjectStub extends AbstractAggregateChildMavenProjectStub {
     public AggregateResourcesProject1TestMavenProjectStub() {
-        super(
-                "/src/test/resources/unit/aggregate-resources-test/project1",
-                "pom.xml",
-                "/target/test/unit/aggregate-resources-test/project1/target");
+        super("/aggregate-resources-test/project1", "pom.xml", "/aggregate-resources-test/project1/target");
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java
index f3d54302..de22db22 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesProject2TestMavenProjectStub.java
@@ -23,9 +23,6 @@ package org.apache.maven.plugins.javadoc.stubs;
  */
 public class AggregateResourcesProject2TestMavenProjectStub extends AbstractAggregateChildMavenProjectStub {
     public AggregateResourcesProject2TestMavenProjectStub() {
-        super(
-                "/src/test/resources/unit/aggregate-resources-test/project2",
-                "pom.xml",
-                "/target/test/unit/aggregate-resources-test/project2/target");
+        super("/aggregate-resources-test/project2", "pom.xml", "/aggregate-resources-test/project2/target");
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesTestMavenProjectStub.java
index 39a6789e..d5af32e9 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesTestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateResourcesTestMavenProjectStub.java
@@ -24,7 +24,7 @@ package org.apache.maven.plugins.javadoc.stubs;
 public class AggregateResourcesTestMavenProjectStub extends AbstractAggregateMavenProjectStub {
     public AggregateResourcesTestMavenProjectStub() {
         super(
-                "/src/test/resources/unit/aggregate-resources-test",
+                "/aggregate-resources-test",
                 "aggregate-resources-test-plugin-config.xml",
                 "/target/test/unit/aggregate-resources-test/target",
                 "project1",
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateTestMavenProjectStub.java
index 14a614c0..94bedd6f 100644
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateTestMavenProjectStub.java
+++ b/src/test/java/org/apache/maven/plugins/javadoc/stubs/AggregateTestMavenProjectStub.java
@@ -49,7 +49,7 @@ public class AggregateTestMavenProjectStub extends MavenProjectStub {
 
         build = new Build();
         build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.getBasedir() + "/target/test/unit/aggregate-test/target");
+        build.setDirectory(super.getBasedir() + "/target");
 
         List<String> compileSourceRoots = new ArrayList<>();
         compileSourceRoots.add(getBasedir() + "/src/main/java");
@@ -68,7 +68,7 @@ public class AggregateTestMavenProjectStub extends MavenProjectStub {
 
     @Override
     public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/aggregate-test");
+        return new File(super.getBasedir() + "/aggregate-test");
     }
 
     @Override
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/CustomConfigurationMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/CustomConfigurationMavenProjectStub.java
deleted file mode 100644
index 2423350d..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/CustomConfigurationMavenProjectStub.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class CustomConfigurationMavenProjectStub extends MavenProjectStub {
-
-    private Scm scm;
-
-    private Build build;
-
-    public CustomConfigurationMavenProjectStub() {
-        readModel(new File(getBasedir(), "custom-configuration-plugin-config.xml"));
-
-        setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
-        setArtifactId("custom-configuration");
-        setVersion("1.0-SNAPSHOT");
-        setName("Maven Javadoc Plugin Custom configuration Test");
-        setUrl("http://maven.apache.org");
-        setPackaging("jar");
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName("default-configuration");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/custom-configuration/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        String temp = getBasedir().getAbsolutePath();
-        if (!temp.startsWith("/")) {
-            temp = temp.replace('/', '\\');
-        }
-        compileSourceRoots.add(temp);
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Build getBuild() {
-        return build;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setBuild(Build build) {
-        this.build = build;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/custom-configuration/");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DefaultConfigurationMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DefaultConfigurationMavenProjectStub.java
deleted file mode 100644
index 4277b215..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DefaultConfigurationMavenProjectStub.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class DefaultConfigurationMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public DefaultConfigurationMavenProjectStub() {
-        readModel(new File(getBasedir(), "default-configuration-plugin-config.xml"));
-
-        setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
-        setArtifactId("default-configuration");
-        setVersion("1.0-SNAPSHOT");
-        setName("Maven Javadoc Plugin Default configuration Test");
-        setUrl("http://maven.apache.org");
-        setPackaging("jar");
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName("default-configuration");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/default-configuration/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/default-configuration/");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesTestMavenProjectStub.java
deleted file mode 100644
index 28bb773d..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesTestMavenProjectStub.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class DocfilesTestMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public DocfilesTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "docfiles-test-plugin-config.xml"));
-
-        setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
-        setArtifactId("docfiles-test");
-        setVersion("1.0-SNAPSHOT");
-        setName("Maven Javadoc Plugin Docfiles Test");
-        setUrl("http://maven.apache.org");
-        setPackaging("jar");
-        // setDescription( "Sample Maven Project" );
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName("docfiles-test");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/docfiles-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/docfiles-test/");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesWithJavaTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesWithJavaTestMavenProjectStub.java
deleted file mode 100644
index eb6a3f38..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocfilesWithJavaTestMavenProjectStub.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class DocfilesWithJavaTestMavenProjectStub extends MavenProjectStub {
-    public DocfilesWithJavaTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "docfiles-with-java-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setPackaging("jar");
-
-        Build build = new Build();
-        build.setFinalName("docfiles-with-java-test");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/docfiles-with-java-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/docfiles-with-java-test/src/main");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir(), "/src/test/resources/unit/docfiles-with-java-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocletPathTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocletPathTestMavenProjectStub.java
deleted file mode 100644
index 5ef9d717..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocletPathTestMavenProjectStub.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class DocletPathTestMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public DocletPathTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "doclet-path-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.getBasedir() + "/target/test/unit/doclet-path-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/doclet/test");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/doclet-path-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocletTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocletTestMavenProjectStub.java
deleted file mode 100644
index e0d0596f..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/DocletTestMavenProjectStub.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class DocletTestMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public DocletTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "doclet-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-        // setDescription( "Sample Maven Project" );
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.getBasedir() + "/target/test/unit/doclet-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/doclet/test");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/doclet-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/FixMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/FixMavenProjectStub.java
deleted file mode 100644
index 7f741b18..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/FixMavenProjectStub.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class FixMavenProjectStub extends MavenProjectStub {
-    public FixMavenProjectStub() {
-        readModel(new File(getBasedir(), "pom.xml"));
-
-        addCompileSourceRoot(getBasedir().getAbsolutePath() + "/target/classes");
-        addCompileSourceRoot(getBasedir().getAbsolutePath() + "/src/main/java");
-
-        Build build = new Build();
-        build.setDirectory(getBasedir().getAbsolutePath() + "/target");
-        build.setSourceDirectory(getBasedir().getAbsolutePath() + "/src/main/java");
-        build.setOutputDirectory(getBasedir().getAbsolutePath() + "/target/classes");
-        build.setTestSourceDirectory(getBasedir().getAbsolutePath() + "/src/test/java");
-        build.setTestOutputDirectory(getBasedir().getAbsolutePath() + "/target/test-classes");
-        setBuild(build);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public String getArtifactId() {
-        return getModel().getArtifactId();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public String getGroupId() {
-        String groupId = getModel().getGroupId();
-
-        if ((groupId == null) && (getModel().getParent() != null)) {
-            groupId = getModel().getParent().getGroupId();
-        }
-
-        return groupId;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public String getVersion() {
-        String version = getModel().getVersion();
-
-        if ((version == null) && (getModel().getParent() != null)) {
-            version = getModel().getParent().getVersion();
-        }
-
-        return version;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public String getPackaging() {
-        return getModel().getPackaging();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        // Using unit test dir
-        return new File(super.getBasedir() + "/target/test/unit/fix-test/");
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getFile() {
-        return new File(getBasedir(), "pom.xml");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/HeaderFooterTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/HeaderFooterTestMavenProjectStub.java
deleted file mode 100644
index 019f752a..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/HeaderFooterTestMavenProjectStub.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class HeaderFooterTestMavenProjectStub extends MavenProjectStub {
-    public HeaderFooterTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "header-footer-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/header-footer-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/header-footer-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/HelpFileMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/HelpFileMavenProjectStub.java
deleted file mode 100644
index 6b11b711..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/HelpFileMavenProjectStub.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class HelpFileMavenProjectStub extends MavenProjectStub {
-    public HelpFileMavenProjectStub() {
-        readModel(new File(getBasedir(), "pom.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/helpfile-test/target");
-        Resource resource = new Resource();
-        resource.setDirectory(getBasedir() + "/src/main/resources");
-        build.addResource(resource);
-
-        build.setPlugins(getModel().getBuild().getPlugins());
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/helpfile-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarArchiveConfigProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarArchiveConfigProjectStub.java
deleted file mode 100644
index 7c259e00..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarArchiveConfigProjectStub.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * Project stub for testing archive configuration.
- */
-public class JavadocJarArchiveConfigProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public JavadocJarArchiveConfigProjectStub() {
-        File projectFile = new File(getBasedir(), "javadocjar-archive-config.xml");
-        readModel(new File(getBasedir(), "javadocjar-archive-config.xml"));
-
-        setFile(projectFile);
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        JavadocPluginArtifactStub artifact =
-                new JavadocPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
-        artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
-        artifact.setType("jar");
-        artifact.setBaseVersion("1.0-SNAPSHOT");
-        setArtifact(artifact);
-
-        Build build = new Build();
-        build.setFinalName("javadocjar-archive-config");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/javadocjar-archive-config/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/javadocjar-archive-config");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarDefaultMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarDefaultMavenProjectStub.java
deleted file mode 100644
index b20e66e8..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarDefaultMavenProjectStub.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class JavadocJarDefaultMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public JavadocJarDefaultMavenProjectStub() {
-        readModel(new File(getBasedir(), "javadocjar-default-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        JavadocPluginArtifactStub artifact =
-                new JavadocPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
-        artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
-        artifact.setType("jar");
-        artifact.setBaseVersion("1.0-SNAPSHOT");
-        setArtifact(artifact);
-
-        Build build = new Build();
-        build.setFinalName("javadocjar-default");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/javadocjar-default/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/javadocjar-default");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarFailOnErrorMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarFailOnErrorMavenProjectStub.java
deleted file mode 100644
index 09dc718a..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/JavadocJarFailOnErrorMavenProjectStub.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class JavadocJarFailOnErrorMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public JavadocJarFailOnErrorMavenProjectStub() {
-        readModel(new File(getBasedir(), "javadocjar-failonerror-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        JavadocPluginArtifactStub artifact =
-                new JavadocPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging());
-        artifact.setArtifactHandler(new DefaultArtifactHandlerStub());
-        artifact.setType("jar");
-        artifact.setBaseVersion("1.0-SNAPSHOT");
-        setArtifact(artifact);
-
-        Build build = new Build();
-        build.setFinalName("javadocjar-failonerror");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/javadocjar-failonerror/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/javadocjar-failonerror");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/Jdk5TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/Jdk5TestMavenProjectStub.java
deleted file mode 100644
index 352ee3e1..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/Jdk5TestMavenProjectStub.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class Jdk5TestMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public Jdk5TestMavenProjectStub() {
-        readModel(new File(getBasedir(), "jdk5-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.getBasedir() + "/target/test/unit/jdk5-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/jdk5-test/");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/Jdk6TestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/Jdk6TestMavenProjectStub.java
deleted file mode 100644
index 93ebc8d9..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/Jdk6TestMavenProjectStub.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class Jdk6TestMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public Jdk6TestMavenProjectStub() {
-        readModel(new File(getBasedir(), "jdk6-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.getBasedir() + "/target/test/unit/jdk6-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/jdk6-test/");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/NewlineTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/NewlineTestMavenProjectStub.java
deleted file mode 100644
index 4fe51bd6..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/NewlineTestMavenProjectStub.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class NewlineTestMavenProjectStub extends MavenProjectStub {
-    public NewlineTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "newline-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/newline-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/newline-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/OptionsUmlautEncodingMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/OptionsUmlautEncodingMavenProjectStub.java
deleted file mode 100644
index 56d8a971..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/OptionsUmlautEncodingMavenProjectStub.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-public class OptionsUmlautEncodingMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public OptionsUmlautEncodingMavenProjectStub() {
-        readModel(new File(getBasedir(), "optionsumlautencoding-test-plugin-config.xml"));
-
-        setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
-        setArtifactId("optionsumlautencoding-test");
-        setVersion("1.0-SNAPSHOT");
-        setName("Maven Javadoc Plugin Options Umlaut Encoding Test");
-        setUrl("http://maven.apache.org");
-        setPackaging("jar");
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName("optionsumlautencoding-test");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/optionsumlautencoding-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/optionsumlautencoding-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/PomMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/PomMavenProjectStub.java
deleted file mode 100644
index 6327d321..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/PomMavenProjectStub.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class PomMavenProjectStub extends MavenProjectStub {
-    public PomMavenProjectStub() {
-        readModel(new File(getBasedir(), "pom-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.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.setTestSourceDirectory(getBasedir() + "/src/test/java");
-        build.setTestOutputDirectory(super.getBasedir() + "/target/test/unit/pom-test/target/test-classes");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-
-        List<String> testCompileSourceRoots = new ArrayList<>();
-        testCompileSourceRoots.add(getBasedir() + "/src/test/java");
-        setTestCompileSourceRoots(testCompileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/pom-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/ProxyTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/ProxyTestMavenProjectStub.java
deleted file mode 100644
index d479a1a6..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/ProxyTestMavenProjectStub.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class ProxyTestMavenProjectStub extends MavenProjectStub {
-    private Set<Artifact> dependencyArtifacts = new HashSet<>();
-
-    public ProxyTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "proxy-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/proxy-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-
-        Artifact artifact = mock(Artifact.class);
-        when(artifact.getGroupId()).thenReturn("commons-logging");
-        when(artifact.getArtifactId()).thenReturn("commons-logging");
-        when(artifact.getVersion()).thenReturn("1.1.1");
-        when(artifact.getScope()).thenReturn(Artifact.SCOPE_RUNTIME);
-        when(artifact.getType()).thenReturn("jar");
-        when(artifact.getFile()).thenReturn(getBasedir());
-        DefaultArtifactHandlerStub artifactHandler = new DefaultArtifactHandlerStub();
-        artifactHandler.setExtension("jar");
-        when(artifact.getArtifactHandler()).thenReturn(artifactHandler);
-
-        dependencyArtifacts.add(artifact);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/proxy-test");
-    }
-
-    @Override
-    public Set<Artifact> getDependencyArtifacts() {
-        return dependencyArtifacts;
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/QuotedPathMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/QuotedPathMavenProjectStub.java
deleted file mode 100644
index 06e1d9ba..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/QuotedPathMavenProjectStub.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class QuotedPathMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public QuotedPathMavenProjectStub() {
-        readModel(new File(getBasedir(), "quotedpath-test-plugin-config.xml"));
-
-        setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
-        setArtifactId("quotedpath-test");
-        setVersion("1.0-SNAPSHOT");
-        setName("Maven Javadoc Plugin Quoted Path Test");
-        setUrl("http://maven.apache.org");
-        setPackaging("jar");
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName("quotedpath-test");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/quotedpath'test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/quotedpath'test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/ResourcesTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/ResourcesTestMavenProjectStub.java
deleted file mode 100644
index 673fa809..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/ResourcesTestMavenProjectStub.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class ResourcesTestMavenProjectStub extends MavenProjectStub {
-    public ResourcesTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "resources-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/resources-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/resources-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/ResourcesWithExcludesTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/ResourcesWithExcludesTestMavenProjectStub.java
deleted file mode 100644
index 919e60b7..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/ResourcesWithExcludesTestMavenProjectStub.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class ResourcesWithExcludesTestMavenProjectStub extends MavenProjectStub {
-    public ResourcesWithExcludesTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "resources-with-excludes-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/resources-with-excludes-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/resources-with-excludes-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/SettingsStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/SettingsStub.java
deleted file mode 100644
index 147b0cb3..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/SettingsStub.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.maven.settings.Proxy;
-import org.apache.maven.settings.Settings;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class SettingsStub extends Settings {
-    /** {@inheritDoc} */
-    @Override
-    public synchronized Proxy getActiveProxy() {
-        Proxy proxy = new Proxy();
-        proxy.setActive(true);
-        proxy.setHost("http://localhost");
-        proxy.setPort(80);
-        proxy.setUsername("toto");
-        proxy.setPassword("toto");
-        proxy.setNonProxyHosts("www.google.com|*.somewhere.com");
-
-        return proxy;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public List<Proxy> getProxies() {
-        return Collections.singletonList(getActiveProxy());
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/StandardDocletConflictOptionsTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/StandardDocletConflictOptionsTestMavenProjectStub.java
deleted file mode 100644
index 6fb5e21f..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/StandardDocletConflictOptionsTestMavenProjectStub.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class StandardDocletConflictOptionsTestMavenProjectStub extends MavenProjectStub {
-    public StandardDocletConflictOptionsTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "conflict-options-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/validate-options-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/validate-options-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/StylesheetFileMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/StylesheetFileMavenProjectStub.java
deleted file mode 100644
index f8e99f5e..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/StylesheetFileMavenProjectStub.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class StylesheetFileMavenProjectStub extends MavenProjectStub {
-    public StylesheetFileMavenProjectStub() {
-        readModel(new File(getBasedir(), "pom.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/stylesheetfile-test/target");
-        Resource resource = new Resource();
-        resource.setDirectory(getBasedir() + "/src/main/resources");
-        build.addResource(resource);
-
-        build.setPlugins(getModel().getBuild().getPlugins());
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/stylesheetfile-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/SubpackagesTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/SubpackagesTestMavenProjectStub.java
deleted file mode 100644
index 8ce5d2cc..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/SubpackagesTestMavenProjectStub.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
- */
-public class SubpackagesTestMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public SubpackagesTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "subpackages-test-plugin-config.xml"));
-
-        setGroupId("org.apache.maven.plugins.maven-javadoc-plugin.unit");
-        setArtifactId("subpackages-test");
-        setVersion("1.0-SNAPSHOT");
-        setName("Maven Javadoc Plugin Subpackages Test");
-        setUrl("http://maven.apache.org");
-        setPackaging("jar");
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName("subpackages-test");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/subpackages-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/subpackages-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagTestMavenProjectStub.java
deleted file mode 100644
index 12cf79eb..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagTestMavenProjectStub.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class TagTestMavenProjectStub extends MavenProjectStub {
-    public TagTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "tag-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/tag-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/tag-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletArtifactsMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletArtifactsMavenProjectStub.java
deleted file mode 100644
index 93e9bab9..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletArtifactsMavenProjectStub.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.eclipse.aether.repository.RemoteRepository;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class TagletArtifactsMavenProjectStub extends MavenProjectStub {
-    /**
-     * Default constructor.
-     */
-    public TagletArtifactsMavenProjectStub() {
-        readModel(new File(getBasedir(), "tagletArtifacts-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/tagletArtifacts-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /*
-     * Allow to retrieve some dependencies from Maven Central
-     */
-    @Override
-    public List<RemoteRepository> getRemoteProjectRepositories() {
-        RemoteRepository.Builder builder =
-                new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2");
-        return Collections.singletonList(builder.build());
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/tagletArtifacts-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletTestMavenProjectStub.java
deleted file mode 100644
index 10239d9f..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TagletTestMavenProjectStub.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Scm;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class TagletTestMavenProjectStub extends MavenProjectStub {
-    private Scm scm;
-
-    public TagletTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "taglet-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Scm scm = new Scm();
-        scm.setConnection("scm:svn:http://svn.apache.org/maven/sample/trunk");
-        setScm(scm);
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.getBasedir() + "/target/test/unit/taglet-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir().getAbsolutePath());
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Scm getScm() {
-        return scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setScm(Scm scm) {
-        this.scm = scm;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/taglet-test");
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TestJavadocMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/TestJavadocMavenProjectStub.java
deleted file mode 100644
index 946699b5..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/TestJavadocMavenProjectStub.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.handler.DefaultArtifactHandler;
-import org.apache.maven.artifact.versioning.VersionRange;
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.apache.maven.project.MavenProject;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class TestJavadocMavenProjectStub extends MavenProjectStub {
-    public TestJavadocMavenProjectStub() {
-        readModel(new File(getBasedir(), "test-javadoc-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setDirectory(super.getBasedir() + "/target/test/unit/test-javadoc-test/target");
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setOutputDirectory(super.getBasedir() + "/target/test/unit/test-javadoc-test/target/classes");
-        build.setTestSourceDirectory(getBasedir() + "/src/test/java");
-        build.setTestOutputDirectory(super.getBasedir() + "/target/test/unit/test-javadoc-test/target/test-classes");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-
-        List<String> testCompileSourceRoots = new ArrayList<>();
-        testCompileSourceRoots.add(getBasedir() + "/src/test/java");
-        setTestCompileSourceRoots(testCompileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/test-javadoc-test");
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public MavenProject getExecutionProject() {
-        return this;
-    }
-
-    @Override
-    public Set<Artifact> getArtifacts() {
-        Artifact junit = new DefaultArtifact(
-                "junit",
-                "junit",
-                VersionRange.createFromVersion("3.8.1"),
-                Artifact.SCOPE_TEST,
-                "jar",
-                null,
-                new DefaultArtifactHandler("jar"),
-                false);
-        junit.setFile(new File(getBasedir() + "/junit/junit/3.8.1/junit-3.8.1.jar"));
-        return Collections.singleton(junit);
-    }
-}
diff --git a/src/test/java/org/apache/maven/plugins/javadoc/stubs/WrongEncodingOptionsTestMavenProjectStub.java b/src/test/java/org/apache/maven/plugins/javadoc/stubs/WrongEncodingOptionsTestMavenProjectStub.java
deleted file mode 100644
index aa608eca..00000000
--- a/src/test/java/org/apache/maven/plugins/javadoc/stubs/WrongEncodingOptionsTestMavenProjectStub.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.javadoc.stubs;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.maven.model.Build;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- */
-public class WrongEncodingOptionsTestMavenProjectStub extends MavenProjectStub {
-    public WrongEncodingOptionsTestMavenProjectStub() {
-        readModel(new File(getBasedir(), "wrong-encoding-test-plugin-config.xml"));
-
-        setGroupId(getModel().getGroupId());
-        setArtifactId(getModel().getArtifactId());
-        setVersion(getModel().getVersion());
-        setName(getModel().getName());
-        setUrl(getModel().getUrl());
-        setPackaging(getModel().getPackaging());
-
-        Build build = new Build();
-        build.setFinalName(getModel().getArtifactId());
-        build.setSourceDirectory(getBasedir() + "/src/main/java");
-        build.setDirectory(super.getBasedir() + "/target/test/unit/validate-options-test/target");
-        setBuild(build);
-
-        List<String> compileSourceRoots = new ArrayList<>();
-        compileSourceRoots.add(getBasedir() + "/src/main/java");
-        setCompileSourceRoots(compileSourceRoots);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public File getBasedir() {
-        return new File(super.getBasedir() + "/src/test/resources/unit/validate-options-test");
-    }
-}
diff --git a/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/all/pom.xml b/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/all/pom.xml
index f365f112..863d0e62 100644
--- a/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/all/pom.xml
+++ b/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/all/pom.xml
@@ -37,8 +37,8 @@ under the License.
         <configuration>
           <encoding>ISO-8859-1</encoding>
           <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateNotInSubDirectoryTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/aggregate-modules-not-in-subdirectories-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/aggregate-modules-not-in-subdirectories-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/aggregate-modules-not-in-subdirectories-test/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/aggregate-modules-not-in-subdirectories-test/target/javadoc-bundle-options</javadocOptionsDir>
           <windowtitle>Maven Javadoc Plugin aggregate resources 1.0-SNAPSHOT API</windowtitle>
           <reactorProjects>
             <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateNotInSubDirectoryTestMavenProjectStub"/>
@@ -49,7 +49,7 @@ under the License.
           <groups/>
           <tags/>
           <quiet>true</quiet>
-          <javadocDirectory>${basedir}/src/test/resources/unit/aggregate-modules-not-in-subdirectories-test/src/main/javadoc</javadocDirectory>
+          <javadocDirectory>${basedir}/aggregate-modules-not-in-subdirectories-test/src/main/javadoc</javadocDirectory>
           <debug>true</debug>
           <docfilessubdirs>true</docfilessubdirs>
           <stylesheet>java</stylesheet>
diff --git a/src/test/resources/unit/aggregate-resources-test/aggregate-resources-test-plugin-config.xml b/src/test/resources/unit/aggregate-resources-test/aggregate-resources-test-plugin-config.xml
index 97367dc1..365b4eeb 100644
--- a/src/test/resources/unit/aggregate-resources-test/aggregate-resources-test-plugin-config.xml
+++ b/src/test/resources/unit/aggregate-resources-test/aggregate-resources-test-plugin-config.xml
@@ -35,8 +35,8 @@ under the License.
         <configuration>
           <encoding>ISO-8859-1</encoding>
           <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateResourcesTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/aggregate-resources-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/aggregate-resources-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/aggregate-resources-test/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/aggregate-resources-test/target/javadoc-bundle-options</javadocOptionsDir>
           <windowtitle>Maven Javadoc Plugin aggregate resources 1.0-SNAPSHOT API</windowtitle>
           <reactorProjects>
             <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateResourcesTestMavenProjectStub"/>
@@ -47,7 +47,7 @@ under the License.
           <groups/>
           <tags/>
           <quiet>true</quiet>
-          <javadocDirectory>${basedir}/src/test/resources/unit/aggregate-resources-test/src/main/javadoc</javadocDirectory>
+          <javadocDirectory>${basedir}/aggregate-resources-test/src/main/javadoc</javadocDirectory>
           <debug>true</debug>
           <docfilessubdirs>true</docfilessubdirs>
           <stylesheet>java</stylesheet>
diff --git a/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml b/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml
index ccb54906..20ff1adf 100644
--- a/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml
+++ b/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml
@@ -35,8 +35,8 @@ under the License.
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
           <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/aggregate-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/aggregate-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/aggregate-test/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/aggregate-test/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -67,7 +67,7 @@ under the License.
             <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateProject1TestMavenProjectStub"/>
             <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateProject2TestMavenProjectStub"/>
           </reactorProjects>
-          <javadocDirectory>${basedir}/src/test/resources/unit/aggregate-test/src/main/javadoc</javadocDirectory>
+          <javadocDirectory>${basedir}/aggregate-test/src/main/javadoc</javadocDirectory>
           <debug>true</debug>
           <failOnError>true</failOnError>
         </configuration>
diff --git a/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml b/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml
index 7bbe8fae..b2296f55 100644
--- a/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml
+++ b/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.CustomConfigurationMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/custom-configuration/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/custom-configuration/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>true</old>
           <show>private</show>
@@ -92,7 +92,7 @@ under the License.
           <offlineLinks>
             <OfflineLink>
               <url>http://java.sun.com/j2se/1.4.2/docs/api</url>
-              <location>${basedir}/src/test/resources/unit/custom-configuration</location>
+              <location>${basedir}</location>
             </OfflineLink>
           </offlineLinks>
           <header>MAVEN JAVADOC PLUGIN TEST</header>
@@ -102,9 +102,6 @@ under the License.
           <excludePackageNames>*.exclude2:custom.configuration.exclude1.*</excludePackageNames>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.CustomConfigurationMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml b/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
index ff2e928d..832b144e 100644
--- a/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
+++ b/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.DefaultConfigurationMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/default-configuration/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/default-configuration/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -64,9 +64,6 @@ under the License.
           <debug>true</debug>
           <failOnError>true</failOnError>
           <detectJavaApiLink>true</detectJavaApiLink>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.DefaultConfigurationMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/docfiles-test/docfiles-test-plugin-config.xml b/src/test/resources/unit/docfiles-test/docfiles-test-plugin-config.xml
index 98d96038..5d90a460 100644
--- a/src/test/resources/unit/docfiles-test/docfiles-test-plugin-config.xml
+++ b/src/test/resources/unit/docfiles-test/docfiles-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.DocfilesTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/docfiles-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/docfiles-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -64,9 +64,6 @@ under the License.
           <excludedocfilessubdir>excluded-dir1:excluded-dir2</excludedocfilessubdir>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.DocfilesTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/docfiles-with-java-test/docfiles-with-java-test-plugin-config.xml b/src/test/resources/unit/docfiles-with-java-test/docfiles-with-java-test-plugin-config.xml
index 6938ceaa..5b883523 100644
--- a/src/test/resources/unit/docfiles-with-java-test/docfiles-with-java-test-plugin-config.xml
+++ b/src/test/resources/unit/docfiles-with-java-test/docfiles-with-java-test-plugin-config.xml
@@ -33,10 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.DocfilesWithJavaTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/docfiles-with-java-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/docfiles-with-java-test/target/javadoc-bundle-options</javadocOptionsDir>
-          <javadocDirectory>${basedir}/src/test/resources/unit/docfiles-with-java-test/src/main</javadocDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
+          <javadocDirectory>${basedir}/src/main</javadocDirectory>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -64,9 +63,6 @@ under the License.
           <docfilessubdirs>true</docfilessubdirs>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.DocfilesWithJavaTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml b/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml
index 44a1c9d9..514b9aa0 100644
--- a/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml
+++ b/src/test/resources/unit/doclet-path-test/doclet-path-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.DocletPathTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/doclet-path-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/doclet-path-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <doclet>UmlGraph</doclet>
           <docletArtifacts>
             <docletArtifact>
@@ -49,6 +49,7 @@ under the License.
               <version>2.1</version>
             </docletArtifact>
           </docletArtifacts>
+          <useStandardDocletOptions>false</useStandardDocletOptions>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -76,9 +77,6 @@ under the License.
           <windowtitle>Maven Javadoc Plugin Doclet Path Test 1.0-SNAPSHOT API</windowtitle>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.DocletPathTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/doclet-test/doclet-test-plugin-config.xml b/src/test/resources/unit/doclet-test/doclet-test-plugin-config.xml
index 80b5dcaf..687123f6 100644
--- a/src/test/resources/unit/doclet-test/doclet-test-plugin-config.xml
+++ b/src/test/resources/unit/doclet-test/doclet-test-plugin-config.xml
@@ -33,15 +33,16 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.DocletTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/doclet-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/doclet-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <doclet>UmlGraph</doclet>
           <docletArtifact>
               <groupId>umlgraph</groupId>
               <artifactId>UMLGraph</artifactId>
               <version>2.1</version>
           </docletArtifact>
+          <useStandardDocletOptions>false</useStandardDocletOptions>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -69,9 +70,6 @@ under the License.
           <windowtitle>Maven Javadoc Plugin Doclet Test 1.0-SNAPSHOT API</windowtitle>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.DocletTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/file-include-exclude-test/file-include-exclude-plugin-config.xml b/src/test/resources/unit/file-include-exclude-test/file-include-exclude-plugin-config.xml
index 616a1225..04e87d54 100644
--- a/src/test/resources/unit/file-include-exclude-test/file-include-exclude-plugin-config.xml
+++ b/src/test/resources/unit/file-include-exclude-test/file-include-exclude-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.SubpackagesTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/file-include-exclude-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/file-include-exclude-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}//target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -61,15 +60,12 @@ under the License.
           <use>true</use>
           <version>true</version>
           <windowtitle>Maven Javadoc Plugin Subpackages Test 1.0-SNAPSHOT API</windowtitle>
-          <sourcepath>${basedir}/src/test/resources/unit/file-include-exclude-test</sourcepath>
+          <sourcepath>${basedir}</sourcepath>
           <sourceFileExcludes>
             <sourceFileExclude>**/Pariah*</sourceFileExclude>
           </sourceFileExcludes>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.SubpackagesTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/ClassWithJavadoc.java b/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/ClassWithJavadoc.java
deleted file mode 100644
index 145a71e3..00000000
--- a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/ClassWithJavadoc.java
+++ /dev/null
@@ -1,476 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * To add default class tags.
- *
- * @author <a href="mailto:vsiveton@apache.org">vsiveton@apache.org</a>
- */
-@SuppressWarnings("SameReturnValue")
-public class ClassWithJavadoc
-    implements InterfaceWithJavadoc
-{
-    /**
-     * Constructor comment.
-     */
-    public ClassWithJavadoc()
-    {
-    }
-
-    /**
-     * <p>Constructor for ClassWithJavadoc.</p>
-     *
-     * @param aString a {@link java.lang.String} object
-     */
-    public ClassWithJavadoc( String aString )
-    {
-    }
-
-    /**
-     * public constructor with annotation
-     *
-     * @param b a {@link java.lang.Boolean} object
-     * @since 1.1
-     */
-    @SuppressWarnings("SameReturnValue")
-    public ClassWithJavadoc( Boolean b )
-    {
-    }
-
-    /**
-     * private constructor with annotation
-     */
-    @SuppressWarnings("SameReturnValue")
-    private ClassWithJavadoc( Integer i )
-    {
-    }
-
-    /**
-     * Spaces in tags.
-     *
-     * @param args      an array of strings that contains the arguments
-     */
-    public void spacesInJavadocTags( String[] args )
-    {
-    }
-
-    /**
-     * <p>missingJavadocTags.</p>
-     *
-     * @param str a {@link java.lang.String} object
-     * @param b a boolean
-     * @param i a int
-     * @return a {@link java.lang.String} object
-     */
-    public String missingJavadocTags( String str, boolean b, int i )
-    {
-        return null;
-    }
-
-    /**
-     * <p>missingJavadocTags2.</p>
-     *
-     * @param str a {@link java.lang.String} object
-     * @throws java.lang.UnsupportedOperationException if any
-     * @param b a boolean
-     * @param i a int
-     * @return a {@link java.lang.String} object
-     */
-    public String missingJavadocTags2( String str, boolean b, int i )
-        throws UnsupportedOperationException
-    {
-        return null;
-    }
-
-    /**
-     * <p>wrongJavadocTag.</p>
-     *
-     * @param aString a {@link java.lang.String} object
-     */
-    public void wrongJavadocTag( String aString )
-    {
-    }
-
-    /**
-     * <p>multiLinesJavadocTags.</p>
-     *
-     * @param aString
-     *      a string
-     * @param anotherString
-     *      with
-     *      multi
-     *      line
-     *      comments
-     * @return a
-     *      String
-     * @throws java.lang.UnsupportedOperationException
-     *      if any
-     */
-    public String multiLinesJavadocTags( String aString, String anotherString )
-        throws UnsupportedOperationException
-    {
-        return null;
-    }
-
-    /**
-     * To take care of the Javadoc indentation.
-     *
-     * @param aString a
-     *      String
-     * @return dummy
-     *      value
-     */
-    public String wrongJavadocIndentation( String aString )
-    {
-        return null;
-    }
-
-    // one single comment
-    /**
-     * To take care of single comments.
-     *
-     * @param aString a {@link java.lang.String} object
-     * @return a {@link java.lang.String} object
-     */
-    // other single comment
-    public String singleComments( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * To take care of same comments.
-     *
-     * @param aString a string
-     * @return a string
-     */
-    public String sameString( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * Empty Javadoc tag.
-     *
-     * @return a string
-     * @param aString a {@link java.lang.String} object
-     */
-    public String emptyJavadocTag( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * Comment on first line.
-     *
-     * @param aString a string
-     * @return a string
-     */
-    public String javadocCommentOnFirstLine( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * Take care of last empty javadoc with unused tags.
-     */
-    public void unusedTag()
-    {
-    }
-
-    /**
-     * Take care of RuntimeException.
-     *
-     * @throws java.lang.UnsupportedOperationException if any
-     */
-    public void throwsTagWithRuntimeException()
-    {
-    }
-
-    /**
-     * Take care of inner RuntimeException.
-     *
-     * @throws fix.test.ClassWithJavadoc$MyRuntimeException if any
-     */
-    public void throwsTagWithInnerRuntimeException()
-    {
-    }
-
-    /**
-     * Unknown throws RuntimeException.
-     *
-     * @throws UnknownRuntimeException if any
-     */
-    public void throwsTagWithUnknownRuntimeException()
-    {
-    }
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    /**
-     * New class method to be found by Clirr.
-     *
-     * @param aString a {@link java.lang.String} object
-     * @return a {@link java.lang.String} object
-     * @since 1.1
-     */
-    public String newClassMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inheritance
-    // ----------------------------------------------------------------------
-
-    /** {@inheritDoc} */
-    public void method1( String aString )
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * specific comment
-     */
-    public void method2( String aString )
-    {
-    }
-
-    /** {@inheritDoc} */
-    public String method3( String aString )
-    {
-        return null;
-    }
-
-    /** {@inheritDoc} */
-    public String method4( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Specific comment
-     */
-    public String method5( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * New interface method to be found by Clirr.
-     */
-    public String newInterfaceMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inner classes
-    // ----------------------------------------------------------------------
-
-    /**
-     * No javadoc for inner class.
-     */
-    public class InnerClass
-    {
-        /**
-         * constructor
-         */
-        public InnerClass()
-        {
-        }
-
-        public void nothing()
-        {
-        }
-    }
-
-    /**
-     * RuntimeException
-     */
-    public static class MyRuntimeException
-        extends RuntimeException
-    {
-    }
-
-    /**
-     * private method with annotation
-     */
-    @SuppressWarnings("SameReturnValue")
-    private void t000()
-    {
-        return;
-    }
-
-    /**
-     * private method with line comment
-     */
-    //test comment
-    private void t001()
-    {
-        return;
-    }
-
-    /**
-     * public method with annotation
-     *
-     * @since 1.1
-     */
-    @SuppressWarnings("SameReturnValue")
-    public void t010()
-    {
-        return;
-    }
-
-    /**
-     * public method with annotation
-     *
-     * @since 1.1
-     */
-    //test comment
-    public void t011()
-    {
-        return;
-    }
-
-    /**
-     * test generic function (with only head javadoc)
-     *
-     * @param tClass a {@link java.lang.Class} object
-     * @param o a {@link java.lang.Object} object
-     * @param <T> a T class
-     * @since 1.1
-     */
-    public <T extends Object> void testGeneric0(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    /**
-     * test generic function (with full javadoc)
-     *
-     * @param tClass this comment should be preserved
-     * @param o this comment should be preserved
-     * @param <T> this comment should be preserved
-     * @since 1.1
-     */
-    public <T extends Object> void testGeneric1(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    /**
-     * test generic function (with full javadoc, except generic docs)
-     *
-     * @param tClass this comment should be preserved
-     * @param o this comment should be preserved
-     * @param <T> a T class
-     * @since 1.1
-     */
-    public <T extends Object> void testGeneric2(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we use fully qualified name for the exception.
-     *
-     * @throws java.lang.Exception original description, should not be changed to "if any".
-     * @since 1.1
-     */
-    public void testException0()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we use short name for the exception.
-     *
-     * @throws java.lang.Exception original description, should not be changed to "if any".
-     * @since 1.1
-     */
-    public void testException1()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we use a wrong name for the exception.
-     *
-     * @throws RuaaaaaaException abcdefghijklmn.
-     * @throws java.lang.Exception if any.
-     * @since 1.1
-     */
-    public void testException2()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we provide only one exception description.
-     *
-     * @throws java.lang.RuntimeException text.
-     * @throws java.lang.Exception if any.
-     * @since 1.1
-     */
-    public void testException3()
-            throws RuntimeException , Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * to test if it will handle static final int field with left shift operators correctly.
-     */
-    public static final int TEST_STATIC_FINAL_FIELD_0 = 1 << 2;
-
-    /**
-     * to test if it will handle static final int field with right shift operators correctly.
-     */
-    public static final int TEST_STATIC_FINAL_FIELD_1 = 2 >> 1;
-
-    /**
-     * to test if it will handle static final String field with left shift operator and right shift operator correctly.
-     */
-    public static final String TEST_STATIC_FINAL_FIELD_2 = "<>?";
-}
-
-/**
- * To test package class
- */
-@SuppressWarnings("SameReturnValue")
-class PrivateTestClassWithJavadoc
-{
-}
diff --git a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/ClassWithNoJavadoc.java b/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/ClassWithNoJavadoc.java
deleted file mode 100644
index c37994ca..00000000
--- a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/ClassWithNoJavadoc.java
+++ /dev/null
@@ -1,283 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.Map;
-
-/**
- * <p>ClassWithNoJavadoc class.</p>
- *
- * @author <a href="mailto:vsiveton@apache.org">vsiveton@apache.org</a>
- */
-@SuppressWarnings("SameReturnValue")
-public class ClassWithNoJavadoc
-    implements InterfaceWithNoJavadoc
-{
-    /** Constant <code>MY_STRING_CONSTANT="value"</code> */
-    public static final String MY_STRING_CONSTANT = "value";
-
-    /** Constant <code>MY_STRING_CONSTANT2="default value"</code> */
-    public static final String MY_STRING_CONSTANT2 = "default" + " value";
-
-    /** Constant <code>MY_INT_CONSTANT=1</code> */
-    public static final int MY_INT_CONSTANT = 1;
-
-    /** Constant <code>EOL="System.getProperty( line.separator )"</code> */
-    public static final String EOL = System.getProperty( "line.separator" );
-
-    // take care of identifier
-    private static final String MY_PRIVATE_STRING_CONSTANT = "";
-
-    // QDOX-155
-    /** Constant <code>SEPARATOR=','</code> */
-    public static final char SEPARATOR = ',';
-
-    // QDOX-156
-    /** Constant <code>TEST1="test1"</code> */
-    public static final String TEST1 = "test1";
-
-    /**
-     * <p>Constructor for ClassWithNoJavadoc.</p>
-     */
-    public ClassWithNoJavadoc()
-    {
-    }
-
-    /**
-     * <p>Constructor for ClassWithNoJavadoc.</p>
-     *
-     * @param aString a {@link java.lang.String} object
-     */
-    public ClassWithNoJavadoc( String aString )
-    {
-    }
-
-    @SuppressWarnings("SameReturnValue")
-    /**
-     * <p>Constructor for ClassWithNoJavadoc.</p>
-     *
-     * @param b a {@link java.lang.Boolean} object
-     * @since 1.1
-     */
-    public ClassWithNoJavadoc( Boolean b )
-    {
-    }
-
-    @SuppressWarnings("SameReturnValue")
-    private ClassWithNoJavadoc( Integer i )
-    {
-    }
-
-    // take care of primitive
-    /**
-     * <p>missingJavadocTagsForPrimitives.</p>
-     *
-     * @param i a int
-     * @param b a byte
-     * @param f a float
-     * @param c a char
-     * @param s a short
-     * @param l a long
-     * @param d a double
-     * @param bb a boolean
-     */
-    public void missingJavadocTagsForPrimitives( int i, byte b, float f, char c, short s, long l, double d, boolean bb )
-    {
-    }
-
-    // take care of object
-    /**
-     * <p>missingJavadocTagsForObjects.</p>
-     *
-     * @param s a {@link java.lang.String} object
-     * @param m a {@link java.util.Map} object
-     */
-    public void missingJavadocTagsForObjects( String s, Map m )
-    {
-    }
-
-    // no Javadoc needed
-    private void privateMethod( String str )
-    {
-    }
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    /**
-     * <p>newClassMethod.</p>
-     *
-     * @param aString a {@link java.lang.String} object
-     * @return a {@link java.lang.String} object
-     * @since 1.1
-     */
-    public String newClassMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inheritance
-    // ----------------------------------------------------------------------
-
-    /** {@inheritDoc} */
-    public void missingJavadoc( String aString )
-    {
-    }
-
-    // take care of identifier
-    /** {@inheritDoc} */
-    public void missingJavadoc2( String aString )
-    {
-    }
-
-    /** {@inheritDoc} */
-    public String newInterfaceMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inner classes
-    // ----------------------------------------------------------------------
-
-    //No javadoc for inner class.
-    public class InnerClass
-    {
-        public InnerClass()
-        {
-        }
-
-        public void nothing()
-        {
-        }
-    }
-
-    @SuppressWarnings("SameReturnValue")
-    private void t000()
-    {
-        return;
-    }
-
-    //test comment
-    private void t001()
-    {
-        return;
-    }
-
-    /**
-     * <p>t010.</p>
-     *
-     * @since 1.1
-     */
-    @SuppressWarnings("SameReturnValue")
-    public void t010()
-    {
-        return;
-    }
-
-    //test comment
-    /**
-     * <p>t011.</p>
-     *
-     * @since 1.1
-     */
-    public void t011()
-    {
-        return;
-    }
-
-    /**
-     * <p>testGeneric3.</p>
-     *
-     * @param tClass a {@link java.lang.Class} object
-     * @param o a {@link java.lang.Object} object
-     * @param <T> a T class
-     * @since 1.1
-     */
-    public <T extends Object> void testGeneric3(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    /**
-     * <p>testException0.</p>
-     *
-     * @throws java.lang.Exception if any.
-     * @since 1.1
-     */
-    public void testException0()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * <p>testException1.</p>
-     *
-     * @throws java.lang.Exception if any.
-     * @since 1.1
-     */
-    public void testException1()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * <p>testException2.</p>
-     *
-     * @throws java.lang.Exception if any.
-     * @since 1.1
-     */
-    public void testException2()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * <p>testException3.</p>
-     *
-     * @throws java.lang.RuntimeException if any.
-     * @throws java.lang.Exception if any.
-     * @since 1.1
-     */
-    public void testException3()
-            throws RuntimeException , Exception
-    {
-        throw new Exception();
-    }
-
-    /** Constant <code>TEST_STATIC_FINAL_FIELD_0=1 &lt;&lt; 2</code> */
-    public static final int TEST_STATIC_FINAL_FIELD_0 = 1 << 2;
-
-    /** Constant <code>TEST_STATIC_FINAL_FIELD_1=2 &gt;&gt; 1</code> */
-    public static final int TEST_STATIC_FINAL_FIELD_1 = 2 >> 1;
-
-    /** Constant <code>TEST_STATIC_FINAL_FIELD_2="&lt;&gt;?"</code> */
-    public static final String TEST_STATIC_FINAL_FIELD_2 = "<>?";
-}
-
-@SuppressWarnings("SameReturnValue")
-class PrivateTestClassWithNoJavadoc
-{
-}
diff --git a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/InterfaceWithJavadoc.java b/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/InterfaceWithJavadoc.java
deleted file mode 100644
index 55ce1be4..00000000
--- a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/InterfaceWithJavadoc.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * To add default interface tags.
- *
- * @author <a href="mailto:vsiveton@apache.org">vsiveton@apache.org</a>
- */
-public interface InterfaceWithJavadoc
-{
-    /** default comment */
-    String MY_STRING_CONSTANT = "value";
-
-    /**
-     * To add default method tags.
-     *
-     * @param aString a {@link java.lang.String} object
-     */
-    public void method1( String aString );
-
-    /**
-     * To take care of identifier.
-     *
-     * @param aString a {@link java.lang.String} object
-     */
-    void method2( String aString );
-
-    // one single comment
-    /**
-     * To take care of single comments.
-     *
-     * @param aString a string
-     * @return null
-     */
-    // other single comment
-    public String method3( String aString );
-
-    /**
-     * Nothing.
-     *
-     * @param aString a {@link java.lang.String} object
-     * @return a {@link java.lang.String} object
-     */
-    public String method4( String aString );
-
-    /**
-     * Nothing.
-     *
-     * @param aString a {@link java.lang.String} object
-     * @return a {@link java.lang.String} object
-     */
-    public String method5( String aString );
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    /**
-     * New interface method to be found by Clirr.
-     *
-     * @param aString a {@link java.lang.String} object
-     * @return a {@link java.lang.String} object
-     * @since 1.1
-     */
-    public String newInterfaceMethod( String aString );
-}
diff --git a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/InterfaceWithNoJavadoc.java b/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/InterfaceWithNoJavadoc.java
deleted file mode 100644
index 6f25c705..00000000
--- a/src/test/resources/unit/fix-test/expected/src/main/java/fix/test/InterfaceWithNoJavadoc.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * <p>InterfaceWithNoJavadoc interface.</p>
- *
- * @author <a href="mailto:vsiveton@apache.org">vsiveton@apache.org</a>
- */
-public interface InterfaceWithNoJavadoc
-{
-    /** Constant <code>MY_STRING_CONSTANT="value"</code> */
-    String MY_STRING_CONSTANT = "value";
-
-    /**
-     * <p>missingJavadoc.</p>
-     *
-     * @param aString a {@link java.lang.String} object
-     */
-    public void missingJavadoc( String aString );
-
-    // take care of identifier
-    /**
-     * <p>missingJavadoc2.</p>
-     *
-     * @param aString a {@link java.lang.String} object
-     */
-    void missingJavadoc2( String aString );
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    /**
-     * <p>newInterfaceMethod.</p>
-     *
-     * @param aString a {@link java.lang.String} object
-     * @return a {@link java.lang.String} object
-     * @since 1.1
-     */
-    public String newInterfaceMethod( String aString );
-}
diff --git a/src/test/resources/unit/fix-test/pom.xml b/src/test/resources/unit/fix-test/pom.xml
deleted file mode 100644
index 4ecea4f4..00000000
--- a/src/test/resources/unit/fix-test/pom.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.plugins.maven-javadoc-plugin.unit</groupId>
-  <artifactId>fix-test</artifactId>
-  <version>1.1-SNAPSHOT</version>
-  <name>Javadoc Test Project</name>
-  <packaging>jar</packaging>
-
-  <properties>
-    <maven.compiler.source>8</maven.compiler.source>
-    <maven.compiler.target>8</maven.compiler.target>
-  </properties>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.7.0</version>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.FixMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/fix-test/target/generated</outputDirectory>
-          <defaultSince>1.1-SNAPSHOT</defaultSince>
-          <encoding>UTF-8</encoding>
-          <fixTags>all</fixTags>
-          <fixClassComment>true</fixClassComment>
-          <fixFieldComment>true</fixFieldComment>
-          <fixMethodComment>true</fixMethodComment>
-          <force>true</force>
-          <ignoreClirr>false</ignoreClirr>
-          <comparisonVersion>1.0</comparisonVersion>
-          <includes>**/*.java</includes>
-          <level>protected</level>
-          <defaultAuthor><![CDATA[<a href="mailto:vsiveton@apache.org">vsiveton@apache.org</a>]]></defaultAuthor>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/1.0/fix-test-1.0.jar b/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/1.0/fix-test-1.0.jar
deleted file mode 100644
index 3adde7c3..00000000
Binary files a/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/1.0/fix-test-1.0.jar and /dev/null differ
diff --git a/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/1.0/fix-test-1.0.pom b/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/1.0/fix-test-1.0.pom
deleted file mode 100644
index 7254f5ac..00000000
--- a/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/1.0/fix-test-1.0.pom
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.maven.plugins.maven-javadoc-plugin.unit</groupId>
-  <artifactId>fix-test</artifactId>
-  <version>1.0</version>
-  <name>Javadoc Test Project</name>
-  <packaging>jar</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>2.0.2</version>
-        <configuration>
-          <source>1.4</source>
-          <target>1.4</target>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.FixMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/fix-test/target/generated</outputDirectory>
-          <defaultSince>1.0-SNAPSHOT</defaultSince>
-          <encoding>UTF-8</encoding>
-          <fixTags>all</fixTags>
-          <fixClassComment>true</fixClassComment>
-          <fixFieldComment>true</fixFieldComment>
-          <fixMethodComment>true</fixMethodComment>
-          <force>true</force>
-          <ignoreClirr>true</ignoreClirr>
-          <includes>**/*.java</includes>
-          <level>protected</level>
-          <defaultAuthor><![CDATA[<a href="mailto:vsiveton@apache.org">vsiveton@apache.org</a>]]></defaultAuthor>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/maven-metadata-local.xml b/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/maven-metadata-local.xml
deleted file mode 100644
index 40f11113..00000000
--- a/src/test/resources/unit/fix-test/repo/org/apache/maven/plugins/maven-javadoc-plugin/unit/fix-test/maven-metadata-local.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><metadata>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-  <groupId>org.apache.maven.plugins.maven-javadoc-plugin.unit</groupId>
-  <artifactId>fix-test</artifactId>
-  <version>1.0</version>
-  <versioning>
-    <versions>
-      <version>1.0</version>
-    </versions>
-    <lastUpdated>20090723104349</lastUpdated>
-  </versioning>
-</metadata>
diff --git a/src/test/resources/unit/fix-test/src/main/java/fix/test/ClassWithJavadoc.java b/src/test/resources/unit/fix-test/src/main/java/fix/test/ClassWithJavadoc.java
deleted file mode 100644
index e82ecaab..00000000
--- a/src/test/resources/unit/fix-test/src/main/java/fix/test/ClassWithJavadoc.java
+++ /dev/null
@@ -1,440 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * To add default class tags.
- */
-@SuppressWarnings("SameReturnValue")
-public class ClassWithJavadoc
-    implements InterfaceWithJavadoc
-{
-    /**
-     * Constructor comment.
-     */
-    public ClassWithJavadoc()
-    {
-    }
-
-    /**
-     * @param aString
-     */
-    public ClassWithJavadoc( String aString )
-    {
-    }
-
-    /**
-     * public constructor with annotation
-     */
-    @SuppressWarnings("SameReturnValue")
-    public ClassWithJavadoc( Boolean b )
-    {
-    }
-
-    /**
-     * private constructor with annotation
-     */
-    @SuppressWarnings("SameReturnValue")
-    private ClassWithJavadoc( Integer i )
-    {
-    }
-
-    /**
-     * Spaces in tags.
-     *
-     * @param args      an array of strings that contains the arguments
-     */
-    public void spacesInJavadocTags( String[] args )
-    {
-    }
-
-    /**
-     * @param str
-     */
-    public String missingJavadocTags( String str, boolean b, int i )
-    {
-        return null;
-    }
-
-    /**
-     * @param str
-     * @throws UnsupportedOperationException if any
-     */
-    public String missingJavadocTags2( String str, boolean b, int i )
-        throws UnsupportedOperationException
-    {
-        return null;
-    }
-
-    /**
-     * @param str
-     */
-    public void wrongJavadocTag( String aString )
-    {
-    }
-
-    /**
-     * @param aString
-     *      a string
-     * @param anotherString
-     *      with
-     *      multi
-     *      line
-     *      comments
-     * @return a
-     *      String
-     * @throws UnsupportedOperationException
-     *      if any
-     */
-    public String multiLinesJavadocTags( String aString, String anotherString )
-        throws UnsupportedOperationException
-    {
-        return null;
-    }
-
-        /**
-         * To take care of the Javadoc indentation.
-         *
-         * @param aString a
-         *      String
-         *
-         * @return dummy
-         *      value
-         */
-    public String wrongJavadocIndentation( String aString )
-    {
-        return null;
-    }
-
-    // one single comment
-    /**
-     * To take care of single comments.
-     */
-    // other single comment
-    public String singleComments( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * To take care of same comments.
-     *
-     * @param aString a string
-     * @return a string
-     */
-    public String sameString( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * Empty Javadoc tag.
-     *
-     * @param
-     * @return a string
-     */
-    public String emptyJavadocTag( String aString )
-    {
-        return null;
-    }
-
-    /** Comment on first line.
-     *
-     * @param aString a string
-     * @return a string
-     */
-    public String javadocCommentOnFirstLine( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * Take care of last empty javadoc with unused tags.
-     *
-     * @param unused not
-     *      used
-     */
-    public void unusedTag()
-    {
-    }
-
-    /**
-     * Take care of RuntimeException.
-     *
-     * @throws UnsupportedOperationException if any
-     */
-    public void throwsTagWithRuntimeException()
-    {
-    }
-
-    /**
-     * Take care of inner RuntimeException.
-     *
-     * @throws MyRuntimeException if any
-     */
-    public void throwsTagWithInnerRuntimeException()
-    {
-    }
-
-    /**
-     * Unknown throws RuntimeException.
-     *
-     * @throws UnknownRuntimeException if any
-     */
-    public void throwsTagWithUnknownRuntimeException()
-    {
-    }
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    /**
-     * New class method to be found by Clirr.
-     */
-    public String newClassMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inheritance
-    // ----------------------------------------------------------------------
-
-    /** {@inheritDoc} */
-    public void method1( String aString )
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * specific comment
-     */
-    public void method2( String aString )
-    {
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @param aString not
-     *      used
-     */
-    public String method3( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * @param aString not
-     *      used
-     */
-    public String method4( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * Specific comment
-     *
-     * @param aString not
-     *      used
-     */
-    public String method5( String aString )
-    {
-        return null;
-    }
-
-    /**
-     * New interface method to be found by Clirr.
-     */
-    public String newInterfaceMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inner classes
-    // ----------------------------------------------------------------------
-
-    /**
-     * No javadoc for inner class.
-     */
-    public class InnerClass
-    {
-        /**
-         * constructor
-         */
-        public InnerClass()
-        {
-        }
-
-        public void nothing()
-        {
-        }
-    }
-
-    /**
-     * RuntimeException
-     */
-    public static class MyRuntimeException
-        extends RuntimeException
-    {
-    }
-
-    /**
-     * private method with annotation
-     */
-    @SuppressWarnings("SameReturnValue")
-    private void t000()
-    {
-        return;
-    }
-
-    /**
-     * private method with line comment
-     */
-    //test comment
-    private void t001()
-    {
-        return;
-    }
-
-    /**
-     * public method with annotation
-     */
-    @SuppressWarnings("SameReturnValue")
-    public void t010()
-    {
-        return;
-    }
-
-    /**
-     * public method with annotation
-     */
-    //test comment
-    public void t011()
-    {
-        return;
-    }
-
-    /**
-     * test generic function (with only head javadoc)
-     */
-    public <T extends Object> void testGeneric0(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    /**
-     * test generic function (with full javadoc)
-     *
-     * @param tClass this comment should be preserved
-     * @param o this comment should be preserved
-     * @param <T> this comment should be preserved
-     */
-    public <T extends Object> void testGeneric1(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    /**
-     * test generic function (with full javadoc, except generic docs)
-     *
-     * @param tClass this comment should be preserved
-     * @param o this comment should be preserved
-     */
-    public <T extends Object> void testGeneric2(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we use fully qualified name for the exception.
-     *
-     * @throws java.lang.Exception original description, should not be changed to "if any".
-     */
-    public void testException0()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we use short name for the exception.
-     *
-     * @throws Exception original description, should not be changed to "if any".
-     */
-    public void testException1()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we use a wrong name for the exception.
-     *
-     * @throws RuaaaaaaException abcdefghijklmn.
-     */
-    public void testException2()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * test whether it will change exception description when using "fix"
-     * test if we provide only one exception description.
-     *
-     * @throws RuntimeException text.
-     */
-    public void testException3()
-            throws RuntimeException , Exception
-    {
-        throw new Exception();
-    }
-
-    /**
-     * to test if it will handle static final int field with left shift operators correctly.
-     */
-    public static final int TEST_STATIC_FINAL_FIELD_0 = 1 << 2;
-
-    /**
-     * to test if it will handle static final int field with right shift operators correctly.
-     */
-    public static final int TEST_STATIC_FINAL_FIELD_1 = 2 >> 1;
-
-    /**
-     * to test if it will handle static final String field with left shift operator and right shift operator correctly.
-     */
-    public static final String TEST_STATIC_FINAL_FIELD_2 = "<>?";
-}
-
-/**
- * To test package class
- */
-@SuppressWarnings("SameReturnValue")
-class PrivateTestClassWithJavadoc
-{
-}
\ No newline at end of file
diff --git a/src/test/resources/unit/fix-test/src/main/java/fix/test/ClassWithNoJavadoc.java b/src/test/resources/unit/fix-test/src/main/java/fix/test/ClassWithNoJavadoc.java
deleted file mode 100644
index 5fddac7e..00000000
--- a/src/test/resources/unit/fix-test/src/main/java/fix/test/ClassWithNoJavadoc.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.Map;
-
-@SuppressWarnings("SameReturnValue")
-public class ClassWithNoJavadoc
-    implements InterfaceWithNoJavadoc
-{
-    public static final String MY_STRING_CONSTANT = "value";
-
-    public static final String MY_STRING_CONSTANT2 = "default" + " value";
-
-    public static final int MY_INT_CONSTANT = 1;
-
-    public static final String EOL = System.getProperty( "line.separator" );
-
-    // take care of identifier
-    private static final String MY_PRIVATE_STRING_CONSTANT = "";
-
-    // QDOX-155
-    public static final char SEPARATOR = ',';
-
-    // QDOX-156
-    public static final String TEST1 = "test1";
-
-    public ClassWithNoJavadoc()
-    {
-    }
-
-    public ClassWithNoJavadoc( String aString )
-    {
-    }
-
-    @SuppressWarnings("SameReturnValue")
-    public ClassWithNoJavadoc( Boolean b )
-    {
-    }
-
-    @SuppressWarnings("SameReturnValue")
-    private ClassWithNoJavadoc( Integer i )
-    {
-    }
-
-    // take care of primitive
-    public void missingJavadocTagsForPrimitives( int i, byte b, float f, char c, short s, long l, double d, boolean bb )
-    {
-    }
-
-    // take care of object
-    public void missingJavadocTagsForObjects( String s, Map m )
-    {
-    }
-
-    // no Javadoc needed
-    private void privateMethod( String str )
-    {
-    }
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    public String newClassMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inheritance
-    // ----------------------------------------------------------------------
-
-    public void missingJavadoc( String aString )
-    {
-    }
-
-    // take care of identifier
-    public void missingJavadoc2( String aString )
-    {
-    }
-
-    public String newInterfaceMethod( String aString )
-    {
-        return null;
-    }
-
-    // ----------------------------------------------------------------------
-    // Inner classes
-    // ----------------------------------------------------------------------
-
-    //No javadoc for inner class.
-    public class InnerClass
-    {
-        public InnerClass()
-        {
-        }
-
-        public void nothing()
-        {
-        }
-    }
-
-    @SuppressWarnings("SameReturnValue")
-    private void t000()
-    {
-        return;
-    }
-
-    //test comment
-    private void t001()
-    {
-        return;
-    }
-
-    @SuppressWarnings("SameReturnValue")
-    public void t010()
-    {
-        return;
-    }
-
-    //test comment
-    public void t011()
-    {
-        return;
-    }
-
-    public <T extends Object> void testGeneric3(Class<T> tClass, Object o)
-    {
-        return;
-    }
-
-    public void testException0()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    public void testException1()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    public void testException2()
-            throws Exception
-    {
-        throw new Exception();
-    }
-
-    public void testException3()
-            throws RuntimeException , Exception
-    {
-        throw new Exception();
-    }
-
-    public static final int TEST_STATIC_FINAL_FIELD_0 = 1 << 2;
-
-    public static final int TEST_STATIC_FINAL_FIELD_1 = 2 >> 1;
-
-    public static final String TEST_STATIC_FINAL_FIELD_2 = "<>?";
-}
-
-@SuppressWarnings("SameReturnValue")
-class PrivateTestClassWithNoJavadoc
-{
-}
diff --git a/src/test/resources/unit/fix-test/src/main/java/fix/test/InterfaceWithJavadoc.java b/src/test/resources/unit/fix-test/src/main/java/fix/test/InterfaceWithJavadoc.java
deleted file mode 100644
index ded25ce7..00000000
--- a/src/test/resources/unit/fix-test/src/main/java/fix/test/InterfaceWithJavadoc.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * To add default interface tags.
- */
-public interface InterfaceWithJavadoc
-{
-    /** default comment */
-    String MY_STRING_CONSTANT = "value";
-
-    /**
-     * To add default method tags.
-     */
-    public void method1( String aString );
-
-    /**
-     * To take care of identifier.
-     */
-    void method2( String aString );
-
-    // one single comment
-    /**
-     * To take care of single comments.
-     *
-     * @param aString a string
-     * @return null
-     */
-    // other single comment
-    public String method3( String aString );
-
-    /**
-     * Nothing.
-     */
-    public String method4( String aString );
-
-    /**
-     * Nothing.
-     */
-    public String method5( String aString );
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    /**
-     * New interface method to be found by Clirr.
-     */
-    public String newInterfaceMethod( String aString );
-}
diff --git a/src/test/resources/unit/fix-test/src/main/java/fix/test/InterfaceWithNoJavadoc.java b/src/test/resources/unit/fix-test/src/main/java/fix/test/InterfaceWithNoJavadoc.java
deleted file mode 100644
index f244deef..00000000
--- a/src/test/resources/unit/fix-test/src/main/java/fix/test/InterfaceWithNoJavadoc.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package fix.test;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-public interface InterfaceWithNoJavadoc
-{
-    String MY_STRING_CONSTANT = "value";
-
-    public void missingJavadoc( String aString );
-
-    // take care of identifier
-    void missingJavadoc2( String aString );
-
-    // ----------------------------------------------------------------------
-    // New methods to be found by Clirr.
-    // ----------------------------------------------------------------------
-
-    public String newInterfaceMethod( String aString );
-}
diff --git a/src/test/resources/unit/header-footer-test/header-footer-test-plugin-config.xml b/src/test/resources/unit/header-footer-test/header-footer-test-plugin-config.xml
index 98d4e51e..250248c0 100644
--- a/src/test/resources/unit/header-footer-test/header-footer-test-plugin-config.xml
+++ b/src/test/resources/unit/header-footer-test/header-footer-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.HeaderFooterTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/header-footer-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/header-footer-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}//target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
@@ -65,9 +64,6 @@ under the License.
           <quiet>true</quiet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.HeaderFooterTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/helpfile-test/artifact-helpfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/helpfile-test/1.0-SNAPSHOT/helpfile-test-1.0-SNAPSHOT.pom b/src/test/resources/unit/helpfile-test/artifact-helpfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/helpfile-test/1.0-SNAPSHOT/helpfile-test-1.0-SNAPSHOT.pom
index 6235931b..0ee0a2a5 100644
--- a/src/test/resources/unit/helpfile-test/artifact-helpfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/helpfile-test/1.0-SNAPSHOT/helpfile-test-1.0-SNAPSHOT.pom
+++ b/src/test/resources/unit/helpfile-test/artifact-helpfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/helpfile-test/1.0-SNAPSHOT/helpfile-test-1.0-SNAPSHOT.pom
@@ -34,9 +34,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.HelpFileMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/helpfile-test/target/site</outputDirectory>
-          <javadocDirectory>${basedir}/src/test/resources/unit/helpfile-test/src/main/javadoc</javadocDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocDirectory>${basedir}/src/main/javadoc</javadocDirectory>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
diff --git a/src/test/resources/unit/helpfile-test/pom.xml b/src/test/resources/unit/helpfile-test/pom.xml
index 097e36bf..104a445d 100644
--- a/src/test/resources/unit/helpfile-test/pom.xml
+++ b/src/test/resources/unit/helpfile-test/pom.xml
@@ -34,10 +34,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.HelpFileMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/helpfile-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/helpfile-test/target/javadoc-bundle-options</javadocOptionsDir>
-          <javadocDirectory>${basedir}/src/test/resources/unit/helpfile-test/src/main/javadoc</javadocDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
+          <javadocDirectory>${basedir}/src/main/javadoc</javadocDirectory>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -65,9 +64,6 @@ under the License.
           <debug>true</debug>
           <failOnError>true</failOnError>
           <stylesheet>java</stylesheet>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.HelpFileMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
         <dependencies>
           <dependency>
diff --git a/src/test/resources/unit/javaHome-test/javaHome-test-plugin-config.xml b/src/test/resources/unit/javaHome-test/javaHome-test-plugin-config.xml
index 308c5ad7..4dd404ec 100644
--- a/src/test/resources/unit/javaHome-test/javaHome-test-plugin-config.xml
+++ b/src/test/resources/unit/javaHome-test/javaHome-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.DefaultConfigurationMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/javaHome-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/javaHome-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -63,9 +63,6 @@ under the License.
           <windowtitle>Maven Javadoc Plugin Java Home Test 1.0-SNAPSHOT API</windowtitle>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.DefaultConfigurationMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/javadocjar-archive-config/javadocjar-archive-config.xml b/src/test/resources/unit/javadocjar-archive-config/javadocjar-archive-config.xml
index cbbcea6b..0587701e 100644
--- a/src/test/resources/unit/javadocjar-archive-config/javadocjar-archive-config.xml
+++ b/src/test/resources/unit/javadocjar-archive-config/javadocjar-archive-config.xml
@@ -33,10 +33,10 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.JavadocJarArchiveConfigProjectStub"/>
-          <jarOutputDirectory>${basedir}/target/test/unit/javadocjar-archive-config/target</jarOutputDirectory>
-          <outputDirectory>${basedir}/target/test/unit/javadocjar-archive-config/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/javadocjar-archive-config/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <jarOutputDirectory>${basedir}/target</jarOutputDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <finalName>javadocjar-archive-config</finalName>
           <classifier>javadoc</classifier>
           <attach>true</attach>
@@ -75,9 +75,6 @@ under the License.
           <archive>
             <addMavenDescriptor>true</addMavenDescriptor>
           </archive>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.JavadocJarArchiveConfigProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/javadocjar-default/javadocjar-default-plugin-config.xml b/src/test/resources/unit/javadocjar-default/javadocjar-default-plugin-config.xml
index de9d611f..bc1fb811 100644
--- a/src/test/resources/unit/javadocjar-default/javadocjar-default-plugin-config.xml
+++ b/src/test/resources/unit/javadocjar-default/javadocjar-default-plugin-config.xml
@@ -33,10 +33,10 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.JavadocJarDefaultMavenProjectStub"/>
-          <jarOutputDirectory>${basedir}/target/test/unit/javadocjar-default/target</jarOutputDirectory>
-          <outputDirectory>${basedir}/target/test/unit/javadocjar-default/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/javadocjar-default/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <jarOutputDirectory>${basedir}/target</jarOutputDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <finalName>javadocjar-default</finalName>
           <classifier>javadoc</classifier>
           <attach>true</attach>
@@ -72,9 +72,6 @@ under the License.
           <version>true</version>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.JavadocJarDefaultMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/javadocjar-failonerror/javadocjar-failonerror-plugin-config.xml b/src/test/resources/unit/javadocjar-failonerror/javadocjar-failonerror-plugin-config.xml
index f0c160e9..8ea6e1fe 100644
--- a/src/test/resources/unit/javadocjar-failonerror/javadocjar-failonerror-plugin-config.xml
+++ b/src/test/resources/unit/javadocjar-failonerror/javadocjar-failonerror-plugin-config.xml
@@ -33,10 +33,10 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.JavadocJarFailOnErrorMavenProjectStub"/>
-          <jarOutputDirectory>${basedir}/target/test/unit/javadocjar-failonerror/target</jarOutputDirectory>
-          <outputDirectory>${basedir}/target/test/unit/javadocjar-failonerror/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/javadocjar-failonerror/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <jarOutputDirectory>${basedir}/target</jarOutputDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <finalName>javadocjar-failonerror</finalName>
           <attach>true</attach>
           <classifier>javadoc</classifier>
@@ -72,9 +72,6 @@ under the License.
           <version>true</version>
           <debug>true</debug>
           <failOnError>false</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.JavadocJarFailOnErrorMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/jdk5-test/jdk5-test-plugin-config.xml b/src/test/resources/unit/jdk5-test/jdk5-test-plugin-config.xml
index 619e3524..d16ce793 100644
--- a/src/test/resources/unit/jdk5-test/jdk5-test-plugin-config.xml
+++ b/src/test/resources/unit/jdk5-test/jdk5-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.Jdk5TestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/jdk5-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/jdk5-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <groups/>
           <tags/>
@@ -46,9 +46,6 @@ under the License.
           <quiet>true</quiet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.Jdk5TestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/jdk6-test/jdk6-test-plugin-config.xml b/src/test/resources/unit/jdk6-test/jdk6-test-plugin-config.xml
index d7293921..88f2678d 100644
--- a/src/test/resources/unit/jdk6-test/jdk6-test-plugin-config.xml
+++ b/src/test/resources/unit/jdk6-test/jdk6-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.Jdk6TestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/jdk6-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/jdk6-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
@@ -75,9 +75,6 @@ under the License.
           <stylesheet>java</stylesheet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.Jdk6TestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/newline-test/newline-test-plugin-config.xml b/src/test/resources/unit/newline-test/newline-test-plugin-config.xml
index 3e89f1bf..a7e3a471 100644
--- a/src/test/resources/unit/newline-test/newline-test-plugin-config.xml
+++ b/src/test/resources/unit/newline-test/newline-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.NewlineTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/newline-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/newline-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
@@ -82,9 +81,6 @@ Copyright 2005,
           <quiet>true</quiet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.NewlineTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/optionsumlautencoding-test/optionsumlautencoding-test-plugin-config.xml b/src/test/resources/unit/optionsumlautencoding-test/optionsumlautencoding-test-plugin-config.xml
index 27687885..fee25371 100644
--- a/src/test/resources/unit/optionsumlautencoding-test/optionsumlautencoding-test-plugin-config.xml
+++ b/src/test/resources/unit/optionsumlautencoding-test/optionsumlautencoding-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.OptionsUmlautEncodingMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/optionsumlautencoding-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/optionsumlautencoding-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -65,9 +65,6 @@ under the License.
           <debug>true</debug>
           <failOnError>true</failOnError>
           <detectJavaApiLink>true</detectJavaApiLink>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.OptionsUmlautEncodingMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/pom-test/pom-test-plugin-config.xml b/src/test/resources/unit/pom-test/pom-test-plugin-config.xml
index 6bf56394..f6f8fc45 100644
--- a/src/test/resources/unit/pom-test/pom-test-plugin-config.xml
+++ b/src/test/resources/unit/pom-test/pom-test-plugin-config.xml
@@ -25,30 +25,21 @@ under the License.
   <version>1.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>project1</name>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.PomMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/pom-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/pom-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
           <tags/>
           <windowtitle>Maven Pom 1.0-SNAPSHOT API</windowtitle>
           <quiet>true</quiet>
-          <javadocDirectory>${basedir}/src/test/resources/unit/pom-test/src/test/javadoc</javadocDirectory>
+          <javadocDirectory>${basedir}/src/test/javadoc</javadocDirectory>
           <stylesheet>java</stylesheet>
           <debug>true</debug>
           <failOnError>true</failOnError>
diff --git a/src/test/resources/unit/proxy-test/proxy-test-plugin-config.xml b/src/test/resources/unit/proxy-test/proxy-test-plugin-config.xml
index d1a21ffd..3f7787d2 100644
--- a/src/test/resources/unit/proxy-test/proxy-test-plugin-config.xml
+++ b/src/test/resources/unit/proxy-test/proxy-test-plugin-config.xml
@@ -33,10 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.ProxyTestMavenProjectStub"/>
-          <settings implementation="org.apache.maven.plugins.javadoc.stubs.SettingsStub"/>
-          <outputDirectory>${basedir}/target/test/unit/proxy-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/proxy-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
@@ -47,9 +45,6 @@ under the License.
           <quiet>true</quiet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.ProxyTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/quotedpath'test/quotedpath-test-plugin-config.xml b/src/test/resources/unit/quotedpath'test/quotedpath-test-plugin-config.xml
index 9a77c5b9..ac9fc28f 100644
--- a/src/test/resources/unit/quotedpath'test/quotedpath-test-plugin-config.xml
+++ b/src/test/resources/unit/quotedpath'test/quotedpath-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.QuotedPathMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/quotedpath'test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/quotedpath'test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -63,9 +63,6 @@ under the License.
           <windowtitle>Maven Javadoc Plugin Quoted Path Test 1.0-SNAPSHOT API</windowtitle>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.QuotedPathMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/resources-test/resources-test-plugin-config.xml b/src/test/resources/unit/resources-test/resources-test-plugin-config.xml
index 45a5bf83..69ff8a57 100644
--- a/src/test/resources/unit/resources-test/resources-test-plugin-config.xml
+++ b/src/test/resources/unit/resources-test/resources-test-plugin-config.xml
@@ -33,11 +33,10 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.ResourcesTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/resources-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/resources-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <windowtitle>Maven Javadoc Plugin resources 1.0-SNAPSHOT API</windowtitle>
-          <javadocDirectory>${basedir}/src/test/resources/unit/resources-test/src/main/javadoc</javadocDirectory>
+          <javadocDirectory>${basedir}/src/main/javadoc</javadocDirectory>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
@@ -47,9 +46,6 @@ under the License.
           <docfilessubdirs>true</docfilessubdirs>
           <stylesheet>java</stylesheet>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.ResourcesTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/resources-with-excludes-test/resources-with-excludes-test-plugin-config.xml b/src/test/resources/unit/resources-with-excludes-test/resources-with-excludes-test-plugin-config.xml
index 042e1ef2..e7cb7073 100644
--- a/src/test/resources/unit/resources-with-excludes-test/resources-with-excludes-test-plugin-config.xml
+++ b/src/test/resources/unit/resources-with-excludes-test/resources-with-excludes-test-plugin-config.xml
@@ -33,11 +33,10 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.ResourcesWithExcludesTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/resources-with-excludes-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/resources-with-excludes-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <windowtitle>Maven Javadoc Plugin resources 1.0-SNAPSHOT API</windowtitle>
-          <javadocDirectory>${basedir}/src/test/resources/unit/resources-with-excludes-test/src/main/javadoc</javadocDirectory>
+          <javadocDirectory>${basedir}/src/main/javadoc</javadocDirectory>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
@@ -48,9 +47,6 @@ under the License.
           <excludedocfilessubdir>test</excludedocfilessubdir>
           <stylesheet>java</stylesheet>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.ResourcesWithExcludesTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/stale-test/stale-test-plugin-config.xml b/src/test/resources/unit/stale-test/stale-test-plugin-config.xml
index 1bfce939..f1d5cf92 100644
--- a/src/test/resources/unit/stale-test/stale-test-plugin-config.xml
+++ b/src/test/resources/unit/stale-test/stale-test-plugin-config.xml
@@ -25,40 +25,28 @@ under the License.
   <version>1.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>project1</name>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.JavadocJarArchiveConfigProjectStub"/>
-          <jarOutputDirectory>${basedir}/target/test/unit/stale-test/target</jarOutputDirectory>
+          <jarOutputDirectory>${basedir}/target</jarOutputDirectory>
           <finalName>pom-test</finalName>
           <classifier>javadoc</classifier>
-          <outputDirectory>${basedir}/target/test/unit/stale-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/stale-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
           <tags/>
           <windowtitle>Maven Pom 1.0-SNAPSHOT API</windowtitle>
           <quiet>true</quiet>
-          <javadocDirectory>${basedir}/src/test/resources/unit/stale-test/src/java/javadoc</javadocDirectory>
+          <javadocDirectory>${basedir}/src/java/javadoc</javadocDirectory>
           <stylesheet>java</stylesheet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.AggregateNotInSubDirectoryTestMavenProjectStub"/>
-          </reactorProjects>
-          <staleDataPath>${basedir}/target/test/unit/stale-test/target/maven-javadoc-plugin-stale-data.txt</staleDataPath>
+          <staleDataPath>${basedir}/target/maven-javadoc-plugin-stale-data.txt</staleDataPath>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/stylesheetfile-test/artifact-stylesheetfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/stylesheetfile-test/1.0-SNAPSHOT/stylesheetfile-test-1.0-SNAPSHOT.pom b/src/test/resources/unit/stylesheetfile-test/artifact-stylesheetfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/stylesheetfile-test/1.0-SNAPSHOT/stylesheetfile-test-1.0-SNAPSHOT.pom
index 5a7fdf17..0648d354 100644
--- a/src/test/resources/unit/stylesheetfile-test/artifact-stylesheetfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/stylesheetfile-test/1.0-SNAPSHOT/stylesheetfile-test-1.0-SNAPSHOT.pom
+++ b/src/test/resources/unit/stylesheetfile-test/artifact-stylesheetfile/org/apache/maven/plugins/maven-javadoc-plugin/unit/stylesheetfile-test/1.0-SNAPSHOT/stylesheetfile-test-1.0-SNAPSHOT.pom
@@ -34,9 +34,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.StylesheetFileMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/stylesheetfile-test/target/site</outputDirectory>
-          <javadocDirectory>${basedir}/src/test/resources/unit/stylesheetfile-test/src/main/javadoc</javadocDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocDirectory>${basedir}/src/main/javadoc</javadocDirectory>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
diff --git a/src/test/resources/unit/stylesheetfile-test/pom.xml b/src/test/resources/unit/stylesheetfile-test/pom.xml
index 51e6de9d..94129c8c 100644
--- a/src/test/resources/unit/stylesheetfile-test/pom.xml
+++ b/src/test/resources/unit/stylesheetfile-test/pom.xml
@@ -34,10 +34,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.StylesheetFileMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/stylesheetfile-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/stylesheetfile-test/target/javadoc-bundle-options</javadocOptionsDir>
-          <javadocDirectory>${basedir}/src/test/resources/unit/stylesheetfile-test/src/main/javadoc</javadocDirectory>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
+          <javadocDirectory>${basedir}/src/main/javadoc</javadocDirectory>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -64,17 +63,7 @@ under the License.
           <windowtitle>Maven Javadoc Plugin Stylesheetfile Test 1.0-SNAPSHOT API</windowtitle>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.StylesheetFileMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.maven.plugins.maven-javadoc-plugin.unit</groupId>
-            <artifactId>stylesheetfile-test</artifactId>
-            <version>1.0-SNAPSHOT</version>
-          </dependency>
-        </dependencies>
       </plugin>
     </plugins>
   </build>
diff --git a/src/test/resources/unit/subpackages-test/subpackages-test-plugin-config.xml b/src/test/resources/unit/subpackages-test/subpackages-test-plugin-config.xml
index b8025d3a..ec0fc6fe 100644
--- a/src/test/resources/unit/subpackages-test/subpackages-test-plugin-config.xml
+++ b/src/test/resources/unit/subpackages-test/subpackages-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.SubpackagesTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/subpackages-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/subpackages-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -61,14 +60,11 @@ under the License.
           <use>true</use>
           <version>true</version>
           <windowtitle>Maven Javadoc Plugin Subpackages Test 1.0-SNAPSHOT API</windowtitle>
-          <sourcepath>${basedir}/src/test/resources/unit/subpackages-test</sourcepath>
+          <sourcepath>${basedir}</sourcepath>
           <subpackages>subpackages.test</subpackages>
           <excludePackageNames>subpackages.test.excluded:subpackages.test.included.exclude</excludePackageNames>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.SubpackagesTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/tag-test/tag-test-plugin-config.xml b/src/test/resources/unit/tag-test/tag-test-plugin-config.xml
index 6b8f2e8c..0d16b757 100644
--- a/src/test/resources/unit/tag-test/tag-test-plugin-config.xml
+++ b/src/test/resources/unit/tag-test/tag-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.TagTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/tag-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/tag-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <windowtitle>Maven Javadoc Plugin tag 1.0-SNAPSHOT API</windowtitle>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
@@ -59,9 +58,6 @@ under the License.
           <stylesheet>java</stylesheet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.TagTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml b/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml
index 019301b6..d659ff6d 100644
--- a/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml
+++ b/src/test/resources/unit/taglet-test/taglet-test-plugin-config.xml
@@ -33,9 +33,9 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.TagletTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/taglet-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/taglet-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <sourcepath>${basedir}</sourcepath>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <taglet>org.tullmann.taglets.ToDo</taglet>
           <tagletArtifact>
             <groupId>org.tullmann</groupId>
@@ -69,9 +69,6 @@ under the License.
           <windowtitle>Maven Javadoc Plugin Taglet Test 1.0-SNAPSHOT API</windowtitle>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.TagletTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/tagletArtifacts-test/tagletArtifacts-test-plugin-config.xml b/src/test/resources/unit/tagletArtifacts-test/tagletArtifacts-test-plugin-config.xml
index 19a5a8ac..cd62cbe0 100644
--- a/src/test/resources/unit/tagletArtifacts-test/tagletArtifacts-test-plugin-config.xml
+++ b/src/test/resources/unit/tagletArtifacts-test/tagletArtifacts-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.TagletArtifactsMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/tagletArtifacts-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/tagletArtifacts-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <breakiterator>false</breakiterator>
           <old>false</old>
           <show>protected</show>
@@ -70,9 +69,6 @@ under the License.
               <version>1.0</version>
             </tagletArtifact>
           </tagletArtifacts>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.TagletArtifactsMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.jar b/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.jar
deleted file mode 100644
index 674d71e8..00000000
Binary files a/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.jar and /dev/null differ
diff --git a/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.pom b/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.pom
deleted file mode 100644
index 2169a65d..00000000
--- a/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.pom
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" 
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>junit</groupId>
-  <artifactId>junit</artifactId>
-  <version>3.8.1</version>
-  <name>JUnit</name>
-  <url>http://junit.org</url>
-  <description>
-    JUnit is a regression testing framework written by Erich Gamma and Kent Beck. It is used by the developer who implements unit tests in Java.
-  </description>
-  <organization>
-    <name>JUnit</name>
-    <url>http://www.junit.org</url>
-  </organization>
-  <licenses>
-    <license>
-      <name>Common Public License Version 1.0</name>
-      <url>http://www.opensource.org/licenses/cpl1.0.txt</url>
-    </license>
-  </licenses>
-  <scm>
-    <url>http://junit.cvs.sourceforge.net/junit/</url>
-  </scm>
-  <dependencies>
-  </dependencies>
-</project>
diff --git a/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.pom.sha1 b/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.pom.sha1
deleted file mode 100644
index 59fcd0ca..00000000
--- a/src/test/resources/unit/test-javadoc-test/junit/junit/3.8.1/junit-3.8.1.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-16d74791c801c89b0071b1680ea0bc85c93417bb  junit-3.8.1.pom
diff --git a/src/test/resources/unit/test-javadoc-test/src/main/java/maven/App.java b/src/test/resources/unit/test-javadoc-test/src/main/java/maven/App.java
deleted file mode 100644
index 5284e174..00000000
--- a/src/test/resources/unit/test-javadoc-test/src/main/java/maven/App.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package maven;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Hello world!
- *
- */
-public class App 
-{
-    public static void main( String[] args )
-    {
-        System.out.println( "Hello World!" );
-    }
-}
diff --git a/src/test/resources/unit/test-javadoc-test/test-javadoc-test-plugin-config.xml b/src/test/resources/unit/test-javadoc-test/test-javadoc-test-plugin-config.xml
index cf4eff11..6ba84e6a 100644
--- a/src/test/resources/unit/test-javadoc-test/test-javadoc-test-plugin-config.xml
+++ b/src/test/resources/unit/test-javadoc-test/test-javadoc-test-plugin-config.xml
@@ -25,37 +25,24 @@ under the License.
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>project1</name>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.TestJavadocMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/test-javadoc-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/test-javadoc-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <windowtitle>Maven Test Javadoc Plugin aggregate resources 1.0-SNAPSHOT API</windowtitle>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
           <tags/>
           <quiet>true</quiet>
-          <testJavadocDirectory>${basedir}/src/test/resources/unit/test-javadoc-test/src/test/javadoc</testJavadocDirectory>
+          <testJavadocDirectory>${basedir}/src/test/javadoc</testJavadocDirectory>
           <stylesheet>java</stylesheet>
           <debug>true</debug>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.TestJavadocMavenProjectStub"/>
-          </reactorProjects>
-          <settings implementation="org.apache.maven.settings.Settings"/>
         </configuration>
       </plugin>
     </plugins>
diff --git a/src/test/resources/unit/validate-options-test/conflict-options-test-plugin-config.xml b/src/test/resources/unit/validate-options-test/conflict-options-test-plugin-config.xml
index e259d848..d4944955 100644
--- a/src/test/resources/unit/validate-options-test/conflict-options-test-plugin-config.xml
+++ b/src/test/resources/unit/validate-options-test/conflict-options-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.StandardDocletConflictOptionsTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/validate-options-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <encoding>ISO-8859-1</encoding>
           <groups/>
diff --git a/src/test/resources/unit/validate-options-test/wrong-charset-test-plugin-config.xml b/src/test/resources/unit/validate-options-test/wrong-charset-test-plugin-config.xml
index aa7294e3..a26cbe17 100644
--- a/src/test/resources/unit/validate-options-test/wrong-charset-test-plugin-config.xml
+++ b/src/test/resources/unit/validate-options-test/wrong-charset-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.WrongEncodingOptionsTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/validate-options-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <groups/>
           <tags/>
diff --git a/src/test/resources/unit/validate-options-test/wrong-docencoding-test-plugin-config.xml b/src/test/resources/unit/validate-options-test/wrong-docencoding-test-plugin-config.xml
index 79e47f17..6b64f754 100644
--- a/src/test/resources/unit/validate-options-test/wrong-docencoding-test-plugin-config.xml
+++ b/src/test/resources/unit/validate-options-test/wrong-docencoding-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.WrongEncodingOptionsTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/validate-options-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <groups/>
           <tags/>
diff --git a/src/test/resources/unit/validate-options-test/wrong-encoding-test-plugin-config.xml b/src/test/resources/unit/validate-options-test/wrong-encoding-test-plugin-config.xml
index c06ec840..bf6f5e82 100644
--- a/src/test/resources/unit/validate-options-test/wrong-encoding-test-plugin-config.xml
+++ b/src/test/resources/unit/validate-options-test/wrong-encoding-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.WrongEncodingOptionsTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/validate-options-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <groups/>
           <tags/>
diff --git a/src/test/resources/unit/validate-options-test/wrong-locale-with-variant-test-plugin-config.xml b/src/test/resources/unit/validate-options-test/wrong-locale-with-variant-test-plugin-config.xml
index 879b0e84..8c74b2b4 100644
--- a/src/test/resources/unit/validate-options-test/wrong-locale-with-variant-test-plugin-config.xml
+++ b/src/test/resources/unit/validate-options-test/wrong-locale-with-variant-test-plugin-config.xml
@@ -33,9 +33,8 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <configuration>
-          <project implementation="org.apache.maven.plugins.javadoc.stubs.WrongEncodingOptionsTestMavenProjectStub"/>
-          <outputDirectory>${basedir}/target/test/unit/validate-options-test/target/site</outputDirectory>
-          <javadocOptionsDir>${basedir}/target/test/unit/validate-options-test/target/javadoc-bundle-options</javadocOptionsDir>
+          <outputDirectory>${basedir}/target/site</outputDirectory>
+          <javadocOptionsDir>${basedir}/target/javadoc-bundle-options</javadocOptionsDir>
           <show>protected</show>
           <groups/>
           <tags/>
@@ -44,9 +43,6 @@ under the License.
           <locale>fr_CA_wrong</locale>
           <stylesheet>java</stylesheet>
           <failOnError>true</failOnError>
-          <reactorProjects>
-            <project implementation="org.apache.maven.plugins.javadoc.stubs.WrongEncodingOptionsTestMavenProjectStub"/>
-          </reactorProjects>
         </configuration>
       </plugin>
     </plugins>