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/17 18:18:36 UTC

[16/25] mina-sshd git commit: [SSHD-542] Checkstyle validation

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/IoWriteFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/IoWriteFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/io/IoWriteFuture.java
index 3483dff..a702621 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/IoWriteFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/IoWriteFuture.java
@@ -26,10 +26,13 @@ import org.apache.sshd.common.future.SshFuture;
 public interface IoWriteFuture extends SshFuture<IoWriteFuture> {
     /**
      * Wait and verify that the write succeeded.
+     *
      * @throws IOException if the write failed for any reason
      */
     void verify() throws IOException;
+
     void verify(long count, TimeUnit unit) throws IOException;
+
     void verify(long timeout) throws IOException;
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java
index d26d7ec..955b73f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java
@@ -36,8 +36,8 @@ import org.apache.sshd.common.FactoryManagerUtils;
 /**
  */
 public class MinaAcceptor extends MinaService implements org.apache.sshd.common.io.IoAcceptor, IoHandler {
-    public static final int DEFAULT_BACKLOG=0;
-    public static final boolean DEFAULT_REUSE_ADDRESS=true;
+    public static final int DEFAULT_BACKLOG = 0;
+    public static final boolean DEFAULT_REUSE_ADDRESS = true;
 
     protected final AtomicReference<IoAcceptor> acceptorHolder = new AtomicReference<>(null);
 
@@ -63,8 +63,9 @@ public class MinaAcceptor extends MinaService implements org.apache.sshd.common.
 
     protected IoAcceptor getAcceptor() {
         IoAcceptor acceptor;
-        synchronized(acceptorHolder) {
-            if ((acceptor = acceptorHolder.get()) != null) {
+        synchronized (acceptorHolder) {
+            acceptor = acceptorHolder.get();
+            if (acceptor != null) {
                 return acceptor;
             }
 
@@ -72,7 +73,7 @@ public class MinaAcceptor extends MinaService implements org.apache.sshd.common.
             acceptor.setHandler(this);
             acceptorHolder.set(acceptor);
         }
-        
+
         log.debug("Created IoAcceptor");
         return acceptor;
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
index 24801b4..95179c3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
@@ -50,8 +50,9 @@ public class MinaConnector extends MinaService implements org.apache.sshd.common
 
     protected IoConnector getConnector() {
         IoConnector connector;
-        synchronized(connectorHolder) {
-            if ((connector = connectorHolder.get()) != null) {
+        synchronized (connectorHolder) {
+            connector = connectorHolder.get();
+            if (connector != null) {
                 return connector;
             }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaService.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaService.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaService.java
index 360c501..952e087 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaService.java
@@ -125,19 +125,24 @@ public abstract class MinaService extends CloseableUtils.AbstractCloseable imple
     protected void configure(SocketSessionConfig config) {
         Integer intVal;
         Boolean boolVal;
-        if ((boolVal = getBoolean(FactoryManager.SOCKET_KEEPALIVE)) != null) {
+        boolVal = getBoolean(FactoryManager.SOCKET_KEEPALIVE);
+        if (boolVal != null) {
             config.setKeepAlive(boolVal);
         }
-        if ((intVal = getInteger(FactoryManager.SOCKET_SNDBUF)) != null) {
+        intVal = getInteger(FactoryManager.SOCKET_SNDBUF);
+        if (intVal != null) {
             config.setSendBufferSize(intVal);
         }
-        if ((intVal = getInteger(FactoryManager.SOCKET_RCVBUF)) != null) {
+        intVal = getInteger(FactoryManager.SOCKET_RCVBUF);
+        if (intVal != null) {
             config.setReceiveBufferSize(intVal);
         }
-        if ((intVal = getInteger(FactoryManager.SOCKET_LINGER)) != null) {
+        intVal = getInteger(FactoryManager.SOCKET_LINGER);
+        if (intVal != null) {
             config.setSoLinger(intVal);
         }
-        if ((boolVal = getBoolean(FactoryManager.SOCKET_LINGER)) != null) {
+        boolVal = getBoolean(FactoryManager.SOCKET_LINGER);
+        if (boolVal != null) {
             config.setTcpNoDelay(boolVal);
         }
         if (sessionConfig != null) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactory.java
index 902e902..5a77278 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactory.java
@@ -39,8 +39,8 @@ public class MinaServiceFactory extends AbstractIoServiceFactory {
 
     public MinaServiceFactory(FactoryManager factoryManager, ExecutorService service, boolean shutdownOnExit) {
         super(factoryManager,
-              service == null ? ThreadUtils.newCachedThreadPool(factoryManager.toString() + "-mina") : service,
-              service == null || shutdownOnExit);
+                service == null ? ThreadUtils.newCachedThreadPool(factoryManager.toString() + "-mina") : service,
+                service == null || shutdownOnExit);
         ioProcessor = new SimpleIoProcessorPool<>(NioProcessor.class, getExecutorService(), getNioWorkers(factoryManager), null);
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactoryFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactoryFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactoryFactory.java
index e6e913e..bfd9518 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactoryFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaServiceFactoryFactory.java
@@ -32,13 +32,13 @@ public class MinaServiceFactoryFactory extends AbstractIoServiceFactoryFactory {
     }
 
     /**
-     * @param executors The {@link ExecutorService} to use for spawning threads.
-     * If {@code null} then an internal service is allocated - in which case it
-     * is automatically shutdown regardless of the value of the <tt>shutdownOnExit</tt>
-     * parameter value
+     * @param executors      The {@link ExecutorService} to use for spawning threads.
+     *                       If {@code null} then an internal service is allocated - in which case it
+     *                       is automatically shutdown regardless of the value of the <tt>shutdownOnExit</tt>
+     *                       parameter value
      * @param shutdownOnExit If {@code true} then the {@link ExecutorService#shutdownNow()}
-     * will be called (unless it is an internally allocated service which is always
-     * closed)
+     *                       will be called (unless it is an internally allocated service which is always
+     *                       closed)
      */
     public MinaServiceFactoryFactory(ExecutorService executors, boolean shutdownOnExit) {
         super(executors, shutdownOnExit);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
index 476b425..f04372d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
@@ -31,7 +31,6 @@ import org.apache.sshd.common.io.IoService;
 import org.apache.sshd.common.io.IoSession;
 import org.apache.sshd.common.io.IoWriteFuture;
 import org.apache.sshd.common.util.CloseableUtils;
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 import org.apache.sshd.common.util.buffer.Buffer;
 
@@ -94,11 +93,13 @@ public class MinaSession extends CloseableUtils.AbstractInnerCloseable implement
             public boolean isClosing() {
                 return session.isClosing();
             }
+
             @SuppressWarnings("synthetic-access")
             @Override
             public boolean isClosed() {
                 return !session.isConnected();
             }
+
             @SuppressWarnings("synthetic-access")
             @Override
             public org.apache.sshd.common.future.CloseFuture close(boolean immediately) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
index 86ace1b..462bebb 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSupport.java
@@ -22,7 +22,11 @@ import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.sshd.common.util.Readable;
 import org.apache.sshd.common.util.buffer.Buffer;
 
-public class MinaSupport {
+public final class MinaSupport {
+
+    private MinaSupport() {
+        throw new UnsupportedOperationException("No instance allowed");
+    }
 
     public static Readable asReadable(final IoBuffer buffer) {
         return new Readable() {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
index 5f8e071..71777c7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
@@ -40,7 +40,7 @@ import org.apache.sshd.common.io.IoHandler;
 /**
  */
 public class Nio2Acceptor extends Nio2Service implements IoAcceptor {
-    public static final int DEFAULT_BACKLOG=0;
+    public static final int DEFAULT_BACKLOG = 0;
 
     private final Map<SocketAddress, AsynchronousServerSocketChannel> channels;
     private int backlog = DEFAULT_BACKLOG;
@@ -127,9 +127,11 @@ public class Nio2Acceptor extends Nio2Service implements IoAcceptor {
 
     class AcceptCompletionHandler extends Nio2CompletionHandler<AsynchronousSocketChannel, SocketAddress> {
         private final AsynchronousServerSocketChannel socket;
+
         AcceptCompletionHandler(AsynchronousServerSocketChannel socket) {
             this.socket = socket;
         }
+
         @SuppressWarnings("synthetic-access")
         @Override
         protected void onCompleted(AsynchronousSocketChannel result, SocketAddress address) {
@@ -138,7 +140,7 @@ public class Nio2Acceptor extends Nio2Service implements IoAcceptor {
                 return;
             }
 
-            Nio2Session session=null;
+            Nio2Session session = null;
             try {
                 // Create a session
                 session = new Nio2Session(Nio2Acceptor.this, manager, handler, result);
@@ -152,15 +154,15 @@ public class Nio2Acceptor extends Nio2Service implements IoAcceptor {
                 if (session != null) {
                     try {
                         session.close();
-                    } catch(Throwable t) {
+                    } catch (Throwable t) {
                         log.warn("Failed (" + t.getClass().getSimpleName() + ")"
-                                + " to close accepted connection from " + address
-                                + ": " + t.getMessage(),
-                                 t);
+                                        + " to close accepted connection from " + address
+                                        + ": " + t.getMessage(),
+                                t);
                     }
                 }
             }
-            
+
             try {
                 // Accept new connections
                 socket.accept(address, this);
@@ -174,9 +176,9 @@ public class Nio2Acceptor extends Nio2Service implements IoAcceptor {
         protected void onFailed(final Throwable exc, final SocketAddress address) {
             if (channels.containsKey(address) && !disposing.get()) {
                 log.warn("Caught " + exc.getClass().getSimpleName()
-                       + " while accepting incoming connection from " + address
-                       + ": " + exc.getMessage(),
-                         exc);
+                                + " while accepting incoming connection from " + address
+                                + ": " + exc.getMessage(),
+                        exc);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2CompletionHandler.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2CompletionHandler.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2CompletionHandler.java
index 80b75da..ece7c24 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2CompletionHandler.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2CompletionHandler.java
@@ -24,7 +24,7 @@ import java.security.PrivilegedAction;
 
 /**
  */
-public abstract class Nio2CompletionHandler<V,A> implements CompletionHandler<V,A> {
+public abstract class Nio2CompletionHandler<V, A> implements CompletionHandler<V, A> {
 
     @Override
     public void completed(final V result, final A attachment) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
index b809689..bf8b297 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
@@ -69,6 +69,7 @@ public class Nio2Connector extends Nio2Service implements IoConnector {
                         future.setException(e);
                     }
                 }
+
                 @Override
                 protected void onFailed(final Throwable exc, final Object attachment) {
                     future.setException(exc);
@@ -84,24 +85,29 @@ public class Nio2Connector extends Nio2Service implements IoConnector {
         DefaultIoConnectFuture(Object lock) {
             super(lock);
         }
+
         @Override
         public IoSession getSession() {
             Object v = getValue();
             return v instanceof IoSession ? (IoSession) v : null;
         }
+
         @Override
         public Throwable getException() {
             Object v = getValue();
             return v instanceof Throwable ? (Throwable) v : null;
         }
+
         @Override
         public boolean isConnected() {
             return getValue() instanceof IoSession;
         }
+
         @Override
         public void setSession(IoSession session) {
             setValue(session);
         }
+
         @Override
         public void setException(Throwable exception) {
             setValue(exception);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
index 0a384ea..790f7ca 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
@@ -21,7 +21,6 @@ package org.apache.sshd.common.io.nio2;
 import java.nio.ByteBuffer;
 
 import org.apache.sshd.common.io.AbstractIoWriteFuture;
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 
 /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactory.java
index 6bdd1ba..7f0760d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactory.java
@@ -39,11 +39,11 @@ public class Nio2ServiceFactory extends AbstractIoServiceFactory {
 
     public Nio2ServiceFactory(FactoryManager factoryManager, ExecutorService service, boolean shutdownOnExit) {
         super(factoryManager,
-              service == null ? ThreadUtils.newFixedThreadPool(factoryManager.toString() + "-nio2", getNioWorkers(factoryManager)) : service,
-              service == null || shutdownOnExit);
+                service == null ? ThreadUtils.newFixedThreadPool(factoryManager.toString() + "-nio2", getNioWorkers(factoryManager)) : service,
+                service == null || shutdownOnExit);
         try {
             group = AsynchronousChannelGroup.withThreadPool(ThreadUtils.protectExecutorServiceShutdown(getExecutorService(), isShutdownOnExit()));
-        } catch(IOException e) {
+        } catch (IOException e) {
             log.warn("Failed (" + e.getClass().getSimpleName() + " to start async. channel group: " + e.getMessage(), e);
             throw new RuntimeSshException(e);
         }
@@ -65,7 +65,7 @@ public class Nio2ServiceFactory extends AbstractIoServiceFactory {
             if (!group.isShutdown()) {
                 log.debug("Shutdown group");
                 group.shutdownNow();
-            
+
                 // if we protect the executor then the await will fail since we didn't really shut it down...
                 if (isShutdownOnExit()) {
                     if (group.awaitTermination(5, TimeUnit.SECONDS)) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactoryFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactoryFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactoryFactory.java
index 6068b2e..63fac8d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactoryFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2ServiceFactoryFactory.java
@@ -24,7 +24,6 @@ import java.util.concurrent.ExecutorService;
 import org.apache.sshd.common.FactoryManager;
 import org.apache.sshd.common.io.AbstractIoServiceFactoryFactory;
 import org.apache.sshd.common.io.IoServiceFactory;
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 
 /**
@@ -36,13 +35,13 @@ public class Nio2ServiceFactoryFactory extends AbstractIoServiceFactoryFactory {
     }
 
     /**
-     * @param executors The {@link ExecutorService} to use for spawning threads.
-     * If {@code null} then an internal service is allocated - in which case it
-     * is automatically shutdown regardless of the value of the <tt>shutdownOnExit</tt>
-     * parameter value
+     * @param executors      The {@link ExecutorService} to use for spawning threads.
+     *                       If {@code null} then an internal service is allocated - in which case it
+     *                       is automatically shutdown regardless of the value of the <tt>shutdownOnExit</tt>
+     *                       parameter value
      * @param shutdownOnExit If {@code true} then the {@link ExecutorService#shutdownNow()}
-     * will be called (unless it is an internally allocated service which is always
-     * closed)
+     *                       will be called (unless it is an internally allocated service which is always
+     *                       closed)
      */
     public Nio2ServiceFactoryFactory(ExecutorService executors, boolean shutdownOnExit) {
         super(executors, shutdownOnExit);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
index b53411f..33782ac 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
@@ -47,9 +47,9 @@ public class Nio2Session extends CloseableUtils.AbstractCloseable implements IoS
 
     public static final int DEFAULT_READBUF_SIZE = 32 * 1024;
 
-    private static final AtomicLong sessionIdGenerator = new AtomicLong(100L);
+    private static final AtomicLong SESSION_ID_GENERATOR = new AtomicLong(100L);
 
-    private final long id = sessionIdGenerator.incrementAndGet();
+    private final long id = SESSION_ID_GENERATOR.incrementAndGet();
     private final Nio2Service service;
     private final IoHandler handler;
     private final AsynchronousSocketChannel socket;
@@ -189,22 +189,23 @@ public class Nio2Session extends CloseableUtils.AbstractCloseable implements IoS
     public void startReading(byte[] buf) {
         startReading(buf, 0, buf.length);
     }
-    
+
     public void startReading(byte[] buf, int offset, int len) {
         startReading(ByteBuffer.wrap(buf, offset, len));
     }
 
     public void startReading(final ByteBuffer buffer) {
         doReadCycle(buffer, new Readable() {
-                @Override
-                public int available() {
-                    return buffer.remaining();
-                }
-                @Override
-                public void getRawBytes(byte[] data, int offset, int len) {
-                    buffer.get(data, offset, len);
-                }
-            });
+            @Override
+            public int available() {
+                return buffer.remaining();
+            }
+
+            @Override
+            public void getRawBytes(byte[] data, int offset, int len) {
+                buffer.get(data, offset, len);
+            }
+        });
     }
 
     protected void doReadCycle(final ByteBuffer buffer, final Readable bufReader) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java
index d2a3092..37b2f7b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractDH.java
@@ -28,8 +28,8 @@ import org.apache.sshd.common.util.GenericUtils;
  */
 public abstract class AbstractDH {
 
-    protected BigInteger K; // shared secret key
-    private byte[] K_array;
+    protected BigInteger k; // shared secret key
+    private byte[] k_array;
 
     protected AbstractDH() {
         super();
@@ -42,11 +42,11 @@ public abstract class AbstractDH {
     protected abstract byte[] calculateK() throws Exception;
 
     public byte[] getK() throws Exception {
-        if (K == null) {
-            K_array = calculateK();
-            K = new BigInteger(K_array);
+        if (k == null) {
+            k_array = calculateK();
+            k = new BigInteger(k_array);
         }
-        return K_array;
+        return k_array;
     }
 
     public abstract Digest getHash() throws Exception;
@@ -56,10 +56,11 @@ public abstract class AbstractDH {
      * is a byte array, which can (by chance, roughly 1 out of 256 times) begin
      * with zero byte (some JCE providers might strip this, though). In SSH,
      * the shared secret is an integer, so we need to strip the leading zero(es).
+     *
      * @param x The original array
-     * @return An (possibly) sub-array guaranteed to start with a non-zero byte 
-     * @see <A HREF="https://issues.apache.org/jira/browse/SSHD-330">SSHD-330</A>
+     * @return An (possibly) sub-array guaranteed to start with a non-zero byte
      * @throws IllegalArgumentException If all zeroes array
+     * @see <A HREF="https://issues.apache.org/jira/browse/SSHD-330">SSHD-330</A>
      */
     public static byte[] stripLeadingZeroes(byte[] x) {
         int length = GenericUtils.length(x);
@@ -76,7 +77,7 @@ public abstract class AbstractDH {
             System.arraycopy(x, i, ret, 0, ret.length);
             return ret;
         }
-        
+
         // all zeroes
         throw new IllegalArgumentException("No non-zero values in generated secret");
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
index 4f9c5c7..1981c45 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/BuiltinDHFactories.java
@@ -31,7 +31,6 @@ import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeMap;
 
-import org.apache.sshd.common.NamedFactory;
 import org.apache.sshd.common.NamedResource;
 import org.apache.sshd.common.cipher.ECCurves;
 import org.apache.sshd.common.config.NamedResourceListParseResult;
@@ -71,8 +70,8 @@ public enum BuiltinDHFactories implements DHFactory {
         @Override
         public DHG create(Object... params) throws Exception {
             if ((GenericUtils.length(params) != 2)
-             || (!(params[0] instanceof BigInteger))
-             || (!(params[1] instanceof BigInteger))) {
+                    || (!(params[0] instanceof BigInteger))
+                    || (!(params[1] instanceof BigInteger))) {
                 throw new IllegalArgumentException("Bad parameters for " + getName());
             }
             return new DHG(BuiltinDigests.sha1, (BigInteger) params[0], (BigInteger) params[1]);
@@ -87,8 +86,8 @@ public enum BuiltinDHFactories implements DHFactory {
         @Override
         public AbstractDH create(Object... params) throws Exception {
             if ((GenericUtils.length(params) != 2)
-             || (!(params[0] instanceof BigInteger))
-             || (!(params[1] instanceof BigInteger))) {
+                    || (!(params[0] instanceof BigInteger))
+                    || (!(params[1] instanceof BigInteger))) {
                 throw new IllegalArgumentException("Bad parameters for " + getName());
             }
             return new DHG(BuiltinDigests.sha256, (BigInteger) params[0], (BigInteger) params[1]);
@@ -147,8 +146,18 @@ public enum BuiltinDHFactories implements DHFactory {
         }
     };
 
+    public static final Set<BuiltinDHFactories> VALUES =
+            Collections.unmodifiableSet(EnumSet.allOf(BuiltinDHFactories.class));
+
+    private static final Map<String, DHFactory> EXTENSIONS =
+            new TreeMap<String, DHFactory>(String.CASE_INSENSITIVE_ORDER);
+
     private final String factoryName;
 
+    BuiltinDHFactories(String name) {
+        factoryName = name;
+    }
+
     @Override
     public final String getName() {
         return factoryName;
@@ -164,30 +173,22 @@ public enum BuiltinDHFactories implements DHFactory {
         return getName();
     }
 
-    BuiltinDHFactories(String name) {
-        factoryName = name;
-    }
-
-    public static final Set<BuiltinDHFactories> VALUES =
-            Collections.unmodifiableSet(EnumSet.allOf(BuiltinDHFactories.class));
-    private static final Map<String,DHFactory>   extensions = 
-            new TreeMap<String,DHFactory>(String.CASE_INSENSITIVE_ORDER);
-
     /**
-     * Registered a {@link NamedFactory} to be available besides the built-in
+     * Registered a {@link org.apache.sshd.common.NamedFactory} to be available besides the built-in
      * ones when parsing configuration
+     *
      * @param extension The factory to register
      * @throws IllegalArgumentException if factory instance is {@code null},
-     * or overrides a built-in one or overrides another registered factory
-     * with the same name (case <U>insensitive</U>).
+     *                                  or overrides a built-in one or overrides another registered factory
+     *                                  with the same name (case <U>insensitive</U>).
      */
     public static void registerExtension(DHFactory extension) {
-        String  name=ValidateUtils.checkNotNull(extension, "No extension provided").getName();
+        String name = ValidateUtils.checkNotNull(extension, "No extension provided").getName();
         ValidateUtils.checkTrue(fromFactoryName(name) == null, "Extension overrides built-in: %s", name);
 
-        synchronized(extensions) {
-            ValidateUtils.checkTrue(!extensions.containsKey(name), "Extension overrides existinh: %s", name);
-            extensions.put(name, extension);
+        synchronized (EXTENSIONS) {
+            ValidateUtils.checkTrue(!EXTENSIONS.containsKey(name), "Extension overrides existing: %s", name);
+            EXTENSIONS.put(name, extension);
         }
     }
 
@@ -197,13 +198,14 @@ public enum BuiltinDHFactories implements DHFactory {
      */
     public static SortedSet<DHFactory> getRegisteredExtensions() {
         // TODO for JDK-8 return Collections.emptySortedSet()
-        synchronized(extensions) {
-            return GenericUtils.asSortedSet(NamedResource.BY_NAME_COMPARATOR, extensions.values());
+        synchronized (EXTENSIONS) {
+            return GenericUtils.asSortedSet(NamedResource.BY_NAME_COMPARATOR, EXTENSIONS.values());
         }
     }
 
     /**
      * Unregisters specified extension
+     *
      * @param name The factory name - ignored if {@code null}/empty
      * @return The registered extension - {@code null} if not found
      */
@@ -211,9 +213,9 @@ public enum BuiltinDHFactories implements DHFactory {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
-        
-        synchronized(extensions) {
-            return extensions.remove(name);
+
+        synchronized (EXTENSIONS) {
+            return EXTENSIONS.remove(name);
         }
     }
 
@@ -233,7 +235,7 @@ public enum BuiltinDHFactories implements DHFactory {
 
     /**
      * @param dhList A comma-separated list of ciphers' names - ignored
-     * if {@code null}/empty
+     *               if {@code null}/empty
      * @return A {@link ParseResult} of all the {@link DHFactory}-ies whose
      * name appears in the string and represent a built-in value. Any
      * unknown name is <U>ignored</U>. The order of the returned result
@@ -245,7 +247,7 @@ public enum BuiltinDHFactories implements DHFactory {
         return parseDHFactoriesList(GenericUtils.split(dhList, ','));
     }
 
-    public static ParseResult parseDHFactoriesList(String ... dhList) {
+    public static ParseResult parseDHFactoriesList(String... dhList) {
         return parseDHFactoriesList(GenericUtils.isEmpty((Object[]) dhList) ? Collections.<String>emptyList() : Arrays.asList(dhList));
     }
 
@@ -253,11 +255,11 @@ public enum BuiltinDHFactories implements DHFactory {
         if (GenericUtils.isEmpty(dhList)) {
             return ParseResult.EMPTY;
         }
-        
-        List<DHFactory> factories=new ArrayList<>(dhList.size());
-        List<String>    unknown=Collections.emptyList();
+
+        List<DHFactory> factories = new ArrayList<>(dhList.size());
+        List<String> unknown = Collections.emptyList();
         for (String name : dhList) {
-            DHFactory  f=resolveFactory(name);
+            DHFactory f = resolveFactory(name);
             if (f != null) {
                 factories.add(f);
             } else {
@@ -268,44 +270,46 @@ public enum BuiltinDHFactories implements DHFactory {
                 unknown.add(name);
             }
         }
-        
+
         return new ParseResult(factories, unknown);
     }
+
     /**
      * @param name The factory name
      * @return The factory or {@code null} if it is neither a built-in one
-     * or a registered extension 
+     * or a registered extension
      */
     public static DHFactory resolveFactory(String name) {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
 
-        DHFactory  s=fromFactoryName(name);
+        DHFactory s = fromFactoryName(name);
         if (s != null) {
             return s;
         }
-        
-        synchronized(extensions) {
-            return extensions.get(name);
+
+        synchronized (EXTENSIONS) {
+            return EXTENSIONS.get(name);
         }
     }
 
     /**
      * Represents the result of {@link BuiltinDHFactories#parseDHFactoriesList(String)}
+     *
      * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
      */
     public static final class ParseResult extends NamedResourceListParseResult<DHFactory> {
-        public static final ParseResult EMPTY=new ParseResult(Collections.<DHFactory>emptyList(), Collections.<String>emptyList());
-        
+        public static final ParseResult EMPTY = new ParseResult(Collections.<DHFactory>emptyList(), Collections.<String>emptyList());
+
         public ParseResult(List<DHFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);
         }
-        
+
         public List<DHFactory> getParsedFactories() {
             return getParsedResources();
         }
-        
+
         public List<String> getUnsupportedFactories() {
             return getUnsupportedResources();
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java
index 951ef77..8a3b27f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHG.java
@@ -23,7 +23,6 @@ import java.security.KeyFactory;
 import java.security.KeyPair;
 import java.security.KeyPairGenerator;
 import java.security.PublicKey;
-
 import javax.crypto.KeyAgreement;
 import javax.crypto.spec.DHParameterSpec;
 import javax.crypto.spec.DHPublicKeySpec;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
index 35df435..32c2153 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/DHGroupData.java
@@ -25,72 +25,74 @@ package org.apache.sshd.common.kex;
  */
 public final class DHGroupData {
 
+    private DHGroupData() {
+        throw new UnsupportedOperationException("No instance allowed");
+    }
 
     public static byte[] getG() {
-        final byte[] G = { 2 };
-        return G;
+        return new byte[] {
+            (byte) 0x02
+        };
     }
 
     public static byte[] getP1() {
-        final byte[] P_1 = {
-              (byte)0x00,
-              (byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
-              (byte)0xC9,(byte)0x0F,(byte)0xDA,(byte)0xA2,(byte)0x21,(byte)0x68,(byte)0xC2,(byte)0x34,
-              (byte)0xC4,(byte)0xC6,(byte)0x62,(byte)0x8B,(byte)0x80,(byte)0xDC,(byte)0x1C,(byte)0xD1,
-              (byte)0x29,(byte)0x02,(byte)0x4E,(byte)0x08,(byte)0x8A,(byte)0x67,(byte)0xCC,(byte)0x74,
-              (byte)0x02,(byte)0x0B,(byte)0xBE,(byte)0xA6,(byte)0x3B,(byte)0x13,(byte)0x9B,(byte)0x22,
-              (byte)0x51,(byte)0x4A,(byte)0x08,(byte)0x79,(byte)0x8E,(byte)0x34,(byte)0x04,(byte)0xDD,
-              (byte)0xEF,(byte)0x95,(byte)0x19,(byte)0xB3,(byte)0xCD,(byte)0x3A,(byte)0x43,(byte)0x1B,
-              (byte)0x30,(byte)0x2B,(byte)0x0A,(byte)0x6D,(byte)0xF2,(byte)0x5F,(byte)0x14,(byte)0x37,
-              (byte)0x4F,(byte)0xE1,(byte)0x35,(byte)0x6D,(byte)0x6D,(byte)0x51,(byte)0xC2,(byte)0x45,
-              (byte)0xE4,(byte)0x85,(byte)0xB5,(byte)0x76,(byte)0x62,(byte)0x5E,(byte)0x7E,(byte)0xC6,
-              (byte)0xF4,(byte)0x4C,(byte)0x42,(byte)0xE9,(byte)0xA6,(byte)0x37,(byte)0xED,(byte)0x6B,
-              (byte)0x0B,(byte)0xFF,(byte)0x5C,(byte)0xB6,(byte)0xF4,(byte)0x06,(byte)0xB7,(byte)0xED,
-              (byte)0xEE,(byte)0x38,(byte)0x6B,(byte)0xFB,(byte)0x5A,(byte)0x89,(byte)0x9F,(byte)0xA5,
-              (byte)0xAE,(byte)0x9F,(byte)0x24,(byte)0x11,(byte)0x7C,(byte)0x4B,(byte)0x1F,(byte)0xE6,
-              (byte)0x49,(byte)0x28,(byte)0x66,(byte)0x51,(byte)0xEC,(byte)0xE6,(byte)0x53,(byte)0x81,
-              (byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF
+        return new byte[] {
+            (byte) 0x00,
+            (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
+            (byte) 0xC9, (byte) 0x0F, (byte) 0xDA, (byte) 0xA2, (byte) 0x21, (byte) 0x68, (byte) 0xC2, (byte) 0x34,
+            (byte) 0xC4, (byte) 0xC6, (byte) 0x62, (byte) 0x8B, (byte) 0x80, (byte) 0xDC, (byte) 0x1C, (byte) 0xD1,
+            (byte) 0x29, (byte) 0x02, (byte) 0x4E, (byte) 0x08, (byte) 0x8A, (byte) 0x67, (byte) 0xCC, (byte) 0x74,
+            (byte) 0x02, (byte) 0x0B, (byte) 0xBE, (byte) 0xA6, (byte) 0x3B, (byte) 0x13, (byte) 0x9B, (byte) 0x22,
+            (byte) 0x51, (byte) 0x4A, (byte) 0x08, (byte) 0x79, (byte) 0x8E, (byte) 0x34, (byte) 0x04, (byte) 0xDD,
+            (byte) 0xEF, (byte) 0x95, (byte) 0x19, (byte) 0xB3, (byte) 0xCD, (byte) 0x3A, (byte) 0x43, (byte) 0x1B,
+            (byte) 0x30, (byte) 0x2B, (byte) 0x0A, (byte) 0x6D, (byte) 0xF2, (byte) 0x5F, (byte) 0x14, (byte) 0x37,
+            (byte) 0x4F, (byte) 0xE1, (byte) 0x35, (byte) 0x6D, (byte) 0x6D, (byte) 0x51, (byte) 0xC2, (byte) 0x45,
+            (byte) 0xE4, (byte) 0x85, (byte) 0xB5, (byte) 0x76, (byte) 0x62, (byte) 0x5E, (byte) 0x7E, (byte) 0xC6,
+            (byte) 0xF4, (byte) 0x4C, (byte) 0x42, (byte) 0xE9, (byte) 0xA6, (byte) 0x37, (byte) 0xED, (byte) 0x6B,
+            (byte) 0x0B, (byte) 0xFF, (byte) 0x5C, (byte) 0xB6, (byte) 0xF4, (byte) 0x06, (byte) 0xB7, (byte) 0xED,
+            (byte) 0xEE, (byte) 0x38, (byte) 0x6B, (byte) 0xFB, (byte) 0x5A, (byte) 0x89, (byte) 0x9F, (byte) 0xA5,
+            (byte) 0xAE, (byte) 0x9F, (byte) 0x24, (byte) 0x11, (byte) 0x7C, (byte) 0x4B, (byte) 0x1F, (byte) 0xE6,
+            (byte) 0x49, (byte) 0x28, (byte) 0x66, (byte) 0x51, (byte) 0xEC, (byte) 0xE6, (byte) 0x53, (byte) 0x81,
+            (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF
         };
-        return P_1;
     }
 
     public static byte[] getP14() {
-        final byte[] P_14 = {
-              (byte)0x00,
-              (byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
-              (byte)0xC9,(byte)0x0F,(byte)0xDA,(byte)0xA2,(byte)0x21,(byte)0x68,(byte)0xC2,(byte)0x34,
-              (byte)0xC4,(byte)0xC6,(byte)0x62,(byte)0x8B,(byte)0x80,(byte)0xDC,(byte)0x1C,(byte)0xD1,
-              (byte)0x29,(byte)0x02,(byte)0x4E,(byte)0x08,(byte)0x8A,(byte)0x67,(byte)0xCC,(byte)0x74,
-              (byte)0x02,(byte)0x0B,(byte)0xBE,(byte)0xA6,(byte)0x3B,(byte)0x13,(byte)0x9B,(byte)0x22,
-              (byte)0x51,(byte)0x4A,(byte)0x08,(byte)0x79,(byte)0x8E,(byte)0x34,(byte)0x04,(byte)0xDD,
-              (byte)0xEF,(byte)0x95,(byte)0x19,(byte)0xB3,(byte)0xCD,(byte)0x3A,(byte)0x43,(byte)0x1B,
-              (byte)0x30,(byte)0x2B,(byte)0x0A,(byte)0x6D,(byte)0xF2,(byte)0x5F,(byte)0x14,(byte)0x37,
-              (byte)0x4F,(byte)0xE1,(byte)0x35,(byte)0x6D,(byte)0x6D,(byte)0x51,(byte)0xC2,(byte)0x45,
-              (byte)0xE4,(byte)0x85,(byte)0xB5,(byte)0x76,(byte)0x62,(byte)0x5E,(byte)0x7E,(byte)0xC6,
-              (byte)0xF4,(byte)0x4C,(byte)0x42,(byte)0xE9,(byte)0xA6,(byte)0x37,(byte)0xED,(byte)0x6B,
-              (byte)0x0B,(byte)0xFF,(byte)0x5C,(byte)0xB6,(byte)0xF4,(byte)0x06,(byte)0xB7,(byte)0xED,
-              (byte)0xEE,(byte)0x38,(byte)0x6B,(byte)0xFB,(byte)0x5A,(byte)0x89,(byte)0x9F,(byte)0xA5,
-              (byte)0xAE,(byte)0x9F,(byte)0x24,(byte)0x11,(byte)0x7C,(byte)0x4B,(byte)0x1F,(byte)0xE6,
-              (byte)0x49,(byte)0x28,(byte)0x66,(byte)0x51,(byte)0xEC,(byte)0xE4,(byte)0x5B,(byte)0x3D,
-              (byte)0xC2,(byte)0x00,(byte)0x7C,(byte)0xB8,(byte)0xA1,(byte)0x63,(byte)0xBF,(byte)0x05,
-              (byte)0x98,(byte)0xDA,(byte)0x48,(byte)0x36,(byte)0x1C,(byte)0x55,(byte)0xD3,(byte)0x9A,
-              (byte)0x69,(byte)0x16,(byte)0x3F,(byte)0xA8,(byte)0xFD,(byte)0x24,(byte)0xCF,(byte)0x5F,
-              (byte)0x83,(byte)0x65,(byte)0x5D,(byte)0x23,(byte)0xDC,(byte)0xA3,(byte)0xAD,(byte)0x96,
-              (byte)0x1C,(byte)0x62,(byte)0xF3,(byte)0x56,(byte)0x20,(byte)0x85,(byte)0x52,(byte)0xBB,
-              (byte)0x9E,(byte)0xD5,(byte)0x29,(byte)0x07,(byte)0x70,(byte)0x96,(byte)0x96,(byte)0x6D,
-              (byte)0x67,(byte)0x0C,(byte)0x35,(byte)0x4E,(byte)0x4A,(byte)0xBC,(byte)0x98,(byte)0x04,
-              (byte)0xF1,(byte)0x74,(byte)0x6C,(byte)0x08,(byte)0xCA,(byte)0x18,(byte)0x21,(byte)0x7C,
-              (byte)0x32,(byte)0x90,(byte)0x5E,(byte)0x46,(byte)0x2E,(byte)0x36,(byte)0xCE,(byte)0x3B,
-              (byte)0xE3,(byte)0x9E,(byte)0x77,(byte)0x2C,(byte)0x18,(byte)0x0E,(byte)0x86,(byte)0x03,
-              (byte)0x9B,(byte)0x27,(byte)0x83,(byte)0xA2,(byte)0xEC,(byte)0x07,(byte)0xA2,(byte)0x8F,
-              (byte)0xB5,(byte)0xC5,(byte)0x5D,(byte)0xF0,(byte)0x6F,(byte)0x4C,(byte)0x52,(byte)0xC9,
-              (byte)0xDE,(byte)0x2B,(byte)0xCB,(byte)0xF6,(byte)0x95,(byte)0x58,(byte)0x17,(byte)0x18,
-              (byte)0x39,(byte)0x95,(byte)0x49,(byte)0x7C,(byte)0xEA,(byte)0x95,(byte)0x6A,(byte)0xE5,
-              (byte)0x15,(byte)0xD2,(byte)0x26,(byte)0x18,(byte)0x98,(byte)0xFA,(byte)0x05,(byte)0x10,
-              (byte)0x15,(byte)0x72,(byte)0x8E,(byte)0x5A,(byte)0x8A,(byte)0xAC,(byte)0xAA,(byte)0x68,
-              (byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
+        return new byte[] {
+            (byte) 0x00,
+            (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
+            (byte) 0xC9, (byte) 0x0F, (byte) 0xDA, (byte) 0xA2, (byte) 0x21, (byte) 0x68, (byte) 0xC2, (byte) 0x34,
+            (byte) 0xC4, (byte) 0xC6, (byte) 0x62, (byte) 0x8B, (byte) 0x80, (byte) 0xDC, (byte) 0x1C, (byte) 0xD1,
+            (byte) 0x29, (byte) 0x02, (byte) 0x4E, (byte) 0x08, (byte) 0x8A, (byte) 0x67, (byte) 0xCC, (byte) 0x74,
+            (byte) 0x02, (byte) 0x0B, (byte) 0xBE, (byte) 0xA6, (byte) 0x3B, (byte) 0x13, (byte) 0x9B, (byte) 0x22,
+            (byte) 0x51, (byte) 0x4A, (byte) 0x08, (byte) 0x79, (byte) 0x8E, (byte) 0x34, (byte) 0x04, (byte) 0xDD,
+            (byte) 0xEF, (byte) 0x95, (byte) 0x19, (byte) 0xB3, (byte) 0xCD, (byte) 0x3A, (byte) 0x43, (byte) 0x1B,
+            (byte) 0x30, (byte) 0x2B, (byte) 0x0A, (byte) 0x6D, (byte) 0xF2, (byte) 0x5F, (byte) 0x14, (byte) 0x37,
+            (byte) 0x4F, (byte) 0xE1, (byte) 0x35, (byte) 0x6D, (byte) 0x6D, (byte) 0x51, (byte) 0xC2, (byte) 0x45,
+            (byte) 0xE4, (byte) 0x85, (byte) 0xB5, (byte) 0x76, (byte) 0x62, (byte) 0x5E, (byte) 0x7E, (byte) 0xC6,
+            (byte) 0xF4, (byte) 0x4C, (byte) 0x42, (byte) 0xE9, (byte) 0xA6, (byte) 0x37, (byte) 0xED, (byte) 0x6B,
+            (byte) 0x0B, (byte) 0xFF, (byte) 0x5C, (byte) 0xB6, (byte) 0xF4, (byte) 0x06, (byte) 0xB7, (byte) 0xED,
+            (byte) 0xEE, (byte) 0x38, (byte) 0x6B, (byte) 0xFB, (byte) 0x5A, (byte) 0x89, (byte) 0x9F, (byte) 0xA5,
+            (byte) 0xAE, (byte) 0x9F, (byte) 0x24, (byte) 0x11, (byte) 0x7C, (byte) 0x4B, (byte) 0x1F, (byte) 0xE6,
+            (byte) 0x49, (byte) 0x28, (byte) 0x66, (byte) 0x51, (byte) 0xEC, (byte) 0xE4, (byte) 0x5B, (byte) 0x3D,
+            (byte) 0xC2, (byte) 0x00, (byte) 0x7C, (byte) 0xB8, (byte) 0xA1, (byte) 0x63, (byte) 0xBF, (byte) 0x05,
+            (byte) 0x98, (byte) 0xDA, (byte) 0x48, (byte) 0x36, (byte) 0x1C, (byte) 0x55, (byte) 0xD3, (byte) 0x9A,
+            (byte) 0x69, (byte) 0x16, (byte) 0x3F, (byte) 0xA8, (byte) 0xFD, (byte) 0x24, (byte) 0xCF, (byte) 0x5F,
+            (byte) 0x83, (byte) 0x65, (byte) 0x5D, (byte) 0x23, (byte) 0xDC, (byte) 0xA3, (byte) 0xAD, (byte) 0x96,
+            (byte) 0x1C, (byte) 0x62, (byte) 0xF3, (byte) 0x56, (byte) 0x20, (byte) 0x85, (byte) 0x52, (byte) 0xBB,
+            (byte) 0x9E, (byte) 0xD5, (byte) 0x29, (byte) 0x07, (byte) 0x70, (byte) 0x96, (byte) 0x96, (byte) 0x6D,
+            (byte) 0x67, (byte) 0x0C, (byte) 0x35, (byte) 0x4E, (byte) 0x4A, (byte) 0xBC, (byte) 0x98, (byte) 0x04,
+            (byte) 0xF1, (byte) 0x74, (byte) 0x6C, (byte) 0x08, (byte) 0xCA, (byte) 0x18, (byte) 0x21, (byte) 0x7C,
+            (byte) 0x32, (byte) 0x90, (byte) 0x5E, (byte) 0x46, (byte) 0x2E, (byte) 0x36, (byte) 0xCE, (byte) 0x3B,
+            (byte) 0xE3, (byte) 0x9E, (byte) 0x77, (byte) 0x2C, (byte) 0x18, (byte) 0x0E, (byte) 0x86, (byte) 0x03,
+            (byte) 0x9B, (byte) 0x27, (byte) 0x83, (byte) 0xA2, (byte) 0xEC, (byte) 0x07, (byte) 0xA2, (byte) 0x8F,
+            (byte) 0xB5, (byte) 0xC5, (byte) 0x5D, (byte) 0xF0, (byte) 0x6F, (byte) 0x4C, (byte) 0x52, (byte) 0xC9,
+            (byte) 0xDE, (byte) 0x2B, (byte) 0xCB, (byte) 0xF6, (byte) 0x95, (byte) 0x58, (byte) 0x17, (byte) 0x18,
+            (byte) 0x39, (byte) 0x95, (byte) 0x49, (byte) 0x7C, (byte) 0xEA, (byte) 0x95, (byte) 0x6A, (byte) 0xE5,
+            (byte) 0x15, (byte) 0xD2, (byte) 0x26, (byte) 0x18, (byte) 0x98, (byte) 0xFA, (byte) 0x05, (byte) 0x10,
+            (byte) 0x15, (byte) 0x72, (byte) 0x8E, (byte) 0x5A, (byte) 0x8A, (byte) 0xAC, (byte) 0xAA, (byte) 0x68,
+            (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
         };
-        return P_14;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java
index 1af4877..b31ea84 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/ECDH.java
@@ -26,13 +26,11 @@ import java.security.interfaces.ECPublicKey;
 import java.security.spec.ECParameterSpec;
 import java.security.spec.ECPoint;
 import java.security.spec.ECPublicKeySpec;
-
 import javax.crypto.KeyAgreement;
 
 import org.apache.sshd.common.cipher.ECCurves;
 import org.apache.sshd.common.config.keys.ECDSAPublicKeyEntryDecoder;
 import org.apache.sshd.common.digest.Digest;
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.SecurityUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
index 31fa8c2..2a01e64 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexProposalOption.java
@@ -42,22 +42,38 @@ public enum KexProposalOption {
     C2SLANG(Constants.PROPOSAL_LANG_CTOS, "languages (client to server)"),
     S2CLANG(Constants.PROPOSAL_LANG_STOC, "languages (server to client)");
 
-    private final int proposalIndex;
     /**
-     * @return The proposal option location in the KEX array
+     * A {@link List} of all the options <U>sorted</U> according to {@link #getProposalIndex(){
+     *
+     * @see #BY_PROPOSAL_INDEX
      */
-    public final int getProposalIndex() {
-        return proposalIndex;
-    }
+    public static final List<KexProposalOption> VALUES =
+        Collections.unmodifiableList(new ArrayList<KexProposalOption>(EnumSet.allOf(KexProposalOption.class)) {
+            private static final long serialVersionUID = 1L;    // we're not serializing it
+
+            {
+                Collections.sort(this, BY_PROPOSAL_INDEX);
+            }
+        });
+
+    public static final int PROPOSAL_MAX = VALUES.size();
 
-    private final String description;
     /**
-     * @return User-friendly name for the KEX negotiation item
-     * @see <A HREF="http://tools.ietf.org/html/rfc4253#section-7.1">RFC-4253 - section 7.1</A>
+     * Compares values according to {@link KexProposalOption#getProposalIndex()}
      */
-    public final String getDescription() {
-        return description;
-    }
+    public static final Comparator<KexProposalOption> BY_PROPOSAL_INDEX =
+        new Comparator<KexProposalOption>() {
+            @Override
+            public int compare(KexProposalOption o1, KexProposalOption o2) {
+                int i1 = (o1 == null) ? (-1) : o1.getProposalIndex();
+                int i2 = (o2 == null) ? (-1) : o2.getProposalIndex();
+                return Integer.compare(i1, i2);
+            }
+        };
+
+    private final int proposalIndex;
+
+    private final String description;
 
     KexProposalOption(int index, String desc) {
         proposalIndex = index;
@@ -65,31 +81,19 @@ public enum KexProposalOption {
     }
 
     /**
-     * Compares values according to {@link KexProposalOption#getProposalIndex()}
+     * @return The proposal option location in the KEX array
      */
-    public static final Comparator<KexProposalOption> BY_PROPOSAL_INDEX = 
-            new Comparator<KexProposalOption>() {
-                @Override
-                public int compare(KexProposalOption o1, KexProposalOption o2) {
-                    int i1 = (o1 == null) ? (-1) : o1.getProposalIndex();
-                    int i2 = (o2 == null) ? (-1) : o2.getProposalIndex();
-                    return Integer.compare(i1, i2);
-                }
-            };
-    
+    public final int getProposalIndex() {
+        return proposalIndex;
+    }
+
     /**
-     * A {@link List} of all the options <U>sorted</U> according to {@link #getProposalIndex(){
-     * @see #BY_PROPOSAL_INDEX
+     * @return User-friendly name for the KEX negotiation item
+     * @see <A HREF="http://tools.ietf.org/html/rfc4253#section-7.1">RFC-4253 - section 7.1</A>
      */
-    public static final List<KexProposalOption> VALUES = 
-            Collections.unmodifiableList(new ArrayList<KexProposalOption>(EnumSet.allOf(KexProposalOption.class)) {
-                private static final long serialVersionUID = 1L;    // we're not serializing it
-                
-                {
-                    Collections.sort(this, BY_PROPOSAL_INDEX);
-                }
-            });
-    public static final int PROPOSAL_MAX = VALUES.size();
+    public final String getDescription() {
+        return description;
+    }
 
     /**
      * @param n The option name - ignored if {@code null}/empty
@@ -100,13 +104,13 @@ public enum KexProposalOption {
         if (GenericUtils.isEmpty(n)) {
             return null;
         }
-        
+
         for (KexProposalOption o : VALUES) {
             if (n.equalsIgnoreCase(o.name())) {
                 return o;
             }
         }
-        
+
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/KexState.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexState.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexState.java
index 47756b8..751d759 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexState.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexState.java
@@ -25,6 +25,7 @@ import java.util.Set;
 
 /**
  * Used to track the key-exchange (KEX) protocol progression
+ *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public enum KexState {
@@ -33,6 +34,6 @@ public enum KexState {
     RUN,
     KEYS,
     DONE;
-    
+
     public static final Set<KexState> VALUES = Collections.unmodifiableSet(EnumSet.allOf(KexState.class));
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
index 39cd2a0..9d052ac 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchange.java
@@ -35,13 +35,13 @@ public interface KeyExchange {
      * Initialize the key exchange algorithm.
      *
      * @param session the session using this algorithm
-     * @param V_S the server identification string
-     * @param V_C the client identification string
-     * @param I_S the server key init packet
-     * @param I_C the client key init packet
+     * @param v_s     the server identification string
+     * @param v_c     the client identification string
+     * @param i_s     the server key init packet
+     * @param i_c     the client key init packet
      * @throws Exception if an error occurs
      */
-    void init(AbstractSession session, byte[] V_S, byte[] V_C, byte[] I_S, byte[] I_C) throws Exception;
+    void init(AbstractSession session, byte[] v_s, byte[] v_c, byte[] i_s, byte[] i_c) throws Exception;
 
     /**
      * Process the next packet
@@ -60,14 +60,14 @@ public interface KeyExchange {
     Digest getHash();
 
     /**
-     * Retrieves the computed H parameter
+     * Retrieves the computed h parameter
      *
      * @return
      */
     byte[] getH();
 
     /**
-     * Retrieves the computed K parameter
+     * Retrieves the computed k parameter
      *
      * @return
      */

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
index 460ec60..ae8f769 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KeyExchangeFactory.java
@@ -20,18 +20,11 @@
 package org.apache.sshd.common.kex;
 
 import org.apache.sshd.common.NamedFactory;
-import org.apache.sshd.common.util.Transformer;
 
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
+// CHECKSTYLE:OFF
 public interface KeyExchangeFactory extends NamedFactory<KeyExchange> {
-    // required because of generics issues
-    Transformer<KeyExchangeFactory,NamedFactory<KeyExchange>> FAC2NAMED=new Transformer<KeyExchangeFactory,NamedFactory<KeyExchange>>() {
-        @Override
-        public NamedFactory<KeyExchange> transform(KeyExchangeFactory input) {
-            return input;
-        }
-    };
 
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
index 2440955..65e306b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/dh/AbstractDHKeyExchange.java
@@ -22,7 +22,6 @@ package org.apache.sshd.common.kex.dh;
 import org.apache.sshd.common.digest.Digest;
 import org.apache.sshd.common.kex.KeyExchange;
 import org.apache.sshd.common.session.AbstractSession;
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.ValidateUtils;
 import org.apache.sshd.common.util.logging.AbstractLoggingBean;
 
@@ -30,28 +29,29 @@ import org.apache.sshd.common.util.logging.AbstractLoggingBean;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public abstract class AbstractDHKeyExchange extends AbstractLoggingBean implements KeyExchange {
-    private AbstractSession session;
-    protected byte[] V_S;
-    protected byte[] V_C;
-    protected byte[] I_S;
-    protected byte[] I_C;
+
+    protected AbstractSession session;
+    protected byte[] v_s;
+    protected byte[] v_c;
+    protected byte[] i_s;
+    protected byte[] i_c;
     protected Digest hash;
     protected byte[] e;
     protected byte[] f;
-    protected byte[] K;
-    protected byte[] H;
+    protected byte[] k;
+    protected byte[] h;
 
     protected AbstractDHKeyExchange() {
         super();
     }
 
     @Override
-    public void init(AbstractSession s, byte[] V_S, byte[] V_C, byte[] I_S, byte[] I_C) throws Exception {
+    public void init(AbstractSession s, byte[] v_s, byte[] v_c, byte[] i_s, byte[] i_c) throws Exception {
         this.session = ValidateUtils.checkNotNull(s, "No session");
-        this.V_S = ValidateUtils.checkNotNullAndNotEmpty(V_S, "No V_S value");
-        this.V_C = ValidateUtils.checkNotNullAndNotEmpty(V_C, "No V_C value");
-        this.I_S = ValidateUtils.checkNotNullAndNotEmpty(I_S, "No I_S value");
-        this.I_C = ValidateUtils.checkNotNullAndNotEmpty(I_C, "No I_C value");
+        this.v_s = ValidateUtils.checkNotNullAndNotEmpty(v_s, "No v_s value");
+        this.v_c = ValidateUtils.checkNotNullAndNotEmpty(v_c, "No v_c value");
+        this.i_s = ValidateUtils.checkNotNullAndNotEmpty(i_s, "No i_s value");
+        this.i_c = ValidateUtils.checkNotNullAndNotEmpty(i_c, "No i_c value");
     }
 
     public AbstractSession getSession() {
@@ -65,11 +65,11 @@ public abstract class AbstractDHKeyExchange extends AbstractLoggingBean implemen
 
     @Override
     public byte[] getH() {
-        return H;
+        return h;
     }
 
     @Override
     public byte[] getK() {
-        return K;
+        return k;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractClassLoadableResourceKeyPairProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractClassLoadableResourceKeyPairProvider.java b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractClassLoadableResourceKeyPairProvider.java
index 183bf06..11e011c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractClassLoadableResourceKeyPairProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractClassLoadableResourceKeyPairProvider.java
@@ -33,11 +33,12 @@ import org.apache.sshd.common.util.threads.ThreadUtils;
  * are accessible via {@link ClassLoader#getResourceAsStream(String)}.
  * If no loader configured via {@link #setResourceLoader(ClassLoader)}, then
  * {@link ThreadUtils#resolveDefaultClassLoader(Class)} is used
+ *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public abstract class AbstractClassLoadableResourceKeyPairProvider extends AbstractResourceKeyPairProvider<String> {
     private ClassLoader classLoader;
-    private Collection<String>  resources;
+    private Collection<String> resources;
 
     protected AbstractClassLoadableResourceKeyPairProvider() {
         classLoader = ThreadUtils.resolveDefaultClassLoader(getClass());
@@ -70,7 +71,7 @@ public abstract class AbstractClassLoadableResourceKeyPairProvider extends Abstr
         if (cl == null) {
             throw new StreamCorruptedException("No resource loader for " + resource);
         }
-        
+
         InputStream input = cl.getResourceAsStream(resource);
         if (input == null) {
             throw new FileNotFoundException("Cannot find resource " + resource);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractFileKeyPairProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractFileKeyPairProvider.java b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractFileKeyPairProvider.java
index 25e57fd..590a7c7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractFileKeyPairProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractFileKeyPairProvider.java
@@ -38,6 +38,7 @@ import org.apache.sshd.common.util.io.IoUtils;
  * loading is <U>lazy</U> - i.e., a file is not loaded until it is actually
  * required. Once required though, its loaded {@link KeyPair} result is
  * <U>cached</U> and not re-loaded.
+ *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public abstract class AbstractFileKeyPairProvider extends AbstractResourceKeyPairProvider<Path> {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
index 85a59f2..ee65334 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
@@ -39,13 +39,14 @@ import org.apache.sshd.common.util.GenericUtils;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public abstract class AbstractResourceKeyPairProvider<R> extends AbstractKeyPairProvider {
+
     private FilePasswordProvider passwordFinder;
     /* 
      * NOTE: the map is case insensitive even for Linux, as it is (very) bad
      * practice to have 2 key files that differ from one another only in their
      * case... 
      */
-    private final Map<String,KeyPair>   cacheMap=new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+    private final Map<String, KeyPair> cacheMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 
     protected AbstractResourceKeyPairProvider() {
         super();
@@ -61,8 +62,8 @@ public abstract class AbstractResourceKeyPairProvider<R> extends AbstractKeyPair
 
     protected void resetCacheMap(Collection<?> resources) {
         // if have any cached pairs then see what we can keep from previous load
-        Collection<String>  toDelete=Collections.emptySet();
-        synchronized(cacheMap) {
+        Collection<String> toDelete = Collections.emptySet();
+        synchronized (cacheMap) {
             if (cacheMap.size() <= 0) {
                 return; // already empty - nothing to keep
             }
@@ -77,11 +78,11 @@ public abstract class AbstractResourceKeyPairProvider<R> extends AbstractKeyPair
                 if (cacheMap.containsKey(resourceKey)) {
                     continue;
                 }
-                
+
                 if (toDelete.isEmpty()) {
-                    toDelete = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
+                    toDelete = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
                 }
-                
+
                 if (!toDelete.add(resourceKey)) {
                     continue;   // debug breakpoint
                 }
@@ -93,12 +94,12 @@ public abstract class AbstractResourceKeyPairProvider<R> extends AbstractKeyPair
                 }
             }
         }
-        
+
         if (log.isDebugEnabled()) {
             log.debug("resetCacheMap(" + resources + ") removed previous cached keys for " + toDelete);
         }
     }
-    
+
     protected Iterable<KeyPair> loadKeys(final Collection<? extends R> resources) {
         if (GenericUtils.isEmpty(resources)) {
             return Collections.emptyList();
@@ -106,54 +107,7 @@ public abstract class AbstractResourceKeyPairProvider<R> extends AbstractKeyPair
             return new Iterable<KeyPair>() {
                 @Override
                 public Iterator<KeyPair> iterator() {
-                    return new Iterator<KeyPair>() {
-                        private final Iterator<? extends R> iterator = resources.iterator();
-                        private KeyPair nextKeyPair;
-                        private boolean nextKeyPairSet = false;
-    
-                        @Override
-                        public boolean hasNext() {
-                            return nextKeyPairSet || setNextObject();
-                        }
-    
-                        @Override
-                        public KeyPair next() {
-                            if (!nextKeyPairSet) {
-                                if (!setNextObject()) {
-                                    throw new NoSuchElementException("Out of files to try");
-                                }
-                            }
-                            nextKeyPairSet = false;
-                            return nextKeyPair;
-                        }
-    
-                        @Override
-                        public void remove() {
-                            throw new UnsupportedOperationException("loadKeys(files) Iterator#remove() N/A");
-                        }
-    
-                        @SuppressWarnings("synthetic-access")
-                        private boolean setNextObject() {
-                            while (iterator.hasNext()) {
-                                R r = iterator.next();
-                                try {
-                                    nextKeyPair = doLoadKey(r);
-                                } catch(Exception e) {
-                                    log.warn("Failed (" + e.getClass().getSimpleName() + ")"
-                                            + " to load key resource=" + r + ": " + e.getMessage());
-                                    nextKeyPair = null;
-                                    continue;
-                                }
-    
-                                if (nextKeyPair != null) {
-                                    nextKeyPairSet = true;
-                                    return true;
-                                }
-                            }
-    
-                            return false;
-                        }
-                    };
+                    return new KeyPairIterator(resources);
                 }
             };
         }
@@ -162,15 +116,17 @@ public abstract class AbstractResourceKeyPairProvider<R> extends AbstractKeyPair
     protected KeyPair doLoadKey(R resource) throws IOException, GeneralSecurityException {
         String resourceKey = Objects.toString(resource);
         KeyPair kp;
-        synchronized(cacheMap) {
+        synchronized (cacheMap) {
             // check if lucky enough to have already loaded this file
-            if ((kp=cacheMap.get(resourceKey)) != null) {
+            kp = cacheMap.get(resourceKey);
+            if (kp != null) {
                 return kp;
             }
         }
 
-        if ((kp=doLoadKey(resourceKey, resource, getPasswordFinder())) != null) {
-            synchronized(cacheMap) {
+        kp = doLoadKey(resourceKey, resource, getPasswordFinder());
+        if (kp != null) {
+            synchronized (cacheMap) {
                 // if somebody else beat us to it, use the cached key
                 if (cacheMap.containsKey(resourceKey)) {
                     kp = cacheMap.get(resourceKey);
@@ -178,22 +134,75 @@ public abstract class AbstractResourceKeyPairProvider<R> extends AbstractKeyPair
                     cacheMap.put(resourceKey, kp);
                 }
             }
-            
+
             if (log.isDebugEnabled()) {
                 log.debug("doLoadKey(" + resourceKey + ") loaded " + kp.getPublic() + " / " + kp.getPrivate());
             }
         }
-        
+
         return kp;
     }
 
     protected KeyPair doLoadKey(String resourceKey, R resource, FilePasswordProvider provider) throws IOException, GeneralSecurityException {
-        try(InputStream inputStream = openKeyPairResource(resourceKey, resource)) {
+        try (InputStream inputStream = openKeyPairResource(resourceKey, resource)) {
             return doLoadKey(resourceKey, inputStream, provider);
         }
     }
-    
+
     protected abstract InputStream openKeyPairResource(String resourceKey, R resource) throws IOException;
-    
+
     protected abstract KeyPair doLoadKey(String resourceKey, InputStream inputStream, FilePasswordProvider provider) throws IOException, GeneralSecurityException;
+
+    private class KeyPairIterator implements Iterator<KeyPair> {
+        private final Iterator<? extends R> iterator;
+        private KeyPair nextKeyPair;
+        private boolean nextKeyPairSet;
+
+        public KeyPairIterator(Collection<? extends R> resources) {
+            iterator = resources.iterator();
+        }
+
+        @Override
+        public boolean hasNext() {
+            return nextKeyPairSet || setNextObject();
+        }
+
+        @Override
+        public KeyPair next() {
+            if (!nextKeyPairSet) {
+                if (!setNextObject()) {
+                    throw new NoSuchElementException("Out of files to try");
+                }
+            }
+            nextKeyPairSet = false;
+            return nextKeyPair;
+        }
+
+        @Override
+        public void remove() {
+            throw new UnsupportedOperationException("loadKeys(files) Iterator#remove() N/A");
+        }
+
+        @SuppressWarnings("synthetic-access")
+        private boolean setNextObject() {
+            while (iterator.hasNext()) {
+                R r = iterator.next();
+                try {
+                    nextKeyPair = doLoadKey(r);
+                } catch (Exception e) {
+                    log.warn("Failed (" + e.getClass().getSimpleName() + ")"
+                            + " to load key resource=" + r + ": " + e.getMessage());
+                    nextKeyPair = null;
+                    continue;
+                }
+
+                if (nextKeyPair != null) {
+                    nextKeyPairSet = true;
+                    return true;
+                }
+            }
+
+            return false;
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyPairProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyPairProvider.java b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyPairProvider.java
index 2f22413..5947376 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyPairProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyPairProvider.java
@@ -57,27 +57,6 @@ public interface KeyPairProvider {
     String ECDSA_SHA2_NISTP521 = ECCurves.nistp521.getKeyType();
 
     /**
-     * Load available keys.
-     * @return an {@link Iterable} instance of available keys, never {@code null}
-     */
-    Iterable<KeyPair> loadKeys();
-
-    /**
-     * Load a key of the specified type which can be "ssh-rsa", "ssh-dss", or
-     * "ecdsa-sha2-nistp{256,384,521}". If there is no key of this type, return
-     * {@code null}
-     *
-     * @param type the type of key to load
-     * @return a valid key pair or {@code null}
-     */
-    KeyPair loadKey(String type);
-
-    /**
-     * @return The available {@link Iterable} key types in preferred order - never {@code null}
-     */
-    Iterable<String> getKeyTypes();
-    
-    /**
      * A {@link KeyPairProvider} that has no keys
      */
     KeyPairProvider EMPTY_KEYPAIR_PROVIDER =
@@ -102,4 +81,27 @@ public interface KeyPairProvider {
                 return "EMPTY_KEYPAIR_PROVIDER";
             }
         };
+
+    /**
+     * Load available keys.
+     *
+     * @return an {@link Iterable} instance of available keys, never {@code null}
+     */
+    Iterable<KeyPair> loadKeys();
+
+    /**
+     * Load a key of the specified type which can be "ssh-rsa", "ssh-dss", or
+     * "ecdsa-sha2-nistp{256,384,521}". If there is no key of this type, return
+     * {@code null}
+     *
+     * @param type the type of key to load
+     * @return a valid key pair or {@code null}
+     */
+    KeyPair loadKey(String type);
+
+    /**
+     * @return The available {@link Iterable} key types in preferred order - never {@code null}
+     */
+    Iterable<String> getKeyTypes();
+
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/MappedKeyPairProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/MappedKeyPairProvider.java b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/MappedKeyPairProvider.java
index c8c187d..0b6fe13 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/MappedKeyPairProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/MappedKeyPairProvider.java
@@ -22,13 +22,13 @@ package org.apache.sshd.common.keyprovider;
 import java.security.KeyPair;
 import java.util.Map;
 
-import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.Transformer;
 import org.apache.sshd.common.util.ValidateUtils;
 
 /**
  * Holds a {@link Map} of {@link String}-&gt;{@link KeyPair} where the map key
  * is the type and value is the associated {@link KeyPair}
+ *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public class MappedKeyPairProvider implements KeyPairProvider {
@@ -37,17 +37,17 @@ public class MappedKeyPairProvider implements KeyPairProvider {
      * {@link KeyPairProvider} where map key is the type and value is the
      * associated {@link KeyPair}
      */
-    public static final Transformer<Map<String,KeyPair>, KeyPairProvider> MAP_TO_KEY_PAIR_PROVIDER =
-        new Transformer<Map<String,KeyPair>, KeyPairProvider>() {
+    public static final Transformer<Map<String, KeyPair>, KeyPairProvider> MAP_TO_KEY_PAIR_PROVIDER =
+        new Transformer<Map<String, KeyPair>, KeyPairProvider>() {
             @Override
             public KeyPairProvider transform(final Map<String, KeyPair> input) {
                 return new MappedKeyPairProvider(input);
             }
         };
 
-    private final Map<String,KeyPair>   pairsMap;
+    private final Map<String, KeyPair> pairsMap;
 
-    public MappedKeyPairProvider(Map<String,KeyPair> pairsMap) {
+    public MappedKeyPairProvider(Map<String, KeyPair> pairsMap) {
         this.pairsMap = ValidateUtils.checkNotNull(pairsMap, "No pairs map provided");
     }
 
@@ -55,12 +55,12 @@ public class MappedKeyPairProvider implements KeyPairProvider {
     public Iterable<KeyPair> loadKeys() {
         return pairsMap.values();
     }
-    
+
     @Override
     public KeyPair loadKey(String type) {
         return pairsMap.get(type);
     }
-    
+
     @Override
     public Iterable<String> getKeyTypes() {
         return pairsMap.keySet();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java b/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
index 2624ef9..5e55ebf 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/mac/BuiltinMacs.java
@@ -80,8 +80,18 @@ public enum BuiltinMacs implements MacFactory {
         }
     };
 
+    public static final Set<BuiltinMacs> VALUES =
+            Collections.unmodifiableSet(EnumSet.allOf(BuiltinMacs.class));
+
+    private static final Map<String, MacFactory> EXTENSIONS =
+            new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+
     private final String factoryName;
 
+    BuiltinMacs(String facName) {
+        factoryName = facName;
+    }
+
     @Override
     public final String getName() {
         return factoryName;
@@ -96,31 +106,23 @@ public enum BuiltinMacs implements MacFactory {
     public final String toString() {
         return getName();
     }
-    
-    BuiltinMacs(String facName) {
-        factoryName = facName;
-    }
-
-    public static final Set<BuiltinMacs> VALUES =
-            Collections.unmodifiableSet(EnumSet.allOf(BuiltinMacs.class));
-    private static final Map<String,MacFactory>   extensions =
-            new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 
     /**
      * Registered a {@link NamedFactory} to be available besides the built-in
      * ones when parsing configuration
+     *
      * @param extension The factory to register
      * @throws IllegalArgumentException if factory instance is {@code null},
-     * or overrides a built-in one or overrides another registered factory
-     * with the same name (case <U>insensitive</U>).
+     *                                  or overrides a built-in one or overrides another registered factory
+     *                                  with the same name (case <U>insensitive</U>).
      */
     public static void registerExtension(MacFactory extension) {
-        String  name=ValidateUtils.checkNotNull(extension, "No extension provided").getName();
+        String name = ValidateUtils.checkNotNull(extension, "No extension provided").getName();
         ValidateUtils.checkTrue(fromFactoryName(name) == null, "Extension overrides built-in: %s", name);
 
-        synchronized(extensions) {
-            ValidateUtils.checkTrue(!extensions.containsKey(name), "Extension overrides existinh: %s", name);
-            extensions.put(name, extension);
+        synchronized (EXTENSIONS) {
+            ValidateUtils.checkTrue(!EXTENSIONS.containsKey(name), "Extension overrides existing: %s", name);
+            EXTENSIONS.put(name, extension);
         }
     }
 
@@ -130,13 +132,14 @@ public enum BuiltinMacs implements MacFactory {
      */
     public static SortedSet<MacFactory> getRegisteredExtensions() {
         // TODO for JDK-8 return Collections.emptySortedSet()
-        synchronized(extensions) {
-            return GenericUtils.asSortedSet(NamedResource.BY_NAME_COMPARATOR, extensions.values());
+        synchronized (EXTENSIONS) {
+            return GenericUtils.asSortedSet(NamedResource.BY_NAME_COMPARATOR, EXTENSIONS.values());
         }
     }
 
     /**
      * Unregisters specified extension
+     *
      * @param name The factory name - ignored if {@code null}/empty
      * @return The registered extension - {@code null} if not found
      */
@@ -144,9 +147,9 @@ public enum BuiltinMacs implements MacFactory {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
-        
-        synchronized(extensions) {
-            return extensions.remove(name);
+
+        synchronized (EXTENSIONS) {
+            return EXTENSIONS.remove(name);
         }
     }
 
@@ -194,7 +197,7 @@ public enum BuiltinMacs implements MacFactory {
 
     /**
      * @param macs A comma-separated list of MACs' names - ignored
-     * if {@code null}/empty
+     *             if {@code null}/empty
      * @return A {@link ParseResult} containing the successfully parsed
      * factories and the unknown ones. <B>Note:</B> it is up to caller to
      * ensure that the lists do not contain duplicates
@@ -203,7 +206,7 @@ public enum BuiltinMacs implements MacFactory {
         return parseMacsList(GenericUtils.split(macs, ','));
     }
 
-    public static ParseResult parseMacsList(String ... macs) {
+    public static ParseResult parseMacsList(String... macs) {
         return parseMacsList(GenericUtils.isEmpty((Object[]) macs) ? Collections.<String>emptyList() : Arrays.asList(macs));
     }
 
@@ -211,11 +214,11 @@ public enum BuiltinMacs implements MacFactory {
         if (GenericUtils.isEmpty(macs)) {
             return ParseResult.EMPTY;
         }
-        
-        List<MacFactory> factories=new ArrayList<>(macs.size());
-        List<String>            unknown=Collections.emptyList();
+
+        List<MacFactory> factories = new ArrayList<>(macs.size());
+        List<String> unknown = Collections.emptyList();
         for (String name : macs) {
-            MacFactory   m=resolveFactory(name);
+            MacFactory m = resolveFactory(name);
             if (m != null) {
                 factories.add(m);
             } else {
@@ -226,33 +229,33 @@ public enum BuiltinMacs implements MacFactory {
                 unknown.add(name);
             }
         }
-        
+
         return new ParseResult(factories, unknown);
     }
 
     /**
      * @param name The factory name
      * @return The factory or {@code null} if it is neither a built-in one
-     * or a registered extension 
+     * or a registered extension
      */
     public static MacFactory resolveFactory(String name) {
         if (GenericUtils.isEmpty(name)) {
             return null;
         }
 
-        MacFactory  m=fromFactoryName(name);
+        MacFactory m = fromFactoryName(name);
         if (m != null) {
             return m;
         }
-        
-        synchronized(extensions) {
-            return extensions.get(name);
+
+        synchronized (EXTENSIONS) {
+            return EXTENSIONS.get(name);
         }
     }
 
-    public static final class ParseResult extends NamedFactoriesListParseResult<Mac,MacFactory> {
-        public static final ParseResult EMPTY=new ParseResult(Collections.<MacFactory>emptyList(), Collections.<String>emptyList());
-        
+    public static final class ParseResult extends NamedFactoriesListParseResult<Mac, MacFactory> {
+        public static final ParseResult EMPTY = new ParseResult(Collections.<MacFactory>emptyList(), Collections.<String>emptyList());
+
         public ParseResult(List<MacFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/mac/MacFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/mac/MacFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/mac/MacFactory.java
index e84bbb4..ec5a0ca 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/mac/MacFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/mac/MacFactory.java
@@ -19,19 +19,12 @@
 
 package org.apache.sshd.common.mac;
 
-import org.apache.sshd.common.NamedFactory;
-import org.apache.sshd.common.OptionalFeature;
-import org.apache.sshd.common.util.Transformer;
+import org.apache.sshd.common.BuiltinFactory;
 
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-public interface MacFactory extends NamedFactory<Mac>, OptionalFeature {
-    // required because of generics issues
-    Transformer<MacFactory,NamedFactory<Mac>> FAC2NAMED=new Transformer<MacFactory,NamedFactory<Mac>>() {
-        @Override
-        public NamedFactory<Mac> transform(MacFactory input) {
-            return input;
-        }
-    };
+// CHECKSTYLE:OFF
+public interface MacFactory extends BuiltinFactory<Mac> {
+
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/random/AbstractRandom.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/random/AbstractRandom.java b/sshd-core/src/main/java/org/apache/sshd/common/random/AbstractRandom.java
index 372de9b..5746e4d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/random/AbstractRandom.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/random/AbstractRandom.java
@@ -26,7 +26,7 @@ public abstract class AbstractRandom implements Random {
     protected AbstractRandom() {
         super();
     }
-    
+
     @Override     // TODO in JDK-8 make this a default method
     public void fill(byte[] bytes) {
         fill(bytes, 0, bytes.length);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/17f2d627/sshd-core/src/main/java/org/apache/sshd/common/random/JceRandom.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/random/JceRandom.java b/sshd-core/src/main/java/org/apache/sshd/common/random/JceRandom.java
index 7e1b3a5..5b64666 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/random/JceRandom.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/random/JceRandom.java
@@ -21,7 +21,7 @@ package org.apache.sshd.common.random;
 import java.security.SecureRandom;
 
 /**
- * A <code>Random</code> implementation using the built-in {@link SecureRandom} PRNG. 
+ * A <code>Random</code> implementation using the built-in {@link SecureRandom} PRNG.
  *
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
@@ -31,7 +31,7 @@ public class JceRandom extends AbstractRandom {
     private final SecureRandom random = new SecureRandom();
 
     public JceRandom() {
-      super();
+        super();
     }
 
     @Override