diff --git a/maven-jxr-plugin/pom.xml b/maven-jxr-plugin/pom.xml index c0037797..e423b490 100644 --- a/maven-jxr-plugin/pom.xml +++ b/maven-jxr-plugin/pom.xml @@ -89,12 +89,12 @@ under the License. org.apache.maven.reporting maven-reporting-api - 3.1.1 + 4.0.0-M12 org.apache.maven.reporting maven-reporting-impl - 3.2.0 + 4.0.0-M15 diff --git a/maven-jxr-plugin/src/it/JXR-100_parameterlink/verify.groovy b/maven-jxr-plugin/src/it/JXR-100_parameterlink/verify.groovy index e9591331..383a19b4 100644 --- a/maven-jxr-plugin/src/it/JXR-100_parameterlink/verify.groovy +++ b/maven-jxr-plugin/src/it/JXR-100_parameterlink/verify.groovy @@ -16,6 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -assert new File( basedir, 'target/site/xref/com/mycompany/app/Foo.html' ).exists() +File file = new File( basedir, 'target/reports/xref/com/mycompany/app/Foo.html' ); -assert 4 == new File( basedir, '/target/site/xref/com/mycompany/app/Foo.html' ).text.count( 'App' ) +assert file.exists() + +assert 4 == file.text.count( 'App' ) diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java index f7886d7b..feabfb18 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java @@ -37,6 +37,7 @@ import org.apache.maven.jxr.pacman.FileManager; import org.apache.maven.jxr.pacman.PackageManager; import org.apache.maven.model.ReportPlugin; +import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.reporting.AbstractMavenReport; @@ -73,10 +74,7 @@ public abstract class AbstractJxrReport extends AbstractMavenReport { /** * String used at the bottom of the Xref HTML files. */ - @Parameter( - property = "bottom", - defaultValue = - "Copyright © {inceptionYear}–{currentYear} {organizationName}. All rights reserved.") + @Parameter(property = "bottom", defaultValue = "\u00A9 {inceptionYear}\u2013{currentYear} {organizationName}") private String bottom; // CHECKSTYLE_ON: LineLength @@ -111,12 +109,6 @@ public abstract class AbstractJxrReport extends AbstractMavenReport { @Parameter private ArrayList includes; - /** - * The projects in the reactor for aggregation report. - */ - @Parameter(defaultValue = "${reactorProjects}", readonly = true) - protected List reactorProjects; - /** * Whether to skip this execution. * @@ -202,23 +194,23 @@ && hasSources(currentFile)) { } /** - * Creates the Xref for the Java files found in the given source directory and puts them in the given destination + * Creates the Xref for the Java files found in the given source directory and puts them in the given output * directory. * * @param locale The user locale to use for the Xref generation - * @param destinationDirectory The output directory + * @param outputDirectory The output directory * @param sourceDirs The source directories * @throws java.io.IOException * @throws org.apache.maven.jxr.JxrException */ - private void createXref(Locale locale, String destinationDirectory, List sourceDirs) + private void createXref(Locale locale, File outputDirectory, List sourceDirs) throws IOException, JxrException { FileManager fileManager = new FileManager(); PackageManager packageManager = new PackageManager(fileManager); JavaCodeTransform codeTransform = new JavaCodeTransform(packageManager, fileManager); JXR jxr = new JXR(packageManager, codeTransform); - jxr.setDest(Paths.get(destinationDirectory)); + jxr.setDest(outputDirectory.toPath()); jxr.setInputEncoding(getInputEncoding()); jxr.setLocale(locale); jxr.setOutputEncoding(getOutputEncoding()); @@ -242,11 +234,11 @@ private void createXref(Locale locale, String destinationDirectory, List } // and finally copy the stylesheet - copyRequiredResources(destinationDirectory); + copyRequiredResources(outputDirectory); } /** - * Returns the bottom text to be displayed at the lower part of the generated JXR reports. + * Returns the bottom text to be displayed at the lower part of the generated JXR report. */ private String getBottomText() { int currentYear = Calendar.getInstance().get(Calendar.YEAR); @@ -258,12 +250,12 @@ private String getBottomText() { if (inceptionYear != null) { if (inceptionYear.equals(year)) { - theBottom = StringUtils.replace(theBottom, "{inceptionYear}–", ""); + theBottom = StringUtils.replace(theBottom, "{inceptionYear}\u2013", ""); } else { theBottom = StringUtils.replace(theBottom, "{inceptionYear}", inceptionYear); } } else { - theBottom = StringUtils.replace(theBottom, "{inceptionYear}–", ""); + theBottom = StringUtils.replace(theBottom, "{inceptionYear}\u2013", ""); } if (project.getOrganization() == null) { @@ -293,28 +285,28 @@ private String getBottomText() { } /** - * Copy some required resources (like the stylesheet) to the given directory + * Copy some required resources (like the stylesheet) to the given target directory * - * @param dir the directory to copy the resources to + * @param targetDirectory the directory to copy the resources to */ - private void copyRequiredResources(String dir) { + private void copyRequiredResources(File targetDirectory) { if (stylesheet != null && !stylesheet.isEmpty()) { File stylesheetFile = new File(stylesheet); - File destStylesheetFile = new File(dir, "stylesheet.css"); + File targetStylesheetFile = new File(targetDirectory, "stylesheet.css"); try { if (stylesheetFile.isAbsolute()) { - FileUtils.copyFile(stylesheetFile, destStylesheetFile); + FileUtils.copyFile(stylesheetFile, targetStylesheetFile); } else { URL stylesheetUrl = this.getClass().getClassLoader().getResource(stylesheet); - FileUtils.copyURLToFile(stylesheetUrl, destStylesheetFile); + FileUtils.copyURLToFile(stylesheetUrl, targetStylesheetFile); } } catch (IOException e) { getLog().warn("An error occured while copying the stylesheet to the target directory", e); } } else { if (javadocTemplatesVersion.isAtLeast("1.8")) { - copyResources(dir, "jdk8/", "stylesheet.css"); + copyResources(targetDirectory, "jdk8/", "stylesheet.css"); } else if (javadocTemplatesVersion.isAtLeast("1.7")) { String[] jdk7Resources = { "stylesheet.css", @@ -323,14 +315,14 @@ private void copyRequiredResources(String dir) { "resources/titlebar.gif", "resources/titlebar_end.gif" }; - copyResources(dir, "jdk7/", jdk7Resources); + copyResources(targetDirectory, "jdk7/", jdk7Resources); } else if (javadocTemplatesVersion.isAtLeast("1.6")) { - copyResources(dir, "jdk6/", "stylesheet.css"); + copyResources(targetDirectory, "jdk6/", "stylesheet.css"); } else if (javadocTemplatesVersion.isAtLeast("1.4")) { - copyResources(dir, "jdk4/", "stylesheet.css"); + copyResources(targetDirectory, "jdk4/", "stylesheet.css"); } else { // Fallback to the original stylesheet - copyResources(dir, "", "stylesheet.css"); + copyResources(targetDirectory, "", "stylesheet.css"); } } } @@ -338,16 +330,16 @@ private void copyRequiredResources(String dir) { /** * Copy styles and related resources to the given directory * - * @param dir the directory to copy the resources to + * @param targetDirectory the target directory to copy the resources to * @param sourceDirectory resources subdirectory to copy from * @param files names of files to copy */ - private void copyResources(String dir, String sourceDirectory, String... files) { + private void copyResources(File targetDirectory, String sourceDirectory, String... files) { try { for (String file : files) { URL resourceUrl = this.getClass().getClassLoader().getResource(sourceDirectory + file); - File destResourceFile = new File(dir, file); - FileUtils.copyURLToFile(resourceUrl, destResourceFile); + File targetResourceFile = new File(targetDirectory, file); + FileUtils.copyURLToFile(resourceUrl, targetResourceFile); } } catch (IOException e) { getLog().warn("An error occured while copying the resource to the target directory", e); @@ -359,14 +351,18 @@ protected MavenProject getProject() { return project; } - /** - * Returns the Maven session. - * @return Maven session - */ protected MavenSession getSession() { return session; } + protected List getReactorProjects() { + return reactorProjects; + } + + protected MojoExecution getMojoExecution() { + return mojoExecution; + } + /** * Returns the correct resource bundle according to the locale. * @@ -386,7 +382,7 @@ protected void executeReport(Locale locale) throws MavenReportException { setJavadocTemplatesVersion(); try { - createXref(locale, getDestinationDirectory(), constructSourceDirs()); + createXref(locale, getPluginReportOutputDirectory(), constructSourceDirs()); } catch (JxrException | IOException e) { throw new MavenReportException("Error while generating the HTML source code of the project.", e); } @@ -450,7 +446,6 @@ protected List constructSourceDirs() { @Override public boolean canGenerateReport() { if (skip) { - getLog().info("Skipping JXR."); return false; } @@ -528,11 +523,12 @@ private Path getJavadocLocation() throws IOException { } /** - * Abstract method that returns the target directory where the generated JXR reports will be put. + * Abstract method that returns the plugin report output directory where the generated JXR report will be put + * beneath {@link #getReportOutputDirectory()}. * - * @return a String that contains the target directory name + * @return a File for the plugin's report output directory */ - protected abstract String getDestinationDirectory(); + protected abstract File getPluginReportOutputDirectory(); /** * Abstract method that returns the specified source directories that will be included in the JXR report generation. diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrNoForkReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrNoForkReport.java index a407ca83..b4d5ea58 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrNoForkReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrNoForkReport.java @@ -23,7 +23,7 @@ import org.apache.maven.plugins.annotations.Mojo; /** - * Creates an html-based, cross referenced version of Java source code + * Creates an HTML-based, cross referenced version of Java source code * for a project without forking. Note that this goal does require generation of sources before * site generation, e.g. by invoking {@code }mvn clean deploy site}. * diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java index 6a348f2b..dfe3e757 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrReport.java @@ -31,7 +31,7 @@ import org.apache.maven.project.MavenProject; /** - * Creates an html-based, cross referenced version of Java source code + * Creates an HTML-based, cross referenced version of Java source code * for a project. * * @author Fabrice Bellingard @@ -52,12 +52,6 @@ public class JxrReport extends AbstractJxrReport { @Parameter private String sourcePath; - /** - * Directory where the Xref files will be copied to. - */ - @Parameter(defaultValue = "${project.reporting.outputDirectory}/xref") - private String destDir; - /** * Directory where Javadoc is generated for this project. */ @@ -65,8 +59,8 @@ public class JxrReport extends AbstractJxrReport { private File javadocDir; @Override - protected String getDestinationDirectory() { - return destDir; + protected File getPluginReportOutputDirectory() { + return new File(getReportOutputDirectory(), "xref"); } @Override @@ -80,12 +74,12 @@ protected List getSourceRoots() { List l = new ArrayList<>(); - if (!"pom".equals(getProject().getPackaging().toLowerCase(Locale.US))) { + if (!"pom".equals(getProject().getPackaging().toLowerCase(Locale.ENGLISH))) { l.addAll(sourceDirs); } if (getProject().getExecutionProject() != null) { - if (!"pom".equals(getProject().getExecutionProject().getPackaging().toLowerCase(Locale.US))) { + if (!"pom".equals(getProject().getExecutionProject().getPackaging().toLowerCase(Locale.ENGLISH))) { l.addAll(getProject().getExecutionProject().getCompileSourceRoots()); } } @@ -97,12 +91,12 @@ protected List getSourceRoots() { protected List getSourceRoots(MavenProject project) { List l = new ArrayList<>(); - if (!"pom".equals(project.getPackaging().toLowerCase(Locale.US))) { + if (!"pom".equals(project.getPackaging().toLowerCase(Locale.ENGLISH))) { l.addAll(project.getCompileSourceRoots()); } if (project.getExecutionProject() != null) { - if (!"pom".equals(project.getExecutionProject().getPackaging().toLowerCase(Locale.US))) { + if (!"pom".equals(project.getExecutionProject().getPackaging().toLowerCase(Locale.ENGLISH))) { l.addAll(project.getExecutionProject().getCompileSourceRoots()); } } @@ -129,14 +123,4 @@ public String getOutputName() { protected File getJavadocDir() { return javadocDir; } - - @Override - public void setReportOutputDirectory(File reportOutputDirectory) { - if ((reportOutputDirectory != null) - && (!reportOutputDirectory.getAbsolutePath().endsWith("xref"))) { - this.destDir = new File(reportOutputDirectory, "xref").getAbsolutePath(); - } else { - this.destDir = reportOutputDirectory.getAbsolutePath(); - } - } } diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestNoForkReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestNoForkReport.java index bf5d16c0..df32a827 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestNoForkReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestNoForkReport.java @@ -23,7 +23,7 @@ import org.apache.maven.plugins.annotations.Mojo; /** - * Creates an html-based, cross referenced version of Java source code + * Creates an HTML-based, cross referenced version of Java source code * for a project's test sources without forking. Note that this goal does require generation of test * sources before site generation, e.g. by invoking {@code }mvn clean deploy site}. * diff --git a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java index 1f9d1584..7a390402 100644 --- a/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java +++ b/maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/JxrTestReport.java @@ -30,8 +30,8 @@ import org.apache.maven.project.MavenProject; /** - * Creates an html-based, cross referenced version of Java source code - * for a project's test sources. + * Creates an HTML-based, cross referenced version of Java test source code + * for a project. * * @author Fabrice Bellingard * @author Brett Porter @@ -45,12 +45,6 @@ public class JxrTestReport extends AbstractJxrReport { @Parameter(defaultValue = "${project.testCompileSourceRoots}", required = true, readonly = true) private List sourceDirs; - /** - * Directory where the Xref files will be copied to. - */ - @Parameter(defaultValue = "${project.reporting.outputDirectory}/xref-test") - private String destDir; - /** * Directory where Test Javadoc is generated for this project. */ @@ -61,12 +55,12 @@ public class JxrTestReport extends AbstractJxrReport { protected List getSourceRoots() { List l = new ArrayList<>(); - if (!"pom".equals(getProject().getPackaging().toLowerCase(Locale.US))) { + if (!"pom".equals(getProject().getPackaging().toLowerCase(Locale.ENGLISH))) { l.addAll(sourceDirs); } if (getProject().getExecutionProject() != null) { - if (!"pom".equals(getProject().getExecutionProject().getPackaging().toLowerCase(Locale.US))) { + if (!"pom".equals(getProject().getExecutionProject().getPackaging().toLowerCase(Locale.ENGLISH))) { l.addAll(getProject().getExecutionProject().getTestCompileSourceRoots()); } } @@ -79,7 +73,7 @@ protected List getSourceRoots(MavenProject project) { List l = new ArrayList<>(); if (project.getExecutionProject() != null) { - if (!"pom".equals(project.getExecutionProject().getPackaging().toLowerCase(Locale.US))) { + if (!"pom".equals(project.getExecutionProject().getPackaging().toLowerCase(Locale.ENGLISH))) { l.addAll(project.getExecutionProject().getTestCompileSourceRoots()); } } @@ -88,8 +82,8 @@ protected List getSourceRoots(MavenProject project) { } @Override - protected String getDestinationDirectory() { - return destDir; + protected File getPluginReportOutputDirectory() { + return new File(getReportOutputDirectory(), "xref-test"); } @Override @@ -111,14 +105,4 @@ public String getOutputName() { protected File getJavadocDir() { return testJavadocDir; } - - @Override - public void setReportOutputDirectory(File reportOutputDirectory) { - if ((reportOutputDirectory != null) - && (!reportOutputDirectory.getAbsolutePath().endsWith("xref-test"))) { - this.destDir = new File(reportOutputDirectory, "xref-test").getAbsolutePath(); - } else { - this.destDir = reportOutputDirectory.getAbsolutePath(); - } - } } diff --git a/maven-jxr-plugin/src/site/apt/examples/linkjavadoc.apt.vm b/maven-jxr-plugin/src/site/apt/examples/linkjavadoc.apt.vm index 0aee188b..fac122d2 100644 --- a/maven-jxr-plugin/src/site/apt/examples/linkjavadoc.apt.vm +++ b/maven-jxr-plugin/src/site/apt/examples/linkjavadoc.apt.vm @@ -56,6 +56,3 @@ Linking JXR Files to Javadocs were no existing Javadocs in the specified Javadoc directory and no Javadocs will be generated (meaning no Javadoc Plugin configuration in the reporting section of the POM), the link will not be displayed even if the <<>> parameter is set to <<>>. - - Take note that if the <<>> parameter is set in the Javadoc Plugin configuration, you need to also set the <<>> - parameter of the JXR Plugin to the same directory. diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java index b865c5a5..8a9ec5e3 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/AbstractJxrTestCase.java @@ -21,8 +21,14 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.util.Collections; +import java.util.List; +import org.apache.maven.model.Plugin; import org.apache.maven.plugin.LegacySupport; +import org.apache.maven.plugin.MojoExecution; +import org.apache.maven.plugin.descriptor.MojoDescriptor; +import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.apache.maven.plugin.testing.ArtifactStubFactory; import org.apache.maven.plugin.testing.stubs.MavenProjectStub; @@ -112,8 +118,17 @@ protected AbstractJxrReport createReportMojo(String goal, File pluginXmlFile) th repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory() .newInstance(repoSession, new LocalRepository(artifactStubFactory.getWorkingDir()))); + List reactorProjects = + mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList(); + + setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution()); setVariableValueToObject(mojo, "session", legacySupport.getSession()); - setVariableValueToObject(mojo, "remoteRepositories", mojo.getProject().getRemoteArtifactRepositories()); + setVariableValueToObject(mojo, "repoSession", legacySupport.getRepositorySession()); + setVariableValueToObject(mojo, "reactorProjects", reactorProjects); + setVariableValueToObject( + mojo, "remoteProjectRepositories", mojo.getProject().getRemoteProjectRepositories()); + setVariableValueToObject( + mojo, "siteDirectory", new File(mojo.getProject().getBasedir(), "src/site")); return mojo; } @@ -139,4 +154,22 @@ protected File generateReport(AbstractJxrReport mojo, File pluginXmlFile) throws protected String readFile(File xrefTestDir, String fileName) throws IOException { return new String(Files.readAllBytes(xrefTestDir.toPath().resolve(fileName))); } + + private MojoExecution getMockMojoExecution() { + MojoDescriptor md = new MojoDescriptor(); + md.setGoal(getGoal()); + + MojoExecution me = new MojoExecution(md); + + PluginDescriptor pd = new PluginDescriptor(); + Plugin p = new Plugin(); + p.setGroupId("org.apache.maven.plugins"); + p.setArtifactId("maven-jxr-plugin"); + pd.setPlugin(p); + md.setPluginDescriptor(pd); + + return me; + } + + protected abstract String getGoal(); } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java index 2a614b65..268328d1 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrReportTest.java @@ -43,7 +43,7 @@ public void testDefaultConfiguration() throws Exception { FileUtils.copyDirectory(new File(resourcesDir, "javadoc-files"), outputDir); - generateReport("jxr", "default-configuration/default-configuration-plugin-config.xml"); + generateReport(getGoal(), "default-configuration/default-configuration-plugin-config.xml"); // check if xref files were generated assertTrue(new File(xrefDir, "allclasses-frame.html").exists()); @@ -80,7 +80,7 @@ public void testJdk4Configuration() throws Exception { FileUtils.copyDirectory(new File(resourcesDir, "javadoc-files"), outputDir); - generateReport("jxr", "default-configuration/default-configuration-plugin-config-4.xml"); + generateReport(getGoal(), "default-configuration/default-configuration-plugin-config-4.xml"); // check if xref files were generated assertTrue(new File(xrefDir, "allclasses-frame.html").exists()); @@ -95,10 +95,10 @@ public void testJdk4Configuration() throws Exception { // check if there's a link to the javadoc files String str = readFile(xrefDir, "def/configuration/AppSample.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/def/configuration/appsample.html\"")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/def/configuration/appsample.html\"")); str = readFile(xrefDir, "def/configuration/App.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/def/configuration/app.html\"")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/def/configuration/app.html\"")); // check if encoding is UTF-8, the default value assertTrue(str.contains("text/html; charset=UTF-8")); @@ -117,7 +117,7 @@ public void testJdk6Configuration() throws Exception { FileUtils.copyDirectory(new File(resourcesDir, "javadoc-files"), outputDir); - generateReport("jxr", "default-configuration/default-configuration-plugin-config-6.xml"); + generateReport(getGoal(), "default-configuration/default-configuration-plugin-config-6.xml"); // check if xref files were generated assertTrue(new File(xrefDir, "allclasses-frame.html").exists()); @@ -132,10 +132,10 @@ public void testJdk6Configuration() throws Exception { // check if there's a link to the javadoc files String str = readFile(xrefDir, "def/configuration/AppSample.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/def/configuration/appsample.html\"")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/def/configuration/appsample.html\"")); str = readFile(xrefDir, "def/configuration/App.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/def/configuration/app.html\"")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/def/configuration/app.html\"")); // check if encoding is UTF-8, the default value assertTrue(str.contains("text/html; charset=UTF-8")); @@ -154,7 +154,7 @@ public void testJdk7Configuration() throws Exception { FileUtils.copyDirectory(new File(resourcesDir, "javadoc-files"), outputDir); - generateReport("jxr", "default-configuration/default-configuration-plugin-config-7.xml"); + generateReport(getGoal(), "default-configuration/default-configuration-plugin-config-7.xml"); // check if xref files were generated assertTrue(new File(xrefDir, "allclasses-frame.html").exists()); @@ -173,10 +173,10 @@ public void testJdk7Configuration() throws Exception { // check if there's a link to the javadoc files String str = readFile(xrefDir, "def/configuration/AppSample.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/def/configuration/appsample.html\"")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/def/configuration/appsample.html\"")); str = readFile(xrefDir, "def/configuration/App.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/def/configuration/app.html\"")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/def/configuration/app.html\"")); // check if encoding is UTF-8, the default value assertTrue(str.contains("text/html; charset=UTF-8")); @@ -195,7 +195,7 @@ public void testJdk8Configuration() throws Exception { FileUtils.copyDirectory(new File(resourcesDir, "javadoc-files"), outputDir); - generateReport("jxr", "default-configuration/default-configuration-plugin-config-8.xml"); + generateReport(getGoal(), "default-configuration/default-configuration-plugin-config-8.xml"); // check if xref files were generated assertTrue(new File(xrefDir, "allclasses-frame.html").exists()); @@ -225,7 +225,7 @@ public void testJdk8Configuration() throws Exception { * @throws Exception */ public void testNoJavadocLink() throws Exception { - generateReport("jxr", "nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml"); + generateReport(getGoal(), "nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml"); File xrefDir = new File(getBasedir(), "target/test/unit/nojavadoclink-configuration/target/site/xref"); @@ -245,10 +245,11 @@ public void testNoJavadocLink() throws Exception { // check if there's a link to the javadoc files String str = readFile(xrefDir, "nojavadoclink/configuration/AppSample.html"); - assertEquals(str.toLowerCase(Locale.US).indexOf("/apidocs/nojavadoclink/configuration/appsample.html\""), -1); + assertEquals( + str.toLowerCase(Locale.ENGLISH).indexOf("/apidocs/nojavadoclink/configuration/appsample.html\""), -1); str = readFile(xrefDir, "nojavadoclink/configuration/App.html"); - assertEquals(str.toLowerCase(Locale.US).indexOf("/apidocs/nojavadoclink/configuration/app.html\""), -1); + assertEquals(str.toLowerCase(Locale.ENGLISH).indexOf("/apidocs/nojavadoclink/configuration/app.html\""), -1); str = readFile(xrefDir, "nojavadoclink/configuration/sample/Sample.html"); assertEquals(str.toLowerCase().indexOf("/apidocs/nojavadoclink/configuration/sample/sample.html\""), -1); @@ -263,7 +264,7 @@ public void testNoJavadocLink() throws Exception { * @throws Exception */ public void testAggregate() throws Exception { - generateReport("jxr", "aggregate-test/aggregate-test-plugin-config.xml"); + generateReport(getGoal(), "aggregate-test/aggregate-test-plugin-config.xml"); File xrefDir = new File(getBasedir(), "target/test/unit/aggregate-test/target/site/xref"); @@ -286,16 +287,16 @@ public void testAggregate() throws Exception { * @throws Exception */ public void testNoJavadocDir() throws Exception { - generateReport("jxr", "nojavadocdir-test/nojavadocdir-test-plugin-config.xml"); + generateReport(getGoal(), "nojavadocdir-test/nojavadocdir-test-plugin-config.xml"); File xrefDir = new File(getBasedir(), "target/test/unit/nojavadocdir-test/target/site/xref"); // check if there's a link to the javadoc files String str = readFile(xrefDir, "nojavadocdir/test/AppSample.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/nojavadocdir/test/appsample.html")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/nojavadocdir/test/appsample.html")); str = readFile(xrefDir, "nojavadocdir/test/App.html"); - assertTrue(str.toLowerCase(Locale.US).contains("/apidocs/nojavadocdir/test/app.html")); + assertTrue(str.toLowerCase(Locale.ENGLISH).contains("/apidocs/nojavadocdir/test/app.html")); } /** @@ -304,7 +305,7 @@ public void testNoJavadocDir() throws Exception { * @throws Exception */ public void testExclude() throws Exception { - generateReport("jxr", "exclude-configuration/exclude-configuration-plugin-config.xml"); + generateReport(getGoal(), "exclude-configuration/exclude-configuration-plugin-config.xml"); Path xrefDir = new File(getBasedir(), "target/test/unit/exclude-configuration/target/site/xref").toPath(); @@ -321,7 +322,7 @@ public void testExclude() throws Exception { * @throws Exception */ public void testInclude() throws Exception { - generateReport("jxr", "include-configuration/include-configuration-plugin-config.xml"); + generateReport(getGoal(), "include-configuration/include-configuration-plugin-config.xml"); Path xrefDir = new File(getBasedir(), "target/test/unit/include-configuration/target/site/xref").toPath(); @@ -334,7 +335,7 @@ public void testInclude() throws Exception { public void testExceptions() { try { - generateReport("jxr", "default-configuration/exception-test-plugin-config.xml"); + generateReport(getGoal(), "default-configuration/exception-test-plugin-config.xml"); fail("Must throw exception"); } catch (Exception e) { @@ -348,8 +349,13 @@ public void testExceptions() { * @throws Exception */ public void testPom() throws Exception { - generateReport("jxr", "pom-test/pom-test-plugin-config.xml"); + generateReport(getGoal(), "pom-test/pom-test-plugin-config.xml"); assertFalse(new File(getBasedir(), "target/test/unit/pom-test").exists()); } + + @Override + protected String getGoal() { + return "jxr"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrTestReportTest.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrTestReportTest.java index 4acbc6ba..921c5823 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrTestReportTest.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/JxrTestReportTest.java @@ -30,7 +30,7 @@ public class JxrTestReportTest extends AbstractJxrTestCase { * @throws Exception */ public void testSourceDir() throws Exception { - generateReport("test-jxr", "testsourcedir-test/testsourcedir-test-plugin-config.xml"); + generateReport(getGoal(), "testsourcedir-test/testsourcedir-test-plugin-config.xml"); File xrefTestDir = new File(getBasedir(), "target/test/unit/testsourcedir-test/target/site/xref-test"); @@ -52,4 +52,9 @@ public void testSourceDir() throws Exception { str = readFile(xrefTestDir, "testsourcedir/test/AppTest.html"); assertFalse(str.toLowerCase().contains("/apidocs/testsourcedir/test/App.html\"".toLowerCase())); } + + @Override + protected String getGoal() { + return "test-jxr"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java index 572e9c54..9c7e1fa5 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/AggregateTestMavenProjectStub.java @@ -18,7 +18,9 @@ */ package org.apache.maven.plugin.jxr.stubs; -import java.io.FileReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -26,24 +28,21 @@ import org.apache.maven.model.Model; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.plugin.testing.stubs.MavenProjectStub; /** * @author Maria Odea Ching */ -public class AggregateTestMavenProjectStub extends MavenProjectStub { +public class AggregateTestMavenProjectStub extends JxrProjectStub { private List reportPlugins = new ArrayList<>(); public AggregateTestMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); Model model = null; - try { - model = pomReader.read(new FileReader( - getBasedir() + "/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml")); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); } catch (Exception ignored) { - } setArtifactId(model.getArtifactId()); @@ -54,7 +53,7 @@ public AggregateTestMavenProjectStub() { String basedir = getBasedir().getAbsolutePath(); List compileSourceRoots = new ArrayList<>(); - compileSourceRoots.add(basedir + "/src/test/resources/unit/aggregate-test/aggregate/test"); + compileSourceRoots.add(basedir + "/aggregate/test"); setCompileSourceRoots(compileSourceRoots); // set the report plugins @@ -70,4 +69,14 @@ public AggregateTestMavenProjectStub() { public List getReportPlugins() { return reportPlugins; } + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/aggregate-test"); + } + + @Override + protected String getPOM() { + return "aggregate-test-plugin-config.xml"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java index d2219483..eab947e4 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/DefaultConfigurationMavenProjectStub.java @@ -18,7 +18,9 @@ */ package org.apache.maven.plugin.jxr.stubs; -import java.io.FileReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -26,24 +28,21 @@ import org.apache.maven.model.Model; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.plugin.testing.stubs.MavenProjectStub; /** * @author Maria Odea Ching */ -public class DefaultConfigurationMavenProjectStub extends MavenProjectStub { +public class DefaultConfigurationMavenProjectStub extends JxrProjectStub { private List reportPlugins = new ArrayList<>(); public DefaultConfigurationMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); Model model = null; - try { - model = pomReader.read(new FileReader(getBasedir() - + "/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml")); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); } catch (Exception ignored) { - } setArtifactId(model.getArtifactId()); @@ -54,7 +53,7 @@ public DefaultConfigurationMavenProjectStub() { String basedir = getBasedir().getAbsolutePath(); List compileSourceRoots = new ArrayList<>(); - compileSourceRoots.add(basedir + "/src/test/resources/unit/default-configuration/def/configuration"); + compileSourceRoots.add(basedir + "/def/configuration"); setCompileSourceRoots(compileSourceRoots); // set the report plugins @@ -69,4 +68,14 @@ public DefaultConfigurationMavenProjectStub() { public List getReportPlugins() { return reportPlugins; } + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/default-configuration"); + } + + @Override + protected String getPOM() { + return "default-configuration-plugin-config.xml"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java index 9866204f..4ce55f77 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/ExcludeConfigurationMavenProjectStub.java @@ -18,7 +18,9 @@ */ package org.apache.maven.plugin.jxr.stubs; -import java.io.FileReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -37,12 +39,10 @@ public ExcludeConfigurationMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); Model model = null; - try { - model = pomReader.read(new FileReader(getBasedir() - + "/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml")); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); } catch (Exception ignored) { - } setArtifactId(model.getArtifactId()); @@ -53,7 +53,7 @@ public ExcludeConfigurationMavenProjectStub() { String basedir = getBasedir().getAbsolutePath(); List compileSourceRoots = new ArrayList<>(); - compileSourceRoots.add(basedir + "/src/test/resources/unit/exclude-configuration/exclude/configuration"); + compileSourceRoots.add(basedir + "/exclude/configuration"); setCompileSourceRoots(compileSourceRoots); // set the report plugins @@ -68,4 +68,14 @@ public ExcludeConfigurationMavenProjectStub() { public List getReportPlugins() { return reportPlugins; } + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/exclude-configuration"); + } + + @Override + protected String getPOM() { + return "exclude-configuration-plugin-config.xml"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java index 5130359b..617f6fa0 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/IncludeConfigurationMavenProjectStub.java @@ -18,7 +18,9 @@ */ package org.apache.maven.plugin.jxr.stubs; -import java.io.FileReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -37,12 +39,10 @@ public IncludeConfigurationMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); Model model = null; - try { - model = pomReader.read(new FileReader(getBasedir() - + "/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml")); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); } catch (Exception ignored) { - } setArtifactId(model.getArtifactId()); @@ -53,7 +53,7 @@ public IncludeConfigurationMavenProjectStub() { String basedir = getBasedir().getAbsolutePath(); List compileSourceRoots = new ArrayList<>(); - compileSourceRoots.add(basedir + "/src/test/resources/unit/include-configuration/include/configuration"); + compileSourceRoots.add(basedir + "/include/configuration"); setCompileSourceRoots(compileSourceRoots); // set the report plugins @@ -68,4 +68,14 @@ public IncludeConfigurationMavenProjectStub() { public List getReportPlugins() { return reportPlugins; } + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/include-configuration"); + } + + @Override + protected String getPOM() { + return "include-configuration-plugin-config.xml"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java index 12bf7d4c..57b40ca4 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/JxrProjectStub.java @@ -18,16 +18,34 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.util.Collections; import java.util.List; +import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy; import org.apache.maven.artifact.repository.MavenArtifactRepository; import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout; import org.apache.maven.plugin.testing.stubs.MavenProjectStub; +import org.eclipse.aether.repository.RemoteRepository; public abstract class JxrProjectStub extends MavenProjectStub { + /** + * @return the POM file name + */ + protected abstract String getPOM(); + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/src/test/resources/unit/"); + } + + @Override + public File getFile() { + return new File(getBasedir(), getPOM()); + } + @Override public List getRemoteArtifactRepositories() { ArtifactRepository repository = new MavenArtifactRepository( @@ -39,4 +57,9 @@ public List getRemoteArtifactRepositories() { return Collections.singletonList(repository); } + + @Override + public List getRemoteProjectRepositories() { + return RepositoryUtils.toRepos(getRemoteArtifactRepositories()); + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java index 1e1368b4..8c75f11c 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocDirMavenProjectStub.java @@ -18,7 +18,9 @@ */ package org.apache.maven.plugin.jxr.stubs; -import java.io.FileReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -37,12 +39,10 @@ public NoJavadocDirMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); Model model = null; - try { - model = pomReader.read(new FileReader( - getBasedir() + "/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml")); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); } catch (Exception ignored) { - } setArtifactId(model.getArtifactId()); @@ -53,7 +53,7 @@ public NoJavadocDirMavenProjectStub() { String basedir = getBasedir().getAbsolutePath(); List compileSourceRoots = new ArrayList<>(); - compileSourceRoots.add(basedir + "/src/test/resources/unit/nojavadocdir-test/nojavadocdir/test"); + compileSourceRoots.add(basedir + "/nojavadocdir/test"); setCompileSourceRoots(compileSourceRoots); // set the report plugins @@ -68,4 +68,14 @@ public NoJavadocDirMavenProjectStub() { public List getReportPlugins() { return reportPlugins; } + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/nojavadocdir-test"); + } + + @Override + protected String getPOM() { + return "nojavadocdir-test-plugin-config.xml"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java index 342d8d64..8f89038b 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/NoJavadocLinkConfigurationMavenProjectStub.java @@ -18,7 +18,9 @@ */ package org.apache.maven.plugin.jxr.stubs; -import java.io.FileReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -26,26 +28,21 @@ import org.apache.maven.model.Model; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.plugin.testing.stubs.MavenProjectStub; /** * @author Maria Odea Ching */ -public class NoJavadocLinkConfigurationMavenProjectStub extends MavenProjectStub { +public class NoJavadocLinkConfigurationMavenProjectStub extends JxrProjectStub { List reportPlugins; public NoJavadocLinkConfigurationMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); Model model = null; - try { - model = pomReader.read( - new FileReader( - getBasedir() - + "/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml")); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); } catch (Exception ignored) { - } setArtifactId(model.getArtifactId()); @@ -56,8 +53,7 @@ public NoJavadocLinkConfigurationMavenProjectStub() { String basedir = getBasedir().getAbsolutePath(); List compileSourceRoots = new ArrayList<>(); - compileSourceRoots.add( - basedir + "/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink/configuration"); + compileSourceRoots.add(basedir + "/nojavadoclink/configuration"); setCompileSourceRoots(compileSourceRoots); // set the report plugins @@ -72,4 +68,14 @@ public NoJavadocLinkConfigurationMavenProjectStub() { public List getReportPlugins() { return reportPlugins; } + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/nojavadoclink-configuration"); + } + + @Override + protected String getPOM() { + return "nojavadoclink-configuration-plugin-config.xml"; + } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java index cadb456d..6682ba30 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/PomMavenProjectStub.java @@ -19,30 +19,29 @@ package org.apache.maven.plugin.jxr.stubs; import java.io.File; -import java.io.FileReader; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.maven.model.Build; import org.apache.maven.model.Model; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.plugin.testing.stubs.MavenProjectStub; /** * @author Vincent Siveton */ -public class PomMavenProjectStub extends MavenProjectStub { +public class PomMavenProjectStub extends JxrProjectStub { private Build build; public PomMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); - Model model; + Model model = null; - try { - model = pomReader.read(new FileReader(new File(getBasedir(), "pom-test-plugin-config.xml"))); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); - } catch (Exception e) { - throw new RuntimeException(e); + } catch (Exception ignored) { } setGroupId(model.getGroupId()); @@ -54,11 +53,11 @@ public PomMavenProjectStub() { Build build = new Build(); build.setFinalName(model.getArtifactId()); - build.setDirectory(super.getBasedir() + "/target/test/unit/pom-test/target"); + build.setDirectory(getBasedir() + "/target"); build.setSourceDirectory(getBasedir() + "/src/main/java"); - build.setOutputDirectory(super.getBasedir() + "/target/test/unit/pom-test/target/classes"); + build.setOutputDirectory(getBasedir() + "/target/classes"); build.setTestSourceDirectory(getBasedir() + "/src/test/java"); - build.setTestOutputDirectory(super.getBasedir() + "/target/test/unit/pom-test/target/test-classes"); + build.setTestOutputDirectory(getBasedir() + "/target/test-classes"); setBuild(build); List compileSourceRoots = new ArrayList<>(); @@ -84,10 +83,13 @@ public void setBuild(Build build) { this.build = build; } - /** - * @see org.apache.maven.plugin.testing.stubs.MavenProjectStub#getBasedir() - */ + @Override public File getBasedir() { - return new File(super.getBasedir() + "/src/test/resources/unit/pom-test"); + return new File(super.getBasedir() + "/pom-test"); + } + + @Override + protected String getPOM() { + return "pom-test-plugin-config.xml"; } } diff --git a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java index a286b607..3214cafc 100644 --- a/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java +++ b/maven-jxr-plugin/src/test/java/org/apache/maven/plugin/jxr/stubs/TestSourceDirMavenProjectStub.java @@ -18,7 +18,9 @@ */ package org.apache.maven.plugin.jxr.stubs; -import java.io.FileReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; @@ -35,12 +37,10 @@ public TestSourceDirMavenProjectStub() { MavenXpp3Reader pomReader = new MavenXpp3Reader(); Model model = null; - try { - model = pomReader.read(new FileReader( - getBasedir() + "/src/test/resources/unit/testsourcedir-test/testsourcedir-test-plugin-config.xml")); + try (InputStream is = new FileInputStream(new File(getBasedir() + "/" + getPOM()))) { + model = pomReader.read(is); setModel(model); } catch (Exception ignored) { - } setArtifactId(model.getArtifactId()); @@ -51,11 +51,21 @@ public TestSourceDirMavenProjectStub() { String basedir = getBasedir().getAbsolutePath(); List compileSourceRoots = new ArrayList<>(); - compileSourceRoots.add(basedir + "/src/test/resources/unit/testsourcedir-test"); + compileSourceRoots.add(basedir); setCompileSourceRoots(compileSourceRoots); Artifact artifact = new JxrPluginArtifactStub(getGroupId(), getArtifactId(), getVersion(), getPackaging()); artifact.setArtifactHandler(new DefaultArtifactHandlerStub()); setArtifact(artifact); } + + @Override + public File getBasedir() { + return new File(super.getBasedir() + "/testsourcedir-test"); + } + + @Override + protected String getPOM() { + return "testsourcedir-test-plugin-config.xml"; + } } diff --git a/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml index 27bac585..73c0ab46 100644 --- a/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml @@ -41,7 +41,6 @@ under the License. ${basedir}/src/test/resources/unit/aggregate-test/submodule1 ${basedir}/src/test/resources/unit/aggregate-test/submodule2 - ${basedir}/target/test/unit/aggregate-test/target/site/xref ${basedir}/target/test/unit/aggregate-test/target/site/apidocs false Copyright 2006 Apache Foundation @@ -51,7 +50,6 @@ under the License. - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml index bf302a1b..410f864f 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-4.xml @@ -39,12 +39,10 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/4/xref ${basedir}/target/test/unit/default-configuration/target/site/4/apidocs true Copyright 2006 Apache Foundation 1.4 - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml index eac7aeea..5d0184db 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-6.xml @@ -39,12 +39,10 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/6/xref ${basedir}/target/test/unit/default-configuration/target/site/6/apidocs true Copyright 2006 Apache Foundation 1.6 - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml index dbe4d6d0..8620129b 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-7.xml @@ -39,12 +39,10 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/7/xref ${basedir}/target/test/unit/default-configuration/target/site/7/apidocs true Copyright 2006 Apache Foundation 1.7 - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml index 9e330921..486776a7 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config-8.xml @@ -39,12 +39,10 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/8/xref ${basedir}/target/test/unit/default-configuration/target/site/8/apidocs true Copyright 2006 Apache Foundation 1.8 - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml index 1f4769d4..a457dce8 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml @@ -39,14 +39,12 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/xref ${basedir}/target/test/unit/default-configuration/target/site/apidocs true Copyright 2006 Apache Foundation templates stylesheet.css 3 - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml index cd37da41..06039de9 100644 --- a/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/default-configuration/exception-test-plugin-config.xml @@ -40,13 +40,11 @@ under the License. ${basedir}/src/test/resources/unit/default-configuration - ${basedir}/target/test/unit/default-configuration/target/site/xref ${basedir}/target/test/unit/default-configuration/target/site/apidocs true Copyright 2006 Apache Foundation temp stylesheet.css - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml index d1364876..ff9bef70 100644 --- a/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml @@ -40,7 +40,6 @@ under the License. ${basedir}/src/test/resources/unit/exclude-configuration - ${basedir}/target/test/unit/exclude-configuration/target/site/xref ${basedir}/target/test/unit/exclude-configuration/target/site/apidocs true Copyright 2006 Apache Foundation @@ -49,7 +48,6 @@ under the License. **/AppSample.java - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml index d0cfaed3..2cda9596 100644 --- a/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml @@ -40,7 +40,6 @@ under the License. ${basedir}/src/test/resources/unit/include-configuration - ${basedir}/target/test/unit/include-configuration/target/site/xref ${basedir}/target/test/unit/include-configuration/target/site/apidocs true Copyright 2006 Apache Foundation @@ -49,7 +48,6 @@ under the License. **/App.java - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml index 0c3a0b26..fed568a8 100644 --- a/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml @@ -40,13 +40,11 @@ under the License. ${basedir}/src/test/resources/unit/nojavadocdir-test - ${basedir}/target/test/unit/nojavadocdir-test/target/site/xref ${basedir}/target/test/unit/nojavadocdir-test/target/site/apidocs true Copyright 2006 Apache Foundation 1.4 stylesheet.css - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml index ba569bce..b66627d2 100644 --- a/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml @@ -40,13 +40,11 @@ under the License. ${basedir}/src/test/resources/unit/nojavadoclink-configuration - ${basedir}/target/test/unit/nojavadoclink-configuration/target/site/xref ${basedir}/target/test/unit/nojavadoclink-configuration/target/site/apidocs false Copyright 2006 Apache Foundation 1.4 stylesheet.css - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/pom-test/pom-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/pom-test/pom-test-plugin-config.xml index 257aa0ba..ae65ab4d 100644 --- a/maven-jxr-plugin/src/test/resources/unit/pom-test/pom-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/pom-test/pom-test-plugin-config.xml @@ -41,7 +41,6 @@ under the License. ${basedir}/target/test/unit/pom-test/target/site/ - ${localRepository} diff --git a/maven-jxr-plugin/src/test/resources/unit/testsourcedir-test/testsourcedir-test-plugin-config.xml b/maven-jxr-plugin/src/test/resources/unit/testsourcedir-test/testsourcedir-test-plugin-config.xml index 23bccd90..75834997 100644 --- a/maven-jxr-plugin/src/test/resources/unit/testsourcedir-test/testsourcedir-test-plugin-config.xml +++ b/maven-jxr-plugin/src/test/resources/unit/testsourcedir-test/testsourcedir-test-plugin-config.xml @@ -40,11 +40,9 @@ under the License. ${basedir}/src/test/resources/unit/testsourcedir-test/src/test/java - ${basedir}/target/test/unit/testsourcedir-test/target/site/xref-test Copyright 2006 Apache Foundation 1.4 stylesheet.css - ${localRepository} diff --git a/maven-jxr/pom.xml b/maven-jxr/pom.xml index d54feac8..2a12ab11 100644 --- a/maven-jxr/pom.xml +++ b/maven-jxr/pom.xml @@ -42,8 +42,8 @@ under the License. org.apache.velocity - velocity - 1.7 + velocity-engine-core + 2.3 diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java b/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java index fa25b9ef..fb6f0850 100644 --- a/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java +++ b/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java @@ -236,21 +236,17 @@ private void setProperties(VelocityEngine engine) { Path templateDirFile = Paths.get(getTemplateDir()); if (templateDirFile.isAbsolute()) { // the property has been overridden: need to use a FileResourceLoader - engine.setProperty("resource.loader", "file"); + engine.setProperty("resource.loaders", "file"); engine.setProperty( - "file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader"); - engine.setProperty("file.resource.loader.path", templateDirFile.toString()); + "resource.loader.file.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader"); + engine.setProperty("resource.loader.file.path", templateDirFile.toString()); } else { // use of the default templates - engine.setProperty("resource.loader", "classpath"); + engine.setProperty("resource.loaders", "classpath"); engine.setProperty( - "classpath.resource.loader.class", + "resource.loader.classpath.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); } - // avoid "unable to find resource 'VM_global_library.vm' in any resource loader." - engine.setProperty("velocimacro.library", ""); - // engine.setProperty( Log.class.getName(), log ); - // engine.setProperty( "runtime.log.logsystem.class", VelocityLogger.class.getName() ); } /* diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java b/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java index 2c9beb35..c9542db7 100644 --- a/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java +++ b/maven-jxr/src/main/java/org/apache/maven/jxr/JXR.java @@ -40,7 +40,7 @@ public class JXR { private final PackageManager pkgmgr; /** - * Handles taking .java files and changing them into html. "More than meets + * Handles taking .java files and changing them into HTML. "More than meets * the eye!" :) */ private final JavaCodeTransform transformer; diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java b/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java index 3740e096..cc3b0054 100644 --- a/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java +++ b/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java @@ -82,8 +82,8 @@ import org.apache.maven.jxr.util.StringEntry; /** - * Syntax highlights java by turning it into html. A codeviewer object is created and then keeps state as lines are - * passed in. Each line passed in as java test, is returned as syntax highlighted html text. Users of the class can set + * Syntax highlights java by turning it into HTML. A codeviewer object is created and then keeps state as lines are + * passed in. Each line passed in as java test, is returned as syntax highlighted HTML text. Users of the class can set * how the java code will be highlighted with setter methods. Only valid java lines should be passed in since the object * maintains state and may not handle illegal code gracefully. The actual system is implemented as a series of filters * that deal with specific portions of the java code. The filters are as follows: @@ -640,10 +640,10 @@ private String xrLine(String line, String packageName, ClassType classType) { // ---------------------------------------------------------------------- /** - * Filter html tags into more benign text. + * Filter HTML tags into more benign text. * * @param line String - * @return html encoded line + * @return HTML-encoded line */ private String htmlFilter(String line) { if (line == null || line.equals("")) { diff --git a/pom.xml b/pom.xml index e565727b..221334ec 100644 --- a/pom.xml +++ b/pom.xml @@ -76,9 +76,9 @@ under the License. 8 - 3.12.1 1.7.36 - 3.6.3 + 3.20.0 + 3.8.0 jxr-archives/jxr-LATEST None 2024-06-01T20:47:27Z @@ -111,18 +111,6 @@ under the License. junit 4.13.2 - - - - commons-beanutils - commons-beanutils - 1.9.4 - - - commons-io - commons-io - 2.16.1 -