You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2015/07/16 15:37:13 UTC

[6/6] mina-sshd git commit: Remove boxing / unboxing, remove useless final modifiers, use try with resources, fix a few javadocs

Remove boxing / unboxing, remove useless final modifiers, use try with resources, fix a few javadocs

Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/1c80bb65
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/1c80bb65
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/1c80bb65

Branch: refs/heads/master
Commit: 1c80bb65397d77b29716760b57f41a78271d86bf
Parents: ec48d8b
Author: Guillaume Nodet <gn...@apache.org>
Authored: Thu Jul 16 15:35:12 2015 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Jul 16 15:35:12 2015 +0200

----------------------------------------------------------------------
 .../agent/local/ChannelAgentForwarding.java     |   5 -
 .../java/org/apache/sshd/client/SshKeyScan.java |  17 +--
 .../client/auth/UserAuthPasswordFactory.java    |   1 +
 .../client/auth/UserAuthPublicKeyFactory.java   |   1 +
 .../client/channel/AbstractClientChannel.java   |   6 +-
 .../channel/PtyCapableChannelSession.java       |  22 +--
 .../sshd/client/config/keys/ClientIdentity.java |   2 +-
 .../sshd/client/future/DefaultAuthFuture.java   |   2 +-
 .../subsystem/sftp/AbstractSftpClient.java      |  16 +--
 .../subsystem/sftp/DefaultSftpClient.java       |  16 +--
 .../sshd/client/subsystem/sftp/SftpClient.java  |   9 +-
 .../sshd/client/subsystem/sftp/SftpCommand.java |   2 +-
 .../subsystem/sftp/SftpFileSystemProvider.java  |  32 ++---
 .../sshd/client/subsystem/sftp/SftpPath.java    |   3 -
 .../org/apache/sshd/common/BaseBuilder.java     |   4 +-
 .../apache/sshd/common/FactoryManagerUtils.java |  72 +++++-----
 .../org/apache/sshd/common/NamedFactory.java    |   6 +-
 .../org/apache/sshd/common/NamedResource.java   |   2 +-
 .../java/org/apache/sshd/common/Service.java    |   8 --
 .../org/apache/sshd/common/ServiceFactory.java  |   2 +-
 .../org/apache/sshd/common/SshConstants.java    | 142 +++++++++----------
 .../sshd/common/channel/AbstractChannel.java    |   4 +-
 .../common/channel/ChannelAsyncInputStream.java |   2 +-
 .../org/apache/sshd/common/channel/PtyMode.java |   6 +-
 .../apache/sshd/common/channel/SttySupport.java |   6 +-
 .../sshd/common/cipher/BuiltinCiphers.java      |  48 +++----
 .../common/compression/BuiltinCompressions.java |  30 ++--
 .../sshd/common/compression/Compression.java    |   4 +-
 .../common/config/AllowTcpForwardingValue.java  |   3 +-
 .../common/config/CompressionConfigValue.java   |   2 +-
 .../sshd/common/config/LogLevelValue.java       |   3 +-
 .../sshd/common/config/SshConfigFileReader.java |  94 ++++++------
 .../sshd/common/config/SyslogFacilityValue.java |   3 +-
 .../sshd/common/config/TimeValueConfig.java     |  17 +--
 .../keys/AbstractPublicKeyEntryDecoder.java     |  32 ++---
 .../common/config/keys/BuiltinIdentities.java   |  10 +-
 .../config/keys/ECDSAPublicKeyEntryDecoder.java |   9 +-
 .../sshd/common/config/keys/IdentityUtils.java  |   7 +-
 .../sshd/common/config/keys/PublicKeyEntry.java |   4 +-
 .../sshd/common/file/FileSystemAware.java       |   2 +-
 .../common/forward/DefaultTcpipForwarder.java   |  24 ++--
 .../apache/sshd/common/forward/SocksProxy.java  |   2 +-
 .../sshd/common/future/DefaultCloseFuture.java  |   2 +-
 .../sshd/common/io/AbstractIoWriteFuture.java   |   4 +-
 .../io/BuiltinIoServiceFactoryFactories.java    |   4 +-
 .../apache/sshd/common/io/mina/MinaService.java |  10 +-
 .../sshd/common/io/nio2/Nio2Acceptor.java       |   2 +-
 .../sshd/common/io/nio2/Nio2Connector.java      |   2 +-
 .../apache/sshd/common/io/nio2/Nio2Service.java |   2 +-
 .../apache/sshd/common/io/nio2/Nio2Session.java |   2 +-
 .../sshd/common/kex/BuiltinDHFactories.java     |  16 +--
 .../org/apache/sshd/common/mac/BuiltinMacs.java |  14 +-
 .../scp/LocalFileScpTargetStreamResolver.java   |  10 +-
 .../org/apache/sshd/common/scp/ScpHelper.java   |  56 +++-----
 .../session/AbstractConnectionService.java      |   8 +-
 .../common/signature/BuiltinSignatures.java     |  14 +-
 .../apache/sshd/common/signature/Signature.java |   2 +-
 .../subsystem/sftp/extensions/ParserUtils.java  |   8 +-
 .../org/apache/sshd/common/util/Base64.java     |  14 +-
 .../sshd/common/util/DirectoryScanner.java      |  20 +--
 .../apache/sshd/common/util/GenericUtils.java   |  58 ++++----
 .../org/apache/sshd/common/util/OsUtils.java    |   2 +-
 .../apache/sshd/common/util/SecurityUtils.java  |   8 +-
 .../apache/sshd/common/util/ValidateUtils.java  |  28 ++--
 .../sshd/common/util/buffer/BufferUtils.java    |   4 +-
 .../sshd/common/util/io/NoCloseInputStream.java |   2 +-
 .../common/util/io/NoCloseOutputStream.java     |   2 +-
 .../sshd/common/util/io/NoCloseReader.java      |   2 +-
 .../sshd/common/util/io/NoCloseWriter.java      |   2 +-
 .../sshd/common/util/logging/LoggingUtils.java  |   8 +-
 .../sshd/common/util/threads/ThreadUtils.java   |   2 +-
 .../org/apache/sshd/server/Environment.java     |   8 +-
 .../java/org/apache/sshd/server/Signal.java     |   2 +-
 .../auth/CachingPublicKeyAuthenticator.java     |   4 +-
 .../auth/UserAuthKeyboardInteractive.java       |   2 +-
 .../sshd/server/auth/UserAuthPassword.java      |   2 +-
 .../sshd/server/auth/gss/UserAuthGSS.java       |   2 +-
 .../password/StaticPasswordAuthenticator.java   |   2 +-
 .../pubkey/StaticPublickeyAuthenticator.java    |   2 +-
 .../sshd/server/channel/ChannelSession.java     | 101 ++++++-------
 .../apache/sshd/server/command/ScpCommand.java  |   2 +-
 .../sshd/server/command/ScpCommandFactory.java  |   2 +-
 .../server/config/keys/AuthorizedKeyEntry.java  |  26 ++--
 .../sshd/server/forward/ForwardingFilter.java   |   6 +-
 .../sshd/server/forward/TcpipServerChannel.java |   4 +-
 .../server/jaas/JaasPasswordAuthenticator.java  |  12 +-
 .../server/kex/AbstractDHServerKeyExchange.java |   4 +-
 .../java/org/apache/sshd/server/kex/Moduli.java |   5 +-
 .../server/session/ServerUserAuthService.java   |   4 +-
 .../server/subsystem/sftp/SftpSubsystem.java    | 100 ++++++-------
 90 files changed, 607 insertions(+), 673 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
index 82c67f3..a8e0bd8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
@@ -67,10 +67,6 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
         // be sent after we return.
         //
         super.close(true);
-
-        // We also need to close the socket.
-        //
-//        Socket.close(handle);
     }
 
     @Override
