You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2017/05/17 17:33:28 UTC
mina-sshd git commit: [SSHD-748] Activate Maven PMD plugin in the
project
Repository: mina-sshd
Updated Branches:
refs/heads/master 6256245da -> b85bcd524
[SSHD-748] Activate Maven PMD plugin in the project
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/b85bcd52
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/b85bcd52
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/b85bcd52
Branch: refs/heads/master
Commit: b85bcd524ebcc77eeb7af309d353225ebeb3a830
Parents: 6256245
Author: Lyor Goldstein <ly...@gmail.com>
Authored: Wed May 17 20:00:42 2017 +0300
Committer: Lyor Goldstein <ly...@gmail.com>
Committed: Wed May 17 20:33:34 2017 +0300
----------------------------------------------------------------------
.gitignore | 1 +
pom.xml | 59 ++++++++++++++++++++
.../java/org/apache/sshd/client/SshClient.java | 2 +-
.../client/config/hosts/HostPatternsHolder.java | 4 +-
.../apache/sshd/common/util/SelectorUtils.java | 4 +-
.../java/org/apache/sshd/client/ClientTest.java | 3 -
.../common/forward/PortForwardingLoadTest.java | 2 +-
.../java/org/apache/sshd/server/ServerTest.java | 4 +-
.../sshd/util/test/CommandExecutionHelper.java | 6 +-
.../JUnit4ClassRunnerWithParametersFactory.java | 4 +-
.../apache/sshd/git/pack/GitPackCommand.java | 16 ++++--
.../org/apache/sshd/git/pgm/GitPgmCommand.java | 6 +-
.../sshd/server/auth/BaseAuthenticatorTest.java | 1 -
sshd-pmd-ruleset.xml | 23 ++++++++
14 files changed, 113 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index aec7cda..52da317 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@ RemoteSystemsTempFiles/
.classpath
.project
.checkstyle
+.eclipse-pmd
*.iml
*.ipr
*.iws
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ab6d31c..f5e9a29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -114,6 +114,8 @@
<jgit.version>4.6.0.201612231935-r</jgit.version>
<junit.version>4.12</junit.version>
<surefire.plugin.version>2.19.1</surefire.plugin.version>
+ <!-- See https://pmd.github.io/ for available latest version -->
+ <pmd.version>5.6.1</pmd.version>
<httpcomps.version>4.4.1</httpcomps.version>
</properties>
@@ -482,6 +484,7 @@
<excludes>
<exclude>**/*.iml</exclude>
<exclude>README.md</exclude>
+ <exclude>*pmd*</exclude>
<exclude>src/docs/**</exclude>
<exclude>src/test/resources/**</exclude>
<exclude>**/stty-output-*.txt</exclude>
@@ -666,6 +669,31 @@
</dependency>
</dependencies>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.8</version>
+ <configuration>
+ <targetJdk>${javac.target}</targetJdk>
+ <printFailingErrors>true</printFailingErrors>
+ <skipPmdError>false</skipPmdError>
+ <excludeRoots>
+ <excludeRoot>target/generated-sources/java</excludeRoot>
+ </excludeRoots>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>net.sourceforge.pmd</groupId>
+ <artifactId>pmd-core</artifactId>
+ <version>${pmd.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sourceforge.pmd</groupId>
+ <artifactId>pmd-java</artifactId>
+ <version>${pmd.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
</plugins>
</pluginManagement>
@@ -723,6 +751,27 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <!-- to disable - mvn [commands...] -Dpmd.skip -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <configuration>
+ <rulesets>
+ <ruleset>${workspace.root.dir}${file.separator}sshd-pmd-ruleset.xml</ruleset>
+ </rulesets>
+ <includeTests>true</includeTests>
+ </configuration>
+ <executions>
+ <execution>
+ <id>pmd-checker</id>
+ <!-- Note: phase must be AFTER detection of workspace root dir -->
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
@@ -936,6 +985,16 @@
</repository>
</distributionManagement>
+ <reporting>
+ <plugins>
+ <plugin> <!-- used by PMD to create a source XREF -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <version>2.5</version>
+ </plugin>
+ </plugins>
+ </reporting>
+
<modules>
<module>sshd-core</module>
<module>sshd-ldap</module>
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java b/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
index c2a8025..c8cc1db 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
@@ -1290,7 +1290,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
StringWriter sw = new StringWriter();
try (PrintWriter pw = new PrintWriter(sw)) {
pw.println();
- t.printStackTrace(pw);
+ t.printStackTrace(pw); // NOPMD
}
throwable = sw.toString();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
index eff34d9..fdef86e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
@@ -120,7 +120,7 @@ public abstract class HostPatternsHolder {
* @param host The host name / address - ignored if {@code null}/empty
* @param entries The {@link HostConfigEntry}-ies to scan - ignored if {@code null}/empty
* @return A {@link List} of all the matching entries
- * @see #isHostMatch(String)
+ * @see #isHostMatch(String, int)
*/
public static List<HostConfigEntry> findMatchingEntries(String host, HostConfigEntry... entries) {
// TODO in Java-8 use Stream(s) + predicate
@@ -137,7 +137,7 @@ public abstract class HostPatternsHolder {
* @param host The host name / address - ignored if {@code null}/empty
* @param entries The {@link HostConfigEntry}-ies to scan - ignored if {@code null}/empty
* @return A {@link List} of all the matching entries
- * @see #isHostMatch(String)
+ * @see #isHostMatch(String, int)
*/
public static List<HostConfigEntry> findMatchingEntries(String host, Collection<? extends HostConfigEntry> entries) {
// TODO in Java-8 use Stream(s) + predicate
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
index 8ea1a76..839eb7e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
@@ -149,7 +149,9 @@ public final class SelectorUtils {
if (strIdxStart > strIdxEnd) {
// String is exhausted
return true;
- } else return patIdxStart <= patIdxEnd;
+ } else {
+ return patIdxStart <= patIdxEnd;
+ }
// CHECKSTYLE:ON
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java b/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
index a8e5aa7..7b30c7f 100644
--- a/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/client/ClientTest.java
@@ -524,7 +524,6 @@ public class ClientTest extends BaseTestSupport {
}
} catch (IOException e) {
if (!channel.isClosing()) {
- e.printStackTrace();
channel.close(true);
}
}
@@ -543,7 +542,6 @@ public class ClientTest extends BaseTestSupport {
channel.getAsyncOut().read(buffer).addListener(this);
} catch (IOException e) {
if (!channel.isClosing()) {
- e.printStackTrace();
channel.close(true);
}
}
@@ -562,7 +560,6 @@ public class ClientTest extends BaseTestSupport {
channel.getAsyncErr().read(buffer).addListener(this);
} catch (IOException e) {
if (!channel.isClosing()) {
- e.printStackTrace();
channel.close(true);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/test/java/org/apache/sshd/common/forward/PortForwardingLoadTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/forward/PortForwardingLoadTest.java b/sshd-core/src/test/java/org/apache/sshd/common/forward/PortForwardingLoadTest.java
index 0287f75..0184422 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/forward/PortForwardingLoadTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/forward/PortForwardingLoadTest.java
@@ -469,7 +469,7 @@ public class PortForwardingLoadTest extends BaseTestSupport {
}
latch.await();
for (Throwable t : errors) {
- t.printStackTrace();
+ log.warn("{}: {}", t.getClass().getSimpleName(), t.getMessage());
}
assertEquals(0, errors.size());
} finally {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java b/sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java
index 04d36e5..84aee1f 100644
--- a/sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java
@@ -967,7 +967,7 @@ public class ServerTest extends BaseTestSupport {
try {
name.wait();
} catch (InterruptedException e) {
- e.printStackTrace();
+ e.printStackTrace(); // NOPMD
}
}
}
@@ -987,7 +987,7 @@ public class ServerTest extends BaseTestSupport {
} catch (WindowClosedException e) {
// ok, do nothing
} catch (Throwable e) {
- e.printStackTrace();
+ e.printStackTrace(); // NOPMD
} finally {
if (latch != null) {
latch.countDown();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/test/java/org/apache/sshd/util/test/CommandExecutionHelper.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/util/test/CommandExecutionHelper.java b/sshd-core/src/test/java/org/apache/sshd/util/test/CommandExecutionHelper.java
index f036288..ce47a65 100644
--- a/sshd-core/src/test/java/org/apache/sshd/util/test/CommandExecutionHelper.java
+++ b/sshd-core/src/test/java/org/apache/sshd/util/test/CommandExecutionHelper.java
@@ -27,6 +27,7 @@ import java.io.InterruptedIOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
+import org.apache.sshd.common.util.logging.AbstractLoggingBean;
import org.apache.sshd.server.Command;
import org.apache.sshd.server.Environment;
import org.apache.sshd.server.ExitCallback;
@@ -34,7 +35,7 @@ import org.apache.sshd.server.ExitCallback;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
-public abstract class CommandExecutionHelper implements Command, Runnable, ExitCallback {
+public abstract class CommandExecutionHelper extends AbstractLoggingBean implements Command, Runnable, ExitCallback {
private InputStream in;
private OutputStream out;
private OutputStream err;
@@ -133,7 +134,8 @@ public abstract class CommandExecutionHelper implements Command, Runnable, ExitC
OutputStream stderr = getErr();
stderr.write(message.getBytes(StandardCharsets.US_ASCII));
} catch (IOException ioe) {
- ioe.printStackTrace();
+ log.warn("Failed ({}) to write error message={}: {}",
+ e.getClass().getSimpleName(), message, ioe.getMessage());
} finally {
onExit(-1, message);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-core/src/test/java/org/apache/sshd/util/test/JUnit4ClassRunnerWithParametersFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/util/test/JUnit4ClassRunnerWithParametersFactory.java b/sshd-core/src/test/java/org/apache/sshd/util/test/JUnit4ClassRunnerWithParametersFactory.java
index 9dc2308..12ab252 100644
--- a/sshd-core/src/test/java/org/apache/sshd/util/test/JUnit4ClassRunnerWithParametersFactory.java
+++ b/sshd-core/src/test/java/org/apache/sshd/util/test/JUnit4ClassRunnerWithParametersFactory.java
@@ -27,7 +27,7 @@ import org.junit.runners.parameterized.TestWithParameters;
/**
* Avoids re-creating a test class instance for each parameterized test method. Usage:
*
- * <PRE>{@code
+ * <PRE><code>
* @FixMethodOrder(MethodSorters.NAME_ASCENDING)
* @RunWith(Parameterized.class)
* @UseParametersRunnerFactory(JUnit4ClassRunnerWithParametersFactory.class)
@@ -41,7 +41,7 @@ import org.junit.runners.parameterized.TestWithParameters;
* ...
* }
* }
- * }</PRE>
+ * </code></PRE>
*
* @see JUnit4ClassRunnerWithParameters
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java
----------------------------------------------------------------------
diff --git a/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java b/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java
index 3bd202b..500e020 100644
--- a/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java
+++ b/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.sshd.common.channel.ChannelOutputStream;
+import org.apache.sshd.common.util.logging.AbstractLoggingBean;
import org.apache.sshd.server.Command;
import org.apache.sshd.server.Environment;
import org.apache.sshd.server.ExitCallback;
@@ -40,7 +41,7 @@ import org.eclipse.jgit.util.FS;
*
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
-public class GitPackCommand implements Command, Runnable {
+public class GitPackCommand extends AbstractLoggingBean implements Command, Runnable {
private static final int CHAR = 1;
private static final int DELIMITER = 2;
@@ -119,11 +120,16 @@ public class GitPackCommand implements Command, Runnable {
} else {
throw new IllegalArgumentException("Unknown git command: " + command);
}
+
+ if (callback != null) {
+ callback.onExit(0);
+ }
} catch (Throwable t) {
- t.printStackTrace();
- }
- if (callback != null) {
- callback.onExit(0);
+ log.warn("Failed {} to execute command={}: {}",
+ t.getClass().getSimpleName(), command, t.getMessage());
+ if (callback != null) {
+ callback.onExit(-1, t.getClass().getSimpleName());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-git/src/main/java/org/apache/sshd/git/pgm/GitPgmCommand.java
----------------------------------------------------------------------
diff --git a/sshd-git/src/main/java/org/apache/sshd/git/pgm/GitPgmCommand.java b/sshd-git/src/main/java/org/apache/sshd/git/pgm/GitPgmCommand.java
index ae6ff7c..2e6434f 100644
--- a/sshd-git/src/main/java/org/apache/sshd/git/pgm/GitPgmCommand.java
+++ b/sshd-git/src/main/java/org/apache/sshd/git/pgm/GitPgmCommand.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.sshd.common.channel.ChannelOutputStream;
+import org.apache.sshd.common.util.logging.AbstractLoggingBean;
import org.apache.sshd.server.Command;
import org.apache.sshd.server.Environment;
import org.apache.sshd.server.ExitCallback;
@@ -35,7 +36,7 @@ import org.apache.sshd.server.ExitCallback;
*
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
-public class GitPgmCommand implements Command, Runnable {
+public class GitPgmCommand extends AbstractLoggingBean implements Command, Runnable {
private static final int CHAR = 1;
private static final int DELIMITER = 2;
@@ -110,7 +111,8 @@ public class GitPgmCommand implements Command, Runnable {
err.write((t.getMessage() + "\n").getBytes(StandardCharsets.UTF_8));
err.flush();
} catch (IOException e) {
- e.printStackTrace();
+ log.warn("Failed {} to flush command={} failure: {}",
+ e.getClass().getSimpleName(), command, e.getMessage());
}
if (callback != null) {
callback.onExit(-1);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-ldap/src/test/java/org/apache/sshd/server/auth/BaseAuthenticatorTest.java
----------------------------------------------------------------------
diff --git a/sshd-ldap/src/test/java/org/apache/sshd/server/auth/BaseAuthenticatorTest.java b/sshd-ldap/src/test/java/org/apache/sshd/server/auth/BaseAuthenticatorTest.java
index d7ed83c..8244ffe 100644
--- a/sshd-ldap/src/test/java/org/apache/sshd/server/auth/BaseAuthenticatorTest.java
+++ b/sshd-ldap/src/test/java/org/apache/sshd/server/auth/BaseAuthenticatorTest.java
@@ -167,7 +167,6 @@ public abstract class BaseAuthenticatorTest extends BaseTestSupport {
log.info("LDAP server started");
} catch (Exception e) {
log.error("Failed (" + e.getClass().getSimpleName() + ") to start LDAP server: " + e.getMessage(), e);
- e.printStackTrace(System.err);
stopApacheDs(directoryService);
throw e;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/b85bcd52/sshd-pmd-ruleset.xml
----------------------------------------------------------------------
diff --git a/sshd-pmd-ruleset.xml b/sshd-pmd-ruleset.xml
new file mode 100644
index 0000000..39f6bfd
--- /dev/null
+++ b/sshd-pmd-ruleset.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<ruleset name="MINA SSHD PMD ruleset"
+ xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
+
+ <description>
+ This ruleset defines the PMD rules for MINA SSHD project
+ </description>
+
+ <!-- See https://pmd.github.io/pmd-5.6.1/pmd-java/rules/index.html -->
+ <rule ref="rulesets/java/basic.xml/BooleanInstantiation" />
+ <rule ref="rulesets/java/basic.xml/ExtendsObject" />
+
+ <rule ref="rulesets/java/braces.xml" />
+
+ <rule ref="rulesets/java/clone.xml/ProperCloneImplementation" />
+ <rule ref="rulesets/java/clone.xml/CloneMethodMustImplementCloneable" />
+
+ <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID" />
+
+ <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace" />
+</ruleset>
\ No newline at end of file