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 2016/09/15 19:34:40 UTC

[03/16] mina-sshd git commit: [SSHD-698] Code cleanup

[SSHD-698] Code cleanup


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

Branch: refs/heads/master
Commit: 57f6a6b09f9f387d92014bfe91e5391762931b41
Parents: 13989b4
Author: Guillaume Nodet <gn...@apache.org>
Authored: Thu Sep 15 11:21:25 2016 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Sep 15 21:06:09 2016 +0200

----------------------------------------------------------------------
 ...impleAccessControlSftpEventListenerTest.java |  4 +--
 .../sshd/agent/local/AgentServerProxy.java      |  2 +-
 .../org/apache/sshd/agent/unix/AgentClient.java |  2 +-
 .../org/apache/sshd/agent/unix/AgentServer.java |  2 +-
 .../sshd/agent/unix/AgentServerProxy.java       |  2 +-
 .../sshd/agent/unix/ChannelAgentForwarding.java |  2 +-
 .../client/ClientAuthenticationManager.java     |  2 +-
 .../java/org/apache/sshd/client/SshClient.java  | 10 +++----
 .../java/org/apache/sshd/client/SshKeyScan.java |  4 +--
 .../client/auth/BuiltinUserAuthFactories.java   |  4 +--
 .../auth/hostbased/HostKeyIdentityProvider.java |  4 +--
 .../keyboard/UserAuthKeyboardInteractive.java   |  5 +---
 .../auth/password/PasswordIdentityProvider.java |  4 +--
 .../client/channel/AbstractClientChannel.java   |  2 +-
 .../channel/PtyCapableChannelSession.java       |  2 +-
 .../client/config/hosts/HostConfigEntry.java    |  8 ++---
 .../client/config/hosts/HostPatternsHolder.java |  7 ++---
 .../client/future/DefaultConnectFuture.java     |  2 +-
 .../KnownHostsServerKeyVerifier.java            |  4 +--
 .../sshd/client/scp/DefaultScpClient.java       |  4 +--
 .../sshd/client/session/ClientSession.java      |  2 +-
 .../sshd/client/subsystem/sftp/SftpClient.java  |  4 +--
 .../client/subsystem/sftp/SftpFileChannel.java  | 12 ++++----
 .../subsystem/sftp/SftpFileSystemProvider.java  |  4 +--
 .../helpers/AbstractSftpClientExtension.java    |  4 +--
 .../apache/sshd/common/SyspropsMapWrapper.java  |  2 +-
 .../sshd/common/channel/AbstractChannel.java    |  4 +--
 .../common/channel/ChannelAsyncInputStream.java |  2 +-
 .../apache/sshd/common/channel/SttySupport.java |  8 ++---
 .../org/apache/sshd/common/channel/Window.java  |  4 +--
 .../sshd/common/cipher/BuiltinCiphers.java      |  4 +--
 .../common/compression/BuiltinCompressions.java |  4 +--
 .../sshd/common/config/SshConfigFileReader.java |  4 +--
 .../sshd/common/config/TimeValueConfig.java     |  2 +-
 .../sshd/common/file/util/BaseFileSystem.java   |  2 +-
 .../apache/sshd/common/file/util/BasePath.java  |  2 +-
 .../virtualfs/VirtualFileSystemFactory.java     |  2 +-
 .../common/forward/DefaultTcpipForwarder.java   |  2 +-
 .../forward/DefaultTcpipForwarderFactory.java   |  2 +-
 .../common/helpers/AbstractFactoryManager.java  |  6 ++--
 .../common/kex/AbstractKexFactoryManager.java   | 10 +++----
 .../sshd/common/kex/BuiltinDHFactories.java     |  4 +--
 .../sshd/common/kex/KexFactoryManager.java      |  6 ++--
 ...actClassLoadableResourceKeyPairProvider.java |  2 +-
 .../AbstractFileKeyPairProvider.java            |  4 +--
 .../common/keyprovider/KeyIdentityProvider.java |  4 +--
 .../keyprovider/MappedKeyPairProvider.java      |  2 +-
 .../org/apache/sshd/common/mac/BuiltinMacs.java |  4 +--
 .../AbstractConnectionServiceFactory.java       |  2 +-
 .../org/apache/sshd/common/session/Session.java |  2 +-
 .../helpers/AbstractConnectionService.java      |  2 +-
 .../common/session/helpers/AbstractSession.java |  8 ++---
 .../common/signature/BuiltinSignatures.java     |  4 +--
 .../signature/SignatureFactoriesManager.java    |  2 +-
 .../sftp/extensions/AclSupportedParser.java     |  2 +-
 .../sftp/extensions/VersionsParser.java         |  2 +-
 .../sshd/common/util/EventListenerUtils.java    |  2 +-
 .../apache/sshd/common/util/GenericUtils.java   | 12 ++++----
 .../apache/sshd/common/util/SelectorUtils.java  | 14 ++-------
 .../keys/AbstractBufferPublicKeyParser.java     |  2 +-
 .../common/util/closeable/FuturesCloseable.java |  2 +-
 .../util/closeable/ParallelCloseable.java       |  2 +-
 .../util/closeable/SequentialCloseable.java     |  2 +-
 .../common/util/io/ModifiableFileWatcher.java   |  5 +---
 .../sshd/common/util/net/SshdSocketAddress.java |  5 +---
 .../server/ServerAuthenticationManager.java     |  2 +-
 .../java/org/apache/sshd/server/SshServer.java  |  2 +-
 .../apache/sshd/server/StandardEnvironment.java |  2 +-
 .../server/auth/BuiltinUserAuthFactories.java   |  4 +--
 .../auth/hostbased/UserAuthHostBased.java       |  2 +-
 .../keyboard/UserAuthKeyboardInteractive.java   |  2 +-
 .../pubkey/KeySetPublickeyAuthenticator.java    |  2 +-
 .../server/channel/AbstractServerChannel.java   |  2 +-
 .../sshd/server/forward/TcpipServerChannel.java |  2 +-
 .../sshd/server/scp/ScpCommandFactory.java      |  4 +--
 .../sshd/server/shell/InvertedShellWrapper.java |  2 +-
 .../apache/sshd/server/shell/ProcessShell.java  |  2 +-
 .../sshd/server/shell/ProcessShellFactory.java  |  6 ++--
 .../sftp/AbstractSftpEventListenerManager.java  |  2 +-
 .../server/subsystem/sftp/SftpSubsystem.java    | 12 ++++----
 .../src/test/java/org/apache/sshd/LoadTest.java |  4 +--
 .../java/org/apache/sshd/client/ClientTest.java | 31 +++++++++-----------
 .../hosts/ConfigFileHostEntryResolverTest.java  |  2 +-
 .../client/simple/SimpleSftpClientTest.java     |  4 +--
 .../sftp/AbstractSftpClientTestSupport.java     |  4 +--
 .../subsystem/sftp/SftpFileSystemTest.java      | 12 ++++----
 .../client/subsystem/sftp/SftpVersionsTest.java |  4 +--
 .../helpers/CopyDataExtensionImplTest.java      |  2 +-
 .../SpaceAvailableExtensionImplTest.java        |  2 +-
 .../openssh/helpers/OpenSSHExtensionsTest.java  |  3 +-
 .../sshd/common/auth/AuthenticationTest.java    | 17 +++++------
 .../channel/ChannelPipedInputStreamTest.java    |  2 +-
 .../apache/sshd/common/channel/WindowTest.java  |  3 +-
 .../sshd/common/cipher/BuiltinCiphersTest.java  |  2 +-
 .../apache/sshd/common/cipher/CipherTest.java   |  2 +-
 .../compression/BuiltinCompressionsTest.java    |  2 +-
 .../common/compression/CompressionTest.java     |  3 +-
 .../file/root/RootedFileSystemProviderTest.java |  6 ++--
 .../sshd/common/file/util/BasePathTest.java     |  2 +-
 .../io/DefaultIoServiceFactoryFactoryTest.java  |  4 +--
 .../sshd/common/kex/BuiltinDHFactoriesTest.java |  2 +-
 .../apache/sshd/common/mac/BuiltinMacsTest.java |  2 +-
 .../org/apache/sshd/common/mac/MacTest.java     |  3 +-
 .../apache/sshd/common/mac/MacVectorsTest.java  |  2 +-
 .../common/signature/BuiltinSignaturesTest.java |  2 +-
 .../common/util/EventListenerUtilsTest.java     |  2 +-
 .../apache/sshd/deprecated/UserAuthAgent.java   |  2 +-
 .../sshd/deprecated/UserAuthPublicKey.java      |  2 +-
 .../sshd/server/ServerSessionListenerTest.java  |  3 +-
 .../sshd/server/auth/WelcomeBannerTest.java     |  2 +-
 .../sshd/server/channel/ChannelSessionTest.java |  4 +--
 .../server/shell/TtyFilterOutputStreamTest.java |  6 ++--
 .../server/subsystem/sftp/SshFsMounter.java     |  3 +-
 .../apache/sshd/util/test/BaseTestSupport.java  |  4 +--
 .../org/apache/sshd/util/test/EchoShell.java    |  5 +---
 .../sshd/git/pack/GitPackCommandTest.java       |  4 +--
 .../apache/sshd/git/pgm/GitPgmCommandTest.java  |  4 +--
 .../auth/pubkey/LdapPublickeyAuthenticator.java |  2 +-
 118 files changed, 210 insertions(+), 261 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-contrib/src/test/java/org/apache/sshd/server/subsystem/sftp/SimpleAccessControlSftpEventListenerTest.java
