diff options
author | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2020-12-25 09:36:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-25 09:36:09 +0100 |
commit | 07e6c6258366413d76632ba7a93e6ee052d5c5e7 (patch) | |
tree | 05a75b1ccba1f5a258b38629775009c11d140ec0 | |
parent | 29f6b48c5ae464ee47a1f4516957edc793ff24bc (diff) | |
download | jacoco-07e6c6258366413d76632ba7a93e6ee052d5c5e7.tar.gz |
Remove dependency on maven-reporting-impl (#1121)
This dependency is not really useful for JaCoCo reports and has several
transitive dependencies where security vulnerabilities have been
reported.
7 files changed, 39 insertions, 64 deletions
diff --git a/jacoco-maven-plugin/pom.xml b/jacoco-maven-plugin/pom.xml index 7c89b716..4b377486 100644 --- a/jacoco-maven-plugin/pom.xml +++ b/jacoco-maven-plugin/pom.xml @@ -31,22 +31,6 @@ <maven>3.0</maven> </prerequisites> - <dependencyManagement> - <dependencies> - <!-- maven-reporting-impl and slight update of version of its transitive dependency on commons-collections --> - <dependency> - <groupId>org.apache.maven.reporting</groupId> - <artifactId>maven-reporting-impl</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>3.2.2</version> - </dependency> - </dependencies> - </dependencyManagement> - <dependencies> <dependency> <groupId>org.apache.maven</groupId> @@ -74,10 +58,6 @@ <artifactId>maven-reporting-api</artifactId> <version>${project.prerequisites.maven}</version> </dependency> - <dependency> - <groupId>org.apache.maven.reporting</groupId> - <artifactId>maven-reporting-impl</artifactId> - </dependency> <dependency> <groupId>${project.groupId}</groupId> diff --git a/jacoco-maven-plugin/src/org/jacoco/maven/AbstractReportMojo.java b/jacoco-maven-plugin/src/org/jacoco/maven/AbstractReportMojo.java index fd22fa3c..04638e68 100644 --- a/jacoco-maven-plugin/src/org/jacoco/maven/AbstractReportMojo.java +++ b/jacoco-maven-plugin/src/org/jacoco/maven/AbstractReportMojo.java @@ -16,12 +16,12 @@ import java.io.IOException; import java.util.List; import java.util.Locale; -import org.apache.maven.doxia.siterenderer.Renderer; +import org.apache.maven.doxia.sink.SinkFactory; +import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; -import org.apache.maven.reporting.AbstractMavenReport; +import org.apache.maven.reporting.MavenMultiPageReport; import org.apache.maven.reporting.MavenReportException; import org.jacoco.report.IReportGroupVisitor; import org.jacoco.report.IReportVisitor; @@ -30,7 +30,8 @@ import org.jacoco.report.IReportVisitor; * Base class for creating a code coverage report for tests of a single project * in multiple formats (HTML, XML, and CSV). */ -public abstract class AbstractReportMojo extends AbstractMavenReport { +public abstract class AbstractReportMojo extends AbstractMojo + implements MavenMultiPageReport { /** * Encoding of the generated reports. @@ -86,29 +87,16 @@ public abstract class AbstractReportMojo extends AbstractMavenReport { @Parameter(property = "project", readonly = true) MavenProject project; - /** - * Doxia Site Renderer. - */ - @Component - Renderer siteRenderer; - public String getDescription(final Locale locale) { return getName(locale) + " Coverage Report."; } - @Override public boolean isExternalReport() { return true; } - @Override - protected MavenProject getProject() { - return project; - } - - @Override - protected Renderer getSiteRenderer() { - return siteRenderer; + public String getCategoryName() { + return CATEGORY_PROJECT_REPORTS; } /** @@ -129,7 +117,6 @@ public abstract class AbstractReportMojo extends AbstractMavenReport { return excludes; } - @Override public boolean canGenerateReport() { if (skip) { getLog().info( @@ -153,11 +140,25 @@ public abstract class AbstractReportMojo extends AbstractMavenReport { abstract boolean canGenerateReportRegardingClassesDirectory(); + public void generate( + @SuppressWarnings("deprecation") final org.codehaus.doxia.sink.Sink sink, + final Locale locale) throws MavenReportException { + generate(sink, null, locale); + } + + public void generate(final org.apache.maven.doxia.sink.Sink sink, + final SinkFactory sinkFactory, final Locale locale) + throws MavenReportException { + if (!canGenerateReport()) { + return; + } + executeReport(locale); + } + /** * This method is called when the report generation is invoked directly as a * standalone Mojo. */ - @Override public void execute() throws MojoExecutionException { if (!canGenerateReport()) { return; @@ -170,8 +171,7 @@ public abstract class AbstractReportMojo extends AbstractMavenReport { } } - @Override - protected void executeReport(final Locale locale) + private void executeReport(final Locale locale) throws MavenReportException { try { final ReportSupport support = new ReportSupport(getLog()); diff --git a/jacoco-maven-plugin/src/org/jacoco/maven/FileFilter.java b/jacoco-maven-plugin/src/org/jacoco/maven/FileFilter.java index 116215e2..8a1bff3a 100644 --- a/jacoco-maven-plugin/src/org/jacoco/maven/FileFilter.java +++ b/jacoco-maven-plugin/src/org/jacoco/maven/FileFilter.java @@ -17,7 +17,6 @@ import java.io.File; import java.io.IOException; import java.util.List; -import org.apache.commons.collections.CollectionUtils; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.StringUtils; @@ -94,7 +93,7 @@ public class FileFilter { private String buildPattern(final List<String> patterns, final String defaultPattern) { String pattern = defaultPattern; - if (CollectionUtils.isNotEmpty(patterns)) { + if (patterns != null && !patterns.isEmpty()) { pattern = StringUtils.join(patterns.iterator(), ","); } return pattern; diff --git a/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java b/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java index 74c4b1ac..a1fb501e 100644 --- a/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java +++ b/jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java @@ -107,7 +107,7 @@ public class ReportAggregateMojo extends AbstractReportMojo { final FileFilter filter = new FileFilter(dataFileIncludes, dataFileExcludes); - loadExecutionData(support, filter, getProject().getBasedir()); + loadExecutionData(support, filter, project.getBasedir()); for (final MavenProject dependency : findDependencies( Artifact.SCOPE_COMPILE, Artifact.SCOPE_RUNTIME, Artifact.SCOPE_PROVIDED, Artifact.SCOPE_TEST)) { @@ -141,12 +141,10 @@ public class ReportAggregateMojo extends AbstractReportMojo { } } - @Override - protected String getOutputDirectory() { - return outputDirectory.getAbsolutePath(); + public File getReportOutputDirectory() { + return outputDirectory; } - @Override public void setReportOutputDirectory(final File reportOutputDirectory) { if (reportOutputDirectory != null && !reportOutputDirectory .getAbsolutePath().endsWith("jacoco-aggregate")) { @@ -168,7 +166,7 @@ public class ReportAggregateMojo extends AbstractReportMojo { private List<MavenProject> findDependencies(final String... scopes) { final List<MavenProject> result = new ArrayList<MavenProject>(); final List<String> scopeList = Arrays.asList(scopes); - for (final Object dependencyObject : getProject().getDependencies()) { + for (final Object dependencyObject : project.getDependencies()) { final Dependency dependency = (Dependency) dependencyObject; if (scopeList.contains(dependency.getScope())) { final MavenProject project = findProjectFromReactor(dependency); @@ -192,7 +190,7 @@ public class ReportAggregateMojo extends AbstractReportMojo { try { depVersionAsRange = VersionRange .createFromVersionSpec(d.getVersion()); - } catch (InvalidVersionSpecificationException e) { + } catch (final InvalidVersionSpecificationException e) { throw new AssertionError(e); } diff --git a/jacoco-maven-plugin/src/org/jacoco/maven/ReportITMojo.java b/jacoco-maven-plugin/src/org/jacoco/maven/ReportITMojo.java index 0061b161..f24a1ae6 100644 --- a/jacoco-maven-plugin/src/org/jacoco/maven/ReportITMojo.java +++ b/jacoco-maven-plugin/src/org/jacoco/maven/ReportITMojo.java @@ -58,7 +58,7 @@ public class ReportITMojo extends AbstractReportMojo { @Override boolean canGenerateReportRegardingClassesDirectory() { - return new File(getProject().getBuild().getOutputDirectory()).exists(); + return new File(project.getBuild().getOutputDirectory()).exists(); } @Override @@ -76,16 +76,14 @@ public class ReportITMojo extends AbstractReportMojo { @Override void createReport(final IReportGroupVisitor visitor, final ReportSupport support) throws IOException { - support.processProject(visitor, title, getProject(), getIncludes(), + support.processProject(visitor, title, project, getIncludes(), getExcludes(), sourceEncoding); } - @Override - protected String getOutputDirectory() { - return outputDirectory.getAbsolutePath(); + public File getReportOutputDirectory() { + return outputDirectory; } - @Override public void setReportOutputDirectory(final File reportOutputDirectory) { if (reportOutputDirectory != null && !reportOutputDirectory .getAbsolutePath().endsWith("jacoco-it")) { diff --git a/jacoco-maven-plugin/src/org/jacoco/maven/ReportMojo.java b/jacoco-maven-plugin/src/org/jacoco/maven/ReportMojo.java index b71d2789..29a6da6e 100644 --- a/jacoco-maven-plugin/src/org/jacoco/maven/ReportMojo.java +++ b/jacoco-maven-plugin/src/org/jacoco/maven/ReportMojo.java @@ -53,7 +53,7 @@ public class ReportMojo extends AbstractReportMojo { @Override boolean canGenerateReportRegardingClassesDirectory() { - return new File(getProject().getBuild().getOutputDirectory()).exists(); + return new File(project.getBuild().getOutputDirectory()).exists(); } @Override @@ -71,16 +71,14 @@ public class ReportMojo extends AbstractReportMojo { @Override void createReport(final IReportGroupVisitor visitor, final ReportSupport support) throws IOException { - support.processProject(visitor, title, getProject(), getIncludes(), + support.processProject(visitor, title, project, getIncludes(), getExcludes(), sourceEncoding); } - @Override - protected String getOutputDirectory() { - return outputDirectory.getAbsolutePath(); + public File getReportOutputDirectory() { + return outputDirectory; } - @Override public void setReportOutputDirectory(final File reportOutputDirectory) { if (reportOutputDirectory != null && !reportOutputDirectory .getAbsolutePath().endsWith("jacoco")) { diff --git a/org.jacoco.doc/docroot/doc/changes.html b/org.jacoco.doc/docroot/doc/changes.html index ac047356..a75d1f4d 100644 --- a/org.jacoco.doc/docroot/doc/changes.html +++ b/org.jacoco.doc/docroot/doc/changes.html @@ -34,6 +34,8 @@ <li>JaCoCo now depends on ASM 9.0 (GitHub <a href="https://github.com/jacoco/jacoco/issues/1094">#1094</a>, <a href="https://github.com/jacoco/jacoco/issues/1097">#1097</a>).</li> + <li>Maven plug-in has no dependency on <code>maven-reporting-impl</code> any more + (GitHub <a href="https://github.com/jacoco/jacoco/issues/1121">#1121</a>).</li> </ul> |