You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/05/17 20:16:05 UTC
[maven-checkstyle-plugin] branch MCHECKSTYLE-436 updated (702d578 -> fe2379d)
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a change to branch MCHECKSTYLE-436
in repository https://gitbox.apache.org/repos/asf/maven-checkstyle-plugin.git
discard 702d578 [MCHECKSTYLE-436] Replace CheckstyleReportGenerator with a new CheckstyleReportRenderer
new fe2379d [MCHECKSTYLE-436] Replace CheckstyleReportGenerator with a new CheckstyleReportRenderer
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (702d578)
\
N -- N -- N refs/heads/MCHECKSTYLE-436 (fe2379d)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../org/apache/maven/plugins/checkstyle/CheckstyleReportRenderer.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[maven-checkstyle-plugin] 01/01: [MCHECKSTYLE-436] Replace CheckstyleReportGenerator with a new CheckstyleReportRenderer
Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch MCHECKSTYLE-436
in repository https://gitbox.apache.org/repos/asf/maven-checkstyle-plugin.git
commit fe2379d2b63d47ba1259c43140f97934130a894c
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon May 15 22:07:22 2023 +0200
[MCHECKSTYLE-436] Replace CheckstyleReportGenerator with a new CheckstyleReportRenderer
This closes #118
---
pom.xml | 11 +
.../checkstyle/AbstractCheckstyleReport.java | 91 +++--
...enerator.java => CheckstyleReportRenderer.java} | 424 ++++++++-------------
.../apache/maven/plugins/checkstyle/IconTool.java | 133 -------
src/main/resources/checkstyle-report.properties | 1 -
src/main/resources/checkstyle-report_de.properties | 1 -
src/main/resources/checkstyle-report_fr.properties | 1 -
.../resources/checkstyle-report_pt_BR.properties | 1 -
src/main/resources/checkstyle-report_sv.properties | 1 -
.../plugins/checkstyle/CheckstyleReportTest.java | 2 +-
10 files changed, 221 insertions(+), 445 deletions(-)
diff --git a/pom.xml b/pom.xml
index baf1e0f..ec71de0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -172,6 +172,17 @@ under the License.
<artifactId>plexus-utils</artifactId>
<version>3.5.1</version>
</dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-i18n</artifactId>
+ <version>1.0-beta-10</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<!-- checkstyle -->
<dependency>
diff --git a/src/main/java/org/apache/maven/plugins/checkstyle/AbstractCheckstyleReport.java b/src/main/java/org/apache/maven/plugins/checkstyle/AbstractCheckstyleReport.java
index 3f55bef..0e39ecf 100644
--- a/src/main/java/org/apache/maven/plugins/checkstyle/AbstractCheckstyleReport.java
+++ b/src/main/java/org/apache/maven/plugins/checkstyle/AbstractCheckstyleReport.java
@@ -28,7 +28,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.ResourceBundle;
import com.puppycrawl.tools.checkstyle.DefaultLogger;
import com.puppycrawl.tools.checkstyle.XMLLogger;
@@ -53,6 +52,7 @@ import org.apache.maven.plugins.checkstyle.exec.CheckstyleResults;
import org.apache.maven.reporting.AbstractMavenReport;
import org.apache.maven.reporting.MavenReportException;
import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.i18n.I18N;
import org.codehaus.plexus.resource.ResourceManager;
import org.codehaus.plexus.resource.loader.FileResourceLoader;
import org.codehaus.plexus.util.FileUtils;
@@ -438,16 +438,31 @@ public abstract class AbstractCheckstyleReport extends AbstractMavenReport {
@Component(role = CheckstyleExecutor.class, hint = "default")
protected CheckstyleExecutor checkstyleExecutor;
+ /**
+ * Internationalization component
+ */
+ @Component
+ private I18N i18n;
+
protected ByteArrayOutputStream stringOutputStream;
/** {@inheritDoc} */
public String getName(Locale locale) {
- return getBundle(locale).getString("report.checkstyle.name");
+ return getI18nString(locale, "name");
}
/** {@inheritDoc} */
public String getDescription(Locale locale) {
- return getBundle(locale).getString("report.checkstyle.description");
+ return getI18nString(locale, "description");
+ }
+
+ /**
+ * @param locale The locale
+ * @param key The key to search for
+ * @return The text appropriate for the locale.
+ */
+ protected String getI18nString(Locale locale, String key) {
+ return i18n.getString("checkstyle-report", locale, "report.checkstyle." + key);
}
/** {@inheritDoc} */
@@ -495,8 +510,34 @@ public abstract class AbstractCheckstyleReport extends AbstractMavenReport {
CheckstyleResults results = checkstyleExecutor.executeCheckstyle(request);
- ResourceBundle bundle = getBundle(locale);
- generateMainReport(results, bundle, effectiveConfigLocation);
+ CheckstyleReportRenderer r = new CheckstyleReportRenderer(
+ getSink(),
+ i18n,
+ locale,
+ project,
+ siteTool,
+ effectiveConfigLocation,
+ enableRulesSummary,
+ enableSeveritySummary,
+ enableFilesSummary,
+ results);
+ if (linkXRef) {
+ initializeXrefLocation(r);
+ if (r.getXrefLocation() == null && results.getFileCount() > 0) {
+ getLog().warn("Unable to locate Source XRef to link to - DISABLED");
+ }
+
+ initializeXrefTestLocation(r);
+ if (r.getXrefTestLocation() == null && results.getFileCount() > 0) {
+ getLog().warn("Unable to locate Test Source XRef to link to - DISABLED");
+ }
+
+ r.setTestSourceDirectories(getTestSourceDirectories());
+ }
+ if (treeWalkerNames != null) {
+ r.setTreeWalkerNames(treeWalkerNames);
+ }
+ r.render();
} catch (CheckstyleException e) {
throw new MavenReportException("Failed during checkstyle configuration", e);
} catch (CheckstyleExecutorException e) {
@@ -617,49 +658,21 @@ public abstract class AbstractCheckstyleReport extends AbstractMavenReport {
return consoleListener;
}
- private void generateMainReport(CheckstyleResults results, ResourceBundle bundle, String configLocation) {
- CheckstyleReportGenerator generator =
- new CheckstyleReportGenerator(getSink(), bundle, project.getBasedir(), siteTool, configLocation);
-
- generator.setLog(getLog());
- generator.setEnableRulesSummary(enableRulesSummary);
- generator.setEnableSeveritySummary(enableSeveritySummary);
- generator.setEnableFilesSummary(enableFilesSummary);
- generator.setCheckstyleConfig(results.getConfiguration());
- if (linkXRef) {
- initializeXrefLocation(generator);
- if (generator.getXrefLocation() == null && results.getFileCount() > 0) {
- getLog().warn("Unable to locate Source XRef to link to - DISABLED");
- }
-
- initializeXrefTestLocation(generator);
- if (generator.getXrefTestLocation() == null && results.getFileCount() > 0) {
- getLog().warn("Unable to locate Test Source XRef to link to - DISABLED");
- }
-
- generator.setTestSourceDirectories(getTestSourceDirectories());
- }
- if (treeWalkerNames != null) {
- generator.setTreeWalkerNames(treeWalkerNames);
- }
- generator.generateReport(results);
- }
-
- private void initializeXrefLocation(CheckstyleReportGenerator generator) {
+ private void initializeXrefLocation(CheckstyleReportRenderer renderer) {
String relativePath = determineRelativePath(xrefLocation);
if (xrefLocation.exists() || checkMavenJxrPluginIsConfigured()) {
// XRef was already generated by manual execution of a lifecycle binding
// the report is on its way
- generator.setXrefLocation(relativePath);
+ renderer.setXrefLocation(relativePath);
}
}
- private void initializeXrefTestLocation(CheckstyleReportGenerator generator) {
+ private void initializeXrefTestLocation(CheckstyleReportRenderer renderer) {
String relativePath = determineRelativePath(xrefTestLocation);
if (xrefTestLocation.exists() || checkMavenJxrPluginIsConfigured()) {
// XRef was already generated by manual execution of a lifecycle binding
// the report is on its way
- generator.setXrefTestLocation(relativePath);
+ renderer.setXrefTestLocation(relativePath);
}
}
@@ -683,10 +696,6 @@ public abstract class AbstractCheckstyleReport extends AbstractMavenReport {
return false;
}
- private static ResourceBundle getBundle(Locale locale) {
- return ResourceBundle.getBundle("checkstyle-report", locale, AbstractCheckstyleReport.class.getClassLoader());
- }
-
protected List<File> getSourceDirectories() {
if (sourceDirectories == null) {
sourceDirectories = project.getCompileSourceRoots();
diff --git a/src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleReportGenerator.java b/src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleReportRenderer.java
similarity index 67%
rename from src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleReportGenerator.java
rename to src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleReportRenderer.java
index cbc710d..b1dd166 100644
--- a/src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleReportGenerator.java
+++ b/src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleReportRenderer.java
@@ -23,7 +23,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.ResourceBundle;
+import java.util.Locale;
import com.puppycrawl.tools.checkstyle.api.AuditEvent;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
@@ -31,36 +31,37 @@ import com.puppycrawl.tools.checkstyle.api.Configuration;
import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
import org.apache.commons.lang3.StringUtils;
import org.apache.maven.doxia.sink.Sink;
-import org.apache.maven.doxia.sink.SinkEventAttributes;
-import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
import org.apache.maven.doxia.tools.SiteTool;
-import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.apache.maven.doxia.util.DoxiaUtils;
import org.apache.maven.plugins.checkstyle.exec.CheckstyleResults;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.reporting.AbstractMavenReportRenderer;
+import org.codehaus.plexus.i18n.I18N;
/**
* Generate a report based on CheckstyleResults.
*
*
*/
-public class CheckstyleReportGenerator {
- private Log log;
+public class CheckstyleReportRenderer extends AbstractMavenReportRenderer {
+ private static final int NO_TEXT = 0;
+ private static final int TEXT_SIMPLE = 1;
+ private static final int TEXT_TITLE = 2;
+ private static final int TEXT_ABBREV = 3;
- private final File basedir;
+ private final I18N i18n;
- private final ResourceBundle bundle;
+ private final Locale locale;
- private final Sink sink;
+ private final MavenProject project;
- private SeverityLevel severityLevel;
+ private final Configuration checkstyleConfig;
- private Configuration checkstyleConfig;
+ private final boolean enableRulesSummary;
- private boolean enableRulesSummary;
+ private final boolean enableSeveritySummary;
- private boolean enableSeveritySummary;
-
- private boolean enableFilesSummary;
+ private final boolean enableFilesSummary;
private final SiteTool siteTool;
@@ -72,90 +73,52 @@ public class CheckstyleReportGenerator {
private List<String> treeWalkerNames = Collections.singletonList("TreeWalker");
- private final IconTool iconTool;
-
private final String ruleset;
- public CheckstyleReportGenerator(
- Sink sink, ResourceBundle bundle, File basedir, SiteTool siteTool, String ruleset) {
- this.bundle = bundle;
-
- this.sink = sink;
-
- this.basedir = basedir;
-
+ private final CheckstyleResults results;
+
+ public CheckstyleReportRenderer(
+ Sink sink,
+ I18N i18n,
+ Locale locale,
+ MavenProject project,
+ SiteTool siteTool,
+ String ruleset,
+ boolean enableRulesSummary,
+ boolean enableSeveritySummary,
+ boolean enableFilesSummary,
+ CheckstyleResults results) {
+ super(sink);
+ this.i18n = i18n;
+ this.locale = locale;
+ this.project = project;
this.siteTool = siteTool;
-
this.ruleset = ruleset;
-
- this.enableRulesSummary = true;
- this.enableSeveritySummary = true;
- this.enableFilesSummary = true;
- this.iconTool = new IconTool(sink, bundle);
- }
-
- public Log getLog() {
- if (this.log == null) {
- this.log = new SystemStreamLog();
- }
- return this.log;
- }
-
- public void setLog(Log log) {
- this.log = log;
+ this.enableRulesSummary = enableRulesSummary;
+ this.enableSeveritySummary = enableSeveritySummary;
+ this.enableFilesSummary = enableFilesSummary;
+ this.results = results;
+ this.checkstyleConfig = results.getConfiguration();
}
- private String getTitle() {
- String title;
-
- if (getSeverityLevel() == null) {
- title = bundle.getString("report.checkstyle.title");
- } else {
- title = bundle.getString("report.checkstyle.severity_title") + severityLevel.getName();
- }
-
- return title;
+ @Override
+ public String getTitle() {
+ return getI18nString("title");
}
- public void generateReport(CheckstyleResults results) {
- doHeading();
-
- if (getSeverityLevel() == null) {
- if (enableSeveritySummary) {
- doSeveritySummary(results);
- }
-
- if (enableFilesSummary) {
- doFilesSummary(results);
- }
-
- if (enableRulesSummary) {
- doRulesSummary(results);
- }
- }
-
- doDetails(results);
- sink.body_();
- sink.flush();
- sink.close();
+ /**
+ * @param key The key.
+ * @return The translated string.
+ */
+ private String getI18nString(String key) {
+ return i18n.getString("checkstyle-report", locale, "report.checkstyle." + key);
}
- private void doHeading() {
- sink.head();
- sink.title();
- sink.text(getTitle());
- sink.title_();
- sink.head_();
-
- sink.body();
-
- sink.section1();
- sink.sectionTitle1();
- sink.text(getTitle());
- sink.sectionTitle1_();
+ protected void renderBody() {
+ startSection(getTitle());
sink.paragraph();
- sink.text(bundle.getString("report.checkstyle.checkstylelink") + " ");
+ sink.text(getI18nString("checkstylelink") + " ");
sink.link("https://checkstyle.org/");
sink.text("Checkstyle");
sink.link_();
@@ -165,11 +128,19 @@ public class CheckstyleReportGenerator {
sink.text(version);
}
sink.text(" ");
- sink.text(String.format(bundle.getString("report.checkstyle.ruleset"), ruleset));
+ sink.text(String.format(getI18nString("ruleset"), ruleset));
sink.text(".");
-
sink.paragraph_();
- sink.section1_();
+
+ renderSeveritySummarySection();
+
+ renderFilesSummarySection();
+
+ renderRulesSummarySection();
+
+ renderDetailsSection();
+
+ endSection();
}
/**
@@ -210,58 +181,40 @@ public class CheckstyleReportGenerator {
*
* @param results The results to summarize
*/
- private void doRulesSummary(CheckstyleResults results) {
+ private void renderRulesSummarySection() {
+ if (!enableRulesSummary) {
+ return;
+ }
if (checkstyleConfig == null) {
return;
}
- sink.section1();
- sink.sectionTitle1();
- sink.text(bundle.getString("report.checkstyle.rules"));
- sink.sectionTitle1_();
-
- sink.table();
- sink.tableRows(null, false);
-
- sink.tableRow();
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.rule.category"));
- sink.tableHeaderCell_();
-
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.rule"));
- sink.tableHeaderCell_();
-
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.violations"));
- sink.tableHeaderCell_();
+ startSection(getI18nString("rules"));
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.column.severity"));
- sink.tableHeaderCell_();
+ startTable();
- sink.tableRow_();
+ tableHeader(new String[] {
+ getI18nString("rule.category"),
+ getI18nString("rule"),
+ getI18nString("violations"),
+ getI18nString("column.severity")
+ });
// Top level should be the checker.
if ("checker".equalsIgnoreCase(checkstyleConfig.getName())) {
String category = null;
for (ConfReference ref : sortConfiguration(results)) {
- doRuleRow(ref, results, category);
+ renderRuleRow(ref, results, category);
category = ref.category;
}
} else {
- sink.tableRow();
- sink.tableCell();
- sink.text(bundle.getString("report.checkstyle.norule"));
- sink.tableCell_();
- sink.tableRow_();
+ tableRow(new String[] {getI18nString("norule")});
}
- sink.tableRows_();
- sink.table_();
+ endTable();
- sink.section1_();
+ endSection();
}
/**
@@ -271,7 +224,7 @@ public class CheckstyleReportGenerator {
* @param results The results to summarize
* @param previousCategory The previous row's category
*/
- private void doRuleRow(ConfReference ref, CheckstyleResults results, String previousCategory) {
+ private void renderRuleRow(ConfReference ref, CheckstyleResults results, String previousCategory) {
Configuration checkerConfig = ref.configuration;
ChainedItem<Configuration> parentConfiguration = ref.parentConfiguration;
String ruleName = checkerConfig.getName();
@@ -325,13 +278,11 @@ public class CheckstyleReportGenerator {
sink.text(": ");
sink.monospaced();
sink.text("\"");
- if (basedir != null) {
- // Make the headerFile value relative to ${basedir}
- String path = siteTool.getRelativePath(value, basedir.getAbsolutePath());
- sink.text(path.replace('\\', '/'));
- } else {
- sink.text(value);
- }
+ // Make the headerFile value relative to ${basedir}
+ String path =
+ siteTool.getRelativePath(value, project.getBasedir().getAbsolutePath());
+ sink.text(path.replace('\\', '/'));
+ sink.text(value);
sink.text("\"");
sink.monospaced_();
} else {
@@ -359,7 +310,7 @@ public class CheckstyleReportGenerator {
// Grab the severity from the rule configuration, this time use error as default value
// Also pass along all parent configurations, so that we can try to find the severity there
String severity = getConfigAttribute(checkerConfig, parentConfiguration, "severity", "error");
- iconTool.iconSeverity(severity, IconTool.TEXT_SIMPLE);
+ iconSeverity(severity, TEXT_SIMPLE);
sink.tableCell_();
sink.tableRow_();
@@ -403,75 +354,66 @@ public class CheckstyleReportGenerator {
return true;
}
- private void doSeveritySummary(CheckstyleResults results) {
- sink.section1();
- sink.sectionTitle1();
- sink.text(bundle.getString("report.checkstyle.summary"));
- sink.sectionTitle1_();
+ private void renderSeveritySummarySection() {
+ if (!enableSeveritySummary) {
+ return;
+ }
+
+ startSection(getI18nString("summary"));
- sink.table();
- sink.tableRows(null, false);
+ startTable();
sink.tableRow();
sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.files"));
+ sink.text(getI18nString("files"));
sink.tableHeaderCell_();
sink.tableHeaderCell();
- iconTool.iconInfo(IconTool.TEXT_TITLE);
+ iconSeverity("info", TEXT_TITLE);
sink.tableHeaderCell_();
sink.tableHeaderCell();
- iconTool.iconWarning(IconTool.TEXT_TITLE);
+ iconSeverity("warning", TEXT_TITLE);
sink.tableHeaderCell_();
sink.tableHeaderCell();
- iconTool.iconError(IconTool.TEXT_TITLE);
+ iconSeverity("error", TEXT_TITLE);
sink.tableHeaderCell_();
sink.tableRow_();
- sink.tableRow();
- sink.tableCell();
- sink.text(String.valueOf(results.getFileCount()));
- sink.tableCell_();
- sink.tableCell();
- sink.text(String.valueOf(results.getSeverityCount(SeverityLevel.INFO)));
- sink.tableCell_();
- sink.tableCell();
- sink.text(String.valueOf(results.getSeverityCount(SeverityLevel.WARNING)));
- sink.tableCell_();
- sink.tableCell();
- sink.text(String.valueOf(results.getSeverityCount(SeverityLevel.ERROR)));
- sink.tableCell_();
- sink.tableRow_();
+ tableRow(new String[] {
+ String.valueOf(results.getFileCount()),
+ String.valueOf(results.getSeverityCount(SeverityLevel.INFO)),
+ String.valueOf(results.getSeverityCount(SeverityLevel.WARNING)),
+ String.valueOf(results.getSeverityCount(SeverityLevel.ERROR))
+ });
- sink.tableRows_();
- sink.table_();
+ endTable();
- sink.section1_();
+ endSection();
}
- private void doFilesSummary(CheckstyleResults results) {
- sink.section1();
- sink.sectionTitle1();
- sink.text(bundle.getString("report.checkstyle.files"));
- sink.sectionTitle1_();
+ private void renderFilesSummarySection() {
+ if (!enableFilesSummary) {
+ return;
+ }
+
+ startSection(getI18nString("files"));
- sink.table();
- sink.tableRows(null, false);
+ startTable();
sink.tableRow();
sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.file"));
+ sink.text(getI18nString("file"));
sink.tableHeaderCell_();
sink.tableHeaderCell();
- iconTool.iconInfo(IconTool.TEXT_ABBREV);
+ iconSeverity("info", TEXT_ABBREV);
sink.tableHeaderCell_();
sink.tableHeaderCell();
- iconTool.iconWarning(IconTool.TEXT_ABBREV);
+ iconSeverity("warning", TEXT_ABBREV);
sink.tableHeaderCell_();
sink.tableHeaderCell();
- iconTool.iconError(IconTool.TEXT_ABBREV);
+ iconSeverity("error", TEXT_ABBREV);
sink.tableHeaderCell_();
sink.tableRow_();
@@ -489,7 +431,7 @@ public class CheckstyleReportGenerator {
sink.tableRow();
sink.tableCell();
- sink.link("#" + filename.replace('/', '.'));
+ sink.link("#" + DoxiaUtils.encodeId(filename));
sink.text(filename);
sink.link_();
sink.tableCell_();
@@ -509,18 +451,13 @@ public class CheckstyleReportGenerator {
sink.tableRow_();
}
- sink.tableRows_();
- sink.table_();
+ endTable();
- sink.section1_();
+ endSection();
}
- private void doDetails(CheckstyleResults results) {
-
- sink.section1();
- sink.sectionTitle1();
- sink.text(bundle.getString("report.checkstyle.details"));
- sink.sectionTitle1_();
+ private void renderDetailsSection() {
+ startSection(getI18nString("details"));
// Sort the files before writing their details to the report
List<String> fileList = new ArrayList<>(results.getFiles().keySet());
@@ -534,57 +471,36 @@ public class CheckstyleReportGenerator {
continue;
}
- sink.section2();
- SinkEventAttributes attrs = new SinkEventAttributeSet();
- attrs.addAttribute(SinkEventAttributes.ID, file.replace('/', '.'));
- sink.sectionTitle(Sink.SECTION_LEVEL_2, attrs);
- sink.text(file);
- sink.sectionTitle_(Sink.SECTION_LEVEL_2);
+ startSection(file);
- sink.table();
- sink.tableRows(null, false);
+ startTable();
- sink.tableRow();
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.column.severity"));
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.rule.category"));
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.rule"));
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.column.message"));
- sink.tableHeaderCell_();
- sink.tableHeaderCell();
- sink.text(bundle.getString("report.checkstyle.column.line"));
- sink.tableHeaderCell_();
- sink.tableRow_();
+ tableHeader(new String[] {
+ getI18nString("column.severity"),
+ getI18nString("rule.category"),
+ getI18nString("rule"),
+ getI18nString("column.message"),
+ getI18nString("column.line")
+ });
- doFileEvents(violations, file);
+ renderFileEvents(violations, file);
- sink.tableRows_();
- sink.table_();
+ endTable();
- sink.section2_();
+ endSection();
}
- sink.section1_();
+ endSection();
}
- private void doFileEvents(List<AuditEvent> eventList, String filename) {
+ private void renderFileEvents(List<AuditEvent> eventList, String filename) {
for (AuditEvent event : eventList) {
SeverityLevel level = event.getSeverityLevel();
- if ((getSeverityLevel() != null) && !(getSeverityLevel() != level)) {
- continue;
- }
-
sink.tableRow();
sink.tableCell();
- iconTool.iconSeverity(level.getName(), IconTool.TEXT_SIMPLE);
+ iconSeverity(level.getName(), TEXT_SIMPLE);
sink.tableCell_();
sink.tableCell();
@@ -641,38 +557,6 @@ public class CheckstyleReportGenerator {
return false;
}
- public SeverityLevel getSeverityLevel() {
- return severityLevel;
- }
-
- public void setSeverityLevel(SeverityLevel severityLevel) {
- this.severityLevel = severityLevel;
- }
-
- public boolean isEnableRulesSummary() {
- return enableRulesSummary;
- }
-
- public void setEnableRulesSummary(boolean enableRulesSummary) {
- this.enableRulesSummary = enableRulesSummary;
- }
-
- public boolean isEnableSeveritySummary() {
- return enableSeveritySummary;
- }
-
- public void setEnableSeveritySummary(boolean enableSeveritySummary) {
- this.enableSeveritySummary = enableSeveritySummary;
- }
-
- public boolean isEnableFilesSummary() {
- return enableFilesSummary;
- }
-
- public void setEnableFilesSummary(boolean enableFilesSummary) {
- this.enableFilesSummary = enableFilesSummary;
- }
-
public String getXrefLocation() {
return xrefLocation;
}
@@ -689,28 +573,38 @@ public class CheckstyleReportGenerator {
this.xrefTestLocation = xrefTestLocation;
}
- public List<File> getTestSourceDirectories() {
- return testSourceDirectories;
- }
-
public void setTestSourceDirectories(List<File> testSourceDirectories) {
this.testSourceDirectories = testSourceDirectories;
}
- public Configuration getCheckstyleConfig() {
- return checkstyleConfig;
- }
-
- public void setCheckstyleConfig(Configuration config) {
- this.checkstyleConfig = config;
- }
-
public void setTreeWalkerNames(List<String> treeWalkerNames) {
this.treeWalkerNames = treeWalkerNames;
}
- public List<String> getTreeWalkerNames() {
- return treeWalkerNames;
+ /**
+ * Render an icon of given level with associated text.
+ * @param level one of <code>INFO</code>, <code>WARNING</code> or <code>ERROR</code> constants
+ * @param textType one of <code>NO_TEXT</code>, <code>TEXT_SIMPLE</code>, <code>TEXT_TITLE</code> or
+ * <code>TEXT_ABBREV</code> constants
+ */
+ private void iconSeverity(String level, int textType) {
+ sink.figureGraphics("images/icon_" + level + "_sml.gif");
+
+ if (textType > NO_TEXT) {
+ sink.nonBreakingSpace();
+ String suffix;
+ switch (textType) {
+ case TEXT_TITLE:
+ suffix = "s";
+ break;
+ case TEXT_ABBREV:
+ suffix = "s.abbrev";
+ break;
+ default:
+ suffix = "";
+ }
+ sink.text(getI18nString(level + suffix));
+ }
}
/**
diff --git a/src/main/java/org/apache/maven/plugins/checkstyle/IconTool.java b/src/main/java/org/apache/maven/plugins/checkstyle/IconTool.java
deleted file mode 100644
index 1d65360..0000000
--- a/src/main/java/org/apache/maven/plugins/checkstyle/IconTool.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.checkstyle;
-
-import java.util.ResourceBundle;
-
-import org.apache.maven.doxia.sink.Sink;
-
-/**
- * A little tool to deal with info/warning/error icons in Checkstyle reports, with eventual text.
- *
- * @since 2.13
- */
-public class IconTool {
- public static final String INFO = "info";
-
- public static final String WARNING = "warning";
-
- public static final String ERROR = "error";
-
- public static final int NO_TEXT = 0;
- public static final int TEXT_SIMPLE = 1;
- public static final int TEXT_TITLE = 2;
- public static final int TEXT_ABBREV = 3;
-
- private final Sink sink;
-
- private final ResourceBundle bundle;
-
- public IconTool(Sink sink, ResourceBundle bundle) {
- this.sink = sink;
- this.bundle = bundle;
- }
-
- /**
- * Render a simple icon of given level.
- * @param level one of <code>INFO</code>, <code>WARNING</code> or <code>ERROR</code> constants
- */
- public void iconSeverity(String level) {
- sink.figureGraphics("images/icon_" + level + "_sml.gif");
- }
-
- /**
- * Render an icon of given level with associated text.
- * @param level one of <code>INFO</code>, <code>WARNING</code> or <code>ERROR</code> constants
- * @param textType one of <code>NO_TEXT</code>, <code>TEXT_SIMPLE</code>, <code>TEXT_TITLE</code> or
- * <code>TEXT_ABBREV</code> constants
- */
- public void iconSeverity(String level, int textType) {
- sink.figureGraphics("images/icon_" + level + "_sml.gif");
-
- if (textType > 0) {
- sink.nonBreakingSpace();
-
- sink.text(bundle.getString("report.checkstyle." + level + suffix(textType)));
- }
- }
-
- /**
- * Render an info icon.
- */
- public void iconInfo() {
- iconSeverity(INFO);
- }
-
- /**
- * Render an info icon with associated text.
- * @param textType one of <code>NO_TEXT</code>, <code>TEXT_SIMPLE</code>, <code>TEXT_TITLE</code> or
- * <code>TEXT_ABBREV</code> constants
- */
- public void iconInfo(int textType) {
- iconSeverity(INFO, textType);
- }
-
- /**
- * Render a warning icon.
- */
- public void iconWarning() {
- iconSeverity(WARNING);
- }
-
- /**
- * Render a warning icon with associated text.
- * @param textType one of <code>NO_TEXT</code>, <code>TEXT_SIMPLE</code>, <code>TEXT_TITLE</code> or
- * <code>TEXT_ABBREV</code> constants
- */
- public void iconWarning(int textType) {
- iconSeverity(WARNING, textType);
- }
-
- /**
- * Render an error icon.
- */
- public void iconError() {
- iconSeverity(ERROR);
- }
-
- /**
- * Render an error icon with associated text.
- * @param textType one of <code>NO_TEXT</code>, <code>TEXT_SIMPLE</code>, <code>TEXT_TITLE</code> or
- * <code>TEXT_ABBREV</code> constants
- */
- public void iconError(int textType) {
- iconSeverity(ERROR, textType);
- }
-
- private String suffix(int textType) {
- switch (textType) {
- case TEXT_TITLE:
- return "s";
- case TEXT_ABBREV:
- return "s.abbrev";
- default:
- return "";
- }
- }
-}
diff --git a/src/main/resources/checkstyle-report.properties b/src/main/resources/checkstyle-report.properties
index f8ada1b..dbc5483 100644
--- a/src/main/resources/checkstyle-report.properties
+++ b/src/main/resources/checkstyle-report.properties
@@ -41,5 +41,4 @@ report.checkstyle.rule=Rule
report.checkstyle.rules=Rules
report.checkstyle.ruleset=with %s ruleset
report.checkstyle.rule.category=Category
-report.checkstyle.severity_title=Checkstyle errors in severity
report.checkstyle.norule=No rules found
diff --git a/src/main/resources/checkstyle-report_de.properties b/src/main/resources/checkstyle-report_de.properties
index 3cc3d0d..436dbb0 100644
--- a/src/main/resources/checkstyle-report_de.properties
+++ b/src/main/resources/checkstyle-report_de.properties
@@ -40,5 +40,4 @@ report.checkstyle.summary=Zusammenfassung
report.checkstyle.rule=Regel
report.checkstyle.rules=Regeln
report.checkstyle.ruleset=mit %s Regeln
-report.checkstyle.severity_title=Checkstyle-Ergebnisse mit Schweregrad
report.checkstyle.norule=Keine Regeln definiert
diff --git a/src/main/resources/checkstyle-report_fr.properties b/src/main/resources/checkstyle-report_fr.properties
index 131ebb3..d23a202 100644
--- a/src/main/resources/checkstyle-report_fr.properties
+++ b/src/main/resources/checkstyle-report_fr.properties
@@ -41,5 +41,4 @@ report.checkstyle.rule=R
report.checkstyle.rules=R�gles
report.checkstyle.ruleset=avec les r�gles %s
report.checkstyle.rule.category=Cat�gorie
-report.checkstyle.severity_title=Erreurs Checkstyle par s�v�rit�
report.checkstyle.norule=Pas de r�gle trouv�e
diff --git a/src/main/resources/checkstyle-report_pt_BR.properties b/src/main/resources/checkstyle-report_pt_BR.properties
index 2e37e3b..e921862 100644
--- a/src/main/resources/checkstyle-report_pt_BR.properties
+++ b/src/main/resources/checkstyle-report_pt_BR.properties
@@ -40,5 +40,4 @@ report.checkstyle.summary=Sum
report.checkstyle.rule=Regra
report.checkstyle.rules=Regras
report.checkstyle.ruleset=con %s regras
-report.checkstyle.severity_title=Erros do Checkstyle por severidade
report.checkstyle.norule=Nenhuma regra encontrada
diff --git a/src/main/resources/checkstyle-report_sv.properties b/src/main/resources/checkstyle-report_sv.properties
index 9344bae..3b2a2f4 100644
--- a/src/main/resources/checkstyle-report_sv.properties
+++ b/src/main/resources/checkstyle-report_sv.properties
@@ -40,5 +40,4 @@ report.checkstyle.summary=Summering
report.checkstyle.rule=Regel
report.checkstyle.rules=Regler
report.checkstyle.ruleset=med reglerna i %s
-report.checkstyle.severity_title=Checkstyle-fel i sv�righetsgrad
report.checkstyle.norule=Inga regler hittades
diff --git a/src/test/java/org/apache/maven/plugins/checkstyle/CheckstyleReportTest.java b/src/test/java/org/apache/maven/plugins/checkstyle/CheckstyleReportTest.java
index 272c053..e2fe20d 100644
--- a/src/test/java/org/apache/maven/plugins/checkstyle/CheckstyleReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/checkstyle/CheckstyleReportTest.java
@@ -170,6 +170,6 @@ public class CheckstyleReportTest extends AbstractCheckstyleTestCase {
}
private static String getHtmlHeader(String s) {
- return ">" + s + "</h2>";
+ return ">" + s + "</h3>";
}
}