Minor cleanup
This commit is contained in:
parent
e2126624f4
commit
73eb6333d2
12 changed files with 338 additions and 61 deletions
|
@ -40,8 +40,8 @@ public class PmdOperationBuild extends Project {
|
|||
.link("https://javadoc.io/doc/net.sourceforge.pmd/pmd-core/latest/");
|
||||
|
||||
publishOperation()
|
||||
.repository(MAVEN_LOCAL)
|
||||
// .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
|
||||
// .repository(MAVEN_LOCAL)
|
||||
.repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
|
||||
.info()
|
||||
.groupId("com.uwyn.rife2")
|
||||
.artifactId("bld-pmd")
|
||||
|
|
|
@ -124,32 +124,6 @@ public class PmdOperation extends AbstractOperation<PmdOperation> {
|
|||
*/
|
||||
private BaseProject project;
|
||||
|
||||
/**
|
||||
* Configures a PMD operation from a {@link BaseProject}.
|
||||
*
|
||||
* <p>
|
||||
* The defaults are:
|
||||
* <ul>
|
||||
* <li>cache={@code build/pmd/pmd-cache}</li>
|
||||
* <li>encoding={@code UTF-9}</li>
|
||||
* <li>incrementAnalysis={@code true}</li>
|
||||
* <li>inputPaths={@code [src/main, src/test]}</li>
|
||||
* <li>reportFile={@code build/pmd/pmd-report-txt}</li>
|
||||
* <li>reportFormat={@code text}</li>
|
||||
* <li>rulePriority={@code LOW}</li>
|
||||
* <li>ruleSets={@code [rulesets/java/quickstart.xml]}</li>
|
||||
* <li>suppressedMarker={@code NOPMD}</li>
|
||||
* </ul>
|
||||
*/
|
||||
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<PmdOperation> {
|
|||
}
|
||||
|
||||
/**
|
||||
* 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<PmdOperation> {
|
|||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configures a PMD operation from a {@link BaseProject}.
|
||||
*
|
||||
* <p>
|
||||
* The defaults are:
|
||||
* <ul>
|
||||
* <li>cache={@code build/pmd/pmd-cache}</li>
|
||||
* <li>encoding={@code UTF-9}</li>
|
||||
* <li>incrementAnalysis={@code true}</li>
|
||||
* <li>inputPaths={@code [src/main, src/test]}</li>
|
||||
* <li>reportFile={@code build/pmd/pmd-report-txt}</li>
|
||||
* <li>reportFormat={@code text}</li>
|
||||
* <li>rulePriority={@code LOW}</li>
|
||||
* <li>ruleSets={@code [rulesets/java/quickstart.xml]}</li>
|
||||
* <li>suppressedMarker={@code NOPMD}</li>
|
||||
* </ul>
|
||||
*/
|
||||
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<PmdOperation> {
|
|||
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()) {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue