This is an automated email from the ASF dual-hosted git repository.
lgoldstein pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
The following commit(s) were added to refs/heads/master by this push:
new b00796a [SSHD-1083] Relaxed required Nio2Connector/Acceptor required
constructor arguments
b00796a is described below
commit b00796af384b00a7d723cc7b806c1bdbcbdb0a18
Author: Lyor Goldstein <[email protected]>
AuthorDate: Fri Apr 2 09:52:17 2021 +0300
[SSHD-1083] Relaxed required Nio2Connector/Acceptor required constructor
arguments
---
CHANGES.md | 1 +
.../sshd/client/auth/pubkey/UserAuthPublicKey.java | 3 ++-
.../apache/sshd/common/io/nio2/Nio2Acceptor.java | 10 ++++-----
.../apache/sshd/common/io/nio2/Nio2Connector.java | 25 +++++++++++-----------
.../apache/sshd/common/io/nio2/Nio2Service.java | 20 ++++++-----------
.../apache/sshd/common/io/nio2/Nio2Session.java | 15 +++++++------
.../DefaultClientKexExtensionHandler.java | 4 ++--
7 files changed, 37 insertions(+), 41 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index 5a6ffd8..751f15b 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -23,6 +23,7 @@
* [SSHD-525](https://issues.apache.org/jira/browse/SSHD-525) Added support for
SFTP **client-side** ["[email protected]"
extension](http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=1.28&content-type=text/x-cvsweb-markup)
- see section 3.3
+* [SSHD-1083](https://issues.apache.org/jira/browse/SSHD-1083) Relaxed
required `Nio2Connector/Acceptor` required constructor arguments
* [SSHD-1085](https://issues.apache.org/jira/browse/SSHD-1085) Added
`CliLogger` + more verbosity on `SshClientMain`
* [SSHD-1109](https://issues.apache.org/jira/browse/SSHD-1109) Route tests JUL
logging via SLF4JBridgeHandler
* [SSHD-1109](https://issues.apache.org/jira/browse/SSHD-1109) Provide full
slf4j logger capabilities to CliLogger + use it in all CLI classes
diff --git
a/sshd-core/src/main/java/org/apache/sshd/client/auth/pubkey/UserAuthPublicKey.java
b/sshd-core/src/main/java/org/apache/sshd/client/auth/pubkey/UserAuthPublicKey.java
index 1326109..fb3561f 100644
---
a/sshd-core/src/main/java/org/apache/sshd/client/auth/pubkey/UserAuthPublicKey.java
+++
b/sshd-core/src/main/java/org/apache/sshd/client/auth/pubkey/UserAuthPublicKey.java
@@ -117,7 +117,8 @@ public class UserAuthPublicKey extends AbstractUserAuth
implements SignatureFact
// with this key and other signature algorithms. Skip to
the
// next key, if any.
if (log.isDebugEnabled()) {
- log.debug("sendAuthDataRequest({})[{}] server rejected
publickey authentication with known signature algorithm {}",
+ log.debug(
+ "sendAuthDataRequest({})[{}] server rejected
publickey authentication with known signature algorithm {}",
session, service, chosenAlgorithm);
}
currentAlgorithm = null;
diff --git
a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
index 25915a0..428e69f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
@@ -35,7 +35,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.sshd.common.Closeable;
-import org.apache.sshd.common.FactoryManager;
+import org.apache.sshd.common.PropertyResolver;
import org.apache.sshd.common.io.IoAcceptor;
import org.apache.sshd.common.io.IoHandler;
import org.apache.sshd.common.io.IoServiceEventListener;
@@ -51,9 +51,9 @@ public class Nio2Acceptor extends Nio2Service implements
IoAcceptor {
protected final Map<SocketAddress, AsynchronousServerSocketChannel>
channels = new ConcurrentHashMap<>();
private int backlog;
- public Nio2Acceptor(FactoryManager manager, IoHandler handler,
AsynchronousChannelGroup group) {
- super(manager, handler, group);
- backlog = CoreModuleProperties.SOCKET_BACKLOG.getRequired(manager);
+ public Nio2Acceptor(PropertyResolver propertyResolver, IoHandler handler,
AsynchronousChannelGroup group) {
+ super(propertyResolver, handler, group);
+ backlog =
CoreModuleProperties.SOCKET_BACKLOG.getRequired(propertyResolver);
}
@Override
@@ -352,7 +352,7 @@ public class Nio2Acceptor extends Nio2Service implements
IoAcceptor {
if (log.isTraceEnabled()) {
log.trace("createNio2Session({}) address={}", acceptor,
address);
}
- return new Nio2Session(acceptor, getFactoryManager(), handler,
channel, address);
+ return new Nio2Session(acceptor, propertyResolver, handler,
channel, address);
}
@Override
diff --git
a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
index 7055e51..b12e37d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
@@ -24,7 +24,7 @@ import java.nio.channels.AsynchronousChannelGroup;
import java.nio.channels.AsynchronousSocketChannel;
import org.apache.sshd.common.AttributeRepository;
-import org.apache.sshd.common.FactoryManager;
+import org.apache.sshd.common.PropertyResolver;
import org.apache.sshd.common.future.DefaultSshFuture;
import org.apache.sshd.common.io.IoConnectFuture;
import org.apache.sshd.common.io.IoConnector;
@@ -40,8 +40,8 @@ import org.apache.sshd.common.util.ValidateUtils;
* @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a>
*/
public class Nio2Connector extends Nio2Service implements IoConnector {
- public Nio2Connector(FactoryManager manager, IoHandler handler,
AsynchronousChannelGroup group) {
- super(manager, handler, group);
+ public Nio2Connector(PropertyResolver propertyResolver, IoHandler handler,
AsynchronousChannelGroup group) {
+ super(propertyResolver, handler, group);
}
@Override
@@ -64,7 +64,7 @@ public class Nio2Connector extends Nio2Service implements
IoConnector {
}
Nio2CompletionHandler<Void, Object> completionHandler =
ValidateUtils.checkNotNull(
createConnectionCompletionHandler(
- future, socket, context, getFactoryManager(),
getIoHandler()),
+ future, socket, context, propertyResolver,
getIoHandler()),
"No connection completion handler created for %s",
address);
socket.connect(address, null, completionHandler);
@@ -109,24 +109,25 @@ public class Nio2Connector extends Nio2Service implements
IoConnector {
protected Nio2CompletionHandler<Void, Object>
createConnectionCompletionHandler(
IoConnectFuture future, AsynchronousSocketChannel socket,
- AttributeRepository context, FactoryManager manager, IoHandler
handler) {
- return new ConnectionCompletionHandler(future, socket, context,
manager, handler);
+ AttributeRepository context, PropertyResolver propertyResolver,
IoHandler handler) {
+ return new ConnectionCompletionHandler(future, socket, context,
propertyResolver, handler);
}
protected class ConnectionCompletionHandler extends
Nio2CompletionHandler<Void, Object> {
protected final IoConnectFuture future;
protected final AsynchronousSocketChannel socket;
protected final AttributeRepository context;
- protected final FactoryManager manager;
+ protected final PropertyResolver propertyResolver;
protected final IoHandler handler;
protected ConnectionCompletionHandler(
IoConnectFuture future,
AsynchronousSocketChannel socket,
- AttributeRepository context,
FactoryManager manager, IoHandler handler) {
+ AttributeRepository context,
PropertyResolver propertyResolver,
+ IoHandler handler) {
this.future = future;
this.socket = socket;
this.context = context;
- this.manager = manager;
+ this.propertyResolver = propertyResolver;
this.handler = handler;
}
@@ -142,7 +143,7 @@ public class Nio2Connector extends Nio2Service implements
IoConnector {
listener.connectionEstablished(Nio2Connector.this, local,
context, remote);
}
- Nio2Session session = createSession(manager, handler, socket);
+ Nio2Session session = createSession(propertyResolver, handler,
socket);
if (context != null) {
session.setAttribute(AttributeRepository.class, context);
}
@@ -200,9 +201,9 @@ public class Nio2Connector extends Nio2Service implements
IoConnector {
}
protected Nio2Session createSession(
- FactoryManager manager, IoHandler handler,
AsynchronousSocketChannel socket)
+ PropertyResolver propertyResolver, IoHandler handler,
AsynchronousSocketChannel socket)
throws Throwable {
- return new Nio2Session(this, manager, handler, socket, null);
+ return new Nio2Session(this, propertyResolver, handler, socket, null);
}
public static class DefaultIoConnectFuture extends
DefaultSshFuture<IoConnectFuture> implements IoConnectFuture {
diff --git
a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
index af79a8d..85acb77 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
@@ -35,8 +35,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.sshd.common.Closeable;
-import org.apache.sshd.common.FactoryManager;
-import org.apache.sshd.common.FactoryManagerHolder;
import org.apache.sshd.common.Property;
import org.apache.sshd.common.PropertyResolver;
import org.apache.sshd.common.io.IoHandler;
@@ -50,7 +48,7 @@ import org.apache.sshd.core.CoreModuleProperties;
/**
* @author <a href="mailto:[email protected]">Apache MINA SSHD Project</a>
*/
-public abstract class Nio2Service extends AbstractInnerCloseable implements
IoService, FactoryManagerHolder {
+public abstract class Nio2Service extends AbstractInnerCloseable implements
IoService {
// Note: order may be important so that's why we use a LinkedHashMap
public static final Map<Property<?>, SimpleImmutableEntry<SocketOption<?>,
Object>> CONFIGURABLE_OPTIONS;
@@ -68,16 +66,16 @@ public abstract class Nio2Service extends
AbstractInnerCloseable implements IoSe
protected final Map<Long, IoSession> sessions;
protected final AtomicBoolean disposing = new AtomicBoolean();
- private final FactoryManager manager;
+ protected final PropertyResolver propertyResolver;
private final IoHandler handler;
private final AsynchronousChannelGroup group;
private IoServiceEventListener eventListener;
- protected Nio2Service(FactoryManager manager, IoHandler handler,
AsynchronousChannelGroup group) {
+ protected Nio2Service(PropertyResolver propertyResolver, IoHandler
handler, AsynchronousChannelGroup group) {
if (log.isTraceEnabled()) {
log.trace("Creating {}", getClass().getSimpleName());
}
- this.manager = Objects.requireNonNull(manager, "No factory manager
provided");
+ this.propertyResolver = Objects.requireNonNull(propertyResolver, "No
property resolver provided");
this.handler = Objects.requireNonNull(handler, "No I/O handler
provided");
this.group = Objects.requireNonNull(group, "No async. channel group
provided");
this.sessions = new ConcurrentHashMap<>();
@@ -97,11 +95,6 @@ public abstract class Nio2Service extends
AbstractInnerCloseable implements IoSe
return group;
}
- @Override
- public FactoryManager getFactoryManager() {
- return manager;
- }
-
public IoHandler getIoHandler() {
return handler;
}
@@ -112,7 +105,7 @@ public abstract class Nio2Service extends
AbstractInnerCloseable implements IoSe
log.warn("dispose({}) already disposing", this);
}
- Duration maxWait =
Closeable.getMaxCloseWaitTime(getFactoryManager());
+ Duration maxWait = Closeable.getMaxCloseWaitTime(propertyResolver);
boolean successful = close(true).await(maxWait);
if (!successful) {
throw new SocketTimeoutException("Failed to receive closure
confirmation within " + maxWait);
@@ -169,8 +162,7 @@ public abstract class Nio2Service extends
AbstractInnerCloseable implements IoSe
protected <T> boolean setOption(
NetworkChannel socket, Property<?> property, SocketOption<T>
option, T defaultValue)
throws IOException {
- PropertyResolver manager = getFactoryManager();
- String valStr = manager.getString(property.getName());
+ String valStr = propertyResolver.getString(property.getName());
T val = defaultValue;
if (!GenericUtils.isEmpty(valStr)) {
Class<T> type = option.type();
diff --git
a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
index 66474ea..1bf616a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
@@ -34,7 +34,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
-import org.apache.sshd.common.FactoryManager;
+import org.apache.sshd.common.PropertyResolver;
import org.apache.sshd.common.RuntimeSshException;
import org.apache.sshd.common.future.CloseFuture;
import org.apache.sshd.common.io.IoHandler;
@@ -63,7 +63,7 @@ public class Nio2Session extends AbstractCloseable implements
IoSession {
private final SocketAddress localAddress;
private final SocketAddress remoteAddress;
private final SocketAddress acceptanceAddress;
- private final FactoryManager manager;
+ private final PropertyResolver propertyResolver;
private final Queue<Nio2DefaultIoWriteFuture> writes = new
LinkedTransferQueue<>();
private final AtomicReference<Nio2DefaultIoWriteFuture> currentWrite = new
AtomicReference<>();
private final AtomicLong readCyclesCounter = new AtomicLong();
@@ -75,11 +75,12 @@ public class Nio2Session extends AbstractCloseable
implements IoSession {
private volatile Runnable readRunnable;
public Nio2Session(
- Nio2Service service, FactoryManager manager, IoHandler
handler, AsynchronousSocketChannel socket,
+ Nio2Service service, PropertyResolver propertyResolver,
IoHandler handler,
+ AsynchronousSocketChannel socket,
SocketAddress acceptanceAddress)
throws IOException {
this.service = Objects.requireNonNull(service, "No service instance");
- this.manager = Objects.requireNonNull(manager, "No factory manager");
+ this.propertyResolver = Objects.requireNonNull(propertyResolver, "No
property resolver");
this.ioHandler = Objects.requireNonNull(handler, "No IoHandler");
this.socketChannel = Objects.requireNonNull(socket, "No socket
channel");
this.localAddress = socket.getLocalAddress();
@@ -301,7 +302,7 @@ public class Nio2Session extends AbstractCloseable
implements IoSession {
}
public void startReading() {
-
startReading(CoreModuleProperties.NIO2_READ_BUFFER_SIZE.getRequired(manager));
+
startReading(CoreModuleProperties.NIO2_READ_BUFFER_SIZE.getRequired(propertyResolver));
}
public void startReading(int bufSize) {
@@ -423,7 +424,7 @@ public class Nio2Session extends AbstractCloseable
implements IoSession {
}
AsynchronousSocketChannel socket = getSocket();
- Duration readTimeout =
CoreModuleProperties.NIO2_READ_TIMEOUT.getRequired(manager);
+ Duration readTimeout =
CoreModuleProperties.NIO2_READ_TIMEOUT.getRequired(propertyResolver);
readCyclesCounter.incrementAndGet();
lastReadCycleStart.set(System.nanoTime());
socket.read(buffer, readTimeout.toMillis(), TimeUnit.MILLISECONDS,
null, completion);
@@ -459,7 +460,7 @@ public class Nio2Session extends AbstractCloseable
implements IoSession {
protected void doWriteCycle(ByteBuffer buffer,
Nio2CompletionHandler<Integer, Object> completion) {
AsynchronousSocketChannel socket = getSocket();
- Duration writeTimeout =
CoreModuleProperties.NIO2_MIN_WRITE_TIMEOUT.getRequired(manager);
+ Duration writeTimeout =
CoreModuleProperties.NIO2_MIN_WRITE_TIMEOUT.getRequired(propertyResolver);
writeCyclesCounter.incrementAndGet();
lastWriteCycleStart.set(System.nanoTime());
socket.write(buffer, writeTimeout.toMillis(), TimeUnit.MILLISECONDS,
null, completion);
diff --git
a/sshd-core/src/main/java/org/apache/sshd/common/kex/extension/DefaultClientKexExtensionHandler.java
b/sshd-core/src/main/java/org/apache/sshd/common/kex/extension/DefaultClientKexExtensionHandler.java
index e1f24e0..19a0324 100644
---
a/sshd-core/src/main/java/org/apache/sshd/common/kex/extension/DefaultClientKexExtensionHandler.java
+++
b/sshd-core/src/main/java/org/apache/sshd/common/kex/extension/DefaultClientKexExtensionHandler.java
@@ -115,8 +115,8 @@ public class DefaultClientKexExtensionHandler extends
AbstractLoggingBean implem
}
/**
- * Perform updates after a server-sig-algs extension has been received.
The set of algorithms
- * announced by the server is set as attribute {@link #SERVER_ALGORITHMS}
of the {@code session}.
+ * Perform updates after a server-sig-algs extension has been received.
The set of algorithms announced by the
+ * server is set as attribute {@link #SERVER_ALGORITHMS} of the {@code
session}.
*
* @param session the message was received for
* @param serverAlgorithms signature algorithm names announced by the
server