@@ -87,7 +83,6 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
     @Override
     public void handleEof() throws IOException {
         super.handleEof();
-//        close(true);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/SshKeyScan.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/SshKeyScan.java b/sshd-core/src/main/java/org/apache/sshd/client/SshKeyScan.java
index d1d8177..385ad47 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/SshKeyScan.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/SshKeyScan.java
@@ -198,15 +198,14 @@ public class SshKeyScan extends AbstractSimplifiedLog
             client = SshClient.setUpDefaultClient();
             client.setServerKeyVerifier(this);
 
-            BufferedReader rdr = new BufferedReader(new InputStreamReader(getInputStream(), StandardCharsets.UTF_8));
-            try {
+            try (BufferedReader rdr = new BufferedReader(new InputStreamReader(getInputStream(), StandardCharsets.UTF_8))) {
                 client.start();
                 for (String line = rdr.readLine(); line != null; line = rdr.readLine()) {
                     String[] hosts = GenericUtils.split(GenericUtils.trimToEmpty(line), ',');
                     if (GenericUtils.isEmpty(hosts)) {
                         continue;
                     }
-                    
+
                     for (String h : hosts) {
                         if (!isOpen()) {
                             throw new InterruptedIOException("Closed while preparing to contact host=" + h);
@@ -214,7 +213,7 @@ public class SshKeyScan extends AbstractSimplifiedLog
 
                         try {
                             resolveServerKeys(client, h, pairsMap, sigFactories);
-                        } catch(Exception e) {
+                        } catch (Exception e) {
                             // check if interrupted while scanning host keys
                             if (e instanceof InterruptedIOException) {
                                 throw e;
@@ -229,8 +228,6 @@ public class SshKeyScan extends AbstractSimplifiedLog
                         }
                     }
                 }
-            } finally {
-                rdr.close();
             }
         } finally {
             try {
@@ -396,7 +393,7 @@ public class SshKeyScan extends AbstractSimplifiedLog
         log(Level.INFO, sb);
     }
 
-    private static final String toString(SocketAddress addr) {
+    private static String toString(SocketAddress addr) {
         if (addr == null) {
             return null;
         } else if (addr instanceof InetSocketAddress) {
@@ -532,7 +529,7 @@ public class SshKeyScan extends AbstractSimplifiedLog
     //////////////////////////////////////////////////////////////////////////
 
     // returns a List of the hosts to be contacted
-    public static final List<String> parseCommandLineArguments(SshKeyScan scanner, String ... args) throws IOException {
+    public static List<String> parseCommandLineArguments(SshKeyScan scanner, String ... args) throws IOException {
         int numArgs = GenericUtils.length(args);
         for (int index=0; index < numArgs; index++) {
             String optName = args[index];
@@ -599,7 +596,7 @@ public class SshKeyScan extends AbstractSimplifiedLog
 
     /* -------------------------------------------------------------------- */
 
-    public static final <S extends SshKeyScan> S setInputStream(S scanner, Collection<String> hosts) throws IOException {
+    public static <S extends SshKeyScan> S setInputStream(S scanner, Collection<String> hosts) throws IOException {
         if (GenericUtils.isEmpty(hosts)) {
             ValidateUtils.checkNotNull(scanner.getInputStream(), "No hosts or file specified");
         } else {
@@ -622,7 +619,7 @@ public class SshKeyScan extends AbstractSimplifiedLog
         return scanner;
     }
 
-    public static final <S extends SshKeyScan> S initializeScanner(S scanner, Collection<String> hosts) throws IOException {
+    public static <S extends SshKeyScan> S initializeScanner(S scanner, Collection<String> hosts) throws IOException {
         setInputStream(scanner, hosts);
         if (scanner.getPort() <= 0) {
             scanner.setPort(SshConfigFileReader.DEFAULT_PORT);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPasswordFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPasswordFactory.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPasswordFactory.java
index 43c6db9..c22d146 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPasswordFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPasswordFactory.java
@@ -32,6 +32,7 @@ public class UserAuthPasswordFactory implements UserAuthFactory {
     public String getName() {
         return "password";
     }
+
     @Override
     public UserAuth create() {
         return new UserAuthPassword();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKeyFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKeyFactory.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKeyFactory.java
index be3e278..6b813f5 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKeyFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKeyFactory.java
@@ -33,6 +33,7 @@ public class UserAuthPublicKeyFactory implements UserAuthFactory {
     public String getName() {
         return NAME;
     }
+
     @Override
     public UserAuth create() {
         return new UserAuthPublicKey();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
index c1e6fbe..a4b26c3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
@@ -193,7 +193,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
                 if ((cond & mask) != 0) {
                     if (log.isTraceEnabled()) {
                         log.trace("WaitFor call returning on channel {}, mask={}, cond={}",
-                                  new Object[] { this, Integer.valueOf(mask), Integer.valueOf(cond) });
+                                  this, mask, cond);
                     }
                     return cond;
                 }
@@ -210,7 +210,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
                 }
                 try {
                     if (log.isTraceEnabled()) {
-                        log.trace("Waiting for lock on channel {}, mask={}, cond={}", this, Integer.valueOf(mask), Integer.valueOf(cond));
+                        log.trace("Waiting for lock on channel {}, mask={}, cond={}", this, mask, cond);
                     }
                     if (timeout > 0) {
                         lock.wait(timeout);
@@ -337,7 +337,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
         @Override
         public Result process(Channel channel, String request, boolean wantReply, Buffer buffer) throws Exception {
             if ("exit-status".equals(request)) {
-                exitStatus = Integer.valueOf(buffer.getInt());
+                exitStatus = buffer.getInt();
                 notifyStateChanged();
                 return Result.ReplySuccess;
             }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
index d3eee76..8684bdc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/PtyCapableChannelSession.java
@@ -78,13 +78,13 @@ public class PtyCapableChannelSession extends ChannelSession {
                 private static final long serialVersionUID = 1L;    // we're not serializing it
 
                 {
-                    put(PtyMode.ISIG, Integer.valueOf(1));
-                    put(PtyMode.ICANON, Integer.valueOf(1));
-                    put(PtyMode.ECHO, Integer.valueOf(1));
-                    put(PtyMode.ECHOE, Integer.valueOf(1));
-                    put(PtyMode.ECHOK, Integer.valueOf(1));
-                    put(PtyMode.ECHONL, Integer.valueOf(0));
-                    put(PtyMode.NOFLSH, Integer.valueOf(0));
+                    put(PtyMode.ISIG, 1);
+                    put(PtyMode.ICANON, 1);
+                    put(PtyMode.ECHO, 1);
+                    put(PtyMode.ECHOE, 1);
+                    put(PtyMode.ECHOK, 1);
+                    put(PtyMode.ECHONL, 0);
+                    put(PtyMode.NOFLSH, 0);
                 }
             });
 
@@ -95,8 +95,8 @@ public class PtyCapableChannelSession extends ChannelSession {
     private int ptyLines = DEFAULT_ROWS_COUNT;
     private int ptyWidth = DEFAULT_WIDTH;
     private int ptyHeight = DEFAULT_HEIGHT;
-    private Map<PtyMode, Integer> ptyModes = new EnumMap<PtyMode, Integer>(PtyMode.class);
-    private final Map<String, String> env = new LinkedHashMap<String, String>();
+    private Map<PtyMode, Integer> ptyModes = new EnumMap<>(PtyMode.class);
+    private final Map<String, String> env = new LinkedHashMap<>();
 
     public PtyCapableChannelSession(boolean usePty) {
         this.usePty = usePty;
@@ -207,8 +207,8 @@ public class PtyCapableChannelSession extends ChannelSession {
         if (usePty) {
             if (log.isDebugEnabled()) {
                 log.debug("Send SSH_MSG_CHANNEL_REQUEST pty-req: type={}, cols={}, lines={}, height={}, width={}, modes={}",
-                          ptyType, Integer.valueOf(ptyColumns), Integer.valueOf(ptyLines),
-                          Integer.valueOf(ptyHeight), Integer.valueOf(ptyWidth), ptyModes);
+                          ptyType, ptyColumns, ptyLines,
+                          ptyHeight, ptyWidth, ptyModes);
             }
 
             buffer = session.createBuffer(SshConstants.SSH_MSG_CHANNEL_REQUEST);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentity.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentity.java b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentity.java
index c32ab84..3bc8a05 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentity.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentity.java
@@ -281,7 +281,7 @@ public final class ClientIdentity {
      * <U>insensitive</U>), value=the {@link KeyPair} of the identity
      * @throws IOException If failed to access the file system
      * @throws GeneralSecurityException If failed to load the keys
-     * @see #scanIdentitiesFolder(Path, Collection, Transformer, LinkOption...)
+     * @see #scanIdentitiesFolder(Path, boolean, Collection, Transformer, LinkOption...)
      * @see IdentityUtils#loadIdentities(Map, FilePasswordProvider, OpenOption...)
      */
     public static Map<String,KeyPair> loadIdentities(

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
index 93005be..9a79045 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
@@ -79,7 +79,7 @@ public class DefaultAuthFuture extends DefaultSshFuture<AuthFuture> implements A
 
     @Override   // TODO for JDK-8 make this a default method
     public void setAuthed(boolean authed) {
-        setValue(Boolean.valueOf(authed));
+        setValue(authed);
     }
 
     @Override   // TODO for JDK-8 make this a default method

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
index 34854ec..f896a8d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
@@ -265,7 +265,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
             String msg = buffer.getString();
             String lang = buffer.getString();
             if (log.isTraceEnabled()) {
-                log.trace("checkStatus(id={}) - status: {} [{}] {}", Integer.valueOf(id), Integer.valueOf(substatus), lang, msg);
+                log.trace("checkStatus(id={}) - status: {} [{}] {}", id, substatus, lang, msg);
             }
 
             if (substatus != SSH_FX_OK) {
@@ -285,7 +285,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
             String msg = buffer.getString();
             String lang = buffer.getString();
             if (log.isTraceEnabled()) {
-                log.trace("checkHandle(id={}) - status: {} [{}] {}", Integer.valueOf(id), Integer.valueOf(substatus), lang, msg);
+                log.trace("checkHandle(id={}) - status: {} [{}] {}", id, substatus, lang, msg);
             }
             throw new SftpException(substatus, msg);
         } else if (type == SSH_FXP_HANDLE) {
@@ -304,7 +304,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
             String msg = buffer.getString();
             String lang = buffer.getString();
             if (log.isTraceEnabled()) {
-                log.trace("checkAttributes(id={}) - status: {} [{}] {}", Integer.valueOf(id), Integer.valueOf(substatus), lang, msg);
+                log.trace("checkAttributes(id={}) - status: {} [{}] {}", id, substatus, lang, msg);
             }
             throw new SftpException(substatus, msg);
         } else if (type == SSH_FXP_ATTRS) {
@@ -323,7 +323,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
             String msg = buffer.getString();
             String lang = buffer.getString();
             if (log.isTraceEnabled()) {
-                log.trace("checkOneName(id={}) - status: {} [{}] {}", Integer.valueOf(id), Integer.valueOf(substatus), lang, msg);
+                log.trace("checkOneName(id={}) - status: {} [{}] {}", id, substatus, lang, msg);
             }
             throw new SftpException(substatus, msg);
         } else if (type == SSH_FXP_NAME) {
@@ -338,7 +338,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
             }
             Attributes attrs = readAttributes(buffer);
             if (log.isTraceEnabled()) {
-                log.trace("checkOneName(id={}) ({})[{}]: {}", Integer.valueOf(id), name, longName, attrs);
+                log.trace("checkOneName(id={}) ({})[{}]: {}", id, name, longName, attrs);
             }
             return name;
         } else {
@@ -689,7 +689,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
             String msg = buffer.getString();
             String lang = buffer.getString();
             if (log.isTraceEnabled()) {
-                log.trace("checkData(id={}) - status: {} [{}] {}", Integer.valueOf(id), Integer.valueOf(substatus), lang, msg);
+                log.trace("checkData(id={}) - status: {} [{}] {}", id, substatus, lang, msg);
             }
 
             if (substatus == SSH_FX_EOF) {
@@ -792,7 +792,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
             String msg = buffer.getString();
             String lang = buffer.getString();
             if (log.isTraceEnabled()) {
-                log.trace("checkDir(id={}) - status: {} [{}] {}", Integer.valueOf(id), Integer.valueOf(substatus), lang, msg);
+                log.trace("checkDir(id={}) - status: {} [{}] {}", id, substatus, lang, msg);
             }
             if (substatus == SSH_FX_EOF) {
                 return null;
@@ -807,7 +807,7 @@ public abstract class AbstractSftpClient extends AbstractLoggingBean implements
                 String longName = (version == SFTP_V3) ? buffer.getString() : null;
                 Attributes attrs = readAttributes(buffer);
                 if (log.isTraceEnabled()) {
-                    log.trace("checkDir(id={})[{}] ({})[{}]: {}", Integer.valueOf(id), Integer.valueOf(i), name, longName, attrs);
+                    log.trace("checkDir(id={})[{}] ({})[{}]: {}", id, i, name, longName, attrs);
                 }
 
                 entries.add(new DirEntry(name, longName, attrs));

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
index 1d4ee38..12830d5 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
@@ -190,7 +190,7 @@ public class DefaultSftpClient extends AbstractSftpClient {
         int id = buffer.getInt();
         buffer.rpos(0);
         synchronized (messages) {
-            messages.put(Integer.valueOf(id), buffer);
+            messages.put(id, buffer);
             messages.notifyAll();
         }
     }
@@ -214,7 +214,7 @@ public class DefaultSftpClient extends AbstractSftpClient {
                 if (closing) {
                     throw new SshException("Channel has been closed");
                 }
-                Buffer buffer = messages.remove(Integer.valueOf(id));
+                Buffer buffer = messages.remove(id);
                 if (buffer != null) {
                     return buffer;
                 }
@@ -292,7 +292,7 @@ public class DefaultSftpClient extends AbstractSftpClient {
             String msg = buffer.getString();
             String lang = buffer.getString();
             if (log.isTraceEnabled()) {
-                log.trace("init(id={}) - status: {} [{}] {}", Integer.valueOf(id), Integer.valueOf(substatus), lang, msg);
+                log.trace("init(id={}) - status: {} [{}] {}", id, substatus, lang, msg);
             }
 
             throw new SftpException(substatus, msg);
@@ -308,24 +308,22 @@ public class DefaultSftpClient extends AbstractSftpClient {
      */
     public int negotiateVersion(SftpVersionSelector selector) throws IOException {
         int current = getVersion();
-        Set<Integer> available = GenericUtils.asSortedSet(Collections.singleton(Integer.valueOf(current)));
+        Set<Integer> available = GenericUtils.asSortedSet(Collections.singleton(current));
         Map<String,?> parsed = getParsedServerExtensions();
         Collection<String> extensions = ParserUtils.supportedExtensions(parsed);
-        if ((GenericUtils.size(extensions) > 0) && extensions.contains(SftpConstants.EXT_VERSELECT)) {
+        if (!GenericUtils.isEmpty(extensions) && extensions.contains(SftpConstants.EXT_VERSELECT)) {
             Versions vers = GenericUtils.isEmpty(parsed) ? null : (Versions) parsed.get(SftpConstants.EXT_VERSIONS);
             Collection<String> reported = (vers == null) ? null : vers.versions;
             if (GenericUtils.size(reported) > 0) {
                 for (String v : reported) {
-                    if (!available.add(Integer.valueOf(v))) {
-                        continue;
-                    }
+                    available.add(Integer.valueOf(v));
                 }
             }
         }
 
         int selected = selector.selectVersion(current, new ArrayList<>(available));
         if (log.isDebugEnabled()) {
-            log.debug("negotiateVersion({}) {} -> {}", Integer.valueOf(current), available, Integer.valueOf(selected));
+            log.debug("negotiateVersion({}) {} -> {}", current, available, selected);
         }
 
         if (selected == current) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClient.java
index c9cf68a..598a2fe 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClient.java
@@ -73,7 +73,7 @@ public interface SftpClient extends SubsystemClient {
         CreateTime,
     }
 
-    public static class Handle {
+    class Handle {
         private final byte[] id;
 
         public Handle(byte[] id) {
@@ -126,13 +126,13 @@ public interface SftpClient extends SubsystemClient {
         }
     }
 
-    public static abstract class CloseableHandle extends Handle implements Channel, Closeable {
+    abstract class CloseableHandle extends Handle implements Channel, Closeable {
         protected CloseableHandle(byte[] id) {
             super(id);
         }
     }
 
-    public static class Attributes {
+    class Attributes {
         public final Set<Attribute> flags = EnumSet.noneOf(Attribute.class);
         public long size;
         public int type;
@@ -252,7 +252,7 @@ public interface SftpClient extends SubsystemClient {
         }
     }
 
-    public static class DirEntry {
+    class DirEntry {
         public String filename;
         public String longFilename;
         public Attributes attributes;
@@ -410,7 +410,6 @@ public interface SftpClient extends SubsystemClient {
 
     /**
      * @param extensionName The extension name
-     * @return The {@link SftpClientExtension} name - ignored if {@code null}/empty
      * @return The extension instance - <B>Note:</B> it is up to the caller
      * to invoke {@link SftpClientExtension#isSupported()} - {@code null} if
      * this extension type is not implemented by the client

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
index 39686f7..fea2b6b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpCommand.java
@@ -371,7 +371,7 @@ public class SftpCommand implements Channel {
         }
     }
 
-    public static interface CommandExecutor extends NamedResource {
+    public interface CommandExecutor extends NamedResource {
         // return value is whether to stop running
         boolean executeCommand(String args, BufferedReader stdin, PrintStream stdout, PrintStream stderr) throws Exception; 
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileSystemProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileSystemProvider.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileSystemProvider.java
index fa374ef..986f015 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileSystemProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileSystemProvider.java
@@ -448,7 +448,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
         if (replaceExisting) {
             deleteIfExists(target);
         } else {
-            if (status.booleanValue()) {
+            if (status) {
                 throw new FileAlreadyExistsException(target.toString());
             }
         }
@@ -515,7 +515,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
 
         if (replaceExisting) {
             deleteIfExists(target);
-        } else if (status.booleanValue()) {
+        } else if (status) {
             throw new FileAlreadyExistsException(target.toString());
         }
 
@@ -813,19 +813,19 @@ public class SftpFileSystemProvider extends FileSystemProvider {
                     map.put(attr, v.creationTime());
                     break;
                 case "size":
-                    map.put(attr, Long.valueOf(v.size()));
+                    map.put(attr, v.size());
                     break;
                 case "isRegularFile":
-                    map.put(attr, Boolean.valueOf(v.isRegularFile()));
+                    map.put(attr, v.isRegularFile());
                     break;
                 case "isDirectory":
-                    map.put(attr, Boolean.valueOf(v.isDirectory()));
+                    map.put(attr, v.isDirectory());
                     break;
                 case "isSymbolicLink":
-                    map.put(attr, Boolean.valueOf(v.isSymbolicLink()));
+                    map.put(attr, v.isSymbolicLink());
                     break;
                 case "isOther":
-                    map.put(attr, Boolean.valueOf(v.isOther()));
+                    map.put(attr, v.isOther());
                     break;
                 case "fileKey":
                     map.put(attr, v.fileKey());
@@ -1097,7 +1097,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
             }
         }
 
-        return String.format("%04o", Integer.valueOf(pf));
+        return String.format("%04o", pf);
     }
 
     /**
@@ -1107,7 +1107,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
      * @return The unique identifier
      * @see #getFileSystemIdentifier(String, int, String)
      */
-    public static final String getFileSystemIdentifier(URI uri) {
+    public static String getFileSystemIdentifier(URI uri) {
         String userInfo = ValidateUtils.checkNotNullAndNotEmpty(uri.getUserInfo(), "UserInfo not provided");
         String[] ui = GenericUtils.split(userInfo, ':');
         ValidateUtils.checkTrue(GenericUtils.length(ui) == 2, "Invalid user info: %s", userInfo);
@@ -1120,7 +1120,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
      * @return The unique identifier
      * @see #getFileSystemIdentifier(String, int, String)
      */
-    public static final String getFileSystemIdentifier(ClientSession session) {
+    public static String getFileSystemIdentifier(ClientSession session) {
         IoSession ioSession = session.getIoSession();
         SocketAddress addr = ioSession.getRemoteAddress();
         String username = session.getUsername();
@@ -1132,15 +1132,13 @@ public class SftpFileSystemProvider extends FileSystemProvider {
         }
     }
 
-    public static final String getFileSystemIdentifier(String host, int port, String username) {
-        return new StringBuilder(GenericUtils.length(host) + 1 + /* port */ + 5 + 1 + GenericUtils.length(username))
-                .append(GenericUtils.trimToEmpty(host))
-                .append(':').append((port <= 0) ? SshConfigFileReader.DEFAULT_PORT : port)
-                .append(':').append(GenericUtils.trimToEmpty(username))
-                .toString();
+    public static String getFileSystemIdentifier(String host, int port, String username) {
+        return GenericUtils.trimToEmpty(host) + ':'
+                + ((port <= 0) ? SshConfigFileReader.DEFAULT_PORT : port) + ':'
+                + GenericUtils.trimToEmpty(username);
     }
 
-    public static final URI createFileSystemURI(String host, int port, String username, String password) {
+    public static URI createFileSystemURI(String host, int port, String username, String password) {
         return URI.create(SftpConstants.SFTP_SUBSYSTEM_NAME + "://" + username + ":" + password + "@" + host + ":" + port + "/");
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpPath.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpPath.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpPath.java
index f130d1a..91f5cda 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpPath.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpPath.java
@@ -33,9 +33,6 @@ public class SftpPath extends BasePath<SftpPath, SftpFileSystem> {
 
     @Override
     public SftpPath toRealPath(LinkOption... options) throws IOException {
-//        try (SftpClient client = fileSystem.getClient()) {
-//            client.realP
-//        }
         // TODO: handle links
         SftpPath absolute = toAbsolutePath();
         FileSystem fs = getFileSystem();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java b/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java
index 9f16618..c79acbc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/BaseBuilder.java
@@ -286,7 +286,7 @@ public class BaseBuilder<T extends AbstractFactoryManager, S extends BaseBuilder
      * MACs according to the <tt>ignoreUnsupported</tt> parameter
      * @see BuiltinMacs#isSupported()
      */
-    public static final List<NamedFactory<Mac>> setUpDefaultMacs(boolean ignoreUnsupported) {
+    public static List<NamedFactory<Mac>> setUpDefaultMacs(boolean ignoreUnsupported) {
         return NamedFactory.Utils.setUpBuiltinFactories(ignoreUnsupported, DEFAULT_MAC_PREFERENCE);
     }
     
@@ -316,7 +316,7 @@ public class BaseBuilder<T extends AbstractFactoryManager, S extends BaseBuilder
      * signatures according to the <tt>ignoreUnsupported</tt> parameter
      * @see BuiltinSignatures#isSupported()
      */
-    public static final List<NamedFactory<Signature>> setUpDefaultSignatures(boolean ignoreUnsupported) {
+    public static List<NamedFactory<Signature>> setUpDefaultSignatures(boolean ignoreUnsupported) {
         return NamedFactory.Utils.setUpBuiltinFactories(ignoreUnsupported, DEFAULT_SIGNATURE_PREFERENCE);
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java
index ecfc04e..10ecbd9 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerUtils.java
@@ -36,7 +36,7 @@ public class FactoryManagerUtils {
      * @return The resolved property
      * @throws NumberFormatException if malformed value
      */
-    public static final long getLongProperty(Session session, String name, long defaultValue) {
+    public static long getLongProperty(Session session, String name, long defaultValue) {
         return getLongProperty(session.getFactoryManager(), name, defaultValue);
     }
 
@@ -48,7 +48,7 @@ public class FactoryManagerUtils {
      * @return The resolved property
      * @throws NumberFormatException if malformed value
      */
-    public static final long getLongProperty(FactoryManager manager, String name, long defaultValue) {
+    public static long getLongProperty(FactoryManager manager, String name, long defaultValue) {
         return getLongProperty(manager.getProperties(), name, defaultValue);
     }
 
@@ -60,12 +60,12 @@ public class FactoryManagerUtils {
      * @return The resolved property
      * @throws NumberFormatException if malformed value
      */
-    public static final long getLongProperty(Map<String,?> props, String name, long defaultValue) {
+    public static long getLongProperty(Map<String,?> props, String name, long defaultValue) {
         Object value = GenericUtils.isEmpty(props) ? null : props.get(name);
         if (value == null) {
             return defaultValue;
         } else if (value instanceof Long) {
-            return ((Long) value).longValue();
+            return (Long) value;
         } else {    // we parse the string in case it is not a valid long value
             return Long.parseLong(value.toString());
         }
@@ -77,7 +77,7 @@ public class FactoryManagerUtils {
      * @return The {@link Long} value or {@code null} if property not found or empty string
      * @throws NumberFormatException if malformed value
      */
-    public static final Long getLong(Session session, String name) {
+    public static Long getLong(Session session, String name) {
         return getLong(session.getFactoryManager(), name);
     }
 
@@ -87,7 +87,7 @@ public class FactoryManagerUtils {
      * @return The {@link Long} value or {@code null} if property not found
      * @throws NumberFormatException if malformed value
      */
-    public static final Long getLong(FactoryManager manager, String name) {
+    public static Long getLong(FactoryManager manager, String name) {
         return getLong(manager.getProperties(), name);
     }
 
@@ -98,7 +98,7 @@ public class FactoryManagerUtils {
      * empty string
      * @throws NumberFormatException if malformed value
      */
-    public static final Long getLong(Map<String,?> props, String name) {
+    public static Long getLong(Map<String,?> props, String name) {
         Object value = GenericUtils.isEmpty(props) ? null : props.get(name);
         if (value == null) {
             return null;
@@ -109,46 +109,46 @@ public class FactoryManagerUtils {
         }
     }
 
-    public static final Object updateProperty(Session session, String name, long value) {
+    public static Object updateProperty(Session session, String name, long value) {
         return updateProperty(session, name, Long.toString(value));
     }
 
-    public static final Object updateProperty(FactoryManager manager, String name, long value) {
+    public static Object updateProperty(FactoryManager manager, String name, long value) {
         return updateProperty(manager.getProperties(), name, value);
     }
 
-    public static final Object updateProperty(Map<String,Object> props, String name, long value) {
+    public static Object updateProperty(Map<String,Object> props, String name, long value) {
         return updateProperty(props, name, Long.valueOf(value));
     }
 
-    public static final int getIntProperty(Session session, String name, int defaultValue) {
+    public static int getIntProperty(Session session, String name, int defaultValue) {
         return getIntProperty(session.getFactoryManager(), name, defaultValue);
     }
 
-    public static final int getIntProperty(FactoryManager manager, String name, int defaultValue) {
+    public static int getIntProperty(FactoryManager manager, String name, int defaultValue) {
         return getIntProperty(manager.getProperties(), name, defaultValue);
     }
 
-    public static final int getIntProperty(Map<String,?> props, String name, int defaultValue) {
+    public static int getIntProperty(Map<String,?> props, String name, int defaultValue) {
         Object value = GenericUtils.isEmpty(props) ? null : props.get(name);
         if (value == null) {
             return defaultValue;
         } else if (value instanceof Integer) {
-            return ((Integer) value).intValue();
+            return (Integer) value;
         } else {    // we parse the string in case this is NOT an integer
             return Integer.parseInt(value.toString());
         }
     }
 
-    public static final Integer getInteger(Session session, String name) {
+    public static Integer getInteger(Session session, String name) {
         return getInteger(session.getFactoryManager(), name);
     }
 
-    public static final Integer getInteger(FactoryManager manager, String name) {
+    public static Integer getInteger(FactoryManager manager, String name) {
         return getInteger(manager.getProperties(), name);
     }
 
-    public static final Integer getInteger(Map<String,?> props, String name) {
+    public static Integer getInteger(Map<String,?> props, String name) {
         Object value = GenericUtils.isEmpty(props) ? null : props.get(name);
         if (value == null) {
             return null;
@@ -159,44 +159,44 @@ public class FactoryManagerUtils {
         }
     }
 
-    public static final Object updateProperty(Session session, String name, int value) {
+    public static Object updateProperty(Session session, String name, int value) {
         return updateProperty(session.getFactoryManager(), name, value);
     }
 
-    public static final Object updateProperty(FactoryManager manager, String name, int value) {
+    public static Object updateProperty(FactoryManager manager, String name, int value) {
         return updateProperty(manager.getProperties(), name, value);
     }
 
-    public static final Object updateProperty(Map<String,Object> props, String name, int value) {
+    public static Object updateProperty(Map<String,Object> props, String name, int value) {
         return updateProperty(props, name, Integer.valueOf(value));
     }
 
-    public static final boolean getBooleanProperty(Session session, String name, boolean defaultValue) {
+    public static boolean getBooleanProperty(Session session, String name, boolean defaultValue) {
         return getBooleanProperty(session.getFactoryManager(), name, defaultValue);
     }
 
-    public static final boolean getBooleanProperty(FactoryManager manager, String name, boolean defaultValue) {
+    public static boolean getBooleanProperty(FactoryManager manager, String name, boolean defaultValue) {
         return getBooleanProperty(manager.getProperties(), name, defaultValue);
     }
 
-    public static final boolean getBooleanProperty(Map<String,?> props, String name, boolean defaultValue) {
+    public static boolean getBooleanProperty(Map<String,?> props, String name, boolean defaultValue) {
         Boolean value = getBoolean(props, name);
         if (value == null) {
             return defaultValue;
         } else {
-            return value.booleanValue();
+            return value;
         }
     }
 
-    public static final Boolean getBoolean(Session session, String name) {
+    public static Boolean getBoolean(Session session, String name) {
         return getBoolean(session.getFactoryManager(), name);
     }
 
-    public static final Boolean getBoolean(FactoryManager manager, String name) {
+    public static Boolean getBoolean(FactoryManager manager, String name) {
         return getBoolean(manager.getProperties(), name);
     }
 
-    public static final Boolean getBoolean(Map<String,?> props, String name) {
+    public static Boolean getBoolean(Map<String,?> props, String name) {
         Object  value = GenericUtils.isEmpty(props) ? null : props.get(name);
         if (value == null) {
             return null;
@@ -207,39 +207,39 @@ public class FactoryManagerUtils {
         }
     }
 
-    public static final Object updateProperty(Session session, String name, boolean value) {
+    public static Object updateProperty(Session session, String name, boolean value) {
         return updateProperty(session.getFactoryManager(), name, value);
     }
 
-    public static final Object updateProperty(FactoryManager manager, String name, boolean value) {
+    public static Object updateProperty(FactoryManager manager, String name, boolean value) {
         return updateProperty(manager.getProperties(), name, value);
     }
 
-    public static final Object updateProperty(Map<String,Object> props, String name, boolean value) {
+    public static Object updateProperty(Map<String,Object> props, String name, boolean value) {
         return updateProperty(props, name, Boolean.valueOf(value));
     }
 
-    public static final String getString(Session session, String name) {
+    public static String getString(Session session, String name) {
         return getStringProperty(session, name, null);
     }
 
-    public static final String getStringProperty(Session session, String name, String defaultValue) {
+    public static String getStringProperty(Session session, String name, String defaultValue) {
         return getStringProperty(session.getFactoryManager(), name, defaultValue);
     }
 
-    public static final String getString(FactoryManager manager, String name) {
+    public static String getString(FactoryManager manager, String name) {
         return getStringProperty(manager, name, null);
     }
 
-    public static final String getStringProperty(FactoryManager manager, String name, String defaultValue) {
+    public static String getStringProperty(FactoryManager manager, String name, String defaultValue) {
         return getStringProperty(manager.getProperties(), name, defaultValue);
     }
 
-    public static final String getString(Map<String,?> props, String name) {
+    public static String getString(Map<String,?> props, String name) {
         return getStringProperty(props, name, null);
     }
 
-    public static final String getStringProperty(Map<String,?> props, String name, String defaultValue) {
+    public static String getStringProperty(Map<String,?> props, String name, String defaultValue) {
         Object value = GenericUtils.isEmpty(props) ? null : props.get(name);
         String s = (value == null) ? null : value.toString();
         if (GenericUtils.isEmpty(s)) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java
index 321f1eb..647fbbf 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/NamedFactory.java
@@ -34,7 +34,7 @@ public interface NamedFactory<T> extends Factory<T>, NamedResource {
     /**
      * Utility class to help using NamedFactories
      */
-    public static final class Utils {
+    final class Utils {
         /**
          * Create an instance of the specified name by looking up the needed factory
          * in the list.
@@ -52,7 +52,7 @@ public interface NamedFactory<T> extends Factory<T>, NamedResource {
             }
         }
 
-        public static final <S extends OptionalFeature,T,E extends NamedFactory<T>> List<NamedFactory<T>> setUpTransformedFactories(
+        public static <S extends OptionalFeature,T,E extends NamedFactory<T>> List<NamedFactory<T>> setUpTransformedFactories(
                 boolean ignoreUnsupported, Collection<? extends S> preferred, Transformer<? super S,? extends E> xform) {
             List<NamedFactory<T>>   avail=new ArrayList<>(preferred.size());
             for (S f : preferred) {
@@ -64,7 +64,7 @@ public interface NamedFactory<T> extends Factory<T>, NamedResource {
             return avail;
         }
 
-        public static final <T,E extends NamedFactory<T> & OptionalFeature> List<NamedFactory<T>> setUpBuiltinFactories(
+        public static <T,E extends NamedFactory<T> & OptionalFeature> List<NamedFactory<T>> setUpBuiltinFactories(
                 boolean ignoreUnsupported, Collection<? extends E> preferred) {
             List<NamedFactory<T>>   avail=new ArrayList<>(preferred.size());
             for (E f : preferred) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java b/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
index 08da1c5..6c59134 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
@@ -66,7 +66,7 @@ public interface NamedResource {
     /**
      * Utility class to help using {@link NamedResource}s
      */
-    public static final class Utils {
+    final class Utils {
         /**
          * @param resources The named resources
          * @return A {@link List} of all the factories names - in same order

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/Service.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/Service.java b/sshd-core/src/main/java/org/apache/sshd/common/Service.java
index a70de53..054816b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/Service.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/Service.java
@@ -43,12 +43,4 @@ public interface Service extends Closeable {
      */
     void process(int cmd, Buffer buffer) throws Exception;
 
-    /**
-     * Close the service.
-     * @param immediately
-     *
-     */
-    @Override
-    CloseFuture close(boolean immediately);
-
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java
index 60dc1e3..c2be440 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/ServiceFactory.java
@@ -29,7 +29,7 @@ public interface ServiceFactory extends NamedResource {
     /**
      * Utility class to help using NamedFactories
      */
-    public static class Utils {
+    class Utils {
         /**
          * Create an instance of the specified name by looking up the needed factory
          * in the list (case <U>insensitive</U>.

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
index 008e66a..606e774 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
@@ -24,90 +24,90 @@ package org.apache.sshd.common;
  *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-public interface SshConstants {
+public final class SshConstants {
 
     //
     // SSH message identifiers
     //
 
-    static final byte SSH_MSG_DISCONNECT=                      1;
-    static final byte SSH_MSG_IGNORE=                          2;
-    static final byte SSH_MSG_UNIMPLEMENTED=                   3;
-    static final byte SSH_MSG_DEBUG=                           4;
-    static final byte SSH_MSG_SERVICE_REQUEST=                 5;
-    static final byte SSH_MSG_SERVICE_ACCEPT=                  6;
-    static final byte SSH_MSG_KEXINIT=                        20;
-        static final int MSG_KEX_COOKIE_SIZE = 16;
-    static final byte SSH_MSG_NEWKEYS=                        21;
-
-    static final byte SSH_MSG_KEX_FIRST=                      30;
-    static final byte SSH_MSG_KEX_LAST=                       49;
-
-    static final byte SSH_MSG_KEXDH_INIT=                     30;
-    static final byte SSH_MSG_KEXDH_REPLY=                    31;
-
-    static final byte SSH_MSG_KEX_DH_GEX_REQUEST_OLD=         30;
-    static final byte SSH_MSG_KEX_DH_GEX_GROUP=               31;
-    static final byte SSH_MSG_KEX_DH_GEX_INIT=                32;
-    static final byte SSH_MSG_KEX_DH_GEX_REPLY=               33;
-    static final byte SSH_MSG_KEX_DH_GEX_REQUEST=             34;
-
-    static final byte SSH_MSG_USERAUTH_REQUEST=               50;
-    static final byte SSH_MSG_USERAUTH_FAILURE=               51;
-    static final byte SSH_MSG_USERAUTH_SUCCESS=               52;
-    static final byte SSH_MSG_USERAUTH_BANNER=                53;
-
-    static final byte SSH_MSG_USERAUTH_INFO_REQUEST=          60;
-    static final byte SSH_MSG_USERAUTH_INFO_RESPONSE=         61;
-
-    static final byte SSH_MSG_USERAUTH_PK_OK=                 60;
-
-    static final byte SSH_MSG_USERAUTH_PASSWD_CHANGEREQ=      60;
-
-    static final byte SSH_MSG_USERAUTH_GSSAPI_MIC=            66;
-
-    static final byte SSH_MSG_GLOBAL_REQUEST=                 80;
-    static final byte SSH_MSG_REQUEST_SUCCESS=                81;
-    static final byte SSH_MSG_REQUEST_FAILURE=                82;
-    static final byte SSH_MSG_CHANNEL_OPEN=                   90;
-    static final byte SSH_MSG_CHANNEL_OPEN_CONFIRMATION=      91;
-    static final byte SSH_MSG_CHANNEL_OPEN_FAILURE=           92;
-    static final byte SSH_MSG_CHANNEL_WINDOW_ADJUST=          93;
-    static final byte SSH_MSG_CHANNEL_DATA=                   94;
-    static final byte SSH_MSG_CHANNEL_EXTENDED_DATA=          95;
-    static final byte SSH_MSG_CHANNEL_EOF=                    96;
-    static final byte SSH_MSG_CHANNEL_CLOSE=                  97;
-    static final byte SSH_MSG_CHANNEL_REQUEST=                98;
-    static final byte SSH_MSG_CHANNEL_SUCCESS=                99;
-    static final byte SSH_MSG_CHANNEL_FAILURE=               100;
+    public static final byte SSH_MSG_DISCONNECT=                      1;
+    public static final byte SSH_MSG_IGNORE=                          2;
+    public static final byte SSH_MSG_UNIMPLEMENTED=                   3;
+    public static final byte SSH_MSG_DEBUG=                           4;
+    public static final byte SSH_MSG_SERVICE_REQUEST=                 5;
+    public static final byte SSH_MSG_SERVICE_ACCEPT=                  6;
+    public static final byte SSH_MSG_KEXINIT=                        20;
+        public static final int MSG_KEX_COOKIE_SIZE = 16;
+    public static final byte SSH_MSG_NEWKEYS=                        21;
+
+    public static final byte SSH_MSG_KEX_FIRST=                      30;
+    public static final byte SSH_MSG_KEX_LAST=                       49;
+
+    public static final byte SSH_MSG_KEXDH_INIT=                     30;
+    public static final byte SSH_MSG_KEXDH_REPLY=                    31;
+
+    public static final byte SSH_MSG_KEX_DH_GEX_REQUEST_OLD=         30;
+    public static final byte SSH_MSG_KEX_DH_GEX_GROUP=               31;
+    public static final byte SSH_MSG_KEX_DH_GEX_INIT=                32;
+    public static final byte SSH_MSG_KEX_DH_GEX_REPLY=               33;
+    public static final byte SSH_MSG_KEX_DH_GEX_REQUEST=             34;
+
+    public static final byte SSH_MSG_USERAUTH_REQUEST=               50;
+    public static final byte SSH_MSG_USERAUTH_FAILURE=               51;
+    public static final byte SSH_MSG_USERAUTH_SUCCESS=               52;
+    public static final byte SSH_MSG_USERAUTH_BANNER=                53;
+
+    public static final byte SSH_MSG_USERAUTH_INFO_REQUEST=          60;
+    public static final byte SSH_MSG_USERAUTH_INFO_RESPONSE=         61;
+
+    public static final byte SSH_MSG_USERAUTH_PK_OK=                 60;
+
+    public static final byte SSH_MSG_USERAUTH_PASSWD_CHANGEREQ=      60;
+
+    public static final byte SSH_MSG_USERAUTH_GSSAPI_MIC=            66;
+
+    public static final byte SSH_MSG_GLOBAL_REQUEST=                 80;
+    public static final byte SSH_MSG_REQUEST_SUCCESS=                81;
+    public static final byte SSH_MSG_REQUEST_FAILURE=                82;
+    public static final byte SSH_MSG_CHANNEL_OPEN=                   90;
+    public static final byte SSH_MSG_CHANNEL_OPEN_CONFIRMATION=      91;
+    public static final byte SSH_MSG_CHANNEL_OPEN_FAILURE=           92;
+    public static final byte SSH_MSG_CHANNEL_WINDOW_ADJUST=          93;
+    public static final byte SSH_MSG_CHANNEL_DATA=                   94;
+    public static final byte SSH_MSG_CHANNEL_EXTENDED_DATA=          95;
+    public static final byte SSH_MSG_CHANNEL_EOF=                    96;
+    public static final byte SSH_MSG_CHANNEL_CLOSE=                  97;
+    public static final byte SSH_MSG_CHANNEL_REQUEST=                98;
+    public static final byte SSH_MSG_CHANNEL_SUCCESS=                99;
+    public static final byte SSH_MSG_CHANNEL_FAILURE=               100;
 
     //
     // Disconnect error codes
     //
-    static final int SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT =     1;
-    static final int SSH2_DISCONNECT_PROTOCOL_ERROR =                  2;
-    static final int SSH2_DISCONNECT_KEY_EXCHANGE_FAILED =             3;
-    static final int SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED =      4;
-    static final int SSH2_DISCONNECT_RESERVED =                        4;
-    static final int SSH2_DISCONNECT_MAC_ERROR =                       5;
-    static final int SSH2_DISCONNECT_COMPRESSION_ERROR =               6;
-    static final int SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE =           7;
-    static final int SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED =  8;
-    static final int SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE =         9;
-    static final int SSH2_DISCONNECT_CONNECTION_LOST =                10;
-    static final int SSH2_DISCONNECT_BY_APPLICATION =                 11;
-    static final int SSH2_DISCONNECT_TOO_MANY_CONNECTIONS =           12;
-    static final int SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER =         13;
-    static final int SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE = 14;
-    static final int SSH2_DISCONNECT_ILLEGAL_USER_NAME =              15;
+    public static final int SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT =     1;
+    public static final int SSH2_DISCONNECT_PROTOCOL_ERROR =                  2;
+    public static final int SSH2_DISCONNECT_KEY_EXCHANGE_FAILED =             3;
+    public static final int SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED =      4;
+    public static final int SSH2_DISCONNECT_RESERVED =                        4;
+    public static final int SSH2_DISCONNECT_MAC_ERROR =                       5;
+    public static final int SSH2_DISCONNECT_COMPRESSION_ERROR =               6;
+    public static final int SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE =           7;
+    public static final int SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED =  8;
+    public static final int SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE =         9;
+    public static final int SSH2_DISCONNECT_CONNECTION_LOST =                10;
+    public static final int SSH2_DISCONNECT_BY_APPLICATION =                 11;
+    public static final int SSH2_DISCONNECT_TOO_MANY_CONNECTIONS =           12;
+    public static final int SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER =         13;
+    public static final int SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE = 14;
+    public static final int SSH2_DISCONNECT_ILLEGAL_USER_NAME =              15;
 
     //
     // Open error codes
     //
 
-    static final int SSH_OPEN_ADMINISTRATIVELY_PROHIBITED=     1;
-    static final int SSH_OPEN_CONNECT_FAILED=                  2;
-    static final int SSH_OPEN_UNKNOWN_CHANNEL_TYPE=            3;
-    static final int SSH_OPEN_RESOURCE_SHORTAGE=               4;
+    public static final int SSH_OPEN_ADMINISTRATIVELY_PROHIBITED=     1;
+    public static final int SSH_OPEN_CONNECT_FAILED=                  2;
+    public static final int SSH_OPEN_UNKNOWN_CHANNEL_TYPE=            3;
+    public static final int SSH_OPEN_RESOURCE_SHORTAGE=               4;
 
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
index 8a91309..783cd17 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
@@ -58,7 +58,7 @@ public abstract class AbstractChannel
 
     public static final long DEFAULT_CHANNEL_CLOSE_TIMEOUT = 5000;
 
-    protected static enum GracefulState {
+    protected enum GracefulState {
         Opened, CloseSent, CloseReceived, Closed
     }
 
@@ -137,7 +137,7 @@ public abstract class AbstractChannel
         String req = buffer.getString();
         boolean wantReply = buffer.getBoolean();
         if (log.isDebugEnabled()) {
-            log.debug("Received SSH_MSG_CHANNEL_REQUEST {} on channel {} (wantReply {})", new Object[] { req, this, Boolean.valueOf(wantReply) });
+            log.debug("Received SSH_MSG_CHANNEL_REQUEST {} on channel {} (wantReply {})", req, this, wantReply);
         }
         for (RequestHandler<Channel> handler : handlers) {
             RequestHandler.Result result;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
index bad2831..6dcb31b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
@@ -112,7 +112,7 @@ public class ChannelAsyncInputStream extends CloseableUtils.AbstractCloseable im
             } catch (IOException e) {
                 channel.getSession().exceptionCaught(e);
             }
-            future.setValue(Integer.valueOf(nbRead));
+            future.setValue(nbRead);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java
index b320482..bd2bdbd 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/PtyMode.java
@@ -53,7 +53,7 @@ public enum PtyMode {
 
     private int v;
 
-    private PtyMode(int v) {
+    PtyMode(int v) {
         this.v = v;
     }
 
@@ -69,12 +69,12 @@ public enum PtyMode {
                     
                     {
                         for (PtyMode c : PtyMode.values()) {
-                            put(Integer.valueOf(c.toInt()), c);
+                            put(c.toInt(), c);
                         }
                     }
             });
 
     public static PtyMode fromInt(int b) {
-        return commands.get(Integer.valueOf(0x00FF & (b + 256)));
+        return commands.get(0x00FF & (b + 0x100));
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
index 35d85c5..f6f2527 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/SttySupport.java
@@ -55,12 +55,12 @@ public class SttySupport {
                         v = findChar(stty, "rprnt");
                     }
                     if (v >= 0) {
-                        modes.put(mode, Integer.valueOf(v));
+                        modes.put(mode, v);
                     }
                 } else {
                     int v = findFlag(stty, str);
                     if (v >= 0) {
-                        modes.put(mode, Integer.valueOf(v));
+                        modes.put(mode, v);
                     }
                 }
             }
@@ -102,7 +102,7 @@ public class SttySupport {
                 continue;
             }
             String val = stty.substring(idx2 + 1, idx3 < 0 ? stty.length() : idx3).trim();
-            if (val.indexOf("undef") >= 0) {
+            if (val.contains("undef")) {
                 return -1;
             }
             if (val.length() == 2 && val.charAt(0) == '^') {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
index 6df4d4d..5a7f3ee 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/cipher/BuiltinCiphers.java
@@ -167,7 +167,7 @@ public enum BuiltinCiphers implements CipherFactory {
         return new BaseCipher(getIVSize(), getBlockSize(), getAlgorithm(), getTransformation());
     }
 
-    public static final Set<BuiltinCiphers> VALUES =
+    public static Set<BuiltinCiphers> VALUES =
             Collections.unmodifiableSet(EnumSet.allOf(BuiltinCiphers.class));
     private static final Map<String,CipherFactory>   extensions =
             new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
@@ -180,7 +180,7 @@ public enum BuiltinCiphers implements CipherFactory {
      * or overrides a built-in one or overrides another registered factory
      * with the same name (case <U>insensitive</U>).
      */
-    public static final void registerExtension(CipherFactory extension) {
+    public static void registerExtension(CipherFactory extension) {
         String  name=ValidateUtils.checkNotNull(extension, "No extension provided").getName();
         ValidateUtils.checkTrue(fromFactoryName(name) == null, "Extension overrides built-in: %s", name);
 
@@ -194,7 +194,7 @@ public enum BuiltinCiphers implements CipherFactory {
      * @return A {@link SortedSet} of the currently registered extensions, sorted
      * according to the factory name (case <U>insensitive</U>)
      */
-    public static final SortedSet<CipherFactory> getRegisteredExtensions() {
+    public static SortedSet<CipherFactory> getRegisteredExtensions() {
         // TODO for JDK-8 return Collections.emptySortedSet()
         synchronized(extensions) {
             return GenericUtils.asSortedSet(NamedResource.BY_NAME_COMPARATOR, extensions.values());
@@ -206,7 +206,7 @@ public enum BuiltinCiphers implements CipherFactory {
      * @param name The factory name - ignored if {@code null}/empty
      * @return The registered extension - {@code null} if not found
      */
-    public static final NamedFactory<Cipher> unregisterExtension(String name) {
+    public static NamedFactory<Cipher> unregisterExtension(String name) {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
@@ -265,15 +265,15 @@ public enum BuiltinCiphers implements CipherFactory {
      * factories and the unknown ones. <B>Note:</B> it is up to caller to
      * ensure that the lists do not contain duplicates
      */
-    public static final ParseResult parseCiphersList(String ciphers) {
+    public static ParseResult parseCiphersList(String ciphers) {
         return parseCiphersList(GenericUtils.split(ciphers, ','));
     }
 
-    public static final ParseResult parseCiphersList(String ... ciphers) {
+    public static ParseResult parseCiphersList(String ... ciphers) {
         return parseCiphersList(GenericUtils.isEmpty((Object[]) ciphers) ? Collections.<String>emptyList() : Arrays.asList(ciphers));
     }
 
-    public static final ParseResult parseCiphersList(Collection<String> ciphers) {
+    public static ParseResult parseCiphersList(Collection<String> ciphers) {
         if (GenericUtils.isEmpty(ciphers)) {
             return ParseResult.EMPTY;
         }
@@ -301,7 +301,7 @@ public enum BuiltinCiphers implements CipherFactory {
      * @return The factory or {@code null} if it is neither a built-in one
      * or a registered extension 
      */
-    public static final CipherFactory resolveFactory(String name) {
+    public static CipherFactory resolveFactory(String name) {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
@@ -320,24 +320,24 @@ public enum BuiltinCiphers implements CipherFactory {
      * Holds the result of {@link BuiltinCiphers#parseCiphersList(String)}
      * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
      */
-    public static final class ParseResult extends NamedFactoriesListParseResult<Cipher,CipherFactory> {
-        public static final ParseResult EMPTY=new ParseResult(Collections.<CipherFactory>emptyList(), Collections.<String>emptyList());
+    public static class ParseResult extends NamedFactoriesListParseResult<Cipher,CipherFactory> {
+        public static ParseResult EMPTY=new ParseResult(Collections.<CipherFactory>emptyList(), Collections.<String>emptyList());
         
         public ParseResult(List<CipherFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);
         }
     }
 
-    public static final class Constants {
-        public static final String NONE = "none";
-        public static final Pattern NONE_CIPHER_PATTERN =
+    public static class Constants {
+        public static String NONE = "none";
+        public static Pattern NONE_CIPHER_PATTERN =
                 Pattern.compile("(^|.*,)" + NONE + "($|,.*)");
 
         /**
          * @param s A comma-separated list of ciphers - ignored if {@code null}/empty
          * @return {@code true} if the {@link #NONE} cipher name appears in it
          */
-        public static final boolean isNoneCipherIncluded(String s) {
+        public static boolean isNoneCipherIncluded(String s) {
             if (GenericUtils.isEmpty(s)) {
                 return false;
             }
@@ -350,15 +350,15 @@ public enum BuiltinCiphers implements CipherFactory {
             }
         }
 
-        public static final String AES128_CBC = "aes128-cbc";
-        public static final String AES128_CTR = "aes128-ctr";
-        public static final String AES192_CBC = "aes192-cbc";
-        public static final String AES192_CTR = "aes192-ctr";
-        public static final String AES256_CBC = "aes256-cbc";
-        public static final String AES256_CTR = "aes256-ctr";
-        public static final String ARCFOUR128 = "arcfour128";
-        public static final String ARCFOUR256 = "arcfour256";
-        public static final String BLOWFISH_CBC = "blowfish-cbc";
-        public static final String TRIPLE_DES_CBC = "3des-cbc";
+        public static String AES128_CBC = "aes128-cbc";
+        public static String AES128_CTR = "aes128-ctr";
+        public static String AES192_CBC = "aes192-cbc";
+        public static String AES192_CTR = "aes192-ctr";
+        public static String AES256_CBC = "aes256-cbc";
+        public static String AES256_CTR = "aes256-ctr";
+        public static String ARCFOUR128 = "arcfour128";
+        public static String ARCFOUR256 = "arcfour256";
+        public static String BLOWFISH_CBC = "blowfish-cbc";
+        public static String TRIPLE_DES_CBC = "3des-cbc";
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
index 16933e5..42a5335 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/BuiltinCompressions.java
@@ -80,7 +80,7 @@ public enum BuiltinCompressions implements CompressionFactory {
         name = n;
     }
 
-    public static final Set<BuiltinCompressions> VALUES =
+    public static Set<BuiltinCompressions> VALUES =
             Collections.unmodifiableSet(EnumSet.allOf(BuiltinCompressions.class));
     private static final Map<String,CompressionFactory>   extensions =
             new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
@@ -93,7 +93,7 @@ public enum BuiltinCompressions implements CompressionFactory {
      * or overrides a built-in one or overrides another registered factory
      * with the same name (case <U>insensitive</U>).
      */
-    public static final void registerExtension(CompressionFactory extension) {
+    public static void registerExtension(CompressionFactory extension) {
         String  name=ValidateUtils.checkNotNull(extension, "No extension provided").getName();
         ValidateUtils.checkTrue(fromFactoryName(name) == null, "Extension overrides built-in: %s", name);
 
@@ -107,7 +107,7 @@ public enum BuiltinCompressions implements CompressionFactory {
      * @return A {@link SortedSet} of the currently registered extensions, sorted
      * according to the factory name (case <U>insensitive</U>)
      */
-    public static final SortedSet<CompressionFactory> getRegisteredExtensions() {
+    public static SortedSet<CompressionFactory> getRegisteredExtensions() {
         // TODO for JDK-8 return Collections.emptySortedSet()
         synchronized(extensions) {
             return GenericUtils.asSortedSet(NamedResource.BY_NAME_COMPARATOR, extensions.values());
@@ -119,7 +119,7 @@ public enum BuiltinCompressions implements CompressionFactory {
      * @param name The factory name - ignored if {@code null}/empty
      * @return The registered extension - {@code null} if not found
      */
-    public static final CompressionFactory unregisterExtension(String name) {
+    public static CompressionFactory unregisterExtension(String name) {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
@@ -129,7 +129,7 @@ public enum BuiltinCompressions implements CompressionFactory {
         }
     }
 
-    public static final BuiltinCompressions fromFactoryName(String name) {
+    public static BuiltinCompressions fromFactoryName(String name) {
         return NamedResource.Utils.findByName(name, String.CASE_INSENSITIVE_ORDER, VALUES);
     }
 
@@ -140,15 +140,15 @@ public enum BuiltinCompressions implements CompressionFactory {
      * factories and the unknown ones. <B>Note:</B> it is up to caller to
      * ensure that the lists do not contain duplicates
      */
-    public static final ParseResult parseCompressionsList(String Compressions) {
+    public static ParseResult parseCompressionsList(String Compressions) {
         return parseCompressionsList(GenericUtils.split(Compressions, ','));
     }
 
-    public static final ParseResult parseCompressionsList(String ... Compressions) {
+    public static ParseResult parseCompressionsList(String ... Compressions) {
         return parseCompressionsList(GenericUtils.isEmpty((Object[]) Compressions) ? Collections.<String>emptyList() : Arrays.asList(Compressions));
     }
 
-    public static final ParseResult parseCompressionsList(Collection<String> Compressions) {
+    public static ParseResult parseCompressionsList(Collection<String> Compressions) {
         if (GenericUtils.isEmpty(Compressions)) {
             return ParseResult.EMPTY;
         }
@@ -176,7 +176,7 @@ public enum BuiltinCompressions implements CompressionFactory {
      * @return The factory or {@code null} if it is neither a built-in one
      * or a registered extension 
      */
-    public static final CompressionFactory resolveFactory(String name) {
+    public static CompressionFactory resolveFactory(String name) {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
@@ -195,17 +195,17 @@ public enum BuiltinCompressions implements CompressionFactory {
      * Holds the result of {@link BuiltinCompressions#parseCompressionsList(String)}
      * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
      */
-    public static final class ParseResult extends NamedFactoriesListParseResult<Compression,CompressionFactory> {
-        public static final ParseResult EMPTY=new ParseResult(Collections.<CompressionFactory>emptyList(), Collections.<String>emptyList());
+    public static class ParseResult extends NamedFactoriesListParseResult<Compression,CompressionFactory> {
+        public static ParseResult EMPTY=new ParseResult(Collections.<CompressionFactory>emptyList(), Collections.<String>emptyList());
         
         public ParseResult(List<CompressionFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);
         }
     }
 
-    public static final class Constants {
-        public static final String  NONE="none";
-        public static final String  ZLIB="zlib";
-        public static final String  DELAYED_ZLIB="zlib@openssh.com";
+    public static class Constants {
+        public static String  NONE="none";
+        public static String  ZLIB="zlib";
+        public static String  DELAYED_ZLIB="zlib@openssh.com";
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java b/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
index 38ea52f..12abc4b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/compression/Compression.java
@@ -56,8 +56,8 @@ public interface Compression {
      * <code>compress</code> or <code>uncompress</code> methods can be
      * called.
      *
-     * @param type
-     * @param level
+     * @param type compression type
+     * @param level compression level
      */
     void init(Type type, int level);
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/config/AllowTcpForwardingValue.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/AllowTcpForwardingValue.java b/sshd-core/src/main/java/org/apache/sshd/common/config/AllowTcpForwardingValue.java
index 85383fb..ace4741 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/AllowTcpForwardingValue.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/AllowTcpForwardingValue.java
@@ -37,8 +37,9 @@ public enum AllowTcpForwardingValue {
 
     public static final Set<AllowTcpForwardingValue>    VALUES=
             Collections.unmodifiableSet(EnumSet.allOf(AllowTcpForwardingValue.class));
+
     // NOTE: it also interprets "yes" as "all" and "no" as "none"
-    public static final AllowTcpForwardingValue fromString(String s) {
+    public static AllowTcpForwardingValue fromString(String s) {
         if (GenericUtils.isEmpty(s)) {
             return null;
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/config/CompressionConfigValue.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/CompressionConfigValue.java b/sshd-core/src/main/java/org/apache/sshd/common/config/CompressionConfigValue.java
index fcad285..936d052 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/CompressionConfigValue.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/CompressionConfigValue.java
@@ -68,7 +68,7 @@ public enum CompressionConfigValue implements CompressionFactory {
     public static final Set<CompressionConfigValue> VALUES=
             Collections.unmodifiableSet(EnumSet.allOf(CompressionConfigValue.class));
 
-    public static final CompressionConfigValue fromName(String n) {
+    public static CompressionConfigValue fromName(String n) {
         if (GenericUtils.isEmpty(n)) {
             return null;
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/1c80bb65/sshd-core/src/main/java/org/apache/sshd/common/config/LogLevelValue.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/LogLevelValue.java b/sshd-core/src/main/java/org/apache/sshd/common/config/LogLevelValue.java
index 168c91e..cd59caa 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/LogLevelValue.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/LogLevelValue.java
@@ -39,7 +39,8 @@ public enum LogLevelValue {
 
     public static final Set<LogLevelValue> VALUES=
             Collections.unmodifiableSet(EnumSet.allOf(LogLevelValue.class));
-    public static final LogLevelValue fromName(String n) {
+
+    public static LogLevelValue fromName(String n) {
         if (GenericUtils.isEmpty(n)) {
             return null;
         }