diff --git a/README.md b/README.md index 82430d00f..11315cb6c 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ [![Warnings](https://raw.githubusercontent.com/jenkinsci/analysis-model/main/badges/warnings.svg)](https://github.com/jenkinsci/analysis-model/actions/workflows/reporting.yml) This library provides a Java object model to read, aggregate, filter, and query static analysis reports. -It is used by [Jenkins' warnings next generation plug-in](https://github.com/jenkinsci/warnings-ng-plugin) to visualize +It is used by [Jenkins' warnings plug-in](https://github.com/jenkinsci/warnings-ng-plugin) to visualize the warnings of individual builds. Additionally, this library is used by a -[GitHub action](https://github.com/uhafner/autograding-github-action) to autograde student software projects based +[GitHub action](https://github.com/uhafner/autograding-github-action) and [GitLab action](https://github.com/uhafner/autograding-gitlab-action) to autograde student software projects based on a given set of metrics (unit tests, code and mutation coverage, static analysis warnings). This library consists basically of three separate parts: diff --git a/pom.xml b/pom.xml index d32e8a7fb..1789799bb 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ edu.hm.hafner codingstyle-pom - 3.39.0 + 3.40.0 diff --git a/src/main/java/edu/hm/hafner/analysis/Issue.java b/src/main/java/edu/hm/hafner/analysis/Issue.java index 8a85bac79..ed97025bd 100644 --- a/src/main/java/edu/hm/hafner/analysis/Issue.java +++ b/src/main/java/edu/hm/hafner/analysis/Issue.java @@ -320,7 +320,6 @@ public static Predicate byType(final String type) { @CheckForNull final String reference, @CheckForNull final String fingerprint, @CheckForNull final Serializable additionalProperties, final UUID id) { - this.pathName = normalizeFileName(pathName); this.fileName = fileName; @@ -934,5 +933,4 @@ public int hashCode() { public String toString() { return String.format("%s(%d,%d): %s: %s: %s", getBaseName(), lineStart, columnStart, type, category, message); } - } diff --git a/src/main/java/edu/hm/hafner/analysis/KotlinPackageDetector.java b/src/main/java/edu/hm/hafner/analysis/KotlinPackageDetector.java index 942cae712..ea951dbb5 100644 --- a/src/main/java/edu/hm/hafner/analysis/KotlinPackageDetector.java +++ b/src/main/java/edu/hm/hafner/analysis/KotlinPackageDetector.java @@ -11,7 +11,6 @@ * @author Bastian Kersting */ class KotlinPackageDetector extends AbstractPackageDetector { - private static final Pattern PACKAGE_PATTERN = Pattern.compile( "^\\s*package\\s*([a-z]+[.\\w]*)\\s*.*"); diff --git a/src/main/java/edu/hm/hafner/analysis/Report.java b/src/main/java/edu/hm/hafner/analysis/Report.java index 7599119fa..6f7a6581b 100644 --- a/src/main/java/edu/hm/hafner/analysis/Report.java +++ b/src/main/java/edu/hm/hafner/analysis/Report.java @@ -1046,7 +1046,6 @@ private void writeObject(final ObjectOutputStream output) throws IOException { for (Report subReport : subReports) { output.writeObject(subReport); } - } private void writeIssues(final ObjectOutputStream output) throws IOException { @@ -1274,7 +1273,6 @@ enum FilterType { */ private void addNewFilter(final Collection patterns, final Function propertyToFilter, final FilterType type) { - Collection> filters = new ArrayList<>(); for (String pattern : patterns) { filters.add(issueToFilter -> Pattern.compile(pattern, Pattern.DOTALL) diff --git a/src/main/java/edu/hm/hafner/analysis/parser/AnsibleLintParser.java b/src/main/java/edu/hm/hafner/analysis/parser/AnsibleLintParser.java index 48fb0a90c..243d9bbc7 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/AnsibleLintParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/AnsibleLintParser.java @@ -38,7 +38,6 @@ protected boolean isLineInteresting(final String line) { @Override protected Optional createIssue(final Matcher matcher, final LookaheadStream lookahead, final IssueBuilder builder) { - final String cat; /* Ansible-lint has changed the style of parseable output. This requires diff --git a/src/main/java/edu/hm/hafner/analysis/parser/AquaScannerParser.java b/src/main/java/edu/hm/hafner/analysis/parser/AquaScannerParser.java index 4d3e8654f..3df2a27de 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/AquaScannerParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/AquaScannerParser.java @@ -90,5 +90,4 @@ private String formatDescription(final String fileName, final JSONObject resourc div(b("Aqua Severity: "), text(severity)), p(text(description))).render(); } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/BuckminsterParser.java b/src/main/java/edu/hm/hafner/analysis/parser/BuckminsterParser.java index 3092f8ca3..691636198 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/BuckminsterParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/BuckminsterParser.java @@ -35,7 +35,6 @@ protected Optional createIssue(final Matcher matcher, final LookaheadStre return builder.setFileName(matcher.group(2)).setLineStart(matcher.group(4)) .setCategory(guessCategory(matcher.group(5))).setMessage(matcher.group(5)) .setSeverity(priority).buildOptional(); - } } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/CodeCheckerParser.java b/src/main/java/edu/hm/hafner/analysis/parser/CodeCheckerParser.java index ffcba21a2..07df17c4e 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/CodeCheckerParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/CodeCheckerParser.java @@ -44,7 +44,6 @@ protected Optional createIssue(final Matcher matcher, final LookaheadStre } private Severity getSeverity(final String severityText) { - if (severityText.contains("CRITICAL")) { return Severity.ERROR; } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/CrossCoreEmbeddedStudioParser.java b/src/main/java/edu/hm/hafner/analysis/parser/CrossCoreEmbeddedStudioParser.java index 8920812de..b42209465 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/CrossCoreEmbeddedStudioParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/CrossCoreEmbeddedStudioParser.java @@ -36,7 +36,6 @@ public CrossCoreEmbeddedStudioParser() { @Override protected Optional createIssue(final Matcher matcher, final LookaheadStream lookahead, final IssueBuilder builder) { - StringBuilder message = new StringBuilder(matcher.group("messageBegin").trim()); // always grab the second line diff --git a/src/main/java/edu/hm/hafner/analysis/parser/DoxygenParser.java b/src/main/java/edu/hm/hafner/analysis/parser/DoxygenParser.java index 3bb903d72..3ceaa1b54 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/DoxygenParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/DoxygenParser.java @@ -17,5 +17,4 @@ public class DoxygenParser extends Gcc4CompilerParser { public DoxygenParser() { super(DOXYGEN_WARNING_PATTERN); } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/EclipseXMLParser.java b/src/main/java/edu/hm/hafner/analysis/parser/EclipseXMLParser.java index dbd7c2c02..2eda7e8ae 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/EclipseXMLParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/EclipseXMLParser.java @@ -183,5 +183,4 @@ private String extractCategoryId(final Element problem) { // XPath is "./@categoryID" return problem.getAttribute("categoryID"); } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/GccParser.java b/src/main/java/edu/hm/hafner/analysis/parser/GccParser.java index 0fe20f706..09c6f5a9d 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/GccParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/GccParser.java @@ -86,6 +86,5 @@ else if (StringUtils.isNotBlank(matcher.group(4))) { .setSeverity(priority) .buildOptional(); } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/LintParser.java b/src/main/java/edu/hm/hafner/analysis/parser/LintParser.java index f18bb6781..22ec0f9e3 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/LintParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/LintParser.java @@ -52,7 +52,6 @@ static class JSLintXmlSaxParser extends DefaultHandler { @Override public void startElement(final String namespaceURI, final String localName, final String key, final Attributes atts) { - if (isLintDerivate(key)) { return; // Start element, good to skip } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/MentorParser.java b/src/main/java/edu/hm/hafner/analysis/parser/MentorParser.java index d211c7cd3..7c8a7b846 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/MentorParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/MentorParser.java @@ -158,5 +158,4 @@ private void clearBuilder(final IssueBuilder builder) { protected boolean isLineInteresting(final String line) { return line.startsWith("# ** ") || line.startsWith("** "); } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/NagFortranParser.java b/src/main/java/edu/hm/hafner/analysis/parser/NagFortranParser.java index 1a7ef3f13..a70703c50 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/NagFortranParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/NagFortranParser.java @@ -35,7 +35,6 @@ public NagFortranParser() { protected Optional createIssue(final Matcher matcher, final LookaheadStream lookahead, final IssueBuilder builder) throws ParsingException { - StringBuilder messageBuilder = new StringBuilder(matcher.group(5)); while (lookahead.hasNext("\\s+ .+")) { diff --git a/src/main/java/edu/hm/hafner/analysis/parser/PnpmAuditParser.java b/src/main/java/edu/hm/hafner/analysis/parser/PnpmAuditParser.java index 03cfe16da..50e02a3cc 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/PnpmAuditParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/PnpmAuditParser.java @@ -28,7 +28,6 @@ * @author Fabian Kaupp - kauppfbi@gmail.com */ public class PnpmAuditParser extends JsonIssueParser { - private static final String VALUE_NOT_SET = "-"; private static final String UNCATEGORIZED = "Uncategorized"; @@ -158,4 +157,4 @@ private Optional getValueAsContainerTag(final JSONObject vulnerabi return Optional.of(div(b(label + ": "), text(value))); } -} \ No newline at end of file +} diff --git a/src/main/java/edu/hm/hafner/analysis/parser/RevApiParser.java b/src/main/java/edu/hm/hafner/analysis/parser/RevApiParser.java index ec1de257d..f76edf247 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/RevApiParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/RevApiParser.java @@ -119,6 +119,5 @@ private String getDescription(final JSONObject jsonIssue) { jsonIssue.getString("description"), jsonIssue.getString("name"), jsonIssue.getString("code")) + severityDescription; - } } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/SonarQubeParser.java b/src/main/java/edu/hm/hafner/analysis/parser/SonarQubeParser.java index 99ca5c3bb..e8af2a9e7 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/SonarQubeParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/SonarQubeParser.java @@ -310,6 +310,5 @@ else if (SEVERITY_MINOR.equals(severity) || SEVERITY_INFO.equals(severity)) { } return priority; } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/TaglistParser.java b/src/main/java/edu/hm/hafner/analysis/parser/TaglistParser.java index 16b9b0bba..929c34245 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/TaglistParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/TaglistParser.java @@ -76,5 +76,4 @@ private String class2package(final String clazz) { int idx = clazz.lastIndexOf('.'); return idx > 0 ? clazz.substring(0, idx) : null; } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParser.java b/src/main/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParser.java index ec08d3e09..620fb44bb 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParser.java @@ -10,8 +10,6 @@ import edu.hm.hafner.analysis.Severity; import static j2html.TagCreator.*; -import static org.apache.commons.lang3.StringUtils.startsWith; -import static org.apache.commons.lang3.StringUtils.endsWith; /** * Parser for Veracode Pipeline Scanner (pipeline-scan) tool. @@ -76,10 +74,10 @@ private Issue convertToIssue(final JSONObject finding, final IssueBuilder issueB * @return original file name or a java file name prepended with src/main/java */ private String getEnrichedFileName(final String rawFileName) { - if (endsWith(rawFileName, ".java") && !startsWith(rawFileName, "src/main/java/")) { + if (StringUtils.endsWith(rawFileName, ".java") && !StringUtils.startsWith(rawFileName, "src/main/java/")) { return "src/main/java/" + rawFileName; } - else if (endsWith(rawFileName, ".kt") && !startsWith(rawFileName, "src/main/kotlin/")) { + else if (StringUtils.endsWith(rawFileName, ".kt") && !StringUtils.startsWith(rawFileName, "src/main/kotlin/")) { return "src/main/kotlin/" + rawFileName; } else { @@ -144,7 +142,6 @@ else if (severity >= VERACODE_HIGH_THRESHOLD) { else { return Severity.WARNING_NORMAL; } - } private String formatDescription(final String fileName, final JSONObject finding) { @@ -158,5 +155,4 @@ private String formatDescription(final String fileName, final JSONObject finding div(b("Severity: "), text(severity)), p(rawHtml(displayHtml))).render(); } - } diff --git a/src/main/java/edu/hm/hafner/analysis/parser/YuiCompressorParser.java b/src/main/java/edu/hm/hafner/analysis/parser/YuiCompressorParser.java index 5e35d9527..d410c1e80 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/YuiCompressorParser.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/YuiCompressorParser.java @@ -47,7 +47,6 @@ protected Optional createIssue(final Matcher matcher, final LookaheadStre return builder.setFileName("unknown.file").setLineStart(0).setCategory(categoryAndPriority.getCategory()) .setMessage(message).setSeverity(categoryAndPriority.getPriority()).buildOptional(); - } @SuppressWarnings("npathcomplexity") diff --git a/src/main/java/edu/hm/hafner/analysis/parser/checkstyle/TopicRule.java b/src/main/java/edu/hm/hafner/analysis/parser/checkstyle/TopicRule.java index 6528b7600..5a9fa50e0 100644 --- a/src/main/java/edu/hm/hafner/analysis/parser/checkstyle/TopicRule.java +++ b/src/main/java/edu/hm/hafner/analysis/parser/checkstyle/TopicRule.java @@ -69,5 +69,4 @@ private String extractNodeContent(final Element subsection) throws TransformerEx return StringUtils.replace(endSourceRemoved, "", "
");
     }
-
 }