----------------------------------------------------------------------
diff --git a/sshd-contrib/src/test/java/org/apache/sshd/server/subsystem/sftp/SimpleAccessControlSftpEventListenerTest.java b/sshd-contrib/src/test/java/org/apache/sshd/server/subsystem/sftp/SimpleAccessControlSftpEventListenerTest.java
index 1a75871..6f90d3d 100644
--- a/sshd-contrib/src/test/java/org/apache/sshd/server/subsystem/sftp/SimpleAccessControlSftpEventListenerTest.java
+++ b/sshd-contrib/src/test/java/org/apache/sshd/server/subsystem/sftp/SimpleAccessControlSftpEventListenerTest.java
@@ -30,12 +30,10 @@ import org.apache.sshd.client.session.ClientSession;
 import org.apache.sshd.client.subsystem.sftp.SftpClient;
 import org.apache.sshd.client.subsystem.sftp.SftpClient.CloseableHandle;
 import org.apache.sshd.client.subsystem.sftp.SftpClient.OpenMode;
-import org.apache.sshd.common.NamedFactory;
 import org.apache.sshd.common.file.FileSystemFactory;
 import org.apache.sshd.common.file.virtualfs.VirtualFileSystemFactory;
 import org.apache.sshd.common.subsystem.sftp.SftpConstants;
 import org.apache.sshd.common.subsystem.sftp.SftpException;
-import org.apache.sshd.server.Command;
 import org.apache.sshd.server.SshServer;
 import org.apache.sshd.server.scp.ScpCommandFactory;
 import org.apache.sshd.util.test.BaseTestSupport;
@@ -68,7 +66,7 @@ public class SimpleAccessControlSftpEventListenerTest extends BaseTestSupport {
                 new SftpSubsystemFactory.Builder();
         builder.addSftpEventListener(SimpleAccessControlSftpEventListener.READ_ONLY_ACCESSOR);
         sshd.setSubsystemFactories(
-                Collections.<NamedFactory<Command>>singletonList(builder.build()));
+                Collections.singletonList(builder.build()));
         sshd.setCommandFactory(new ScpCommandFactory());
         sshd.setFileSystemFactory(fileSystemFactory);
         sshd.start();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
index 30bc5ea..a21a976 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
@@ -59,7 +59,7 @@ public class AgentServerProxy extends AbstractLoggingBean implements SshAgentSer
                 throw (IOException) t;
             }
 
-            throw (IOException) new IOException("Failed (" + t.getClass().getSimpleName() + ") to create client: " + t.getMessage()).initCause(t);
+            throw (IOException) new IOException("Failed (" + t.getClass().getSimpleName() + ") to create client: " + t.getMessage(), t);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
index 23c301d..ac9fab8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
@@ -57,7 +57,7 @@ public class AgentClient extends AbstractAgentProxy implements Runnable {
         this.authSocket = authSocket;
 
         setExecutorService((executor == null) ? ThreadUtils.newSingleThreadExecutor("AgentClient[" + authSocket + "]") : executor);
-        setShutdownOnExit((executor == null) ? true : shutdownOnExit);
+        setShutdownOnExit((executor == null) || shutdownOnExit);
 
         try {
             pool = Pool.create(AprLibrary.getInstance().getRootPool());

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
index c0b3126..d4e6ea1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
@@ -63,7 +63,7 @@ public class AgentServer extends AbstractLoggingBean implements Closeable, Execu
     public AgentServer(SshAgent agent, ExecutorService executor, boolean shutdownOnExit) {
         this.agent = agent;
         this.service = (executor == null) ? ThreadUtils.newSingleThreadExecutor("AgentServer[" + agent + "]") : executor;
-        this.shutdownExecutor = (service == executor) ? shutdownOnExit : true;
+        this.shutdownExecutor = service != executor || shutdownOnExit;
     }
 
     public SshAgent getAgent() {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
index 9cb4487..e59265b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
@@ -91,7 +91,7 @@ public class AgentServerProxy extends AbstractLoggingBean implements SshAgentSer
             }
 
             pipeService = (executor == null) ? ThreadUtils.newSingleThreadExecutor("sshd-AgentServerProxy-PIPE-" + authSocket) : executor;
-            pipeCloseOnExit = (executor == pipeService) ? shutdownOnExit : true;
+            pipeCloseOnExit = executor != pipeService || shutdownOnExit;
             piper = pipeService.submit(new Runnable() {
                 @SuppressWarnings("synthetic-access")
                 @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
index f76954b..ef28f34 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
@@ -88,7 +88,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
 
             ExecutorService service = getExecutorService();
             forwardService = (service == null) ? ThreadUtils.newSingleThreadExecutor("ChannelAgentForwarding[" + authSocket + "]") : service;
-            shutdownForwarder = (service == forwardService) ? isShutdownOnExit() : true;
+            shutdownForwarder = service != forwardService || isShutdownOnExit();
 
             final int copyBufSize = PropertyResolverUtils.getIntProperty(this, FORWARDER_BUFFER_SIZE, DEFAULT_FORWARDER_BUF_SIZE);
             ValidateUtils.checkTrue(copyBufSize >= MIN_FORWARDER_BUF_SIZE, "Copy buf size below min.: %d", copyBufSize);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/ClientAuthenticationManager.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/ClientAuthenticationManager.java b/sshd-core/src/main/java/org/apache/sshd/client/ClientAuthenticationManager.java
index afe1f92..ceb4105 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/ClientAuthenticationManager.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/ClientAuthenticationManager.java
@@ -142,7 +142,7 @@ public interface ClientAuthenticationManager extends KeyPairProviderHolder {
         setUserAuthFactoriesNames(GenericUtils.split(names, ','));
     }
     default void setUserAuthFactoriesNames(String ... names) {
-        setUserAuthFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.<String>emptyList() : Arrays.asList(names));
+        setUserAuthFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.emptyList() : Arrays.asList(names));
     }
     default void setUserAuthFactoriesNames(Collection<String> names) {
         BuiltinUserAuthFactories.ParseResult result = BuiltinUserAuthFactories.parseFactoriesList(names);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java b/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
index 244f285..2cdfca0 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
@@ -528,7 +528,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
                     log.debug("connect({}@{}:{}) no overrides", username, host, port);
                 }
 
-                return doConnect(username, address, Collections.<KeyPair>emptyList(), true);
+                return doConnect(username, address, Collections.emptyList(), true);
             } else {
                 if (log.isDebugEnabled()) {
                     log.debug("connect({}@{}:{}) effective: {}", username, host, port, entry);
@@ -540,7 +540,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
             if (log.isDebugEnabled()) {
                 log.debug("connect({}@{}) not an InetSocketAddress: {}", username, address, address.getClass().getName());
             }
-            return doConnect(username, address, Collections.<KeyPair>emptyList(), true);
+            return doConnect(username, address, Collections.emptyList(), true);
         }
     }
 
@@ -1186,7 +1186,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
     public static List<NamedFactory<Compression>> setupCompressions(Map<String, ?> options, PrintStream stderr) {
         String argVal = PropertyResolverUtils.getString(options, SshConfigFileReader.COMPRESSION_PROP);
         if (GenericUtils.isEmpty(argVal)) {
-            return Collections.<NamedFactory<Compression>>emptyList();
+            return Collections.emptyList();
         }
 
         NamedFactory<Compression> value = CompressionConfigValue.fromName(argVal);
@@ -1223,7 +1223,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
     public static List<NamedFactory<Mac>> setupMacs(Map<String, ?> options, PrintStream stderr) {
         String argVal = PropertyResolverUtils.getString(options, SshConfigFileReader.MACS_CONFIG_PROP);
         return GenericUtils.isEmpty(argVal)
-             ? Collections.<NamedFactory<Mac>>emptyList()
+             ? Collections.emptyList()
              : setupMacs(SshConfigFileReader.MACS_CONFIG_PROP, argVal, null, stderr);
     }
 
@@ -1251,7 +1251,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
     public static List<NamedFactory<Cipher>> setupCiphers(Map<String, ?> options, PrintStream stderr) {
         String argVal = PropertyResolverUtils.getString(options, SshConfigFileReader.CIPHERS_CONFIG_PROP);
         return GenericUtils.isEmpty(argVal)
-             ? Collections.<NamedFactory<Cipher>>emptyList()
+             ? Collections.emptyList()
              : setupCiphers(SshConfigFileReader.CIPHERS_CONFIG_PROP, argVal, null, stderr);
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 dfd8977..7bf4ff6 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
@@ -438,9 +438,9 @@ public class SshKeyScan extends AbstractSimplifiedLog
         }
 
         if (BuiltinIdentities.Constants.RSA.equalsIgnoreCase(keyType)) {
-            return Collections.singletonList((NamedFactory<Signature>) BuiltinSignatures.rsa);
+            return Collections.singletonList(BuiltinSignatures.rsa);
         } else if (BuiltinIdentities.Constants.DSA.equalsIgnoreCase(keyType)) {
-            return Collections.singletonList((NamedFactory<Signature>) BuiltinSignatures.dsa);
+            return Collections.singletonList(BuiltinSignatures.dsa);
         } else if (BuiltinIdentities.Constants.ECDSA.equalsIgnoreCase(keyType)) {
             List<NamedFactory<Signature>> factories = new ArrayList<>(ECCurves.NAMES.size());
             for (String n : ECCurves.NAMES) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/auth/BuiltinUserAuthFactories.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/BuiltinUserAuthFactories.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/BuiltinUserAuthFactories.java
index 27ecb2f..ba40caa 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/BuiltinUserAuthFactories.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/BuiltinUserAuthFactories.java
@@ -91,7 +91,7 @@ public enum BuiltinUserAuthFactories implements NamedFactory<UserAuthFactory> {
     }
 
     public static ParseResult parseFactoriesList(String... factories) {
-        return parseFactoriesList(GenericUtils.isEmpty((Object[]) factories) ? Collections.<String>emptyList() : Arrays.asList(factories));
+        return parseFactoriesList(GenericUtils.isEmpty((Object[]) factories) ? Collections.emptyList() : Arrays.asList(factories));
     }
 
     public static ParseResult parseFactoriesList(Collection<String> factories) {
@@ -131,7 +131,7 @@ public enum BuiltinUserAuthFactories implements NamedFactory<UserAuthFactory> {
      * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
      */
     public static class ParseResult extends NamedFactoriesListParseResult<UserAuth, UserAuthFactory> {
-        public static final ParseResult EMPTY = new ParseResult(Collections.<UserAuthFactory>emptyList(), Collections.<String>emptyList());
+        public static final ParseResult EMPTY = new ParseResult(Collections.emptyList(), Collections.emptyList());
 
         public ParseResult(List<UserAuthFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/HostKeyIdentityProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/HostKeyIdentityProvider.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/HostKeyIdentityProvider.java
index 7819422..d7879b5 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/HostKeyIdentityProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/hostbased/HostKeyIdentityProvider.java
@@ -54,7 +54,7 @@ public interface HostKeyIdentityProvider {
         }
 
         public static HostKeyIdentityProvider wrap(KeyPair ... pairs) {
-            return wrap(GenericUtils.isEmpty(pairs) ? Collections.<KeyPair>emptyList() : Arrays.asList(pairs));
+            return wrap(GenericUtils.isEmpty(pairs) ? Collections.emptyList() : Arrays.asList(pairs));
         }
 
         public static HostKeyIdentityProvider wrap(final Iterable<? extends KeyPair> pairs) {
@@ -75,7 +75,7 @@ public interface HostKeyIdentityProvider {
                                 @Override
                                 public Pair<KeyPair, List<X509Certificate>> next() {
                                     KeyPair kp = iter.next();
-                                    return new Pair<KeyPair, List<X509Certificate>>(kp, Collections.<X509Certificate>emptyList());
+                                    return new Pair<KeyPair, List<X509Certificate>>(kp, Collections.emptyList());
                                 }
 
                                 @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/auth/keyboard/UserAuthKeyboardInteractive.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/keyboard/UserAuthKeyboardInteractive.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/keyboard/UserAuthKeyboardInteractive.java
index a4fdcd9..f1fc526 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/keyboard/UserAuthKeyboardInteractive.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/keyboard/UserAuthKeyboardInteractive.java
@@ -296,11 +296,8 @@ public class UserAuthKeyboardInteractive extends AbstractUserAuth {
         }
 
         int sepPos = value.lastIndexOf(':');
-        if (sepPos <= passPos) {    // no prompt separator or separator before the password keyword
-            return false;
-        }
+        return sepPos > passPos;
 
-        return true;
     }
 
     public static String getAuthCommandName(int cmd) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/auth/password/PasswordIdentityProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/password/PasswordIdentityProvider.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/password/PasswordIdentityProvider.java
index 8250462..d126594 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/password/PasswordIdentityProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/password/PasswordIdentityProvider.java
@@ -70,7 +70,7 @@ public interface PasswordIdentityProvider {
             new Transformer<PasswordIdentityProvider, Iterable<String>>() {
                 @Override
                 public Iterable<String> transform(PasswordIdentityProvider p) {
-                    return (p == null) ? Collections.<String>emptyList() : p.loadPasswords();
+                    return (p == null) ? Collections.emptyList() : p.loadPasswords();
                 }
             };
 
@@ -89,7 +89,7 @@ public interface PasswordIdentityProvider {
          * @see ClientSession#getPasswordIdentityProvider()
          */
         public static Iterator<String> iteratorOf(ClientSession session) {
-            return (session == null) ? Collections.<String>emptyIterator() : iteratorOf(session.getRegisteredIdentities(), session.getPasswordIdentityProvider());
+            return (session == null) ? Collections.emptyIterator() : iteratorOf(session.getRegisteredIdentities(), session.getPasswordIdentityProvider());
         }
 
         /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 deb5c4a..e9a8196 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
@@ -83,7 +83,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
     protected OpenFuture openFuture;
 
     protected AbstractClientChannel(String type) {
-        this(type, Collections.<RequestHandler<Channel>>emptyList());
+        this(type, Collections.emptyList());
     }
 
     protected AbstractClientChannel(String type, Collection<? extends RequestHandler<Channel>> handlers) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 bba9947..08750a3 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
@@ -188,7 +188,7 @@ public class PtyCapableChannelSession extends ChannelSession {
     }
 
     public void setPtyModes(Map<PtyMode, Integer> ptyModes) {
-        this.ptyModes = (ptyModes == null) ? Collections.<PtyMode, Integer>emptyMap() : ptyModes;
+        this.ptyModes = (ptyModes == null) ? Collections.emptyMap() : ptyModes;
     }
 
     public void setEnv(String key, String value) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
index 1d3fc09..1a18556 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
@@ -242,7 +242,7 @@ public class HostConfigEntry extends HostPatternsHolder implements MutableUserHo
     }
 
     public void setIdentities(Collection<String> identities) {
-        this.identities = (identities == null) ? Collections.<String>emptyList() : identities;
+        this.identities = (identities == null) ? Collections.emptyList() : identities;
     }
 
     /**
@@ -550,7 +550,7 @@ public class HostConfigEntry extends HostPatternsHolder implements MutableUserHo
      * <U>case insensitive</U> key mapper.
      */
     public void setProperties(Map<String, String> properties) {
-        this.properties = (properties == null) ? Collections.<String, String>emptyMap() : properties;
+        this.properties = (properties == null) ? Collections.emptyMap() : properties;
     }
 
     public <A extends Appendable> A append(A sb) throws IOException {
@@ -639,7 +639,7 @@ public class HostConfigEntry extends HostPatternsHolder implements MutableUserHo
      * @see #appendNonEmptyValues(Appendable, String, Collection)
      */
     public static <A extends Appendable> A appendNonEmptyValues(A sb, String name, Object ... values) throws IOException {
-        return appendNonEmptyValues(sb, name, GenericUtils.isEmpty(values) ? Collections.<Object>emptyList() : Arrays.asList(values));
+        return appendNonEmptyValues(sb, name, GenericUtils.isEmpty(values) ? Collections.emptyList() : Arrays.asList(values));
     }
 
     /**
@@ -725,7 +725,7 @@ public class HostConfigEntry extends HostPatternsHolder implements MutableUserHo
             return normal;
         }
 
-        normal.setIdentities(Collections.<String>emptyList());  // start fresh
+        normal.setIdentities(Collections.emptyList());  // start fresh
         for (String id : ids) {
             String path = resolveIdentityFilePath(id, host, port, username);
             normal.addIdentity(path);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
index 4878458..58c95a1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/hosts/HostPatternsHolder.java
@@ -208,7 +208,7 @@ public abstract class HostPatternsHolder {
     }
 
     public static List<Pair<Pattern, Boolean>> parsePatterns(CharSequence ... patterns) {
-        return parsePatterns(GenericUtils.isEmpty(patterns) ? Collections.<CharSequence>emptyList() : Arrays.asList(patterns));
+        return parsePatterns(GenericUtils.isEmpty(patterns) ? Collections.emptyList() : Arrays.asList(patterns));
     }
 
     public static List<Pair<Pattern, Boolean>> parsePatterns(Collection<? extends CharSequence> patterns) {
@@ -302,9 +302,6 @@ public abstract class HostPatternsHolder {
         if ("-_.".indexOf(ch) >= 0) {
             return true;
         }
-        if (PATTERN_CHARS.indexOf(ch) >= 0) {
-            return true;
-        }
-        return false;
+        return PATTERN_CHARS.indexOf(ch) >= 0;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
index eb207ac..a9361c6 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
@@ -57,7 +57,7 @@ public class DefaultConnectFuture extends DefaultVerifiableSshFuture<ConnectFutu
         } else if (v instanceof Error) {
             throw (Error) v;
         } else if (v instanceof Throwable) {
-            throw (RuntimeSshException) new RuntimeSshException("Failed to get the session.").initCause((Throwable) v);
+            throw (RuntimeSshException) new RuntimeSshException("Failed to get the session.", (Throwable) v);
         } else if (v instanceof ClientSession) {
             return (ClientSession) v;
         } else {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/KnownHostsServerKeyVerifier.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/KnownHostsServerKeyVerifier.java b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/KnownHostsServerKeyVerifier.java
index 1a7c6ce..e62d4b3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/KnownHostsServerKeyVerifier.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/KnownHostsServerKeyVerifier.java
@@ -117,7 +117,7 @@ public class KnownHostsServerKeyVerifier
     protected final Object updateLock = new Object();
     private final ServerKeyVerifier delegate;
     private final AtomicReference<Collection<HostEntryPair>> keysHolder =
-            new AtomicReference<Collection<HostEntryPair>>(Collections.<HostEntryPair>emptyList());
+            new AtomicReference<Collection<HostEntryPair>>(Collections.emptyList());
     private ModifiedServerKeyAcceptor modKeyAcceptor;
 
     public KnownHostsServerKeyVerifier(ServerKeyVerifier delegate, Path file) {
@@ -164,7 +164,7 @@ public class KnownHostsServerKeyVerifier
                         log.debug("verifyServerKey({})[{}] missing known hosts file {}",
                                   clientSession, remoteAddress, file);
                     }
-                    knownHosts = Collections.<HostEntryPair>emptyList();
+                    knownHosts = Collections.emptyList();
                 }
 
                 setLoadedHostsEntries(knownHosts);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
index d750e5c..f411a01 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/scp/DefaultScpClient.java
@@ -78,7 +78,7 @@ public class DefaultScpClient extends AbstractScpClient {
 
     @Override
     public void download(String remote, OutputStream local) throws IOException {
-        String cmd = ScpClient.createReceiveCommand(remote, Collections.<Option>emptyList());
+        String cmd = ScpClient.createReceiveCommand(remote, Collections.emptyList());
         ClientSession session = getClientSession();
         ChannelExec channel = openCommandChannel(session, cmd);
         try (InputStream invOut = channel.getInvertedOut();
@@ -117,7 +117,7 @@ public class DefaultScpClient extends AbstractScpClient {
         final String name = (namePos < 0)
                 ? remote
                 : ValidateUtils.checkNotNullAndNotEmpty(remote.substring(namePos + 1), "No name value in remote=%s", remote);
-        final String cmd = ScpClient.createSendCommand(remote, (time != null) ? EnumSet.of(Option.PreserveAttributes) : Collections.<Option>emptySet());
+        final String cmd = ScpClient.createSendCommand(remote, (time != null) ? EnumSet.of(Option.PreserveAttributes) : Collections.emptySet());
         ClientSession session = getClientSession();
         ChannelExec channel = openCommandChannel(session, cmd);
         try (InputStream invOut = channel.getInvertedOut();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSession.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSession.java
index ab895e0..b525032 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSession.java
@@ -89,7 +89,7 @@ public interface ClientSession
         TIMEOUT,
         CLOSED,
         WAIT_AUTH,
-        AUTHED;
+        AUTHED
     }
 
     Set<ClientChannelEvent> REMOTE_COMMAND_WAIT_EVENTS =

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 49d09f8..82527ab 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
@@ -460,7 +460,7 @@ public interface SftpClient extends SubsystemClient {
      * @see #open(String, Collection)
      */
     default CloseableHandle open(String path) throws IOException {
-        return open(path, Collections.<OpenMode>emptySet());
+        return open(path, Collections.emptySet());
     }
 
     /**
@@ -503,7 +503,7 @@ public interface SftpClient extends SubsystemClient {
     void remove(String path) throws IOException;
 
     default void rename(String oldPath, String newPath) throws IOException {
-        rename(oldPath, newPath, Collections.<CopyMode>emptySet());
+        rename(oldPath, newPath, Collections.emptySet());
     }
 
     default void rename(String oldPath, String newPath, CopyMode... options) throws IOException {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileChannel.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileChannel.java
index 43e6c8c..941ee23 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpFileChannel.java
@@ -199,7 +199,7 @@ public class SftpFileChannel extends FileChannel {
 
     @Override
     public long position() throws IOException {
-        ensureOpen(Collections.<SftpClient.OpenMode>emptySet());
+        ensureOpen(Collections.emptySet());
         return posTracker.get();
     }
 
@@ -209,27 +209,27 @@ public class SftpFileChannel extends FileChannel {
             throw new IllegalArgumentException("position(" + p + ") illegal file channel position: " + newPosition);
         }
 
-        ensureOpen(Collections.<SftpClient.OpenMode>emptySet());
+        ensureOpen(Collections.emptySet());
         posTracker.set(newPosition);
         return this;
     }
 
     @Override
     public long size() throws IOException {
-        ensureOpen(Collections.<SftpClient.OpenMode>emptySet());
+        ensureOpen(Collections.emptySet());
         return sftp.stat(handle).getSize();
     }
 
     @Override
     public FileChannel truncate(long size) throws IOException {
-        ensureOpen(Collections.<SftpClient.OpenMode>emptySet());
+        ensureOpen(Collections.emptySet());
         sftp.setStat(handle, new SftpClient.Attributes().size(size));
         return this;
     }
 
     @Override
     public void force(boolean metaData) throws IOException {
-        ensureOpen(Collections.<SftpClient.OpenMode>emptySet());
+        ensureOpen(Collections.emptySet());
     }
 
     @Override
@@ -317,7 +317,7 @@ public class SftpFileChannel extends FileChannel {
 
     @Override
     public FileLock tryLock(final long position, final long size, boolean shared) throws IOException {
-        ensureOpen(Collections.<SftpClient.OpenMode>emptySet());
+        ensureOpen(Collections.emptySet());
 
         try {
             sftp.lock(handle, position, size, 0);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 bfc8100..48b10d2 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
@@ -284,7 +284,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
     // NOTE: URI parameters override environment ones
     public static Map<String, Object> resolveFileSystemParameters(Map<String, ?> env, Map<String, Object> uriParams) {
         if (GenericUtils.isEmpty(env)) {
-            return GenericUtils.isEmpty(uriParams) ? Collections.<String, Object>emptyMap() : uriParams;
+            return GenericUtils.isEmpty(uriParams) ? Collections.emptyMap() : uriParams;
         } else if (GenericUtils.isEmpty(uriParams)) {
             return Collections.unmodifiableMap(env);
         }
@@ -1235,7 +1235,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
     }
 
     public static URI createFileSystemURI(String host, int port, String username, String password) {
-        return createFileSystemURI(host, port, username, password, Collections.<String, Object>emptyMap());
+        return createFileSystemURI(host, port, username, password, Collections.emptyMap());
     }
 
     public static URI createFileSystemURI(String host, int port, String username, String password, Map<String, ?> params) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractSftpClientExtension.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractSftpClientExtension.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractSftpClientExtension.java
index 46a1235..949cca3 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractSftpClientExtension.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractSftpClientExtension.java
@@ -47,11 +47,11 @@ public abstract class AbstractSftpClientExtension extends AbstractLoggingBean im
     private final boolean supported;
 
     protected AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, Collection<String> extras) {
-        this(name, client, raw, GenericUtils.isEmpty(extras) ? false : extras.contains(name));
+        this(name, client, raw, !GenericUtils.isEmpty(extras) && extras.contains(name));
     }
 
     protected AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, Map<String, byte[]> extensions) {
-        this(name, client, raw, GenericUtils.isEmpty(extensions) ? false : extensions.containsKey(name));
+        this(name, client, raw, !GenericUtils.isEmpty(extensions) && extensions.containsKey(name));
     }
 
     protected AbstractSftpClientExtension(String name, SftpClient client, RawSftpClient raw, boolean supported) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java b/sshd-core/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java
index 698e6e2..707cb81 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/SyspropsMapWrapper.java
@@ -107,7 +107,7 @@ public final class SyspropsMapWrapper implements Map<String, Object> {
         Properties props = System.getProperties();
         // return a copy in order to avoid concurrent modifications
         Set<Entry<String, Object>> entries =
-                new TreeSet<Entry<String, Object>>(Pair.<String, Object>byKeyEntryComparator());
+                new TreeSet<Entry<String, Object>>(Pair.byKeyEntryComparator());
         for (String key : props.stringPropertyNames()) {
             if (!isMappedSyspropKey(key)) {
                 continue;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 c99f6f3..b2e4c1c 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
@@ -85,7 +85,7 @@ public abstract class AbstractChannel
      * Channel events listener
      */
     protected final Collection<ChannelListener> channelListeners =
-            EventListenerUtils.<ChannelListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     protected final ChannelListener channelListenerProxy;
 
     private int id = -1;
@@ -113,7 +113,7 @@ public abstract class AbstractChannel
     }
 
     protected AbstractChannel(String discriminator, boolean client) {
-        this(discriminator, client, Collections.<RequestHandler<Channel>>emptyList());
+        this(discriminator, client, Collections.emptyList());
     }
 
     protected AbstractChannel(String discriminator, boolean client, Collection<? extends RequestHandler<Channel>> handlers) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 1e2a751..1accc85 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
@@ -166,7 +166,7 @@ public class ChannelAsyncInputStream extends AbstractCloseable implements IoInpu
             } else if (v instanceof Error) {
                 throw (Error) v;
             } else if (v instanceof Throwable) {
-                throw (RuntimeSshException) new RuntimeSshException("Error reading from channel.").initCause((Throwable) v);
+                throw (RuntimeSshException) new RuntimeSshException("Error reading from channel.", (Throwable) v);
             } else if (v instanceof Number) {
                 return ((Number) v).intValue();
             } else {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 fa92fe1..355a469 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
@@ -245,11 +245,9 @@ public final class SttySupport {
      */
     public static String exec(final String cmd)
             throws IOException, InterruptedException {
-        return exec(new String[] {
-            "sh",
-            "-c",
-            cmd
-        });
+        return exec("sh",
+                "-c",
+                cmd);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java
index 23548f1..d85e51d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/Window.java
@@ -65,7 +65,7 @@ public class Window extends AbstractLoggingBean implements java.nio.channels.Cha
 
     private int maxSize;
     private int packetSize;
-    private Map<String, Object> props = Collections.<String, Object>emptyMap();
+    private Map<String, Object> props = Collections.emptyMap();
 
     public Window(AbstractChannel channel, Object lock, boolean client, boolean local) {
         this.channelInstance = ValidateUtils.checkNotNull(channel, "No channel provided");
@@ -115,7 +115,7 @@ public class Window extends AbstractLoggingBean implements java.nio.channels.Cha
         synchronized (lock) {
             this.maxSize = size;
             this.packetSize = packetSize;
-            this.props = (props == null) ? Collections.<String, Object>emptyMap() : props;
+            this.props = (props == null) ? Collections.emptyMap() : props;
             updateSize(size);
         }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 4038440..409bade 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
@@ -251,7 +251,7 @@ public enum BuiltinCiphers implements CipherFactory {
     }
 
     public static ParseResult parseCiphersList(String... ciphers) {
-        return parseCiphersList(GenericUtils.isEmpty((Object[]) ciphers) ? Collections.<String>emptyList() : Arrays.asList(ciphers));
+        return parseCiphersList(GenericUtils.isEmpty((Object[]) ciphers) ? Collections.emptyList() : Arrays.asList(ciphers));
     }
 
     public static ParseResult parseCiphersList(Collection<String> ciphers) {
@@ -303,7 +303,7 @@ public enum BuiltinCiphers implements CipherFactory {
      * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
      */
     public static class ParseResult extends NamedFactoriesListParseResult<Cipher, CipherFactory> {
-        public static final ParseResult EMPTY = new ParseResult(Collections.<CipherFactory>emptyList(), Collections.<String>emptyList());
+        public static final ParseResult EMPTY = new ParseResult(Collections.emptyList(), Collections.emptyList());
 
         public ParseResult(List<CipherFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 e27e4a6..8365226 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
@@ -166,7 +166,7 @@ public enum BuiltinCompressions implements CompressionFactory {
     }
 
     public static ParseResult parseCompressionsList(String... compressions) {
-        return parseCompressionsList(GenericUtils.isEmpty((Object[]) compressions) ? Collections.<String>emptyList() : Arrays.asList(compressions));
+        return parseCompressionsList(GenericUtils.isEmpty((Object[]) compressions) ? Collections.emptyList() : Arrays.asList(compressions));
     }
 
     public static ParseResult parseCompressionsList(Collection<String> compressions) {
@@ -218,7 +218,7 @@ public enum BuiltinCompressions implements CompressionFactory {
      * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
      */
     public static class ParseResult extends NamedFactoriesListParseResult<Compression, CompressionFactory> {
-        public static final ParseResult EMPTY = new ParseResult(Collections.<CompressionFactory>emptyList(), Collections.<String>emptyList());
+        public static final ParseResult EMPTY = new ParseResult(Collections.emptyList(), Collections.emptyList());
 
         public ParseResult(List<CompressionFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java b/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
index 4b08beb..35ba82a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/SshConfigFileReader.java
@@ -599,7 +599,7 @@ public final class SshConfigFileReader {
         CompressionFactory factory = CompressionConfigValue.fromName(value);
         ValidateUtils.checkTrue(lenient || (factory != null), "Unsupported compression value: %s", value);
         if ((factory != null) && factory.isSupported()) {
-            manager.setCompressionFactories(Collections.<NamedFactory<Compression>>singletonList(factory));
+            manager.setCompressionFactories(Collections.singletonList(factory));
         }
 
         return manager;
@@ -613,7 +613,7 @@ public final class SshConfigFileReader {
         if (factory != null) {
             // SSH can work without compression
             if (ignoreUnsupported || factory.isSupported()) {
-                manager.setCompressionFactories(Collections.<NamedFactory<Compression>>singletonList(factory));
+                manager.setCompressionFactories(Collections.singletonList(factory));
             }
         } else {
             BuiltinCompressions.ParseResult result = BuiltinCompressions.parseCompressionsList(value);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/config/TimeValueConfig.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/config/TimeValueConfig.java b/sshd-core/src/main/java/org/apache/sshd/common/config/TimeValueConfig.java
index ad4d981..83e9003 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/config/TimeValueConfig.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/config/TimeValueConfig.java
@@ -96,7 +96,7 @@ public enum TimeValueConfig {
      * @throws NumberFormatException    If bad numbers found - e.g., negative counts
      * @throws IllegalArgumentException If bad format - e.g., unknown unit
      */
-    public static Map<TimeValueConfig, Long> parse(String s) throws NumberFormatException, IllegalArgumentException {
+    public static Map<TimeValueConfig, Long> parse(String s) throws IllegalArgumentException {
         if (GenericUtils.isEmpty(s)) {
             return Collections.emptyMap();
         }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
index 8d69916..169daa1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BaseFileSystem.java
@@ -67,7 +67,7 @@ public abstract class BaseFileSystem<T extends Path> extends FileSystem {
 
     @Override
     public Iterable<Path> getRootDirectories() {
-        return Collections.<Path>singleton(create("/"));
+        return Collections.singleton(create("/"));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
index 5e42099..b2bbf42 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/util/BasePath.java
@@ -275,7 +275,7 @@ public abstract class BasePath<T extends BasePath<T, FS>, FS extends BaseFileSys
         }
         int extraNamesInThis = Math.max(0, p1.names.size() - sharedSubsequenceLength);
         List<String> extraNamesInOther = (p2.names.size() <= sharedSubsequenceLength)
-                ? Collections.<String>emptyList()
+                ? Collections.emptyList()
                 : p2.names.subList(sharedSubsequenceLength, p2.names.size());
         List<String> parts = new ArrayList<>(extraNamesInThis + extraNamesInOther.size());
         // add .. for each extra name in this path

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
index 60921c8..abfc9b9 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
@@ -72,7 +72,7 @@ public class VirtualFileSystemFactory implements FileSystemFactory {
             throw new InvalidPathException(username, "Cannot resolve home directory");
         }
 
-        return new RootedFileSystemProvider().newFileSystem(dir, Collections.<String, Object>emptyMap());
+        return new RootedFileSystemProvider().newFileSystem(dir, Collections.emptyMap());
     }
 
     protected Path computeRootDir(Session session) throws IOException  {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
index aba9317..48c8e1c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarder.java
@@ -104,7 +104,7 @@ public class DefaultTcpipForwarder
         }
     };
     private final Collection<PortForwardingEventListener> listeners =
-            EventListenerUtils.<PortForwardingEventListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     private final PortForwardingEventListener listenerProxy;
 
     private IoAcceptor acceptor;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
index e7de9c3..b100524 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultTcpipForwarderFactory.java
@@ -43,7 +43,7 @@ public class DefaultTcpipForwarderFactory implements TcpipForwarderFactory, Port
     };
 
     private final Collection<PortForwardingEventListener> listeners =
-            EventListenerUtils.<PortForwardingEventListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     private final PortForwardingEventListener listenerProxy;
 
     public DefaultTcpipForwarderFactory() {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java b/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java
index 48a78f2..415d101 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/helpers/AbstractFactoryManager.java
@@ -79,13 +79,13 @@ public abstract class AbstractFactoryManager extends AbstractKexFactoryManager i
     protected SessionTimeoutListener sessionTimeoutListener;
     protected ScheduledFuture<?> timeoutListenerFuture;
     protected final Collection<SessionListener> sessionListeners =
-            EventListenerUtils.<SessionListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     protected final SessionListener sessionListenerProxy;
     protected final Collection<ChannelListener> channelListeners =
-            EventListenerUtils.<ChannelListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     protected final ChannelListener channelListenerProxy;
     protected final Collection<PortForwardingEventListener> tunnelListeners =
-            EventListenerUtils.<PortForwardingEventListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     protected final PortForwardingEventListener tunnelListenerProxy;
 
     private final Map<String, Object> properties = new ConcurrentHashMap<>();

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractKexFactoryManager.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractKexFactoryManager.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractKexFactoryManager.java
index e86e579..df4bead 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractKexFactoryManager.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/AbstractKexFactoryManager.java
@@ -56,7 +56,7 @@ public abstract class AbstractKexFactoryManager
     @Override
     public List<NamedFactory<KeyExchange>> getKeyExchangeFactories() {
         return resolveEffectiveFactories(KeyExchange.class, keyExchangeFactories,
-                (parent == null) ? Collections.<NamedFactory<KeyExchange>>emptyList() : parent.getKeyExchangeFactories());
+                (parent == null) ? Collections.emptyList() : parent.getKeyExchangeFactories());
     }
 
     @Override
@@ -67,7 +67,7 @@ public abstract class AbstractKexFactoryManager
     @Override
     public List<NamedFactory<Cipher>> getCipherFactories() {
         return resolveEffectiveFactories(Cipher.class, cipherFactories,
-                (parent == null) ? Collections.<NamedFactory<Cipher>>emptyList() : parent.getCipherFactories());
+                (parent == null) ? Collections.emptyList() : parent.getCipherFactories());
     }
 
     @Override
@@ -78,7 +78,7 @@ public abstract class AbstractKexFactoryManager
     @Override
     public List<NamedFactory<Compression>> getCompressionFactories() {
         return resolveEffectiveFactories(Compression.class, compressionFactories,
-                (parent == null) ? Collections.<NamedFactory<Compression>>emptyList() : parent.getCompressionFactories());
+                (parent == null) ? Collections.emptyList() : parent.getCompressionFactories());
     }
 
     @Override
@@ -89,7 +89,7 @@ public abstract class AbstractKexFactoryManager
     @Override
     public List<NamedFactory<Mac>> getMacFactories() {
         return resolveEffectiveFactories(Mac.class, macFactories,
-                (parent == null) ? Collections.<NamedFactory<Mac>>emptyList() : parent.getMacFactories());
+                (parent == null) ? Collections.emptyList() : parent.getMacFactories());
     }
 
     @Override
@@ -100,7 +100,7 @@ public abstract class AbstractKexFactoryManager
     @Override
     public List<NamedFactory<Signature>> getSignatureFactories() {
         return resolveEffectiveFactories(Signature.class, signatureFactories,
-                (parent == null) ? Collections.<NamedFactory<Signature>>emptyList() : parent.getSignatureFactories());
+                (parent == null) ? Collections.emptyList() : parent.getSignatureFactories());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 b2c2f72..a139fa6 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
@@ -257,7 +257,7 @@ public enum BuiltinDHFactories implements DHFactory {
     }
 
     public static ParseResult parseDHFactoriesList(String... dhList) {
-        return parseDHFactoriesList(GenericUtils.isEmpty((Object[]) dhList) ? Collections.<String>emptyList() : Arrays.asList(dhList));
+        return parseDHFactoriesList(GenericUtils.isEmpty((Object[]) dhList) ? Collections.emptyList() : Arrays.asList(dhList));
     }
 
     public static ParseResult parseDHFactoriesList(Collection<String> dhList) {
@@ -309,7 +309,7 @@ public enum BuiltinDHFactories implements DHFactory {
      * @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.emptyList(), Collections.emptyList());
 
         public ParseResult(List<DHFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/kex/KexFactoryManager.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexFactoryManager.java b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexFactoryManager.java
index 6776f29..cce5cd1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/kex/KexFactoryManager.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/kex/KexFactoryManager.java
@@ -68,7 +68,7 @@ public interface KexFactoryManager extends KeyPairProviderHolder, SignatureFacto
         setCipherFactoriesNames(GenericUtils.split(names, ','));
     }
     default void setCipherFactoriesNames(String ... names) {
-        setCipherFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.<String>emptyList() : Arrays.asList(names));
+        setCipherFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.emptyList() : Arrays.asList(names));
     }
     default void setCipherFactoriesNames(Collection<String> names) {
         BuiltinCiphers.ParseResult result = BuiltinCiphers.parseCiphersList(names);
@@ -98,7 +98,7 @@ public interface KexFactoryManager extends KeyPairProviderHolder, SignatureFacto
         setCompressionFactoriesNames(GenericUtils.split(names, ','));
     }
     default void setCompressionFactoriesNames(String ... names) {
-        setCompressionFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.<String>emptyList() : Arrays.asList(names));
+        setCompressionFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.emptyList() : Arrays.asList(names));
     }
     default void setCompressionFactoriesNames(Collection<String> names) {
         BuiltinCompressions.ParseResult result = BuiltinCompressions.parseCompressionsList(names);
@@ -128,7 +128,7 @@ public interface KexFactoryManager extends KeyPairProviderHolder, SignatureFacto
         setMacFactoriesNames(GenericUtils.split(names, ','));
     }
     default void setMacFactoriesNames(String ... names) {
-        setMacFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.<String>emptyList() : Arrays.asList(names));
+        setMacFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.emptyList() : Arrays.asList(names));
     }
     default void setMacFactoriesNames(Collection<String> names) {
         BuiltinMacs.ParseResult result = BuiltinMacs.parseMacsList(names);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 4729b5f..967f03b 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
@@ -49,7 +49,7 @@ public abstract class AbstractClassLoadableResourceKeyPairProvider extends Abstr
     }
 
     public void setResources(Collection<String> resources) {
-        this.resources = (resources == null) ? Collections.<String>emptyList() : resources;
+        this.resources = (resources == null) ? Collections.emptyList() : resources;
     }
 
     public ClassLoader getResourceLoader() {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 e68529e..75d8e08 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
@@ -54,7 +54,7 @@ public abstract class AbstractFileKeyPairProvider extends AbstractResourceKeyPai
 
     public void setFiles(Collection<File> files) {
         if (GenericUtils.isEmpty(files)) {
-            setPaths(Collections.<Path>emptyList());
+            setPaths(Collections.emptyList());
         } else {
             List<Path> paths = new ArrayList<>(files.size());
             for (File f : files) {
@@ -66,7 +66,7 @@ public abstract class AbstractFileKeyPairProvider extends AbstractResourceKeyPai
 
     public void setPaths(Collection<? extends Path> paths) {
         int numPaths = GenericUtils.size(paths);
-        Collection<Path> resolved = (numPaths <= 0) ? Collections.<Path>emptyList() : new ArrayList<Path>(paths.size());
+        Collection<Path> resolved = (numPaths <= 0) ? Collections.emptyList() : new ArrayList<Path>(paths.size());
         // use absolute path in order to have unique cache keys
         if (numPaths > 0) {
             for (Path p : paths) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyIdentityProvider.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyIdentityProvider.java b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyIdentityProvider.java
index 4f331aa..cb1e08a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyIdentityProvider.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/keyprovider/KeyIdentityProvider.java
@@ -74,7 +74,7 @@ public interface KeyIdentityProvider {
             new Transformer<KeyIdentityProvider, Iterable<KeyPair>>() {
                 @Override
                 public Iterable<KeyPair> transform(KeyIdentityProvider p) {
-                    return (p == null) ? Collections.<KeyPair>emptyList() : p.loadKeys();
+                    return (p == null) ? Collections.emptyList() : p.loadKeys();
                 }
             };
 
@@ -94,7 +94,7 @@ public interface KeyIdentityProvider {
          * @see ClientSession#getKeyPairProvider()
          */
         public static Iterator<KeyPair> iteratorOf(ClientSession session) {
-            return (session == null) ? Collections.<KeyPair>emptyIterator() : iteratorOf(session.getRegisteredIdentities(), session.getKeyPairProvider());
+            return (session == null) ? Collections.emptyIterator() : iteratorOf(session.getRegisteredIdentities(), session.getKeyPairProvider());
         }
 
         /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 d988b2d..0b316c0 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
@@ -54,7 +54,7 @@ public class MappedKeyPairProvider implements KeyPairProvider {
     private final Map<String, KeyPair> pairsMap;
 
     public MappedKeyPairProvider(KeyPair ... pairs) {
-        this(GenericUtils.isEmpty(pairs) ? Collections.<KeyPair>emptyList() : Arrays.asList(pairs));
+        this(GenericUtils.isEmpty(pairs) ? Collections.emptyList() : Arrays.asList(pairs));
     }
 
     public MappedKeyPairProvider(Collection<? extends KeyPair> pairs) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/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 35614d3..3ad7c27 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
@@ -201,7 +201,7 @@ public enum BuiltinMacs implements MacFactory {
     }
 
     public static ParseResult parseMacsList(String... macs) {
-        return parseMacsList(GenericUtils.isEmpty((Object[]) macs) ? Collections.<String>emptyList() : Arrays.asList(macs));
+        return parseMacsList(GenericUtils.isEmpty((Object[]) macs) ? Collections.emptyList() : Arrays.asList(macs));
     }
 
     public static ParseResult parseMacsList(Collection<String> macs) {
@@ -248,7 +248,7 @@ public enum BuiltinMacs implements MacFactory {
     }
 
     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 ParseResult EMPTY = new ParseResult(Collections.emptyList(), Collections.emptyList());
 
         public ParseResult(List<MacFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java
index 76e20c4..779e215 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractConnectionServiceFactory.java
@@ -32,7 +32,7 @@ import org.apache.sshd.common.util.logging.AbstractLoggingBean;
  */
 public abstract class AbstractConnectionServiceFactory extends AbstractLoggingBean implements PortForwardingEventListenerManager {
     private final Collection<PortForwardingEventListener> listeners =
-            EventListenerUtils.<PortForwardingEventListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     private final PortForwardingEventListener listenerProxy;
 
     protected AbstractConnectionServiceFactory() {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/session/Session.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/Session.java b/sshd-core/src/main/java/org/apache/sshd/common/session/Session.java
index b5fe252..d9fca41 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/Session.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/Session.java
@@ -82,7 +82,7 @@ public interface Session
     enum TimeoutStatus {
         NoTimeout,
         AuthTimeout,
-        IdleTimeout;
+        IdleTimeout
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
index 8e60a67..8aea3a8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
@@ -100,7 +100,7 @@ public abstract class AbstractConnectionService<S extends AbstractSession>
     private final AtomicReference<TcpipForwarder> tcpipForwarderHolder = new AtomicReference<>();
     private final AtomicBoolean allowMoreSessions = new AtomicBoolean(true);
     private final Collection<PortForwardingEventListener> listeners =
-            EventListenerUtils.<PortForwardingEventListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     private final PortForwardingEventListener listenerProxy;
 
     private final S sessionInstance;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
index acf8e70..2ec5e7c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
@@ -135,21 +135,21 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen
      * Session listeners container
      */
     protected final Collection<SessionListener> sessionListeners =
-            EventListenerUtils.<SessionListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     protected final SessionListener sessionListenerProxy;
 
     /**
      * Channel events listener container
      */
     protected final Collection<ChannelListener> channelListeners =
-            EventListenerUtils.<ChannelListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     protected final ChannelListener channelListenerProxy;
 
     /**
      * Port forwarding events listener container
      */
     protected final Collection<PortForwardingEventListener> tunnelListeners =
-            EventListenerUtils.<PortForwardingEventListener>synchronizedListenersSet();
+            EventListenerUtils.synchronizedListenersSet();
     protected final PortForwardingEventListener tunnelListenerProxy;
 
     /*
@@ -897,7 +897,7 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen
     protected List<Service> getServices() {
         return (currentService != null)
               ? Collections.singletonList(currentService)
-              : Collections.<Service>emptyList();
+              : Collections.emptyList();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/signature/BuiltinSignatures.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/signature/BuiltinSignatures.java b/sshd-core/src/main/java/org/apache/sshd/common/signature/BuiltinSignatures.java
index 50beb8e..acd116e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/signature/BuiltinSignatures.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/signature/BuiltinSignatures.java
@@ -232,7 +232,7 @@ public enum BuiltinSignatures implements SignatureFactory {
     }
 
     public static ParseResult parseSignatureList(String... sigs) {
-        return parseSignatureList(GenericUtils.isEmpty((Object[]) sigs) ? Collections.<String>emptyList() : Arrays.asList(sigs));
+        return parseSignatureList(GenericUtils.isEmpty((Object[]) sigs) ? Collections.emptyList() : Arrays.asList(sigs));
     }
 
     public static ParseResult parseSignatureList(Collection<String> sigs) {
@@ -284,7 +284,7 @@ public enum BuiltinSignatures implements SignatureFactory {
      * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
      */
     public static final class ParseResult extends NamedFactoriesListParseResult<Signature, SignatureFactory> {
-        public static final ParseResult EMPTY = new ParseResult(Collections.<SignatureFactory>emptyList(), Collections.<String>emptyList());
+        public static final ParseResult EMPTY = new ParseResult(Collections.emptyList(), Collections.emptyList());
 
         public ParseResult(List<SignatureFactory> parsed, List<String> unsupported) {
             super(parsed, unsupported);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactoriesManager.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactoriesManager.java b/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactoriesManager.java
index ff07743..5bc3d54 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactoriesManager.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/signature/SignatureFactoriesManager.java
@@ -51,7 +51,7 @@ public interface SignatureFactoriesManager {
         setSignatureFactoriesNames(GenericUtils.split(names, ','));
     }
     default void setSignatureFactoriesNames(String ... names) {
-        setSignatureFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.<String>emptyList() : Arrays.asList(names));
+        setSignatureFactoriesNames(GenericUtils.isEmpty((Object[]) names) ? Collections.emptyList() : Arrays.asList(names));
     }
     default void setSignatureFactoriesNames(Collection<String> names) {
         BuiltinSignatures.ParseResult result = BuiltinSignatures.parseSignatureList(names);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/57f6a6b0/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java b/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
index 3859892..f218510 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/subsystem/sftp/extensions/AclSupportedParser.java
@@ -103,7 +103,7 @@ public class AclSupportedParser extends AbstractParser<AclCapabilities> {
             private static final String ACL_CAP_NAME_PREFIX = "SSH_ACL_CAP_";
             private static final Map<Integer, String> ACL_VALUES_MAP = LoggingUtils.generateMnemonicMap(SftpConstants.class, ACL_CAP_NAME_PREFIX);
             private static final Map<String, Integer> ACL_NAMES_MAP =
-                    Collections.unmodifiableMap(GenericUtils.flipMap(ACL_VALUES_MAP, GenericUtils.<Integer>caseInsensitiveMap(), false));
+                    Collections.unmodifiableMap(GenericUtils.flipMap(ACL_VALUES_MAP, GenericUtils.caseInsensitiveMap(), false));
         }
 
         @SuppressWarnings("synthetic-access")