- */
- public PmdOperation fromProject(BaseProject project) {
- this.project = project;
-
- inputPaths.add(project.srcMainDirectory().toPath());
- inputPaths.add(project.srcTestDirectory().toPath());
- ruleSets.add(RULE_SET_DEFAULT);
- return this;
- }
-
/**
* Adds paths to source files, or directories containing source files to analyze.
*
@@ -161,7 +135,7 @@ public class PmdOperation extends AbstractOperation {
}
/**
- * Add several paths to shorten paths that are output in the report.
+ * Adds several paths to shorten paths that are output in the report.
*
* @see #addRelativizeRoot(Path...)
*/
@@ -258,6 +232,32 @@ public class PmdOperation extends AbstractOperation {
return this;
}
+ /**
+ * Configures a PMD operation from a {@link BaseProject}.
+ *
+ *
+ * The defaults are:
+ *
+ *
cache={@code build/pmd/pmd-cache}
+ *
encoding={@code UTF-9}
+ *
incrementAnalysis={@code true}
+ *
inputPaths={@code [src/main, src/test]}
+ *
reportFile={@code build/pmd/pmd-report-txt}
+ *
reportFormat={@code text}
+ *
rulePriority={@code LOW}
+ *
ruleSets={@code [rulesets/java/quickstart.xml]}
+ *
suppressedMarker={@code NOPMD}
+ *
+ */
+ public PmdOperation fromProject(BaseProject project) {
+ this.project = project;
+
+ inputPaths.add(project.srcMainDirectory().toPath());
+ inputPaths.add(project.srcTestDirectory().toPath());
+ ruleSets.add(RULE_SET_DEFAULT);
+ return this;
+ }
+
/**
* Sets the path to the file containing a list of files to ignore, one path per line.
*/
@@ -363,7 +363,8 @@ public class PmdOperation extends AbstractOperation {
for (var v : report.getViolations()) {
if (LOGGER.isLoggable(Level.WARNING)) {
LOGGER.warning(String.format("[%s] %s:%d\n\t%s (%s)\n\t\t--> %s", commandName,
- Paths.get(v.getFilename()).toUri(), v.getBeginLine(), v.getRule().getName(), v.getRule().getExternalInfoUrl(), v.getDescription()));
+ Paths.get(v.getFilename()).toUri(), v.getBeginLine(), v.getRule().getName(),
+ v.getRule().getExternalInfoUrl(), v.getDescription()));
}
}
if (config.isFailOnViolation()) {
diff --git a/src/test/java/rife/bld/extension/PmdOperationTest.java b/src/test/java/rife/bld/extension/PmdOperationTest.java
index 50d7ad0..af81331 100644
--- a/src/test/java/rife/bld/extension/PmdOperationTest.java
+++ b/src/test/java/rife/bld/extension/PmdOperationTest.java
@@ -36,6 +36,7 @@ import static org.assertj.core.api.Assertions.assertThatCode;
* @since 1.0
*/
class PmdOperationTest {
+ static final String CATEGORY_FOO = "category/foo.xml";
static final String CODE_STYLE = "category/java/codestyle.xml";
static final Path CODE_STYLE_SAMPLE = Path.of("src/test/resources/java/CodeStyle.java");
static final int CODING_STYLE_ERRORS = 16;
@@ -44,7 +45,6 @@ class PmdOperationTest {
static final int ERROR_PRONE_ERRORS = 8;
static final Path ERROR_PRONE_SAMPLE = Path.of("src/test/resources/java/ErrorProne.java");
static final String TEST = "test";
- static final String CATEGORY_FOO = "category/foo.xml";
PmdOperation newPmdOperation() {
final PmdOperation pmdOperation = new PmdOperation();
diff --git a/src/test/resources/java/BestPractices.java b/src/test/resources/java/BestPractices.java
index 36cbb4a..904b4e0 100644
--- a/src/test/resources/java/BestPractices.java
+++ b/src/test/resources/java/BestPractices.java
@@ -23,15 +23,15 @@ package java;
* @since 1.0
*/
public class BestPractices {
- private final String ip = "127.0.0.1"; // not recommended
- private StringBuffer buffer; // potential memory leak as an instance variable;
+ private final String ip = "127.0.0.1"; // not recommended
+ private StringBuffer buffer; // potential memory leak as an instance variable;
private String[] x;
void bar(int a) {
switch (a) {
- case 1: // do something
+ case 1: // do something
break;
- default: // the default case should be last, by convention
+ default: // the default case should be last, by convention
break;
case 2:
break;
@@ -47,6 +47,4 @@ public class BestPractices {
name = name.trim();
System.out.println("Hello " + name);
}
-
-
}
diff --git a/src/test/resources/java/CodeStyle.java b/src/test/resources/java/CodeStyle.java
index 98d1525..740193a 100644
--- a/src/test/resources/java/CodeStyle.java
+++ b/src/test/resources/java/CodeStyle.java
@@ -25,7 +25,7 @@ package java;
public final class CodeStyle {
final int FinalField = 1;
private int x;
- private int y; // class cannot be subclassed, so is y really private or package visible?
+ private int y; // class cannot be subclassed, so is y really private or package visible?
// missing constructor
diff --git a/src/test/resources/java/Design.java b/src/test/resources/java/Design.java
index e430e9d..c177aa0 100644
--- a/src/test/resources/java/Design.java
+++ b/src/test/resources/java/Design.java
@@ -26,10 +26,6 @@ public class Design {
String field;
int otherField;
- void foo() {
- throw new NullPointerException();
- }
-
public void bar(int x, int y, int z) {
if (x > y) {
if (y > z) {
@@ -39,4 +35,8 @@ public class Design {
}
}
}
+
+ void foo() {
+ throw new NullPointerException();
+ }
}
diff --git a/src/test/resources/java/ErrorProne.java b/src/test/resources/java/ErrorProne.java
index b787d97..bdb8494 100644
--- a/src/test/resources/java/ErrorProne.java
+++ b/src/test/resources/java/ErrorProne.java
@@ -37,18 +37,18 @@ public class ErrorProne {
}
}
- void foo() {
- try {
- // do something
- } catch (Throwable th) { // should not catch Throwable
- th.printStackTrace();
- }
- }
-
void bar() {
try {
// do something
} catch (NullPointerException npe) {
}
}
+
+ void foo() {
+ try {
+ // do something
+ } catch (Throwable th) { // should not catch Throwable
+ th.printStackTrace();
+ }
+ }
}
diff --git a/src/test/resources/java/MultiThreading.java b/src/test/resources/java/MultiThreading.java
index f2c8161..577a4aa 100644
--- a/src/test/resources/java/MultiThreading.java
+++ b/src/test/resources/java/MultiThreading.java
@@ -33,12 +33,6 @@ public class MultiThreading {
sdf.format("bar"); // poor, no thread-safety
}
- void foo() {
- synchronized (sdf) { // preferred
- sdf.format("foo");
- }
- }
-
Object obj() {
if (baz == null) { // baz may be non-null yet not fully created
synchronized (this) {
diff --git a/src/test/resources/java/Performance.java b/src/test/resources/java/Performance.java
index e00f30f..7882194 100644
--- a/src/test/resources/java/Performance.java
+++ b/src/test/resources/java/Performance.java
@@ -29,7 +29,6 @@ public class Performance {
}
}
-
private boolean checkTrimEmpty(String str) {
for (int i = 0; i < str.length(); i++) {
if (!Character.isWhitespace(str.charAt(i))) {
@@ -41,7 +40,7 @@ public class Performance {
void foo() {
StringBuffer sb = new StringBuffer();
- sb.append("a"); // avoid this
+ sb.append("a"); // avoid this
String foo = " ";
StringBuffer buf = new StringBuffer();
@@ -51,7 +50,6 @@ public class Performance {
buf.append("Hello").append(" ").append("World");
- StringBuffer sbuf = new StringBuffer("tmp = " + System.getProperty("java.io.tmpdir"));
-// poor
+ StringBuffer sbuf = new StringBuffer("tmp = " + System.getProperty("java.io.tmpdir")); // poor
}
}