diff --git a/src/main/java/edu/hm/hafner/analysis/parser/gendarme/GendarmeParser.java b/src/main/java/edu/hm/hafner/analysis/parser/gendarme/GendarmeParser.java
index 9ca736241..98da1317a 100644
--- a/src/main/java/edu/hm/hafner/analysis/parser/gendarme/GendarmeParser.java
+++ b/src/main/java/edu/hm/hafner/analysis/parser/gendarme/GendarmeParser.java
@@ -49,7 +49,6 @@ public Report parse(final ReaderFactory factory) throws ParsingException {
 
     private Report parseViolations(final List ruleElements, final Map rules) {
         try (IssueBuilder issueBuilder = new IssueBuilder()) {
-
             Report warnings = new Report();
             for (Element ruleElement : ruleElements) {
                 String ruleName = ruleElement.getAttribute("Name");
diff --git a/src/main/java/edu/hm/hafner/analysis/parser/jcreport/Item.java b/src/main/java/edu/hm/hafner/analysis/parser/jcreport/Item.java
index 24880875d..e00f0172f 100644
--- a/src/main/java/edu/hm/hafner/analysis/parser/jcreport/Item.java
+++ b/src/main/java/edu/hm/hafner/analysis/parser/jcreport/Item.java
@@ -10,7 +10,6 @@
  */
 @SuppressWarnings("PMD.DataClass")
 public class Item {
-
     @CheckForNull
     private String column;
     @CheckForNull
diff --git a/src/main/java/edu/hm/hafner/analysis/registry/CodeGeneratorDescriptor.java b/src/main/java/edu/hm/hafner/analysis/registry/CodeGeneratorDescriptor.java
index 86cff3b3e..81a3b89fa 100644
--- a/src/main/java/edu/hm/hafner/analysis/registry/CodeGeneratorDescriptor.java
+++ b/src/main/java/edu/hm/hafner/analysis/registry/CodeGeneratorDescriptor.java
@@ -10,7 +10,6 @@
  */
 
 class CodeGeneratorDescriptor extends ParserDescriptor {
-
     private static final String ID = "code-generator";
     private static final String NAME = "Code Generator Tool";
 
@@ -27,4 +26,4 @@ public IssueParser createParser(final Option... options) {
     public String getUrl() {
         return "https://www.mathworks.com/help/stats/code-generation.html";
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/edu/hm/hafner/analysis/registry/GrypeDescriptor.java b/src/main/java/edu/hm/hafner/analysis/registry/GrypeDescriptor.java
index ddffb2c0f..0008212c8 100644
--- a/src/main/java/edu/hm/hafner/analysis/registry/GrypeDescriptor.java
+++ b/src/main/java/edu/hm/hafner/analysis/registry/GrypeDescriptor.java
@@ -33,5 +33,4 @@ public String getUrl() {
     public String getIconUrl() {
         return "https://user-images.githubusercontent.com/5199289/136855393-d0a9eef9-ccf1-4e2b-9d7c-7aad16a567e5.png";
     }
-
 }
diff --git a/src/main/java/edu/hm/hafner/analysis/registry/OwaspDependencyCheckDescriptor.java b/src/main/java/edu/hm/hafner/analysis/registry/OwaspDependencyCheckDescriptor.java
index 7c615821d..a29b3690e 100644
--- a/src/main/java/edu/hm/hafner/analysis/registry/OwaspDependencyCheckDescriptor.java
+++ b/src/main/java/edu/hm/hafner/analysis/registry/OwaspDependencyCheckDescriptor.java
@@ -33,5 +33,4 @@ public String getUrl() {
     public String getIconUrl() {
         return "https://raw.githubusercontent.com/jeremylong/DependencyCheck/main/src/site/resources/images/logo.svg";
     }
-
 }
diff --git a/src/main/java/edu/hm/hafner/analysis/registry/PnpmAuditDescriptor.java b/src/main/java/edu/hm/hafner/analysis/registry/PnpmAuditDescriptor.java
index a6fc321f9..1dca770e4 100644
--- a/src/main/java/edu/hm/hafner/analysis/registry/PnpmAuditDescriptor.java
+++ b/src/main/java/edu/hm/hafner/analysis/registry/PnpmAuditDescriptor.java
@@ -11,7 +11,6 @@
  * @author Fabian Kaupp - kauppfbi@gmail.com
  */
 class PnpmAuditDescriptor extends ParserDescriptor {
-
     private static final String ID = "pnpm-audit";
     private static final String NAME = "pnpm Audit";
 
diff --git a/src/main/java/edu/hm/hafner/analysis/registry/SimulinkCheckDescriptor.java b/src/main/java/edu/hm/hafner/analysis/registry/SimulinkCheckDescriptor.java
index e4dbaf3c2..a576ba747 100644
--- a/src/main/java/edu/hm/hafner/analysis/registry/SimulinkCheckDescriptor.java
+++ b/src/main/java/edu/hm/hafner/analysis/registry/SimulinkCheckDescriptor.java
@@ -10,7 +10,6 @@
  */
 
 class SimulinkCheckDescriptor extends ParserDescriptor {
-
     private static final String ID = "simulink-check-parser";
     private static final String NAME = "Simulink Check Tool";
 
diff --git a/src/test/java/edu/hm/hafner/analysis/IssueBuilderTest.java b/src/test/java/edu/hm/hafner/analysis/IssueBuilderTest.java
index 6734db01c..074e1cbcb 100644
--- a/src/test/java/edu/hm/hafner/analysis/IssueBuilderTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/IssueBuilderTest.java
@@ -35,7 +35,6 @@ class IssueBuilderTest {
     @Test
     void shouldCreateAbsolutePath() {
         try (IssueBuilder builder = new IssueBuilder()) {
-
             builder.setFileName(RELATIVE_FILE);
 
             assertThat(builder.build())
diff --git a/src/test/java/edu/hm/hafner/analysis/ReportPrinterTest.java b/src/test/java/edu/hm/hafner/analysis/ReportPrinterTest.java
deleted file mode 100644
index 6bdadbb7b..000000000
--- a/src/test/java/edu/hm/hafner/analysis/ReportPrinterTest.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package edu.hm.hafner.analysis;
-
-import edu.hm.hafner.util.ResourceTest;
-
-/**
- * Tests printing of reports using the {@link Report#print(Report.IssuePrinter)} method.
- *
- * @author Ullrich Hafner
- */
-// TODO: Move implementation to ReportTest
-class ReportPrinterTest extends ResourceTest {
-
-}
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/AquaScannerParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/AquaScannerParserTest.java
index a7f5d8128..582be0cda 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/AquaScannerParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/AquaScannerParserTest.java
@@ -15,7 +15,6 @@
  * Tests the class {@link AquaScannerParser}.
  */
 class AquaScannerParserTest extends AbstractParserTest {
-
     private static final String EXPECTED_FILENAME = "/opt/app/app-runner.jar:org/jose4j/json/JsonHeaderUtil.class";
 
     AquaScannerParserTest() {
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/Armcc5CompilerParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/Armcc5CompilerParserTest.java
index 7323151a7..25a42ea74 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/Armcc5CompilerParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/Armcc5CompilerParserTest.java
@@ -20,7 +20,6 @@ protected Armcc5CompilerParserTest() {
 
     @Override
     protected void assertThatIssuesArePresent(final Report report, final SoftAssertions softly) {
-
         softly.assertThat(report).hasSize(3);
 
         softly.assertThat(report.get(0)).hasSeverity(Severity.WARNING_HIGH)
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/ClairParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/ClairParserTest.java
index e55780546..109c2b1f3 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/ClairParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/ClairParserTest.java
@@ -20,7 +20,6 @@
  * @author Andreas Mandel
  */
 class ClairParserTest extends AbstractParserTest {
-
     ClairParserTest() {
         super("clair.json");
     }
@@ -77,4 +76,4 @@ void brokenInput() {
         assertThatThrownBy(() -> parse("eclipse.txt"))
                 .isInstanceOf(ParsingException.class);
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/CodeAnalysisParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/CodeAnalysisParserTest.java
index 636b7d252..002ee4719 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/CodeAnalysisParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/CodeAnalysisParserTest.java
@@ -9,10 +9,6 @@
  * Tests the class {@link CodeAnalysisParser}.
  */
 class CodeAnalysisParserTest extends AbstractParserTest {
-
-    /**
-     * Creates a new CodeAnalysisParserTest.
-     */
     CodeAnalysisParserTest() {
         super("codeanalysis.txt");
     }
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/CodeCheckerParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/CodeCheckerParserTest.java
index 29219692d..0acce242f 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/CodeCheckerParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/CodeCheckerParserTest.java
@@ -10,7 +10,6 @@
 import static edu.hm.hafner.analysis.assertions.Assertions.*;
 
 class CodeCheckerParserTest extends AbstractParserTest {
-
     CodeCheckerParserTest() {
         super("CodeChecker_with_linux_paths.txt");
     }
@@ -63,7 +62,6 @@ protected void assertThatIssuesArePresent(final Report report, final SoftAsserti
                 .hasMessage("misra violation (use --rule-texts= to get proper output)")
                 .hasCategory("cppcheck-misra-c2012-11.3")
                 .hasSeverity(Severity.WARNING_LOW);
-
     }
 
     @Test
@@ -109,6 +107,5 @@ void shouldParseWindowsPaths() {
                 .hasMessage("suspicious usage of 'sizeof(A*)'; pointer to aggregate")
                 .hasCategory("bugprone-sizeof-expression")
                 .hasSeverity(Severity.WARNING_HIGH);
-
     }
 }
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/CoolfluxChessccParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/CoolfluxChessccParserTest.java
index e9b085352..ff064c3a8 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/CoolfluxChessccParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/CoolfluxChessccParserTest.java
@@ -9,10 +9,6 @@
  * Tests the class {@link CoolfluxChessccParserTest}.
  */
 class CoolfluxChessccParserTest extends AbstractParserTest {
-
-    /**
-     * Creates a new CoolfluxChessccParserTest.
-     */
     CoolfluxChessccParserTest() {
         super("coolfluxchesscc.txt");
     }
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/DockerLintParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/DockerLintParserTest.java
index a0b6583f2..54cc6cec9 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/DockerLintParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/DockerLintParserTest.java
@@ -20,7 +20,6 @@
  * @author Andreas Mandel
  */
 class DockerLintParserTest extends AbstractParserTest {
-
     DockerLintParserTest() {
         super("dockerlint.json");
     }
@@ -62,4 +61,4 @@ void accepts() {
         assertThat(new DockerLintParser().accepts(
                 new FileReaderFactory(FileSystems.getDefault().getPath("foo.txt")))).isFalse();
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/DrMemoryParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/DrMemoryParserTest.java
index 0c1c0700f..c138abd3d 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/DrMemoryParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/DrMemoryParserTest.java
@@ -14,11 +14,7 @@
  * Tests the class {@link DrMemoryParser}.
  */
 class DrMemoryParserTest extends AbstractParserTest {
-
-    /**
-     * Creates a new instance of {@link DrMemoryParserTest}.
-     */
-    protected DrMemoryParserTest() {
+    DrMemoryParserTest() {
         super("drmemory.txt");
     }
 
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/FlexSdkParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/FlexSdkParserTest.java
index 7c1edb359..be6ff6eb9 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/FlexSdkParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/FlexSdkParserTest.java
@@ -69,7 +69,6 @@ protected void assertThatIssuesArePresent(final Report report, final SoftAsserti
                         "The CSS type selector 'Book' was not processed, because the type was not used in the application.")
                 .hasFileName(
                         "D:/workspaces/flexcompo_trunkdev_nightly/src/flexcompo/samples/ugv_helloExtensibility_flex/src/main/HelloExtensibleWorld.mxml");
-
     }
 
     @Override
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/Gcc4LinkerParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/Gcc4LinkerParserTest.java
index dd0d8b27b..b19a58fb4 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/Gcc4LinkerParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/Gcc4LinkerParserTest.java
@@ -92,7 +92,6 @@ protected void assertThatIssuesArePresent(final Report report, final SoftAsserti
                         "errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccgdbGtN.o")
                 .hasFileName(FILE_NAME)
                 .hasSeverity(Severity.WARNING_HIGH);
-
     }
 
     /** Should not report warnings already detected by {@link Gcc4CompilerParser}. */
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/GccParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/GccParserTest.java
index ae38eaf16..9807c1857 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/GccParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/GccParserTest.java
@@ -83,12 +83,8 @@ void issue9926() {
         }
     }
 
-    /**
-     * Parses a file with two GCC warnings.
-     */
     @Override
     protected void assertThatIssuesArePresent(final Report report, final SoftAssertions softly) {
-
         softly.assertThat(report).hasSize(8);
 
         Iterator iterator = report.iterator();
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/GhsMultiParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/GhsMultiParserTest.java
index ace1d9ff7..2c74277b1 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/GhsMultiParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/GhsMultiParserTest.java
@@ -69,7 +69,6 @@ protected void assertThatIssuesArePresent(final Report report, final SoftAsserti
                 .hasLineStart(42)
                 .hasMessage("warning at the end of the file")
                 .hasFileName("D:/workspace/TEST/mytest.c");
-
     }
 
     /**
@@ -121,6 +120,5 @@ void issue66130() {
     protected GhsMultiParser createParser() {
         return new GhsMultiParser();
     }
-
 }
 
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/HadoLintParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/HadoLintParserTest.java
index 9ce96e3aa..3f7d38302 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/HadoLintParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/HadoLintParserTest.java
@@ -13,7 +13,6 @@
 import edu.hm.hafner.analysis.assertions.SoftAssertions;
 
 import static edu.hm.hafner.analysis.assertions.Assertions.*;
-import static org.assertj.core.api.Assertions.*;
 
 /**
  * Tests the class {@link HadoLintParser}.
@@ -21,7 +20,6 @@
  * @author Andreas Mandel
  */
 class HadoLintParserTest extends AbstractParserTest {
-
     HadoLintParserTest() {
         super("hadolint.json");
     }
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/JSLintParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/JSLintParserTest.java
index 21a2c4543..69e792c25 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/JSLintParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/JSLintParserTest.java
@@ -33,7 +33,6 @@ void issue19127() {
         assertThat(warnings).hasSize(197);
 
         try (SoftAssertions softly = new SoftAssertions()) {
-
             softly.assertThat(warnings.get(0))
                     .hasSeverity(Severity.WARNING_HIGH)
                     .hasCategory(LintParser.JSLintXmlSaxParser.CATEGORY_UNDEFINED_VARIABLE)
@@ -42,7 +41,6 @@ void issue19127() {
                     .hasMessage("'window' is not defined.")
                     .hasFileName("C:/DVR/lint_Mobile-Localization_ws/evWebService/WebClientApi/api-v1.js")
                     .hasColumnStart(5);
-
         }
     }
 
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/JcReportParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/JcReportParserTest.java
index 895bf127e..901cd3192 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/JcReportParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/JcReportParserTest.java
@@ -78,7 +78,6 @@ void testReportParserProperties() {
     void testSAXEception() throws ParsingCanceledException {
         assertThatThrownBy(() -> parse("jcreport/testCorrupt.xml"))
                 .isInstanceOf(ParsingException.class);
-
     }
 
     @Override
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/PmdParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/PmdParserTest.java
index f92cb636f..c2349bdb1 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/PmdParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/PmdParserTest.java
@@ -116,7 +116,6 @@ void issue54736() {
                                 + "\tat net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:175)\n"
                                 + "\tat net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:96)\n"
                                 + "\t... 9 more");
-
     }
 
     /**
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/PnpmAuditParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/PnpmAuditParserTest.java
index 1992716db..06f20e173 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/PnpmAuditParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/PnpmAuditParserTest.java
@@ -18,7 +18,6 @@
  * @author Fabian Kaupp - kauppfbi@gmail.com
  */
 class PnpmAuditParserTest extends AbstractParserTest {
-
     protected PnpmAuditParserTest() {
         super("pnpm-audit.json");
     }
@@ -72,7 +71,6 @@ void shouldMapCorrectly() {
         assertThat(description).doesNotContain("Installed Version");
         assertThat(description).contains("Patched Versions");
         assertThat(description).contains("Vulnerable Versions");
-
     }
 
     @Test
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/PuppetLintParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/PuppetLintParserTest.java
index 528c88476..41bf14734 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/PuppetLintParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/PuppetLintParserTest.java
@@ -16,7 +16,6 @@
  * @author Jan Vansteenkiste
  */
 class PuppetLintParserTest extends AbstractParserTest {
-
     PuppetLintParserTest() {
         super("puppet-lint.txt");
     }
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/RfLintParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/RfLintParserTest.java
index 9361bab09..cc9854c4b 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/RfLintParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/RfLintParserTest.java
@@ -293,7 +293,6 @@ protected void assertThatIssuesArePresent(final Report report, final SoftAsserti
                 .hasPackageName(packageName)
                 .hasCategory(OTHER_CATEGORY)
                 .hasSeverity(Severity.WARNING_NORMAL);
-
     }
 
     @Override
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParserTest.java
index 7c91377aa..311cec1c3 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/VeraCodePipelineScannerParserTest.java
@@ -13,7 +13,6 @@
  * Tests the class {@link VeraCodePipelineScannerParserTest}.
  */
 class VeraCodePipelineScannerParserTest extends StructuredFileParserTest {
-
     VeraCodePipelineScannerParserTest() {
         super("veracode_pipeline_scanner_result.json");
     }
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/XmlParserTest.java b/src/test/java/edu/hm/hafner/analysis/parser/XmlParserTest.java
index 26aad559d..5448c3ee9 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/XmlParserTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/XmlParserTest.java
@@ -53,7 +53,6 @@ protected void assertThatIssuesArePresent(final Report report, final SoftAsserti
                 .hasFingerprint("fingerprint")
                 .hasAdditionalProperties("")
                 .hasOnlyLineRanges(new LineRange(5, 6));
-
     }
 
     @Override
diff --git a/src/test/java/edu/hm/hafner/analysis/parser/violations/SarifAdapterTest.java b/src/test/java/edu/hm/hafner/analysis/parser/violations/SarifAdapterTest.java
index 5e1544d25..e2c03c257 100644
--- a/src/test/java/edu/hm/hafner/analysis/parser/violations/SarifAdapterTest.java
+++ b/src/test/java/edu/hm/hafner/analysis/parser/violations/SarifAdapterTest.java
@@ -50,5 +50,4 @@ void shouldReportDifferentSeverities() {
     protected SarifAdapter createParser() {
         return new SarifAdapter();
     }
-
 }