You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2016/08/04 17:06:34 UTC
[2/3] mina-sshd git commit: [SSHD-674] Converted some more code to
Java 8
[SSHD-674] Converted some more code to Java 8
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/25bc715a
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/25bc715a
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/25bc715a
Branch: refs/heads/master
Commit: 25bc715a5680499375b5de12c6e14c3017380053
Parents: 5a13329
Author: Lyor Goldstein <ly...@gmail.com>
Authored: Thu Aug 4 20:06:53 2016 +0300
Committer: Lyor Goldstein <ly...@gmail.com>
Committed: Thu Aug 4 20:06:53 2016 +0300
----------------------------------------------------------------------
.../apache/sshd/agent/SshAgentConstants.java | 4 +-
.../java/org/apache/sshd/client/SshClient.java | 2 +-
.../auth/password/PasswordIdentityProvider.java | 2 +-
.../channel/PtyCapableChannelSession.java | 2 +-
.../keys/BuiltinClientIdentitiesWatcher.java | 2 +-
.../config/keys/ClientIdentitiesWatcher.java | 2 +-
.../config/keys/ClientIdentityFileWatcher.java | 2 +-
.../keys/DefaultClientIdentitiesWatcher.java | 2 +-
.../sshd/client/future/DefaultAuthFuture.java | 10 +-
.../client/future/DefaultConnectFuture.java | 15 +--
.../sshd/client/future/DefaultOpenFuture.java | 14 +--
.../keyverifier/ModifiedServerKeyAcceptor.java | 1 +
.../client/keyverifier/ServerKeyVerifier.java | 1 +
.../sshd/client/scp/AbstractScpClient.java | 107 +------------------
.../sshd/client/scp/DefaultScpClient.java | 10 +-
.../org/apache/sshd/client/scp/ScpClient.java | 96 ++++++++++++++---
.../sshd/client/scp/ScpClientCreator.java | 12 ++-
.../client/session/AbstractClientSession.java | 26 +----
.../client/session/ClientSessionHolder.java | 1 +
.../subsystem/sftp/AbstractSftpClient.java | 107 +------------------
.../subsystem/sftp/DefaultSftpClient.java | 14 ++-
.../sshd/client/subsystem/sftp/SftpClient.java | 88 +++++++++++----
.../subsystem/sftp/SftpClientCreator.java | 8 +-
.../extensions/BuiltinSftpClientExtensions.java | 6 --
.../extensions/SftpClientExtensionFactory.java | 7 +-
.../helpers/AbstractMD5HashExtension.java | 2 +-
.../helpers/AbstractSftpClientExtension.java | 8 +-
.../helpers/CopyDataExtensionImpl.java | 6 +-
.../helpers/CopyFileExtensionImpl.java | 4 +-
.../helpers/OpenSSHFsyncExtensionImpl.java | 2 +-
.../java/org/apache/sshd/common/Factory.java | 1 +
.../sshd/common/FactoryManagerHolder.java | 1 +
.../org/apache/sshd/common/NamedResource.java | 1 +
.../org/apache/sshd/common/OptionalFeature.java | 3 +-
.../org/apache/sshd/common/SshConstants.java | 6 +-
.../sshd/common/channel/AbstractChannel.java | 4 +-
.../common/channel/ChannelAsyncInputStream.java | 6 +-
.../sshd/common/channel/ChannelHolder.java | 1 +
.../sshd/common/channel/RequestHandler.java | 2 +-
.../org/apache/sshd/common/channel/Window.java | 8 +-
.../apache/sshd/common/cipher/BaseCipher.java | 6 --
.../sshd/common/cipher/BuiltinCiphers.java | 1 -
.../org/apache/sshd/common/cipher/Cipher.java | 5 +-
.../apache/sshd/common/cipher/CipherNone.java | 8 --
.../common/compression/BuiltinCompressions.java | 1 -
.../sshd/common/compression/Compression.java | 1 -
.../sshd/common/file/FileSystemAware.java | 1 +
.../sshd/common/file/FileSystemFactory.java | 2 +-
.../common/forward/TcpipForwarderFactory.java | 1 +
.../sshd/common/future/AbstractSshFuture.java | 26 +----
.../sshd/common/future/DefaultCloseFuture.java | 4 +-
.../common/future/DefaultKeyExchangeFuture.java | 4 +-
.../future/DefaultVerifiableSshFuture.java | 13 ---
.../sshd/common/future/SshFutureListener.java | 1 +
.../sshd/common/future/VerifiableFuture.java | 10 +-
.../sshd/common/future/WaitableFuture.java | 16 ++-
.../sshd/common/io/AbstractIoWriteFuture.java | 7 +-
.../sshd/common/kex/BuiltinDHFactories.java | 3 +-
.../common/keyprovider/KeyIdentityProvider.java | 2 +-
.../org/apache/sshd/common/mac/BaseMac.java | 19 ----
.../org/apache/sshd/common/mac/BuiltinMacs.java | 1 -
.../java/org/apache/sshd/common/mac/Mac.java | 17 ++-
.../sshd/common/random/AbstractRandom.java | 5 -
.../org/apache/sshd/common/random/Random.java | 4 +-
.../sshd/common/session/SessionHolder.java | 1 +
.../common/signature/AbstractSignature.java | 12 +--
.../common/signature/BuiltinSignatures.java | 1 -
.../common/subsystem/sftp/SftpConstants.java | 4 +-
.../sftp/extensions/AbstractParser.java | 11 --
.../sftp/extensions/ExtensionParser.java | 10 +-
.../apache/sshd/common/util/GenericUtils.java | 28 ++---
.../sshd/common/util/Int2IntFunction.java | 1 +
.../apache/sshd/common/util/NumberUtils.java | 9 +-
.../apache/sshd/common/util/ObjectBuilder.java | 3 +-
.../org/apache/sshd/common/util/Predicate.java | 29 -----
.../sshd/common/util/ReflectionUtils.java | 1 +
.../apache/sshd/common/util/SecurityUtils.java | 5 +-
.../org/apache/sshd/common/util/Supplier.java | 29 -----
.../apache/sshd/common/util/Transformer.java | 14 ++-
.../apache/sshd/common/util/buffer/Buffer.java | 52 ++++-----
.../sshd/common/util/buffer/BufferUtils.java | 22 ++--
.../common/util/buffer/ByteArrayBuffer.java | 6 +-
.../apache/sshd/common/util/io/DERParser.java | 3 +-
.../apache/sshd/common/util/io/DERWriter.java | 3 +-
.../sshd/common/util/logging/LoggingUtils.java | 18 ++--
.../apache/sshd/server/ChannelSessionAware.java | 1 +
.../org/apache/sshd/server/SessionAware.java | 1 +
.../auth/hostbased/HostBasedAuthenticator.java | 1 +
.../auth/password/PasswordAuthenticator.java | 1 +
.../auth/pubkey/PublickeyAuthenticator.java | 1 +
.../global/CancelTcpipForwardHandler.java | 2 +-
.../sshd/server/global/TcpipForwardHandler.java | 2 +-
.../server/session/ServerProxyAcceptor.java | 1 +
.../server/session/ServerSessionHolder.java | 1 +
.../apache/sshd/server/shell/ProcessShell.java | 11 +-
.../server/subsystem/sftp/SftpSubsystem.java | 6 +-
96 files changed, 397 insertions(+), 647 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
index e533cb0..aecf89d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentConstants.java
@@ -20,9 +20,9 @@ package org.apache.sshd.agent;
import java.lang.reflect.Field;
import java.util.Map;
+import java.util.function.Predicate;
import org.apache.sshd.common.util.GenericUtils;
-import org.apache.sshd.common.util.Predicate;
import org.apache.sshd.common.util.logging.LoggingUtils;
/**
@@ -78,7 +78,7 @@ public final class SshAgentConstants {
private static final Map<Integer, String> MESSAGES_MAP =
LoggingUtils.generateMnemonicMap(SshAgentConstants.class, new Predicate<Field>() {
@Override
- public boolean evaluate(Field f) {
+ public boolean test(Field f) {
String name = f.getName();
if (name.startsWith("SSH_AGENT_CONSTRAIN")) {
return false;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 1299518..244f285 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
@@ -50,6 +50,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.function.Supplier;
import java.util.logging.ConsoleHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
@@ -118,7 +119,6 @@ import org.apache.sshd.common.session.helpers.AbstractSession;
import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.common.util.OsUtils;
import org.apache.sshd.common.util.SecurityUtils;
-import org.apache.sshd.common.util.Supplier;
import org.apache.sshd.common.util.ValidateUtils;
import org.apache.sshd.common.util.io.IoUtils;
import org.apache.sshd.common.util.io.NoCloseInputStream;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 44f3b17..8250462 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
@@ -24,10 +24,10 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.function.Supplier;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.common.util.GenericUtils;
-import org.apache.sshd.common.util.Supplier;
import org.apache.sshd.common.util.Transformer;
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 61d0e91..bba9947 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
@@ -252,7 +252,7 @@ public class PtyCapableChannelSession extends ChannelSession {
buffer.putInt(ptyHeight);
buffer.putInt(ptyWidth);
- Buffer modes = new ByteArrayBuffer(GenericUtils.size(ptyModes) * (1 + (Integer.SIZE / Byte.SIZE)) + Long.SIZE, false);
+ Buffer modes = new ByteArrayBuffer(GenericUtils.size(ptyModes) * (1 + Integer.BYTES) + Long.SIZE, false);
for (Map.Entry<PtyMode, ? extends Number> modeEntry : ptyModes.entrySet()) {
PtyMode mode = modeEntry.getKey();
Number value = modeEntry.getValue();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/BuiltinClientIdentitiesWatcher.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/BuiltinClientIdentitiesWatcher.java b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/BuiltinClientIdentitiesWatcher.java
index fb104b4..fb9abce 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/BuiltinClientIdentitiesWatcher.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/BuiltinClientIdentitiesWatcher.java
@@ -26,13 +26,13 @@ import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
+import java.util.function.Supplier;
import org.apache.sshd.common.NamedResource;
import org.apache.sshd.common.config.keys.BuiltinIdentities;
import org.apache.sshd.common.config.keys.FilePasswordProvider;
import org.apache.sshd.common.config.keys.KeyUtils;
import org.apache.sshd.common.util.GenericUtils;
-import org.apache.sshd.common.util.Supplier;
import org.apache.sshd.common.util.ValidateUtils;
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentitiesWatcher.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentitiesWatcher.java b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentitiesWatcher.java
index 4abd4f7..c3dfe01 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentitiesWatcher.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentitiesWatcher.java
@@ -25,12 +25,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.function.Supplier;
import org.apache.sshd.common.config.keys.FilePasswordProvider;
import org.apache.sshd.common.keyprovider.AbstractKeyPairProvider;
import org.apache.sshd.common.keyprovider.KeyPairProvider;
import org.apache.sshd.common.util.GenericUtils;
-import org.apache.sshd.common.util.Supplier;
import org.apache.sshd.common.util.ValidateUtils;
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityFileWatcher.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityFileWatcher.java b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityFileWatcher.java
index a982324..3974930 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityFileWatcher.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityFileWatcher.java
@@ -25,12 +25,12 @@ import java.security.GeneralSecurityException;
import java.security.KeyPair;
import java.security.PublicKey;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Supplier;
import org.apache.sshd.common.config.keys.FilePasswordProvider;
import org.apache.sshd.common.config.keys.KeyUtils;
import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.common.util.Pair;
-import org.apache.sshd.common.util.Supplier;
import org.apache.sshd.common.util.ValidateUtils;
import org.apache.sshd.common.util.io.IoUtils;
import org.apache.sshd.common.util.io.ModifiableFileWatcher;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/DefaultClientIdentitiesWatcher.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/DefaultClientIdentitiesWatcher.java b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/DefaultClientIdentitiesWatcher.java
index ba1719f..b91fa7b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/config/keys/DefaultClientIdentitiesWatcher.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/config/keys/DefaultClientIdentitiesWatcher.java
@@ -21,11 +21,11 @@ package org.apache.sshd.client.config.keys;
import java.nio.file.Path;
import java.util.List;
+import java.util.function.Supplier;
import org.apache.sshd.common.config.keys.FilePasswordProvider;
import org.apache.sshd.common.config.keys.PublicKeyEntry;
import org.apache.sshd.common.util.GenericUtils;
-import org.apache.sshd.common.util.Supplier;
import org.apache.sshd.common.util.ValidateUtils;
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
index f42b94c..c41bed1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
@@ -45,7 +45,7 @@ public class DefaultAuthFuture extends DefaultVerifiableSshFuture<AuthFuture> im
return this;
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public Throwable getException() {
Object v = getValue();
if (v instanceof Throwable) {
@@ -55,13 +55,13 @@ public class DefaultAuthFuture extends DefaultVerifiableSshFuture<AuthFuture> im
}
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public boolean isSuccess() {
Object v = getValue();
return (v instanceof Boolean) && ((Boolean) v).booleanValue();
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public boolean isFailure() {
Object v = getValue();
if (v instanceof Boolean) {
@@ -71,12 +71,12 @@ public class DefaultAuthFuture extends DefaultVerifiableSshFuture<AuthFuture> im
}
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public void setAuthed(boolean authed) {
setValue(authed);
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public void setException(Throwable exception) {
ValidateUtils.checkNotNull(exception, "No exception provided");
setValue(exception);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 fd896ad..eb207ac 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
@@ -19,6 +19,7 @@
package org.apache.sshd.client.future;
import java.io.IOException;
+import java.util.Objects;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.common.RuntimeSshException;
@@ -36,7 +37,7 @@ public class DefaultConnectFuture extends DefaultVerifiableSshFuture<ConnectFutu
super(lock);
}
- @Override // TODO in JDK-8 make this a default method
+ @Override
public ConnectFuture verify(long timeout) throws IOException {
long startTime = System.nanoTime();
ClientSession session = verifyResult(ClientSession.class, timeout);
@@ -48,7 +49,7 @@ public class DefaultConnectFuture extends DefaultVerifiableSshFuture<ConnectFutu
return this;
}
- @Override // TODO in JDK-8 make this a default method
+ @Override
public ClientSession getSession() {
Object v = getValue();
if (v instanceof RuntimeException) {
@@ -64,7 +65,7 @@ public class DefaultConnectFuture extends DefaultVerifiableSshFuture<ConnectFutu
}
}
- @Override // TODO in JDK-8 make this a default method
+ @Override
public Throwable getException() {
Object v = getValue();
if (v instanceof Throwable) {
@@ -74,18 +75,18 @@ public class DefaultConnectFuture extends DefaultVerifiableSshFuture<ConnectFutu
}
}
- @Override // TODO in JDK-8 make this a default method
+ @Override
public boolean isConnected() {
return getValue() instanceof ClientSession;
}
- @Override // TODO in JDK-8 make this a default method
+ @Override
public void setSession(ClientSession session) {
- ValidateUtils.checkNotNull(session, "No client session provided");
+ Objects.requireNonNull(session, "No client session provided");
setValue(session);
}
- @Override // TODO in JDK-8 make this a default method
+ @Override
public void setException(Throwable exception) {
ValidateUtils.checkNotNull(exception, "No exception provided");
setValue(exception);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
index 0f3bc2e..4034003 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
@@ -19,10 +19,10 @@
package org.apache.sshd.client.future;
import java.io.IOException;
+import java.util.Objects;
import org.apache.sshd.common.SshException;
import org.apache.sshd.common.future.DefaultVerifiableSshFuture;
-import org.apache.sshd.common.util.ValidateUtils;
/**
* A default implementation of {@link OpenFuture}.
@@ -34,7 +34,7 @@ public class DefaultOpenFuture extends DefaultVerifiableSshFuture<OpenFuture> im
super(lock);
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public OpenFuture verify(long timeoutMillis) throws IOException {
Boolean result = verifyResult(Boolean.class, timeoutMillis);
if (!result.booleanValue()) {
@@ -44,7 +44,7 @@ public class DefaultOpenFuture extends DefaultVerifiableSshFuture<OpenFuture> im
return this;
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public Throwable getException() {
Object v = getValue();
if (v instanceof Throwable) {
@@ -54,20 +54,20 @@ public class DefaultOpenFuture extends DefaultVerifiableSshFuture<OpenFuture> im
}
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public boolean isOpened() {
Object value = getValue();
return (value instanceof Boolean) && ((Boolean) value).booleanValue();
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public void setOpened() {
setValue(Boolean.TRUE);
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public void setException(Throwable exception) {
- ValidateUtils.checkNotNull(exception, "No exception provided");
+ Objects.requireNonNull(exception, "No exception provided");
setValue(exception);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ModifiedServerKeyAcceptor.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ModifiedServerKeyAcceptor.java b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ModifiedServerKeyAcceptor.java
index 784576e..6472e04 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ModifiedServerKeyAcceptor.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ModifiedServerKeyAcceptor.java
@@ -28,6 +28,7 @@ import org.apache.sshd.client.session.ClientSession;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface ModifiedServerKeyAcceptor {
/**
* Invoked when a matching known host key was found but it does not match
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ServerKeyVerifier.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ServerKeyVerifier.java b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ServerKeyVerifier.java
index 5305dab..6122cee 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ServerKeyVerifier.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/keyverifier/ServerKeyVerifier.java
@@ -29,6 +29,7 @@ import org.apache.sshd.client.session.ClientSession;
*
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface ServerKeyVerifier {
/**
* Verify that the server key provided is really the one of the host.
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/scp/AbstractScpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/scp/AbstractScpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/scp/AbstractScpClient.java
index 3c1b5af..fa979c6 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/scp/AbstractScpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/scp/AbstractScpClient.java
@@ -19,15 +19,11 @@
package org.apache.sshd.client.scp;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.nio.file.FileSystem;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
-import java.nio.file.attribute.PosixFilePermission;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -45,7 +41,6 @@ import org.apache.sshd.common.SshException;
import org.apache.sshd.common.file.FileSystemFactory;
import org.apache.sshd.common.scp.ScpException;
import org.apache.sshd.common.scp.ScpHelper;
-import org.apache.sshd.common.scp.ScpTimestamp;
import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.common.util.ValidateUtils;
import org.apache.sshd.common.util.io.IoUtils;
@@ -68,16 +63,6 @@ public abstract class AbstractScpClient extends AbstractLoggingBean implements S
}
@Override
- public void download(String remote, String local, Option... options) throws IOException {
- download(remote, local, GenericUtils.isEmpty(options) ? Collections.<Option>emptySet() : GenericUtils.of(options));
- }
-
- @Override
- public void download(String[] remote, String local, Option... options) throws IOException {
- download(remote, local, GenericUtils.isEmpty(options) ? Collections.<Option>emptySet() : GenericUtils.of(options));
- }
-
- @Override
public void download(String[] remote, String local, Collection<Option> options) throws IOException {
local = ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument local: %s", local);
remote = ValidateUtils.checkNotNullAndNotEmpty(remote, "Invalid argument remote: %s", (Object) remote);
@@ -92,11 +77,6 @@ public abstract class AbstractScpClient extends AbstractLoggingBean implements S
}
@Override
- public void download(String[] remote, Path local, Option... options) throws IOException {
- download(remote, local, GenericUtils.isEmpty(options) ? Collections.<Option>emptySet() : GenericUtils.of(options));
- }
-
- @Override
public void download(String[] remote, Path local, Collection<Option> options) throws IOException {
remote = ValidateUtils.checkNotNullAndNotEmpty(remote, "Invalid argument remote: %s", (Object) remote);
@@ -110,11 +90,6 @@ public abstract class AbstractScpClient extends AbstractLoggingBean implements S
}
@Override
- public void download(String remote, Path local, Option... options) throws IOException {
- download(remote, local, GenericUtils.of(options));
- }
-
- @Override
public void download(String remote, Path local, Collection<Option> options) throws IOException {
local = ValidateUtils.checkNotNull(local, "Invalid argument local: %s", local);
remote = ValidateUtils.checkNotNullAndNotEmpty(remote, "Invalid argument remote: %s", remote);
@@ -167,57 +142,6 @@ public abstract class AbstractScpClient extends AbstractLoggingBean implements S
protected abstract void download(String remote, FileSystem fs, Path local, Collection<Option> options) throws IOException;
@Override
- public byte[] downloadBytes(String remote) throws IOException {
- try (ByteArrayOutputStream local = new ByteArrayOutputStream()) {
- download(remote, local);
- return local.toByteArray();
- }
- }
-
- @Override
- public void upload(String local, String remote, Option... options) throws IOException {
- upload(local, remote, GenericUtils.of(options));
- }
-
- @Override
- public void upload(String local, String remote, Collection<Option> options) throws IOException {
- upload(new String[]{ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument local: %s", local)}, remote, options);
- }
-
- @Override
- public void upload(String[] local, String remote, Option... options) throws IOException {
- upload(local, remote, GenericUtils.isEmpty(options) ? Collections.<Option>emptySet() : GenericUtils.of(options));
- }
-
- @Override
- public void upload(Path local, String remote, Option... options) throws IOException {
- upload(local, remote, GenericUtils.isEmpty(options) ? Collections.<Option>emptySet() : GenericUtils.of(options));
- }
-
- @Override
- public void upload(Path local, String remote, Collection<Option> options) throws IOException {
- upload(new Path[]{ValidateUtils.checkNotNull(local, "Invalid local argument: %s", local)},
- remote, GenericUtils.isEmpty(options) ? Collections.<Option>emptySet() : GenericUtils.of(options));
- }
-
- @Override
- public void upload(Path[] local, String remote, Option... options) throws IOException {
- upload(local, remote, GenericUtils.isEmpty(options) ? Collections.<Option>emptySet() : GenericUtils.of(options));
- }
-
- @Override
- public void upload(byte[] data, String remote, Collection<PosixFilePermission> perms, ScpTimestamp time) throws IOException {
- upload(data, 0, data.length, remote, perms, time);
- }
-
- @Override
- public void upload(byte[] data, int offset, int len, String remote, Collection<PosixFilePermission> perms, ScpTimestamp time) throws IOException {
- try (InputStream local = new ByteArrayInputStream(data, offset, len)) {
- upload(local, remote, len, perms, time);
- }
- }
-
- @Override
public void upload(String[] local, String remote, Collection<Option> options) throws IOException {
final Collection<String> paths = Arrays.asList(ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument local: %s", (Object) local));
runUpload(remote, options, paths, new ScpOperationExecutor<String>() {
@@ -350,36 +274,7 @@ public abstract class AbstractScpClient extends AbstractLoggingBean implements S
}
}
- public static String createSendCommand(String remote, Collection<Option> options) {
- StringBuilder sb = new StringBuilder(remote.length() + Long.SIZE).append(ScpHelper.SCP_COMMAND_PREFIX);
- if (options.contains(Option.Recursive)) {
- sb.append(" -r");
- }
- if (options.contains(Option.TargetIsDirectory)) {
- sb.append(" -d");
- }
- if (options.contains(Option.PreserveAttributes)) {
- sb.append(" -p");
- }
-
- sb.append(" -t").append(" --").append(" ").append(remote);
- return sb.toString();
- }
-
- public static String createReceiveCommand(String remote, Collection<Option> options) {
- ValidateUtils.checkNotNullAndNotEmpty(remote, "No remote location specified");
- StringBuilder sb = new StringBuilder(remote.length() + Long.SIZE).append(ScpHelper.SCP_COMMAND_PREFIX);
- if (options.contains(Option.Recursive)) {
- sb.append(" -r");
- }
- if (options.contains(Option.PreserveAttributes)) {
- sb.append(" -p");
- }
-
- sb.append(" -f").append(" --").append(' ').append(remote);
- return sb.toString();
- }
-
+ @FunctionalInterface
public interface ScpOperationExecutor<T> {
void execute(ScpHelper helper, Collection<T> local, Collection<Option> options) throws IOException;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 7b950a7..d750e5c 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 = createReceiveCommand(remote, Collections.<Option>emptyList());
+ String cmd = ScpClient.createReceiveCommand(remote, Collections.<Option>emptyList());
ClientSession session = getClientSession();
ChannelExec channel = openCommandChannel(session, cmd);
try (InputStream invOut = channel.getInvertedOut();
@@ -94,7 +94,7 @@ public class DefaultScpClient extends AbstractScpClient {
@Override
protected void download(String remote, FileSystem fs, Path local, Collection<Option> options) throws IOException {
- String cmd = createReceiveCommand(remote, options);
+ String cmd = ScpClient.createReceiveCommand(remote, options);
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 = createSendCommand(remote, (time != null) ? EnumSet.of(Option.PreserveAttributes) : Collections.<Option>emptySet());
+ final String cmd = ScpClient.createSendCommand(remote, (time != null) ? EnumSet.of(Option.PreserveAttributes) : Collections.<Option>emptySet());
ClientSession session = getClientSession();
ChannelExec channel = openCommandChannel(session, cmd);
try (InputStream invOut = channel.getInvertedOut();
@@ -141,7 +141,7 @@ public class DefaultScpClient extends AbstractScpClient {
options = addTargetIsDirectory(options);
}
- String cmd = createSendCommand(remote, options);
+ String cmd = ScpClient.createSendCommand(remote, options);
ClientSession session = getClientSession();
ChannelExec channel = openCommandChannel(session, cmd);
try {
@@ -182,7 +182,7 @@ public class DefaultScpClient extends AbstractScpClient {
return args;
}
- List<String> effective = new ArrayList<String>(numArgs);
+ List<String> effective = new ArrayList<>(numArgs);
boolean error = false;
for (int index = 0; (index < numArgs) && (!error); index++) {
String argName = args[index];
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClient.java
index a51f9c3..b2a6091 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClient.java
@@ -18,6 +18,8 @@
*/
package org.apache.sshd.client.scp;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -28,13 +30,16 @@ import java.util.concurrent.TimeUnit;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.client.session.ClientSessionHolder;
+import org.apache.sshd.common.scp.ScpHelper;
import org.apache.sshd.common.scp.ScpTimestamp;
import org.apache.sshd.common.session.SessionHolder;
+import org.apache.sshd.common.util.GenericUtils;
+import org.apache.sshd.common.util.ValidateUtils;
/**
+ * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public interface ScpClient extends SessionHolder<ClientSession>, ClientSessionHolder {
-
enum Option {
Recursive,
PreserveAttributes,
@@ -61,48 +66,109 @@ public interface ScpClient extends SessionHolder<ClientSession>, ClientSessionHo
String SCP_EXEC_CHANNEL_EXIT_STATUS_TIMEOUT = "scp-exec-channel-exit-status-timeout";
long DEFAULT_EXEC_CHANNEL_EXIT_STATUS_TIMEOUT = TimeUnit.SECONDS.toMillis(5L);
- void download(String remote, String local, Option... options) throws IOException;
+ default void download(String remote, String local, Option... options) throws IOException {
+ download(remote, local, GenericUtils.of(options));
+ }
void download(String remote, String local, Collection<Option> options) throws IOException;
- void download(String remote, Path local, Option... options) throws IOException;
+ default void download(String remote, Path local, Option... options) throws IOException {
+ download(remote, local, GenericUtils.of(options));
+ }
void download(String remote, Path local, Collection<Option> options) throws IOException;
// NOTE: the remote location MUST be a file or an exception is generated
void download(String remote, OutputStream local) throws IOException;
- byte[] downloadBytes(String remote) throws IOException;
+ default byte[] downloadBytes(String remote) throws IOException {
+ try (ByteArrayOutputStream local = new ByteArrayOutputStream()) {
+ download(remote, local);
+ return local.toByteArray();
+ }
+ }
+
+ default void download(String[] remote, String local, Option... options) throws IOException {
+ download(remote, local, GenericUtils.of(options));
+ }
- void download(String[] remote, String local, Option... options) throws IOException;
+ default void download(String[] remote, Path local, Option... options) throws IOException {
+ download(remote, local, GenericUtils.of(options));
+ }
void download(String[] remote, String local, Collection<Option> options) throws IOException;
- void download(String[] remote, Path local, Option... options) throws IOException;
-
void download(String[] remote, Path local, Collection<Option> options) throws IOException;
- void upload(String local, String remote, Option... options) throws IOException;
+ default void upload(String local, String remote, Option... options) throws IOException {
+ upload(local, remote, GenericUtils.of(options));
+ }
- void upload(String local, String remote, Collection<Option> options) throws IOException;
+ default void upload(String local, String remote, Collection<Option> options) throws IOException {
+ upload(new String[]{ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument local: %s", local)}, remote, options);
+ }
- void upload(Path local, String remote, Option... options) throws IOException;
+ default void upload(Path local, String remote, Option... options) throws IOException {
+ upload(local, remote, GenericUtils.of(options));
+ }
- void upload(Path local, String remote, Collection<Option> options) throws IOException;
+ default void upload(Path local, String remote, Collection<Option> options) throws IOException {
+ upload(new Path[]{ValidateUtils.checkNotNull(local, "Invalid local argument: %s", local)}, remote, GenericUtils.of(options));
+ }
- void upload(String[] local, String remote, Option... options) throws IOException;
+ default void upload(String[] local, String remote, Option... options) throws IOException {
+ upload(local, remote, GenericUtils.of(options));
+ }
void upload(String[] local, String remote, Collection<Option> options) throws IOException;
- void upload(Path[] local, String remote, Option... options) throws IOException;
+ default void upload(Path[] local, String remote, Option... options) throws IOException {
+ upload(local, remote, GenericUtils.of(options));
+ }
void upload(Path[] local, String remote, Collection<Option> options) throws IOException;
// NOTE: due to SCP command limitations, the amount of data to be uploaded must be known a-priori
// To upload a dynamic amount of data use SFTP
- void upload(byte[] data, String remote, Collection<PosixFilePermission> perms, ScpTimestamp time) throws IOException;
+ default void upload(byte[] data, String remote, Collection<PosixFilePermission> perms, ScpTimestamp time) throws IOException {
+ upload(data, 0, data.length, remote, perms, time);
+ }
- void upload(byte[] data, int offset, int len, String remote, Collection<PosixFilePermission> perms, ScpTimestamp time) throws IOException;
+ default void upload(byte[] data, int offset, int len, String remote, Collection<PosixFilePermission> perms, ScpTimestamp time) throws IOException {
+ try (InputStream local = new ByteArrayInputStream(data, offset, len)) {
+ upload(local, remote, len, perms, time);
+ }
+ }
void upload(InputStream local, String remote, long size, Collection<PosixFilePermission> perms, ScpTimestamp time) throws IOException;
+
+ static String createSendCommand(String remote, Collection<Option> options) {
+ StringBuilder sb = new StringBuilder(remote.length() + Long.SIZE).append(ScpHelper.SCP_COMMAND_PREFIX);
+ if (options.contains(Option.Recursive)) {
+ sb.append(" -r");
+ }
+ if (options.contains(Option.TargetIsDirectory)) {
+ sb.append(" -d");
+ }
+ if (options.contains(Option.PreserveAttributes)) {
+ sb.append(" -p");
+ }
+
+ sb.append(" -t").append(" --").append(" ").append(remote);
+ return sb.toString();
+ }
+
+ static String createReceiveCommand(String remote, Collection<Option> options) {
+ ValidateUtils.checkNotNullAndNotEmpty(remote, "No remote location specified");
+ StringBuilder sb = new StringBuilder(remote.length() + Long.SIZE).append(ScpHelper.SCP_COMMAND_PREFIX);
+ if (options.contains(Option.Recursive)) {
+ sb.append(" -r");
+ }
+ if (options.contains(Option.PreserveAttributes)) {
+ sb.append(" -p");
+ }
+
+ sb.append(" -f").append(" --").append(' ').append(remote);
+ return sb.toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClientCreator.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClientCreator.java b/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClientCreator.java
index 37fea18..b3199b2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClientCreator.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/scp/ScpClientCreator.java
@@ -35,7 +35,9 @@ public interface ScpClientCreator extends ScpFileOpenerHolder {
* @see #setScpFileOpener(ScpFileOpener)
* @see #setScpTransferEventListener(ScpTransferEventListener)
*/
- ScpClient createScpClient();
+ default ScpClient createScpClient() {
+ return createScpClient(getScpFileOpener(), getScpTransferEventListener());
+ }
/**
* Create an SCP client from this session.
@@ -46,7 +48,9 @@ public interface ScpClientCreator extends ScpFileOpenerHolder {
* is used <U>instead</U> of any listener set via {@link #setScpTransferEventListener(ScpTransferEventListener)}
* @return An {@link ScpClient} instance
*/
- ScpClient createScpClient(ScpTransferEventListener listener);
+ default ScpClient createScpClient(ScpTransferEventListener listener) {
+ return createScpClient(getScpFileOpener(), listener);
+ }
/**
* Create an SCP client from this session.
@@ -57,7 +61,9 @@ public interface ScpClientCreator extends ScpFileOpenerHolder {
* set via {@link #setScpFileOpener(ScpFileOpener)}
* @return An {@link ScpClient} instance
*/
- ScpClient createScpClient(ScpFileOpener opener);
+ default ScpClient createScpClient(ScpFileOpener opener) {
+ return createScpClient(opener, getScpTransferEventListener());
+ }
/**
* Create an SCP client from this session.
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java b/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
index 9079b02..b7453f8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
@@ -322,34 +322,10 @@ public abstract class AbstractClientSession extends AbstractSession implements C
scpListener = listener;
}
- @Override // TODO make this a default method in JDK-8
- public ScpClient createScpClient() {
- return createScpClient(getScpFileOpener(), getScpTransferEventListener());
- }
-
- @Override // TODO make this a default method in JDK-8
- public ScpClient createScpClient(ScpTransferEventListener listener) {
- return createScpClient(getScpFileOpener(), listener);
- }
-
- @Override // TODO make this a default method in JDK-8
- public ScpClient createScpClient(ScpFileOpener opener) {
- return createScpClient(opener, getScpTransferEventListener());
- }
-
@Override
public ScpClient createScpClient(ScpFileOpener opener, ScpTransferEventListener listener) {
return new DefaultScpClient(this, opener, listener);
}
- @Override // TODO make this a default method in JDK-8
- public SftpClient createSftpClient() throws IOException {
- return createSftpClient(SftpVersionSelector.CURRENT);
- }
-
- @Override // TODO make this a default method in JDK-8
- public SftpClient createSftpClient(final int version) throws IOException {
- return createSftpClient(SftpVersionSelector.Utils.fixedVersionSelector(version));
- }
@Override
public SftpClient createSftpClient(SftpVersionSelector selector) throws IOException {
@@ -589,7 +565,7 @@ public abstract class AbstractClientSession extends AbstractSession implements C
} else {
log.info("switchToNoneCipher({}) switching", this);
- Map<KexProposalOption, String> proposal = new EnumMap<KexProposalOption, String>(KexProposalOption.class);
+ Map<KexProposalOption, String> proposal = new EnumMap<>(KexProposalOption.class);
synchronized (clientProposal) {
proposal.putAll(clientProposal);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionHolder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionHolder.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionHolder.java
index f4a3349..41072cf 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionHolder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionHolder.java
@@ -22,6 +22,7 @@ package org.apache.sshd.client.session;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface ClientSessionHolder {
/**
* @return The underlying {@link ClientSession} used
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
index 6c20da3..4284dc2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/AbstractSftpClient.java
@@ -65,91 +65,6 @@ public abstract class AbstractSftpClient extends AbstractSubsystemClient impleme
}
@Override
- public String getName() {
- return SftpConstants.SFTP_SUBSYSTEM_NAME;
- }
-
- @Override
- public CloseableHandle open(String path) throws IOException {
- return open(path, Collections.<OpenMode>emptySet());
- }
-
- @Override
- public CloseableHandle open(String path, OpenMode... options) throws IOException {
- return open(path, GenericUtils.of(options));
- }
-
- @Override
- public void rename(String oldPath, String newPath) throws IOException {
- rename(oldPath, newPath, Collections.<CopyMode>emptySet());
- }
-
- @Override
- public void rename(String oldPath, String newPath, CopyMode... options) throws IOException {
- rename(oldPath, newPath, GenericUtils.of(options));
- }
-
- @Override
- public InputStream read(String path) throws IOException {
- return read(path, DEFAULT_READ_BUFFER_SIZE);
- }
-
- @Override
- public InputStream read(String path, int bufferSize) throws IOException {
- return read(path, bufferSize, EnumSet.of(OpenMode.Read));
- }
-
- @Override
- public InputStream read(String path, OpenMode... mode) throws IOException {
- return read(path, DEFAULT_READ_BUFFER_SIZE, mode);
- }
-
- @Override
- public InputStream read(String path, int bufferSize, OpenMode... mode) throws IOException {
- return read(path, bufferSize, GenericUtils.of(mode));
- }
-
- @Override
- public InputStream read(String path, Collection<OpenMode> mode) throws IOException {
- return read(path, DEFAULT_READ_BUFFER_SIZE, mode);
- }
-
- @Override
- public OutputStream write(String path) throws IOException {
- return write(path, DEFAULT_WRITE_BUFFER_SIZE);
- }
-
- @Override
- public OutputStream write(String path, int bufferSize) throws IOException {
- return write(path, bufferSize, EnumSet.of(OpenMode.Write, OpenMode.Create, OpenMode.Truncate));
- }
-
- @Override
- public OutputStream write(String path, OpenMode... mode) throws IOException {
- return write(path, DEFAULT_WRITE_BUFFER_SIZE, mode);
- }
-
- @Override
- public OutputStream write(String path, Collection<OpenMode> mode) throws IOException {
- return write(path, DEFAULT_WRITE_BUFFER_SIZE, mode);
- }
-
- @Override
- public OutputStream write(String path, int bufferSize, OpenMode... mode) throws IOException {
- return write(path, bufferSize, GenericUtils.of(mode));
- }
-
- @Override
- public void write(Handle handle, long fileOffset, byte[] src) throws IOException {
- write(handle, fileOffset, src, 0, src.length);
- }
-
- @Override
- public void symLink(String linkPath, String targetPath) throws IOException {
- link(linkPath, targetPath, true);
- }
-
- @Override
public <E extends SftpClientExtension> E getExtension(Class<? extends E> extensionType) {
Object instance = getExtension(BuiltinSftpClientExtensions.fromType(extensionType));
if (instance == null) {
@@ -780,21 +695,6 @@ public abstract class AbstractSftpClient extends AbstractSubsystemClient impleme
checkCommandStatus(SftpConstants.SSH_FXP_RENAME, buffer);
}
- @Override // TODO make this a default method in Java 8
- public int read(Handle handle, long fileOffset, byte[] dst) throws IOException {
- return read(handle, fileOffset, dst, null);
- }
-
- @Override // TODO make this a default method in Java 8
- public int read(Handle handle, long fileOffset, byte[] dst, AtomicReference<Boolean> eofSignalled) throws IOException {
- return read(handle, fileOffset, dst, 0, dst.length, eofSignalled);
- }
-
- @Override // TODO make this a default method in Java 8
- public int read(Handle handle, long fileOffset, byte[] dst, int dstOffset, int len) throws IOException {
- return read(handle, fileOffset, dst, dstOffset, len, null);
- }
-
@Override
public int read(Handle handle, long fileOffset, byte[] dst, int dstOffset, int len, AtomicReference<Boolean> eofSignalled) throws IOException {
if (eofSignalled != null) {
@@ -959,11 +859,6 @@ public abstract class AbstractSftpClient extends AbstractSubsystemClient impleme
return handle;
}
- @Override // TODO in JDK-8 make this a default method
- public List<DirEntry> readDir(Handle handle) throws IOException {
- return readDir(handle, null);
- }
-
@Override
public List<DirEntry> readDir(Handle handle, AtomicReference<Boolean> eolIndicator) throws IOException {
if (eolIndicator != null) {
@@ -998,7 +893,7 @@ public abstract class AbstractSftpClient extends AbstractSubsystemClient impleme
log.debug("checkDirResponse({}}[id={}] reading {} entries", channel, id, len);
}
- List<DirEntry> entries = new ArrayList<DirEntry>(len);
+ List<DirEntry> entries = new ArrayList<>(len);
for (int i = 0; i < len; i++) {
String name = buffer.getString();
String longName = (version == SftpConstants.SFTP_V3) ? buffer.getString() : null;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
index f60aca3..103773f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
@@ -61,7 +61,7 @@ public class DefaultSftpClient extends AbstractSftpClient {
private final Map<Integer, Buffer> messages = new HashMap<>();
private final AtomicInteger cmdId = new AtomicInteger(100);
private final Buffer receiveBuffer = new ByteArrayBuffer();
- private final byte[] workBuf = new byte[Integer.SIZE / Byte.SIZE]; // TODO in JDK-8 use Integer.BYTES
+ private final byte[] workBuf = new byte[Integer.BYTES];
private final AtomicInteger versionHolder = new AtomicInteger(0);
private final AtomicBoolean closing = new AtomicBoolean(false);
private final Map<String, byte[]> extensions = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
@@ -253,7 +253,7 @@ public class DefaultSftpClient extends AbstractSftpClient {
}
OutputStream dos = channel.getInvertedIn();
- BufferUtils.writeInt(dos, 1 /* cmd */ + (Integer.SIZE / Byte.SIZE) /* id */ + len, workBuf);
+ BufferUtils.writeInt(dos, 1 /* cmd */ + Integer.BYTES /* id */ + len, workBuf);
dos.write(cmd & 0xFF);
BufferUtils.writeInt(dos, id, workBuf);
dos.write(buffer.array(), buffer.rpos(), len);
@@ -288,13 +288,11 @@ public class DefaultSftpClient extends AbstractSftpClient {
InputStream dis = channel.getInvertedOut();
int length = BufferUtils.readInt(dis, workBuf);
// must have at least command + length
- // TODO in jdk-8 use Integer.BYTES
- if (length < (1 + (Integer.SIZE / Byte.SIZE))) {
+ if (length < (1 + Integer.BYTES)) {
throw new IllegalArgumentException("Bad length: " + length);
}
- // TODO in jdk-8 use Integer.BYTES
- Buffer buffer = new ByteArrayBuffer(length + (Integer.SIZE / Byte.SIZE), false);
+ Buffer buffer = new ByteArrayBuffer(length + Integer.BYTES, false);
buffer.putInt(length);
int nb = length;
while (nb > 0) {
@@ -441,8 +439,8 @@ public class DefaultSftpClient extends AbstractSftpClient {
}
String verVal = String.valueOf(selected);
- Buffer buffer = new ByteArrayBuffer((Integer.SIZE / Byte.SIZE) + SftpConstants.EXT_VERSION_SELECT.length() // extension name
- + (Integer.SIZE / Byte.SIZE) + verVal.length() + Byte.SIZE, false);
+ Buffer buffer = new ByteArrayBuffer(Integer.BYTES + SftpConstants.EXT_VERSION_SELECT.length() // extension name
+ + Integer.BYTES + verVal.length() + Byte.SIZE, false);
buffer.putString(SftpConstants.EXT_VERSION_SELECT);
buffer.putString(verVal);
checkCommandStatus(SftpConstants.SSH_FXP_EXTENDED, buffer);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 3669882..1673ebb 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
@@ -48,7 +48,6 @@ import org.bouncycastle.util.Arrays;
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
public interface SftpClient extends SubsystemClient {
-
enum OpenMode {
Read,
Write,
@@ -437,6 +436,10 @@ public interface SftpClient extends SubsystemClient {
*/
int getVersion();
+ @Override
+ default String getName() {
+ return SftpConstants.SFTP_SUBSYSTEM_NAME;
+ }
/**
* @return An (unmodifiable) {@link Map} of the reported server extensions.
*/
@@ -454,8 +457,11 @@ public interface SftpClient extends SubsystemClient {
* @param path The remote path
* @return The file's {@link CloseableHandle}
* @throws IOException If failed to open the remote file
+ * @see #open(String, Collection)
*/
- CloseableHandle open(String path) throws IOException;
+ default CloseableHandle open(String path) throws IOException {
+ return open(path, Collections.<OpenMode>emptySet());
+ }
/**
* Opens a remote file with the specified mode(s)
@@ -465,8 +471,11 @@ public interface SftpClient extends SubsystemClient {
* then {@link OpenMode#Read} is assumed
* @return The file's {@link CloseableHandle}
* @throws IOException If failed to open the remote file
+ * @see #open(String, Collection)
*/
- CloseableHandle open(String path, OpenMode... options) throws IOException;
+ default CloseableHandle open(String path, OpenMode... options) throws IOException {
+ return open(path, GenericUtils.of(options));
+ }
/**
* Opens a remote file with the specified mode(s)
@@ -493,9 +502,13 @@ public interface SftpClient extends SubsystemClient {
*/
void remove(String path) throws IOException;
- void rename(String oldPath, String newPath) throws IOException;
+ default void rename(String oldPath, String newPath) throws IOException {
+ rename(oldPath, newPath, Collections.<CopyMode>emptySet());
+ }
- void rename(String oldPath, String newPath, CopyMode... options) throws IOException;
+ default void rename(String oldPath, String newPath, CopyMode... options) throws IOException {
+ rename(oldPath, newPath, GenericUtils.of(options));
+ }
void rename(String oldPath, String newPath, Collection<CopyMode> options) throws IOException;
@@ -509,7 +522,9 @@ public interface SftpClient extends SubsystemClient {
* @throws IOException If failed to read the data
* @see #read(Handle, long, byte[], int, int)
*/
- int read(Handle handle, long fileOffset, byte[] dst) throws IOException;
+ default int read(Handle handle, long fileOffset, byte[] dst) throws IOException {
+ return read(handle, fileOffset, dst, null);
+ }
/**
* Reads data from the open (file) handle
@@ -525,9 +540,13 @@ public interface SftpClient extends SubsystemClient {
* @see #read(Handle, long, byte[], int, int, AtomicReference)
* @see <A HREF="https://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.3">SFTP v6 - section 9.3</A>
*/
- int read(Handle handle, long fileOffset, byte[] dst, AtomicReference<Boolean> eofSignalled) throws IOException;
+ default int read(Handle handle, long fileOffset, byte[] dst, AtomicReference<Boolean> eofSignalled) throws IOException {
+ return read(handle, fileOffset, dst, 0, dst.length, eofSignalled);
+ }
- int read(Handle handle, long fileOffset, byte[] dst, int dstOffset, int len) throws IOException;
+ default int read(Handle handle, long fileOffset, byte[] dst, int dstOffset, int len) throws IOException {
+ return read(handle, fileOffset, dst, dstOffset, len, null);
+ }
/**
* Reads data from the open (file) handle
@@ -546,7 +565,9 @@ public interface SftpClient extends SubsystemClient {
*/
int read(Handle handle, long fileOffset, byte[] dst, int dstOffset, int len, AtomicReference<Boolean> eofSignalled) throws IOException;
- void write(Handle handle, long fileOffset, byte[] src) throws IOException;
+ default void write(Handle handle, long fileOffset, byte[] src) throws IOException {
+ write(handle, fileOffset, src, 0, src.length);
+ }
/**
* Write data to (open) file handle
@@ -595,7 +616,9 @@ public interface SftpClient extends SubsystemClient {
* {@link #readDir(String)}
* @throws IOException If failed to access the remote site
*/
- List<DirEntry> readDir(Handle handle) throws IOException;
+ default List<DirEntry> readDir(Handle handle) throws IOException {
+ return readDir(handle, null);
+ }
/**
* @param handle Directory {@link Handle} to read from
@@ -681,8 +704,11 @@ public interface SftpClient extends SubsystemClient {
* @param linkPath The link location
* @param targetPath The referenced target by the link
* @throws IOException If failed to execute
+ * @see #link(String, String, boolean)
*/
- void symLink(String linkPath, String targetPath) throws IOException;
+ default void symLink(String linkPath, String targetPath) throws IOException {
+ link(linkPath, targetPath, true);
+ }
/**
* Create a link
@@ -711,15 +737,25 @@ public interface SftpClient extends SubsystemClient {
*/
Iterable<DirEntry> readDir(String path) throws IOException;
- InputStream read(String path) throws IOException;
+ default InputStream read(String path) throws IOException {
+ return read(path, DEFAULT_READ_BUFFER_SIZE);
+ }
- InputStream read(String path, int bufferSize) throws IOException;
+ default InputStream read(String path, int bufferSize) throws IOException {
+ return read(path, bufferSize, EnumSet.of(OpenMode.Read));
+ }
- InputStream read(String path, OpenMode... mode) throws IOException;
+ default InputStream read(String path, OpenMode... mode) throws IOException {
+ return read(path, DEFAULT_READ_BUFFER_SIZE, mode);
+ }
- InputStream read(String path, int bufferSize, OpenMode... mode) throws IOException;
+ default InputStream read(String path, int bufferSize, OpenMode... mode) throws IOException {
+ return read(path, bufferSize, GenericUtils.of(mode));
+ }
- InputStream read(String path, Collection<OpenMode> mode) throws IOException;
+ default InputStream read(String path, Collection<OpenMode> mode) throws IOException {
+ return read(path, DEFAULT_READ_BUFFER_SIZE, mode);
+ }
/**
* Read a remote file's data via an input stream
@@ -732,15 +768,25 @@ public interface SftpClient extends SubsystemClient {
*/
InputStream read(String path, int bufferSize, Collection<OpenMode> mode) throws IOException;
- OutputStream write(String path) throws IOException;
+ default OutputStream write(String path) throws IOException {
+ return write(path, DEFAULT_WRITE_BUFFER_SIZE);
+ }
- OutputStream write(String path, int bufferSize) throws IOException;
+ default OutputStream write(String path, int bufferSize) throws IOException {
+ return write(path, bufferSize, EnumSet.of(OpenMode.Write, OpenMode.Create, OpenMode.Truncate));
+ }
- OutputStream write(String path, OpenMode... mode) throws IOException;
+ default OutputStream write(String path, OpenMode... mode) throws IOException {
+ return write(path, DEFAULT_WRITE_BUFFER_SIZE, mode);
+ }
- OutputStream write(String path, int bufferSize, OpenMode... mode) throws IOException;
+ default OutputStream write(String path, int bufferSize, OpenMode... mode) throws IOException {
+ return write(path, bufferSize, GenericUtils.of(mode));
+ }
- OutputStream write(String path, Collection<OpenMode> mode) throws IOException;
+ default OutputStream write(String path, Collection<OpenMode> mode) throws IOException {
+ return write(path, DEFAULT_WRITE_BUFFER_SIZE, mode);
+ }
/**
* Write to a remote file via an output stream
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClientCreator.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClientCreator.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClientCreator.java
index 09b0843..2f93c90 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClientCreator.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpClientCreator.java
@@ -32,7 +32,9 @@ public interface SftpClientCreator {
* @return The created {@link SftpClient}
* @throws IOException if failed to create the client
*/
- SftpClient createSftpClient() throws IOException;
+ default SftpClient createSftpClient() throws IOException {
+ return createSftpClient(SftpVersionSelector.CURRENT);
+ }
/**
* Creates an SFTP client using the specified version
@@ -43,7 +45,9 @@ public interface SftpClientCreator {
* @return The created {@link SftpClient}
* @throws IOException If failed to create the client or use the specified version
*/
- SftpClient createSftpClient(int version) throws IOException;
+ default SftpClient createSftpClient(int version) throws IOException {
+ return createSftpClient(SftpVersionSelector.Utils.fixedVersionSelector(version));
+ }
/**
* Creates an SFTP client while allowing the selection of a specific version
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/BuiltinSftpClientExtensions.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/BuiltinSftpClientExtensions.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/BuiltinSftpClientExtensions.java
index c95d8fd..dda5e00 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/BuiltinSftpClientExtensions.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/BuiltinSftpClientExtensions.java
@@ -132,12 +132,6 @@ public enum BuiltinSftpClientExtensions implements SftpClientExtensionFactory {
return type;
}
- @Override
- public SftpClientExtension create(SftpClient client, RawSftpClient raw) {
- Map<String, byte[]> extensions = client.getServerExtensions();
- return create(client, raw, extensions, ParserUtils.parse(extensions));
- }
-
public static BuiltinSftpClientExtensions fromName(String n) {
return NamedResource.Utils.findByName(n, String.CASE_INSENSITIVE_ORDER, VALUES);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/SftpClientExtensionFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/SftpClientExtensionFactory.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/SftpClientExtensionFactory.java
index f9257e6..0692a04 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/SftpClientExtensionFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/SftpClientExtensionFactory.java
@@ -24,13 +24,16 @@ import java.util.Map;
import org.apache.sshd.client.subsystem.sftp.RawSftpClient;
import org.apache.sshd.client.subsystem.sftp.SftpClient;
import org.apache.sshd.common.NamedResource;
+import org.apache.sshd.common.subsystem.sftp.extensions.ParserUtils;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public interface SftpClientExtensionFactory extends NamedResource {
- // TODO make this a default method for JDK-8
- SftpClientExtension create(SftpClient client, RawSftpClient raw);
+ default SftpClientExtension create(SftpClient client, RawSftpClient raw) {
+ Map<String, byte[]> extensions = client.getServerExtensions();
+ return create(client, raw, extensions, ParserUtils.parse(extensions));
+ }
SftpClientExtension create(SftpClient client, RawSftpClient raw, Map<String, byte[]> extensions, Map<String, ?> parsed);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractMD5HashExtension.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractMD5HashExtension.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractMD5HashExtension.java
index 62654dd..ee163e2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractMD5HashExtension.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/AbstractMD5HashExtension.java
@@ -39,7 +39,7 @@ public abstract class AbstractMD5HashExtension extends AbstractSftpClientExtensi
}
protected byte[] doGetHash(Object target, long offset, long length, byte[] quickHash) throws IOException {
- Buffer buffer = getCommandBuffer(target, Long.SIZE + 2 * (Long.SIZE / Byte.SIZE) + (Integer.SIZE / Byte.SIZE) + NumberUtils.length(quickHash));
+ Buffer buffer = getCommandBuffer(target, Long.SIZE + 2 * Long.BYTES + Integer.BYTES + NumberUtils.length(quickHash));
String opcode = getName();
putTarget(buffer, target);
buffer.putLong(offset);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 95697e7..46a1235 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
@@ -145,11 +145,11 @@ public abstract class AbstractSftpClientExtension extends AbstractLoggingBean im
*/
protected Buffer getCommandBuffer(Object target, int extraSize) {
if (target instanceof CharSequence) {
- return getCommandBuffer((Integer.SIZE / Byte.SIZE) + ((CharSequence) target).length() + extraSize);
+ return getCommandBuffer(Integer.BYTES + ((CharSequence) target).length() + extraSize);
} else if (target instanceof byte[]) {
- return getCommandBuffer((Integer.SIZE / Byte.SIZE) + ((byte[]) target).length + extraSize);
+ return getCommandBuffer(Integer.BYTES + ((byte[]) target).length + extraSize);
} else if (target instanceof Handle) {
- return getCommandBuffer((Integer.SIZE / Byte.SIZE) + ((Handle) target).length() + extraSize);
+ return getCommandBuffer(Integer.BYTES + ((Handle) target).length() + extraSize);
} else {
return getCommandBuffer(extraSize);
}
@@ -161,7 +161,7 @@ public abstract class AbstractSftpClientExtension extends AbstractLoggingBean im
*/
protected Buffer getCommandBuffer(int extraSize) {
String opcode = getName();
- Buffer buffer = new ByteArrayBuffer((Integer.SIZE / Byte.SIZE) + GenericUtils.length(opcode) + extraSize + Byte.SIZE, false);
+ Buffer buffer = new ByteArrayBuffer(Integer.BYTES + GenericUtils.length(opcode) + extraSize + Byte.SIZE, false);
buffer.putString(opcode);
return buffer;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyDataExtensionImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyDataExtensionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyDataExtensionImpl.java
index ac75a09..c56129f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyDataExtensionImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyDataExtensionImpl.java
@@ -42,9 +42,9 @@ public class CopyDataExtensionImpl extends AbstractSftpClientExtension implement
public void copyData(Handle readHandle, long readOffset, long readLength, Handle writeHandle, long writeOffset) throws IOException {
byte[] srcId = readHandle.getIdentifier();
byte[] dstId = writeHandle.getIdentifier();
- Buffer buffer = getCommandBuffer((Integer.SIZE / Byte.SIZE) + NumberUtils.length(srcId)
- + (Integer.SIZE / Byte.SIZE) + NumberUtils.length(dstId)
- + (3 * (Long.SIZE + (Integer.SIZE / Byte.SIZE))));
+ Buffer buffer = getCommandBuffer(Integer.BYTES + NumberUtils.length(srcId)
+ + Integer.BYTES + NumberUtils.length(dstId)
+ + (3 * (Long.SIZE + Integer.BYTES)));
buffer.putBytes(srcId);
buffer.putLong(readOffset);
buffer.putLong(readLength);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyFileExtensionImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyFileExtensionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyFileExtensionImpl.java
index bb32bb7..5ce5f9a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyFileExtensionImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/helpers/CopyFileExtensionImpl.java
@@ -39,8 +39,8 @@ public class CopyFileExtensionImpl extends AbstractSftpClientExtension implement
@Override
public void copyFile(String src, String dst, boolean overwriteDestination) throws IOException {
- Buffer buffer = getCommandBuffer((Integer.SIZE / Byte.SIZE) + GenericUtils.length(src)
- + (Integer.SIZE / Byte.SIZE) + GenericUtils.length(dst)
+ Buffer buffer = getCommandBuffer(Integer.BYTES + GenericUtils.length(src)
+ + Integer.BYTES + GenericUtils.length(dst)
+ 1 /* override destination */);
buffer.putString(src);
buffer.putString(dst);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/helpers/OpenSSHFsyncExtensionImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/helpers/OpenSSHFsyncExtensionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/helpers/OpenSSHFsyncExtensionImpl.java
index cafb600..e83ea11 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/helpers/OpenSSHFsyncExtensionImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/extensions/openssh/helpers/OpenSSHFsyncExtensionImpl.java
@@ -42,7 +42,7 @@ public class OpenSSHFsyncExtensionImpl extends AbstractSftpClientExtension imple
@Override
public void fsync(Handle fileHandle) throws IOException {
byte[] handle = fileHandle.getIdentifier();
- Buffer buffer = getCommandBuffer((Integer.SIZE / Byte.SIZE) + NumberUtils.length(handle));
+ Buffer buffer = getCommandBuffer(Integer.BYTES + NumberUtils.length(handle));
buffer.putBytes(handle);
sendAndCheckExtendedCommandStatus(buffer);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/common/Factory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/Factory.java b/sshd-core/src/main/java/org/apache/sshd/common/Factory.java
index 37d1a96..406eb5e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/Factory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/Factory.java
@@ -25,6 +25,7 @@ package org.apache.sshd.common;
* @param <T> type of objets this factory will create
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface Factory<T> {
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerHolder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerHolder.java b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerHolder.java
index 810ac09..9b2f938 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerHolder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/FactoryManagerHolder.java
@@ -22,6 +22,7 @@ package org.apache.sshd.common;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface FactoryManagerHolder {
/**
* @return The currently associated {@link FactoryManager}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java b/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
index 9427201..87b1e63 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/NamedResource.java
@@ -31,6 +31,7 @@ import org.apache.sshd.common.util.Transformer;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface NamedResource {
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/common/OptionalFeature.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/OptionalFeature.java b/sshd-core/src/main/java/org/apache/sshd/common/OptionalFeature.java
index 43497eb..54ec1b4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/OptionalFeature.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/OptionalFeature.java
@@ -26,7 +26,8 @@ import org.apache.sshd.common.util.GenericUtils;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
-public interface OptionalFeature { // TODO define this as a @FunctionalInterface in Java 8
+@FunctionalInterface
+public interface OptionalFeature {
OptionalFeature TRUE = new OptionalFeature() {
@Override
public boolean isSupported() {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
index af46ab7..919ba40 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/SshConstants.java
@@ -23,9 +23,9 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.function.Predicate;
import org.apache.sshd.common.util.GenericUtils;
-import org.apache.sshd.common.util.Predicate;
import org.apache.sshd.common.util.logging.LoggingUtils;
/**
@@ -130,7 +130,7 @@ public final class SshConstants {
private static class LazyAmbiguousOpcodesHolder {
private static final Set<Integer> AMBIGUOUS_OPCODES =
Collections.unmodifiableSet(
- new HashSet<Integer>(
+ new HashSet<>(
LoggingUtils.getAmbiguousMenmonics(SshConstants.class, "SSH_MSG_").values()));
}
@@ -155,7 +155,7 @@ public final class SshConstants {
private static final Map<Integer, String> MESSAGES_MAP =
LoggingUtils.generateMnemonicMap(SshConstants.class, new Predicate<Field>() {
@Override
- public boolean evaluate(Field f) {
+ public boolean test(Field f) {
String name = f.getName();
if (!name.startsWith("SSH_MSG_")) {
return false;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 f6f5ddf..c99f6f3 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
@@ -332,7 +332,7 @@ public abstract class AbstractChannel
? SshConstants.SSH_MSG_CHANNEL_SUCCESS
: SshConstants.SSH_MSG_CHANNEL_FAILURE;
Session session = getSession();
- Buffer rsp = session.createBuffer(cmd, Integer.SIZE / Byte.SIZE);
+ Buffer rsp = session.createBuffer(cmd, Integer.BYTES);
rsp.putInt(recipient);
return session.writePacket(rsp);
}
@@ -664,7 +664,7 @@ public abstract class AbstractChannel
log.debug("handleExtendedData({}) SSH_MSG_CHANNEL_FAILURE - non STDERR type: {}", this, ex);
}
Session s = getSession();
- Buffer rsp = s.createBuffer(SshConstants.SSH_MSG_CHANNEL_FAILURE, Integer.SIZE / Byte.SIZE);
+ Buffer rsp = s.createBuffer(SshConstants.SSH_MSG_CHANNEL_FAILURE, Integer.BYTES);
rsp.putInt(getRecipient());
writePacket(rsp);
return;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/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 75ca78d..1e2a751 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
@@ -146,7 +146,7 @@ public class ChannelAsyncInputStream extends AbstractCloseable implements IoInpu
return buffer;
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public IoReadFuture verify(long timeoutMillis) throws IOException {
long startTime = System.nanoTime();
Number result = verifyResult(Number.class, timeoutMillis);
@@ -158,7 +158,7 @@ public class ChannelAsyncInputStream extends AbstractCloseable implements IoInpu
return this;
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public int getRead() {
Object v = getValue();
if (v instanceof RuntimeException) {
@@ -174,7 +174,7 @@ public class ChannelAsyncInputStream extends AbstractCloseable implements IoInpu
}
}
- @Override // TODO for JDK-8 make this a default method
+ @Override
public Throwable getException() {
Object v = getValue();
if (v instanceof Throwable) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelHolder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelHolder.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelHolder.java
index 869dc9c..0016503 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelHolder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelHolder.java
@@ -22,6 +22,7 @@ package org.apache.sshd.common.channel;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface ChannelHolder {
/**
* @return The associated {@link Channel} instance
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/25bc715a/sshd-core/src/main/java/org/apache/sshd/common/channel/RequestHandler.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/RequestHandler.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/RequestHandler.java
index 7883e7b..d7e796f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/RequestHandler.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/RequestHandler.java
@@ -31,6 +31,7 @@ import org.apache.sshd.common.util.buffer.Buffer;
* @param <T> Request type
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
+@FunctionalInterface
public interface RequestHandler<T> {
enum Result {
@@ -75,5 +76,4 @@ public interface RequestHandler<T> {
* value should be returned
*/
Result process(T t, String request, boolean wantReply, Buffer buffer) throws Exception;
-
}