diff --git a/maven-jxr-plugin/pom.xml b/maven-jxr-plugin/pom.xml index 20b9078e..3149e76c 100644 --- a/maven-jxr-plugin/pom.xml +++ b/maven-jxr-plugin/pom.xml @@ -23,7 +23,7 @@ under the License. org.apache.maven.jxr jxr - 3.3.1-SNAPSHOT + 4.0.0-M1-SNAPSHOT org.apache.maven.plugins @@ -88,12 +88,12 @@ under the License. org.apache.maven.reporting maven-reporting-api - 3.1.1 + 4.0.0-M7 org.apache.maven.reporting maven-reporting-impl - 3.2.0 + 4.0.0-M9 @@ -152,7 +152,7 @@ under the License. org.apache.maven.wagon wagon-http-lightweight - 3.5.1 + 3.5.3 test 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 b239be91..b17a0066 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. * @@ -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) { @@ -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. * 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 7740d02a..712c056f 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 @@ -80,12 +80,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 +97,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()); } } 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 62d51405..255c59f8 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 @@ -61,12 +61,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 +79,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()); } } 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..9f18d6f3 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,6 +18,7 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; @@ -26,12 +27,11 @@ 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() { @@ -39,8 +39,7 @@ public AggregateTestMavenProjectStub() { Model model = null; try { - model = pomReader.read(new FileReader( - getBasedir() + "/src/test/resources/unit/aggregate-test/aggregate-test-plugin-config.xml")); + model = pomReader.read(new FileReader(getBasedir() + "/" + getPOM())); setModel(model); } catch (Exception ignored) { @@ -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..9c422c76 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,6 +18,7 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; @@ -26,12 +27,11 @@ 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() { @@ -39,8 +39,7 @@ public DefaultConfigurationMavenProjectStub() { Model model = null; try { - model = pomReader.read(new FileReader(getBasedir() - + "/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml")); + model = pomReader.read(new FileReader(getBasedir() + "/" + getPOM())); setModel(model); } catch (Exception ignored) { @@ -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..633505c4 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,6 +18,7 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; @@ -38,8 +39,7 @@ public ExcludeConfigurationMavenProjectStub() { Model model = null; try { - model = pomReader.read(new FileReader(getBasedir() - + "/src/test/resources/unit/exclude-configuration/exclude-configuration-plugin-config.xml")); + model = pomReader.read(new FileReader(getBasedir() + "/" + getPOM())); setModel(model); } catch (Exception ignored) { @@ -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..a12cb42c 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,6 +18,7 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; @@ -38,8 +39,7 @@ public IncludeConfigurationMavenProjectStub() { Model model = null; try { - model = pomReader.read(new FileReader(getBasedir() - + "/src/test/resources/unit/include-configuration/include-configuration-plugin-config.xml")); + model = pomReader.read(new FileReader(getBasedir() + "/" + getPOM())); setModel(model); } catch (Exception ignored) { @@ -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..9a325c52 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,6 +18,7 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; @@ -38,8 +39,7 @@ public NoJavadocDirMavenProjectStub() { Model model = null; try { - model = pomReader.read(new FileReader( - getBasedir() + "/src/test/resources/unit/nojavadocdir-test/nojavadocdir-test-plugin-config.xml")); + model = pomReader.read(new FileReader(getBasedir() + "/" + getPOM())); setModel(model); } catch (Exception ignored) { @@ -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..4d9a94e3 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,6 +18,7 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; @@ -26,12 +27,11 @@ 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() { @@ -39,10 +39,7 @@ public NoJavadocLinkConfigurationMavenProjectStub() { Model model = null; try { - model = pomReader.read( - new FileReader( - getBasedir() - + "/src/test/resources/unit/nojavadoclink-configuration/nojavadoclink-configuration-plugin-config.xml")); + model = pomReader.read(new FileReader(getBasedir() + "/" + getPOM())); setModel(model); } catch (Exception ignored) { @@ -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..7f1028a0 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 @@ -26,12 +26,11 @@ 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() { @@ -39,7 +38,7 @@ public PomMavenProjectStub() { Model model; try { - model = pomReader.read(new FileReader(new File(getBasedir(), "pom-test-plugin-config.xml"))); + model = pomReader.read(new FileReader(new File(getBasedir() + "/" + getPOM()))); setModel(model); } catch (Exception e) { throw new RuntimeException(e); @@ -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..204ee352 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,6 +18,7 @@ */ package org.apache.maven.plugin.jxr.stubs; +import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; @@ -36,8 +37,7 @@ public TestSourceDirMavenProjectStub() { Model model = null; try { - model = pomReader.read(new FileReader( - getBasedir() + "/src/test/resources/unit/testsourcedir-test/testsourcedir-test-plugin-config.xml")); + model = pomReader.read(new FileReader(getBasedir() + "/" + getPOM())); setModel(model); } catch (Exception ignored) { @@ -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..347cf60a 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 @@ -51,7 +51,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..124f7aab 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 @@ -44,7 +44,6 @@ under the License. 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..5f0edb21 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 @@ -44,7 +44,6 @@ under the License. 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..db16d9de 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 @@ -44,7 +44,6 @@ under the License. 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..8be96ace 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 @@ -44,7 +44,6 @@ under the License. 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..6841a758 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 @@ -46,7 +46,6 @@ under the License. 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..1ac1e930 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 @@ -46,7 +46,6 @@ under the License. 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..cc61d9f2 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 @@ -49,7 +49,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..580c19cc 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 @@ -49,7 +49,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..351f7aa4 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 @@ -46,7 +46,6 @@ under the License. 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..6fae9b8c 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 @@ -46,7 +46,6 @@ under the License. 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..6f08c17d 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 @@ -44,7 +44,6 @@ under the License. Copyright 2006 Apache Foundation 1.4 stylesheet.css - ${localRepository} diff --git a/maven-jxr/pom.xml b/maven-jxr/pom.xml index 331a20c0..3dfd0605 100644 --- a/maven-jxr/pom.xml +++ b/maven-jxr/pom.xml @@ -23,7 +23,7 @@ under the License. org.apache.maven.jxr jxr - 3.3.1-SNAPSHOT + 4.0.0-M1-SNAPSHOT org.apache.maven @@ -42,8 +42,8 @@ under the License. org.apache.velocity - velocity - 1.7 + velocity-engine-core + 2.3 @@ -64,7 +64,7 @@ under the License. org.apache.maven.plugins maven-checkstyle-plugin - - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${javadocPluginVersion} - - - org.apache.maven.plugins - maven-site-plugin - ${sitePluginVersion} - - - - - reporting