aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2020-12-25 09:36:09 +0100
committerGitHub <noreply@github.com>2020-12-25 09:36:09 +0100
commit07e6c6258366413d76632ba7a93e6ee052d5c5e7 (patch)
tree05a75b1ccba1f5a258b38629775009c11d140ec0
parent29f6b48c5ae464ee47a1f4516957edc793ff24bc (diff)
downloadjacoco-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.
-rw-r--r--jacoco-maven-plugin/pom.xml20
-rw-r--r--jacoco-maven-plugin/src/org/jacoco/maven/AbstractReportMojo.java46
-rw-r--r--jacoco-maven-plugin/src/org/jacoco/maven/FileFilter.java3
-rw-r--r--jacoco-maven-plugin/src/org/jacoco/maven/ReportAggregateMojo.java12
-rw-r--r--jacoco-maven-plugin/src/org/jacoco/maven/ReportITMojo.java10
-rw-r--r--jacoco-maven-plugin/src/org/jacoco/maven/ReportMojo.java10
-rw-r--r--org.jacoco.doc/docroot/doc/changes.html2
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>