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 2015/05/06 14:58:54 UTC
mina-sshd git commit: [SSHD-453] Make all interfaces that have a
close() method implement Closeable
Repository: mina-sshd
Updated Branches:
refs/heads/master 7067dd335 -> abec3d815
[SSHD-453] Make all interfaces that have a close() method implement Closeable
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/abec3d81
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/abec3d81
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/abec3d81
Branch: refs/heads/master
Commit: abec3d815336fc5311014cd6bd43edc38f89c1d8
Parents: 7067dd3
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Wed May 6 15:58:43 2015 +0300
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Wed May 6 15:58:43 2015 +0300
----------------------------------------------------------------------
.../java/org/apache/sshd/ClientChannel.java | 5 +-
.../java/org/apache/sshd/agent/SshAgent.java | 7 +-
.../org/apache/sshd/agent/SshAgentServer.java | 9 +-
.../sshd/agent/common/AbstractAgentProxy.java | 4 +-
.../apache/sshd/agent/common/AgentDelegate.java | 4 +-
.../sshd/agent/common/AgentForwardSupport.java | 8 +-
.../sshd/agent/local/AgentForwardedChannel.java | 3 +-
.../org/apache/sshd/agent/local/AgentImpl.java | 3 +-
.../sshd/agent/local/AgentServerProxy.java | 5 +-
.../sshd/agent/local/ProxyAgentFactory.java | 5 +-
.../org/apache/sshd/agent/unix/AgentClient.java | 10 +-
.../org/apache/sshd/agent/unix/AgentServer.java | 6 +-
.../sshd/agent/unix/AgentServerProxy.java | 5 +-
.../sshd/client/auth/UserAuthPublicKey.java | 7 +-
.../client/channel/AbstractClientChannel.java | 6 +-
.../apache/sshd/common/forward/SocksProxy.java | 6 +-
.../apache/sshd/common/util/CloseableUtils.java | 7 +
.../sshd/common/util/DirectoryScanner.java | 3 +-
.../sshd/server/x11/X11ForwardSupport.java | 5 +-
.../test/java/org/apache/sshd/AgentTest.java | 71 ++--
.../org/apache/sshd/PortForwardingLoadTest.java | 44 +--
.../org/apache/sshd/PortForwardingTest.java | 324 +++++++++----------
.../test/java/org/apache/sshd/ProxyTest.java | 71 ++--
23 files changed, 324 insertions(+), 294 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/ClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/ClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/ClientChannel.java
index 653f490..5e8211e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/ClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/ClientChannel.java
@@ -18,14 +18,15 @@
*/
package org.apache.sshd;
+import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.sshd.client.future.OpenFuture;
+import org.apache.sshd.common.future.CloseFuture;
import org.apache.sshd.common.io.IoInputStream;
import org.apache.sshd.common.io.IoOutputStream;
-import org.apache.sshd.common.future.CloseFuture;
/**
* A client channel used to communicate with
@@ -34,7 +35,7 @@ import org.apache.sshd.common.future.CloseFuture;
*
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
-public interface ClientChannel {
+public interface ClientChannel extends Closeable {
String CHANNEL_EXEC = "exec";
String CHANNEL_SHELL = "shell";
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/SshAgent.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgent.java b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgent.java
index 2a791b9..b3b2ff5 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgent.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgent.java
@@ -18,6 +18,7 @@
*/
package org.apache.sshd.agent;
+import java.io.Closeable;
import java.io.IOException;
import java.security.KeyPair;
import java.security.PublicKey;
@@ -26,7 +27,7 @@ import java.util.List;
/**
* SSH key agent server
*/
-public interface SshAgent {
+public interface SshAgent extends Closeable {
public static final String SSH_AUTHSOCKET_ENV_NAME = "SSH_AUTH_SOCK";
@@ -57,8 +58,4 @@ public interface SshAgent {
void removeIdentity(PublicKey key) throws IOException;
void removeAllIdentities() throws IOException;
-
- void close();
-
-
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentServer.java b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentServer.java
index bf2089a..233930e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/SshAgentServer.java
@@ -18,10 +18,11 @@
*/
package org.apache.sshd.agent;
-public interface SshAgentServer {
+import java.io.Closeable;
+public interface SshAgentServer extends Closeable {
+ /**
+ * @return Agent server identifier
+ */
String getId();
-
- void close();
-
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentProxy.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentProxy.java b/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentProxy.java
index 498c46f..9960c0d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/common/AbstractAgentProxy.java
@@ -99,7 +99,9 @@ public abstract class AbstractAgentProxy implements SshAgent {
}
}
- public void close() {
+ @Override
+ public void close() throws IOException {
+ // nothing
}
protected Buffer createBuffer(byte cmd) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
index b7daa32..c3ef510 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentDelegate.java
@@ -33,7 +33,9 @@ public class AgentDelegate implements SshAgent {
this.agent = agent;
}
- public void close() {
+ @Override
+ public void close() throws IOException {
+ // ignored
}
public List<Pair<PublicKey, String>> getIdentities() throws IOException {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
index c1a775f..38d75ce 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/common/AgentForwardSupport.java
@@ -52,7 +52,7 @@ public class AgentForwardSupport extends CloseableUtils.AbstractCloseable {
}
}
- public synchronized void close() {
+ public synchronized void close() throws IOException {
if (agentId != null) {
agentId = null;
agentServer.close();
@@ -62,7 +62,11 @@ public class AgentForwardSupport extends CloseableUtils.AbstractCloseable {
@Override
protected void doCloseImmediately() {
- close();
+ try {
+ close();
+ } catch(IOException e) {
+ throw new RuntimeException("Failed (" + e.getClass().getSimpleName() + ") to close agent: " + e.getMessage(), e);
+ }
super.doCloseImmediately();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentForwardedChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentForwardedChannel.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentForwardedChannel.java
index 7abf714..4f05443 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentForwardedChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentForwardedChannel.java
@@ -45,7 +45,8 @@ public class AgentForwardedChannel extends AbstractClientChannel {
protected Buffer request(Buffer buffer) throws IOException {
return AgentForwardedChannel.this.request(buffer);
}
- public void close() {
+ @Override
+ public void close() throws IOException {
AgentForwardedChannel.this.close(false);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
index dc1694c..6385d9a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentImpl.java
@@ -108,7 +108,8 @@ public class AgentImpl implements SshAgent {
keys.clear();
}
- public void close() {
+ @Override
+ public void close() throws IOException {
closed = true;
keys.clear();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
index 15c23b2..78cb8ce 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
@@ -63,11 +63,14 @@ public class AgentServerProxy implements SshAgentServer {
}
}
+ @Override
public String getId() {
return id;
}
- public void close() {
+ @Override
+ public void close() throws IOException {
+ // nothing
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
index 197d04d..817934a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/ProxyAgentFactory.java
@@ -65,11 +65,14 @@ public class ProxyAgentFactory implements SshAgentFactory {
final AgentServerProxy proxy = new AgentServerProxy(service);
proxies.put(proxy.getId(), proxy);
return new SshAgentServer() {
+ @Override
public String getId() {
return proxy.getId();
}
- public void close() {
+ @SuppressWarnings("synthetic-access")
+ @Override
+ public void close() throws IOException {
proxies.remove(proxy.getId());
proxy.close();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
index e00689a..87f9a26 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentClient.java
@@ -77,7 +77,11 @@ public class AgentClient extends AbstractAgentProxy implements Runnable {
e.printStackTrace();
}
} finally {
- close();
+ try {
+ close();
+ } catch(IOException e) {
+ e.printStackTrace();
+ }
}
}
@@ -103,12 +107,14 @@ public class AgentClient extends AbstractAgentProxy implements Runnable {
}
}
- public void close() {
+ @Override
+ public void close() throws IOException {
if (!closed) {
closed = true;
Socket.close(handle);
}
}
+
protected synchronized Buffer request(Buffer buffer) throws IOException {
int wpos = buffer.wpos();
buffer.wpos(0);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
index fa5847c..d38b0b2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServer.java
@@ -18,6 +18,7 @@
*/
package org.apache.sshd.agent.unix;
+import java.io.Closeable;
import java.io.IOException;
import org.apache.sshd.agent.SshAgent;
@@ -33,7 +34,7 @@ import org.apache.tomcat.jni.Status;
/**
* A server for an SSH Agent
*/
-public class AgentServer {
+public class AgentServer implements Closeable {
private final SshAgent agent;
private String authSocket;
@@ -83,7 +84,8 @@ public class AgentServer {
return authSocket;
}
- public void close() {
+ @Override
+ public void close() throws IOException {
agent.close();
Socket.close(handle);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
index 69322f6..993c174 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/AgentServerProxy.java
@@ -71,6 +71,7 @@ public class AgentServerProxy implements SshAgentServer {
throwException(result);
}
thread = new Thread("sshd-AgentServerProxy-PIPE-" + authSocket) {
+ @SuppressWarnings("synthetic-access")
@Override
public void run() {
try {
@@ -110,11 +111,13 @@ public class AgentServerProxy implements SshAgentServer {
}
}
+ @Override
public String getId() {
return authSocket;
}
- public synchronized void close() {
+ @Override
+ public synchronized void close() throws IOException {
if (closed) {
return;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKey.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKey.java b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKey.java
index 9ff8487..d58f7be 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKey.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/auth/UserAuthPublicKey.java
@@ -18,6 +18,7 @@
*/
package org.apache.sshd.client.auth;
+import java.io.IOException;
import java.security.KeyPair;
import java.security.PublicKey;
import java.util.ArrayList;
@@ -148,7 +149,11 @@ public class UserAuthPublicKey implements UserAuth {
public void destroy() {
if (agent != null) {
- agent.close();
+ try {
+ agent.close();
+ } catch(IOException e) {
+ throw new RuntimeException("Failed (" + e.getClass().getSimpleName() + ") to close agent: " + e.getMessage(), e);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
index 382e8af..5eb907d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
@@ -21,6 +21,7 @@ package org.apache.sshd.client.channel;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.sshd.ClientChannel;
import org.apache.sshd.client.future.DefaultOpenFuture;
@@ -45,7 +46,7 @@ import org.apache.sshd.common.util.IoUtils;
*/
public abstract class AbstractClientChannel extends AbstractChannel implements ClientChannel {
- protected volatile boolean opened;
+ protected final AtomicBoolean opened=new AtomicBoolean();
protected final String type;
protected Streaming streaming;
@@ -66,6 +67,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
protected String openFailureMsg;
protected OpenFuture openFuture;
+ @SuppressWarnings("synthetic-access")
protected AbstractClientChannel(String type) {
this.type = type;
this.streaming = Streaming.Sync;
@@ -229,7 +231,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
this.remoteWindow.init(rwsize, rmpsize);
try {
doOpen();
- this.opened = true;
+ this.opened.set(true);
this.openFuture.setOpened();
} catch (Exception e) {
this.openFuture.setException(e);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
index 3f61908..bbe4fe7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/SocksProxy.java
@@ -18,6 +18,7 @@
*/
package org.apache.sshd.common.forward;
+import java.io.Closeable;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -84,7 +85,7 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
ioSession.close(false);
}
- public abstract class Proxy {
+ public abstract class Proxy implements Closeable {
IoSession session;
TcpipClientChannel channel;
@@ -98,7 +99,8 @@ public class SocksProxy extends CloseableUtils.AbstractCloseable implements IoHa
channel.getInvertedIn().flush();
}
- public void close() {
+ @Override
+ public void close() throws IOException {
if (channel != null) {
channel.close(false);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/common/util/CloseableUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/CloseableUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/util/CloseableUtils.java
index 85c3c9f..243d227 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/CloseableUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/CloseableUtils.java
@@ -125,6 +125,7 @@ public class CloseableUtils {
return this;
}
+ @SuppressWarnings("synthetic-access")
public Builder parallel(Iterable<? extends Closeable> closeables) {
return close(new ParallelCloseable(lock, closeables));
}
@@ -150,6 +151,7 @@ public class CloseableUtils {
public static abstract class IoBaseCloseable implements Closeable {
// TODO once JDK 8+ becomes the minimum for this project, make it a default method instead of this class
+ @Override
public void close() throws IOException {
CloseableUtils.close(this);
}
@@ -343,6 +345,7 @@ public class CloseableUtils {
* When preClose() is called, isClosing() == true
*/
protected void preClose() {
+ // nothing
}
protected CloseFuture doCloseGracefully() {
@@ -361,6 +364,7 @@ public class CloseableUtils {
state.set(State.Closed);
}
+ @SuppressWarnings("synthetic-access")
protected Builder builder() {
return new Builder(lock);
}
@@ -379,6 +383,8 @@ public class CloseableUtils {
@Override
protected void doCloseImmediately() {
getInnerCloseable().close(true).addListener(new SshFutureListener<CloseFuture>() {
+ @Override
+ @SuppressWarnings("synthetic-access")
public void operationComplete(CloseFuture future) {
AbstractInnerCloseable.super.doCloseImmediately();
}
@@ -387,5 +393,6 @@ public class CloseableUtils {
}
private CloseableUtils() {
+ throw new UnsupportedOperationException("No instance allowed");
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/common/util/DirectoryScanner.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/DirectoryScanner.java b/sshd-core/src/main/java/org/apache/sshd/common/util/DirectoryScanner.java
index e559628..4375caa 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/DirectoryScanner.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/DirectoryScanner.java
@@ -19,7 +19,6 @@
package org.apache.sshd.common.util;
import java.io.File;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -229,7 +228,7 @@ public class DirectoryScanner {
throw new IllegalStateException("No includes set ");
}
- filesIncluded = new ArrayList();
+ filesIncluded = new ArrayList<String>();
scandir(basedir, "");
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java b/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
index ba8eb36..992d5b4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/x11/X11ForwardSupport.java
@@ -40,7 +40,7 @@ import org.apache.sshd.common.util.Readable;
/**
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
-public class X11ForwardSupport extends CloseableUtils.AbstractInnerCloseable implements IoHandler, Closeable {
+public class X11ForwardSupport extends CloseableUtils.AbstractInnerCloseable implements IoHandler {
private static String xauthCommand = System.getProperty("sshd.xauthCommand", "xauth");
@@ -60,7 +60,8 @@ public class X11ForwardSupport extends CloseableUtils.AbstractInnerCloseable imp
this.service = service;
}
- public void close() {
+ @Override
+ public void close() throws IOException {
close(true);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/test/java/org/apache/sshd/AgentTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/AgentTest.java b/sshd-core/src/test/java/org/apache/sshd/AgentTest.java
index c268d76..d4549aa 100644
--- a/sshd-core/src/test/java/org/apache/sshd/AgentTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/AgentTest.java
@@ -18,6 +18,12 @@
*/
package org.apache.sshd;
+import static org.apache.sshd.util.Utils.createTestKeyPairProvider;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assume.assumeThat;
+
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -42,13 +48,6 @@ import org.apache.sshd.util.EchoShellFactory;
import org.apache.sshd.util.Utils;
import org.junit.Test;
-import static org.apache.sshd.util.Utils.createTestKeyPairProvider;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeThat;
-
public class AgentTest extends BaseTest {
@Test
@@ -58,37 +57,35 @@ public class AgentTest extends BaseTest {
return;
}
- AgentServer agent = new AgentServer();
- String authSocket;
- try {
- authSocket = agent.start();
- } catch (UnsatisfiedLinkError e) {
- // the native library is not available, so these tests should be skipped
- authSocket = null;
+ try(AgentServer agent = new AgentServer()) {
+ String authSocket;
+ try {
+ authSocket = agent.start();
+ } catch (UnsatisfiedLinkError e) {
+ // the native library is not available, so these tests should be skipped
+ authSocket = null;
+ }
+ assumeThat(authSocket, notNullValue());
+
+ try(SshAgent client = new AgentClient(authSocket)) {
+ List<SshAgent.Pair<PublicKey, String>> keys = client.getIdentities();
+ assertNotNull(keys);
+ assertEquals(0, keys.size());
+
+ KeyPair k = Utils.createTestHostKeyProvider().loadKey(KeyPairProvider.SSH_RSA);
+ client.addIdentity(k, "");
+ keys = client.getIdentities();
+ assertNotNull(keys);
+ assertEquals(1, keys.size());
+
+ client.removeIdentity(k.getPublic());
+ keys = client.getIdentities();
+ assertNotNull(keys);
+ assertEquals(0, keys.size());
+
+ client.removeAllIdentities();
+ }
}
- assumeThat(authSocket, notNullValue());
-
- SshAgent client = new AgentClient(authSocket);
- List<SshAgent.Pair<PublicKey, String>> keys = client.getIdentities();
- assertNotNull(keys);
- assertEquals(0, keys.size());
-
- KeyPair k = Utils.createTestHostKeyProvider().loadKey(KeyPairProvider.SSH_RSA);
- client.addIdentity(k, "");
- keys = client.getIdentities();
- assertNotNull(keys);
- assertEquals(1, keys.size());
-
- client.removeIdentity(k.getPublic());
- keys = client.getIdentities();
- assertNotNull(keys);
- assertEquals(0, keys.size());
-
- client.removeAllIdentities();
-
- client.close();
-
- agent.close();
}
@Test
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/test/java/org/apache/sshd/PortForwardingLoadTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/PortForwardingLoadTest.java b/sshd-core/src/test/java/org/apache/sshd/PortForwardingLoadTest.java
index bee776c..af63b0c 100644
--- a/sshd-core/src/test/java/org/apache/sshd/PortForwardingLoadTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/PortForwardingLoadTest.java
@@ -139,24 +139,24 @@ public class PortForwardingLoadTest extends BaseTest {
public void run() {
try {
for (int i = 0; i < NUM_ITERATIONS; ++i) {
- Socket s = ss.accept();
- conCount.incrementAndGet();
- InputStream is = s.getInputStream();
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- byte[] buf = new byte[8192];
- int l;
- while (baos.size() < PAYLOAD.length() && (l = is.read(buf)) > 0) {
- baos.write(buf, 0, l);
- }
- if (!PAYLOAD.equals(baos.toString())) {
- assertEquals(PAYLOAD, baos.toString());
- }
- is = new ByteArrayInputStream(baos.toByteArray());
- OutputStream os = s.getOutputStream();
- while ((l = is.read(buf)) > 0) {
- os.write(buf, 0, l);
+ try(Socket s = ss.accept()) {
+ conCount.incrementAndGet();
+ InputStream is = s.getInputStream();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ byte[] buf = new byte[8192];
+ int l;
+ while (baos.size() < PAYLOAD.length() && (l = is.read(buf)) > 0) {
+ baos.write(buf, 0, l);
+ }
+ if (!PAYLOAD.equals(baos.toString())) {
+ assertEquals(PAYLOAD, baos.toString());
+ }
+ is = new ByteArrayInputStream(baos.toByteArray());
+ OutputStream os = s.getOutputStream();
+ while ((l = is.read(buf)) > 0) {
+ os.write(buf, 0, l);
+ }
}
- s.close();
}
} catch (Exception e) {
e.printStackTrace();
@@ -216,11 +216,11 @@ public class PortForwardingLoadTest extends BaseTest {
started[0] = true;
try {
for (int i = 0; i < NUM_ITERATIONS; ++i) {
- Socket s = ss.accept();
- conCount.incrementAndGet();
- s.getOutputStream().write(PAYLOAD.getBytes());
- s.getOutputStream().flush();
- s.close();
+ try(Socket s = ss.accept()) {
+ conCount.incrementAndGet();
+ s.getOutputStream().write(PAYLOAD.getBytes());
+ s.getOutputStream().flush();
+ }
}
} catch (Exception e) {
e.printStackTrace();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java b/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java
index cd21784..5905340 100644
--- a/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/PortForwardingTest.java
@@ -18,21 +18,22 @@
*/
package org.apache.sshd;
+import static org.apache.sshd.util.Utils.getFreePort;
+import static org.junit.Assert.assertEquals;
+
import java.lang.reflect.Field;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.HashSet;
import java.util.Set;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.apache.sshd.client.channel.ChannelDirectTcpip;
+import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.SshdSocketAddress;
import org.apache.sshd.util.BaseTest;
import org.apache.sshd.util.BogusForwardingFilter;
@@ -47,8 +48,9 @@ import org.junit.Before;
import org.junit.Test;
import org.slf4j.LoggerFactory;
-import static org.apache.sshd.util.Utils.getFreePort;
-import static org.junit.Assert.assertEquals;
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.Session;
/**
* Port forwarding tests
@@ -66,8 +68,8 @@ public class PortForwardingTest extends BaseTest {
@Before
public void setUp() throws Exception {
sshd = SshServer.setUpDefaultServer();
- sshd.getProperties().put(SshServer.WINDOW_SIZE, "2048");
- sshd.getProperties().put(SshServer.MAX_PACKET_SIZE, "256");
+ sshd.getProperties().put(FactoryManager.WINDOW_SIZE, "2048");
+ sshd.getProperties().put(FactoryManager.MAX_PACKET_SIZE, "256");
sshd.setKeyPairProvider(Utils.createTestHostKeyProvider());
sshd.setShellFactory(new EchoShellFactory());
sshd.setPasswordAuthenticator(new BogusPasswordAuthenticator());
@@ -114,14 +116,14 @@ public class PortForwardingTest extends BaseTest {
session.setPortForwardingR(forwardedPort, "localhost", echoPort);
Thread.sleep(100);
- Socket s = new Socket("localhost", forwardedPort);
- s.getOutputStream().write("Hello".getBytes());
- s.getOutputStream().flush();
- byte[] buf = new byte[1024];
- int n = s.getInputStream().read(buf);
- String res = new String(buf, 0, n);
- assertEquals("Hello", res);
- s.close();
+ try(Socket s = new Socket("localhost", forwardedPort)) {
+ s.getOutputStream().write("Hello".getBytes());
+ s.getOutputStream().flush();
+ byte[] buf = new byte[1024];
+ int n = s.getInputStream().read(buf);
+ String res = new String(buf, 0, n);
+ assertEquals("Hello", res);
+ }
session.delPortForwardingR(forwardedPort);
session.disconnect();
@@ -129,49 +131,47 @@ public class PortForwardingTest extends BaseTest {
@Test
public void testRemoteForwardingNative() throws Exception {
- ClientSession session = createNativeSession();
-
- SshdSocketAddress remote = new SshdSocketAddress("", 0);
- SshdSocketAddress local = new SshdSocketAddress("localhost", echoPort);
-
- SshdSocketAddress bound = session.startRemotePortForwarding(remote, local);
-
- Socket s = new Socket(bound.getHostName(), bound.getPort());
- s.getOutputStream().write("Hello".getBytes());
- s.getOutputStream().flush();
- byte[] buf = new byte[1024];
- int n = s.getInputStream().read(buf);
- String res = new String(buf, 0, n);
- assertEquals("Hello", res);
- s.close();
+ try(ClientSession session = createNativeSession()) {
+ SshdSocketAddress remote = new SshdSocketAddress("", 0);
+ SshdSocketAddress local = new SshdSocketAddress("localhost", echoPort);
+ SshdSocketAddress bound = session.startRemotePortForwarding(remote, local);
+
+ try(Socket s = new Socket(bound.getHostName(), bound.getPort())) {
+ s.getOutputStream().write("Hello".getBytes());
+ s.getOutputStream().flush();
+ byte[] buf = new byte[1024];
+ int n = s.getInputStream().read(buf);
+ String res = new String(buf, 0, n);
+ assertEquals("Hello", res);
+ }
- session.stopRemotePortForwarding(remote);
- session.close(false).await();
+ session.stopRemotePortForwarding(remote);
+ session.close(false).await();
+ }
}
@Test
public void testRemoteForwardingNativeBigPayload() throws Exception {
- ClientSession session = createNativeSession();
-
- SshdSocketAddress remote = new SshdSocketAddress("", 0);
- SshdSocketAddress local = new SshdSocketAddress("localhost", echoPort);
-
- SshdSocketAddress bound = session.startRemotePortForwarding(remote, local);
-
- byte[] buf = new byte[1024];
-
- Socket s = new Socket(bound.getHostName(), bound.getPort());
- for (int i = 0; i < 1000; i++) {
- s.getOutputStream().write("0123456789".getBytes());
- s.getOutputStream().flush();
- int n = s.getInputStream().read(buf);
- String res = new String(buf, 0, n);
- assertEquals("0123456789", res);
+ try(ClientSession session = createNativeSession()) {
+ SshdSocketAddress remote = new SshdSocketAddress("", 0);
+ SshdSocketAddress local = new SshdSocketAddress("localhost", echoPort);
+ SshdSocketAddress bound = session.startRemotePortForwarding(remote, local);
+
+ byte[] buf = new byte[1024];
+
+ try(Socket s = new Socket(bound.getHostName(), bound.getPort())) {
+ for (int i = 0; i < 1000; i++) {
+ s.getOutputStream().write("0123456789".getBytes());
+ s.getOutputStream().flush();
+ int n = s.getInputStream().read(buf);
+ String res = new String(buf, 0, n);
+ assertEquals("0123456789", res);
+ }
+ }
+
+ session.stopRemotePortForwarding(remote);
+ session.close(false).await();
}
- s.close();
-
- session.stopRemotePortForwarding(remote);
- session.close(false).await();
}
@Test
@@ -181,14 +181,14 @@ public class PortForwardingTest extends BaseTest {
int forwardedPort = getFreePort();
session.setPortForwardingL(forwardedPort, "localhost", echoPort);
- Socket s = new Socket("localhost", forwardedPort);
- s.getOutputStream().write("Hello".getBytes());
- s.getOutputStream().flush();
- byte[] buf = new byte[1024];
- int n = s.getInputStream().read(buf);
- String res = new String(buf, 0, n);
- assertEquals("Hello", res);
- s.close();
+ try(Socket s = new Socket("localhost", forwardedPort)) {
+ s.getOutputStream().write("Hello".getBytes());
+ s.getOutputStream().flush();
+ byte[] buf = new byte[1024];
+ int n = s.getInputStream().read(buf);
+ String res = new String(buf, 0, n);
+ assertEquals("Hello", res);
+ }
session.delPortForwardingL(forwardedPort);
session.disconnect();
@@ -196,85 +196,84 @@ public class PortForwardingTest extends BaseTest {
@Test
public void testLocalForwardingNative() throws Exception {
- ClientSession session = createNativeSession();
-
- SshdSocketAddress local = new SshdSocketAddress("", 0);
- SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
-
- SshdSocketAddress bound = session.startLocalPortForwarding(local, remote);
-
- Socket s = new Socket(bound.getHostName(), bound.getPort());
- s.getOutputStream().write("Hello".getBytes());
- s.getOutputStream().flush();
- byte[] buf = new byte[1024];
- int n = s.getInputStream().read(buf);
- String res = new String(buf, 0, n);
- assertEquals("Hello", res);
- s.close();
+ try(ClientSession session = createNativeSession()) {
+ SshdSocketAddress local = new SshdSocketAddress("", 0);
+ SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
+ SshdSocketAddress bound = session.startLocalPortForwarding(local, remote);
+
+ try(Socket s = new Socket(bound.getHostName(), bound.getPort())) {
+ s.getOutputStream().write("Hello".getBytes());
+ s.getOutputStream().flush();
+ byte[] buf = new byte[1024];
+ int n = s.getInputStream().read(buf);
+ String res = new String(buf, 0, n);
+ assertEquals("Hello", res);
+ }
- session.stopLocalPortForwarding(bound);
- session.close(false).await();
+ session.stopLocalPortForwarding(bound);
+ session.close(false).await();
+ }
}
@Test
public void testLocalForwardingNativeReuse() throws Exception {
- ClientSession session = createNativeSession();
-
- SshdSocketAddress local = new SshdSocketAddress("", 0);
- SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
-
- SshdSocketAddress bound = session.startLocalPortForwarding(local, remote);
- session.stopLocalPortForwarding(bound);
-
- SshdSocketAddress bound2 = session.startLocalPortForwarding(local, remote);
- session.stopLocalPortForwarding(bound2);
-
- session.close(false).await();
+ try(ClientSession session = createNativeSession()) {
+ SshdSocketAddress local = new SshdSocketAddress("", 0);
+ SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
+ SshdSocketAddress bound = session.startLocalPortForwarding(local, remote);
+
+ session.stopLocalPortForwarding(bound);
+
+ SshdSocketAddress bound2 = session.startLocalPortForwarding(local, remote);
+ session.stopLocalPortForwarding(bound2);
+
+ session.close(false).await();
+ }
}
@Test
public void testLocalForwardingNativeBigPayload() throws Exception {
- ClientSession session = createNativeSession();
-
- SshdSocketAddress local = new SshdSocketAddress("", 0);
- SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
-
- SshdSocketAddress bound = session.startLocalPortForwarding(local, remote);
-
- byte[] buf = new byte[1024];
- Socket s = new Socket(bound.getHostName(), bound.getPort());
- for (int i = 0; i < 1000; i++) {
- s.getOutputStream().write("Hello".getBytes());
- s.getOutputStream().flush();
- int n = s.getInputStream().read(buf);
- String res = new String(buf, 0, n);
- assertEquals("Hello", res);
+ try(ClientSession session = createNativeSession()) {
+ SshdSocketAddress local = new SshdSocketAddress("", 0);
+ SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
+ SshdSocketAddress bound = session.startLocalPortForwarding(local, remote);
+
+ byte[] buf = new byte[1024];
+ try(Socket s = new Socket(bound.getHostName(), bound.getPort())) {
+ for (int i = 0; i < 1000; i++) {
+ s.getOutputStream().write("Hello".getBytes());
+ s.getOutputStream().flush();
+ int n = s.getInputStream().read(buf);
+ String res = new String(buf, 0, n);
+ assertEquals("Hello", res);
+ }
+ }
+
+ session.stopLocalPortForwarding(bound);
+ session.close(false).await();
}
- s.close();
-
- session.stopLocalPortForwarding(bound);
- session.close(false).await();
}
@Test
public void testForwardingChannel() throws Exception {
- ClientSession session = createNativeSession();
-
- SshdSocketAddress local = new SshdSocketAddress("", 0);
- SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
-
- ChannelDirectTcpip channel = session.createDirectTcpipChannel(local, remote);
- channel.open().await();
-
- channel.getInvertedIn().write("Hello".getBytes());
- channel.getInvertedIn().flush();
- byte[] buf = new byte[1024];
- int n = channel.getInvertedOut().read(buf);
- String res = new String(buf, 0, n);
- assertEquals("Hello", res);
- channel.close(false);
+ try(ClientSession session = createNativeSession()) {
+ SshdSocketAddress local = new SshdSocketAddress("", 0);
+ SshdSocketAddress remote = new SshdSocketAddress("localhost", echoPort);
+
+ try(ChannelDirectTcpip channel = session.createDirectTcpipChannel(local, remote)) {
+ channel.open().await();
+
+ channel.getInvertedIn().write("Hello".getBytes());
+ channel.getInvertedIn().flush();
+ byte[] buf = new byte[1024];
+ int n = channel.getInvertedOut().read(buf);
+ String res = new String(buf, 0, n);
+ assertEquals("Hello", res);
+ channel.close(false);
+ }
- session.close(false).await();
+ session.close(false).await();
+ }
}
@Test(timeout = 20000)
@@ -286,39 +285,37 @@ public class PortForwardingTest extends BaseTest {
session.setPortForwardingR(forwardedPort, "localhost", echoPort);
// 2. Establish a connection through it
- Socket s = new Socket("localhost", forwardedPort);
-
- // 3. Simulate the client going away
- rudelyDisconnectJschSession(session);
-
- // 4. Make sure the NIOprocessor is not stuck
- {
- Thread.sleep(1000);
- // from here, we need to check all the threads running and find a
- // "NioProcessor-"
- // that is stuck on a PortForward.dispose
- ThreadGroup root = Thread.currentThread().getThreadGroup().getParent();
- while (root.getParent() != null) {
- root = root.getParent();
- }
- boolean stuck;
- do {
- stuck = false;
- for (Thread t : findThreads(root, "NioProcessor-")) {
- stuck = true;
- }
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
-
+ try(Socket s = new Socket("localhost", forwardedPort)) {
+ // 3. Simulate the client going away
+ rudelyDisconnectJschSession(session);
+
+ // 4. Make sure the NIOprocessor is not stuck
+ {
+ Thread.sleep(1000);
+ // from here, we need to check all the threads running and find a
+ // "NioProcessor-"
+ // that is stuck on a PortForward.dispose
+ ThreadGroup root = Thread.currentThread().getThreadGroup().getParent();
+ while (root.getParent() != null) {
+ root = root.getParent();
}
- } while (stuck);
+ boolean stuck;
+ do {
+ stuck = false;
+ for (Thread t : findThreads(root, "NioProcessor-")) {
+ stuck = true;
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ // ignored
+ }
+ } while (stuck);
+ }
+
+ session.delPortForwardingR(forwardedPort);
+ session.disconnect();
}
-
- session.delPortForwardingR(forwardedPort);
- session.disconnect();
-
- s.close();
}
/**
@@ -332,12 +329,13 @@ public class PortForwardingTest extends BaseTest {
private void rudelyDisconnectJschSession(Session session) throws Exception {
Field fSocket = session.getClass().getDeclaredField("socket");
fSocket.setAccessible(true);
- Socket socket = (Socket) fSocket.get(session);
-
- Assert.assertTrue("socket is not connected", socket.isConnected());
- Assert.assertFalse("socket should not be closed", socket.isClosed());
- socket.close();
- Assert.assertTrue("socket has not closed", socket.isClosed());
+
+ try(Socket socket = (Socket) fSocket.get(session)) {
+ Assert.assertTrue("socket is not connected", socket.isConnected());
+ Assert.assertFalse("socket should not be closed", socket.isClosed());
+ socket.close();
+ Assert.assertTrue("socket has not closed", socket.isClosed());
+ }
}
private Set<Thread> findThreads(ThreadGroup group, String name) {
@@ -406,8 +404,8 @@ public class PortForwardingTest extends BaseTest {
protected ClientSession createNativeSession() throws Exception {
client = SshClient.setUpDefaultClient();
- client.getProperties().put(SshServer.WINDOW_SIZE, "2048");
- client.getProperties().put(SshServer.MAX_PACKET_SIZE, "256");
+ client.getProperties().put(FactoryManager.WINDOW_SIZE, "2048");
+ client.getProperties().put(FactoryManager.MAX_PACKET_SIZE, "256");
client.setTcpipForwardingFilter(new BogusForwardingFilter());
client.start();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/abec3d81/sshd-core/src/test/java/org/apache/sshd/ProxyTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/ProxyTest.java b/sshd-core/src/test/java/org/apache/sshd/ProxyTest.java
index 0bb3dba..f597b09 100644
--- a/sshd-core/src/test/java/org/apache/sshd/ProxyTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/ProxyTest.java
@@ -18,19 +18,20 @@
*/
package org.apache.sshd;
-import java.io.IOError;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.Socket;
-import java.net.URL;
-import java.net.URLConnection;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.SshdSocketAddress;
import org.apache.sshd.util.BaseTest;
import org.apache.sshd.util.BogusForwardingFilter;
@@ -40,18 +41,11 @@ import org.apache.sshd.util.Utils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.slf4j.LoggerFactory;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
/**
* Port forwarding tests
*/
public class ProxyTest extends BaseTest {
-
- private final org.slf4j.Logger log = LoggerFactory.getLogger(getClass());
-
private SshServer sshd;
private int sshPort;
private int echoPort;
@@ -61,8 +55,8 @@ public class ProxyTest extends BaseTest {
@Before
public void setUp() throws Exception {
sshd = SshServer.setUpDefaultServer();
- sshd.getProperties().put(SshServer.WINDOW_SIZE, "2048");
- sshd.getProperties().put(SshServer.MAX_PACKET_SIZE, "256");
+ sshd.getProperties().put(FactoryManager.WINDOW_SIZE, "2048");
+ sshd.getProperties().put(FactoryManager.MAX_PACKET_SIZE, "256");
sshd.setKeyPairProvider(Utils.createTestHostKeyProvider());
sshd.setShellFactory(new EchoShellFactory());
sshd.setPasswordAuthenticator(new BogusPasswordAuthenticator());
@@ -103,39 +97,40 @@ public class ProxyTest extends BaseTest {
@Test
public void testSocksProxy() throws Exception {
- ClientSession session = createNativeSession();
+ try(ClientSession session = createNativeSession()) {
+ SshdSocketAddress dynamic = session.startDynamicPortForwarding(new SshdSocketAddress("localhost", 0));
- SshdSocketAddress dynamic = session.startDynamicPortForwarding(new SshdSocketAddress("localhost", 0));
-
- for (int i = 0; i < 10; i++) {
- Socket s = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("localhost", dynamic.getPort())));
- s.connect(new InetSocketAddress("localhost", echoPort));
- s.getOutputStream().write("foo".getBytes());
- s.getOutputStream().flush();
byte[] buf = new byte[1024];
- int l = s.getInputStream().read(buf);
- s.close();
- assertEquals("foo", new String(buf, 0, l));
- }
-
- session.stopDynamicPortForwarding(dynamic);
+ for (int i = 0, l = 0; i < 10; i++) {
+ try(Socket s = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("localhost", dynamic.getPort())))) {
+ s.connect(new InetSocketAddress("localhost", echoPort));
+ s.getOutputStream().write("foo".getBytes());
+ s.getOutputStream().flush();
+ l = s.getInputStream().read(buf);
+ }
+ assertEquals("foo", new String(buf, 0, l));
+ }
- try {
- Socket s = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("localhost", dynamic.getPort())));
- s.connect(new InetSocketAddress("localhost", echoPort));
- s.getOutputStream().write("foo".getBytes());
- fail("Expected IOException");
- } catch (IOException e) {
- // expected
+ session.stopDynamicPortForwarding(dynamic);
+
+ try {
+ try(Socket s = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("localhost", dynamic.getPort())))) {
+ s.connect(new InetSocketAddress("localhost", echoPort));
+ s.getOutputStream().write("foo".getBytes());
+ fail("Expected IOException");
+ }
+ } catch (IOException e) {
+ // expected
+ }
+
+ session.close(false).await();
}
-
- session.close(false).await();
}
protected ClientSession createNativeSession() throws Exception {
client = SshClient.setUpDefaultClient();
- client.getProperties().put(SshServer.WINDOW_SIZE, "2048");
- client.getProperties().put(SshServer.MAX_PACKET_SIZE, "256");
+ client.getProperties().put(FactoryManager.WINDOW_SIZE, "2048");
+ client.getProperties().put(FactoryManager.MAX_PACKET_SIZE, "256");
client.setTcpipForwardingFilter(new BogusForwardingFilter());
client.start();
@@ -144,8 +139,6 @@ public class ProxyTest extends BaseTest {
session.auth().verify();
return session;
}
-
-
}