You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2013/07/18 12:53:17 UTC
[1/2] git commit: Fix multithreading support in AbstractSessionFactory
Updated Branches:
refs/heads/master a0cb511cc -> 6daaea9b3
Fix multithreading support in AbstractSessionFactory
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/3e1afdaa
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/3e1afdaa
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/3e1afdaa
Branch: refs/heads/master
Commit: 3e1afdaab8919aeea5013d0856b040a2798bb6cb
Parents: a0cb511
Author: Guillaume Nodet <gn...@apache.org>
Authored: Thu Jul 18 12:49:44 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Jul 18 12:49:44 2013 +0200
----------------------------------------------------------------------
.../sshd/common/session/AbstractSessionFactory.java | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/3e1afdaa/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSessionFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSessionFactory.java b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSessionFactory.java
index 8184ed9..9ecf340 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSessionFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSessionFactory.java
@@ -20,6 +20,7 @@ package org.apache.sshd.common.session;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.mina.core.session.IoSession;
import org.apache.sshd.common.AbstractSessionIoHandler;
@@ -32,13 +33,12 @@ import org.apache.sshd.common.SessionListener;
*/
public abstract class AbstractSessionFactory extends AbstractSessionIoHandler {
- protected final List<SessionListener> listeners = new ArrayList<SessionListener>();
+ protected final List<SessionListener> listeners = new CopyOnWriteArrayList<SessionListener>();
protected AbstractSession createSession(IoSession ioSession) throws Exception {
AbstractSession session = doCreateSession(ioSession);
- List<SessionListener> sl = new ArrayList<SessionListener>(this.listeners);
- for (SessionListener l : sl) {
+ for (SessionListener l : listeners) {
l.sessionCreated(session);
session.addListener(l);
}
@@ -57,10 +57,7 @@ public abstract class AbstractSessionFactory extends AbstractSessionIoHandler {
if (listener == null) {
throw new IllegalArgumentException();
}
-
- synchronized (this.listeners) {
- this.listeners.add(listener);
- }
+ this.listeners.add(listener);
}
/**
@@ -69,9 +66,7 @@ public abstract class AbstractSessionFactory extends AbstractSessionIoHandler {
* @param listener the session listener to remove
*/
public void removeListener(SessionListener listener) {
- synchronized (this.listeners) {
- this.listeners.remove(listener);
- }
+ this.listeners.remove(listener);
}
}
[2/2] git commit: [SSHD-198] SessionFactory should not rely on
SshServer
Posted by gn...@apache.org.
[SSHD-198] SessionFactory should not rely on SshServer
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/6daaea9b
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/6daaea9b
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/6daaea9b
Branch: refs/heads/master
Commit: 6daaea9b30f37ee887ae4e573a3979da38b82fc0
Parents: 3e1afda
Author: Guillaume Nodet <gn...@apache.org>
Authored: Thu Jul 18 12:50:04 2013 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Jul 18 12:53:10 2013 +0200
----------------------------------------------------------------------
.../org/apache/sshd/client/SessionFactory.java | 7 ++--
.../sshd/server/session/ServerSession.java | 2 +-
.../sshd/server/session/SessionFactory.java | 8 ++---
.../org/apache/sshd/AuthenticationTest.java | 34 +++-----------------
4 files changed, 13 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6daaea9b/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java b/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
index 723a4de..37abcb2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/SessionFactory.java
@@ -19,7 +19,6 @@
package org.apache.sshd.client;
import org.apache.mina.core.session.IoSession;
-import org.apache.sshd.SshClient;
import org.apache.sshd.client.session.ClientSessionImpl;
import org.apache.sshd.common.session.AbstractSession;
import org.apache.sshd.common.session.AbstractSessionFactory;
@@ -28,15 +27,15 @@ import org.apache.sshd.common.session.AbstractSessionFactory;
* A factory of client sessions.
* This class can be used as a way to customize the creation of client sessions.
*
- * @see SshClient#setSessionFactory(SessionFactory)
+ * @see org.apache.sshd.SshClient#setSessionFactory(SessionFactory)
*
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class SessionFactory extends AbstractSessionFactory {
- protected SshClient client;
+ protected ClientFactoryManager client;
- public void setClient(SshClient client) {
+ public void setClient(ClientFactoryManager client) {
this.client = client;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6daaea9b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
index ef3254d..9b16a00 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerSession.java
@@ -80,7 +80,7 @@ public class ServerSession extends AbstractSession {
private String authService;
private UserAuth currentAuth;
- public ServerSession(FactoryManager server, IoSession ioSession) throws Exception {
+ public ServerSession(ServerFactoryManager server, IoSession ioSession) throws Exception {
super(server, ioSession);
maxAuthRequests = getIntProperty(ServerFactoryManager.MAX_AUTH_REQUESTS, maxAuthRequests);
authTimeout = getIntProperty(ServerFactoryManager.AUTH_TIMEOUT, authTimeout);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6daaea9b/sshd-core/src/main/java/org/apache/sshd/server/session/SessionFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/session/SessionFactory.java b/sshd-core/src/main/java/org/apache/sshd/server/session/SessionFactory.java
index f0e2173..af0e6a2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/session/SessionFactory.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/session/SessionFactory.java
@@ -19,23 +19,23 @@
package org.apache.sshd.server.session;
import org.apache.mina.core.session.IoSession;
-import org.apache.sshd.SshServer;
import org.apache.sshd.common.session.AbstractSession;
import org.apache.sshd.common.session.AbstractSessionFactory;
+import org.apache.sshd.server.ServerFactoryManager;
/**
* A factory of server sessions.
* This class can be used as a way to customize the creation of server sessions.
*
- * @see SshServer#setSessionFactory(SessionFactory)
+ * @see org.apache.sshd.SshServer#setSessionFactory(SessionFactory)
*
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class SessionFactory extends AbstractSessionFactory {
- protected SshServer server;
+ protected ServerFactoryManager server;
- public void setServer(SshServer server) {
+ public void setServer(ServerFactoryManager server) {
this.server = server;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/6daaea9b/sshd-core/src/test/java/org/apache/sshd/AuthenticationTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/AuthenticationTest.java b/sshd-core/src/test/java/org/apache/sshd/AuthenticationTest.java
index d1c354b..0c8ac67 100644
--- a/sshd-core/src/test/java/org/apache/sshd/AuthenticationTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/AuthenticationTest.java
@@ -18,32 +18,14 @@
*/
package org.apache.sshd;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.Logger;
-import com.jcraft.jsch.UserInfo;
-import org.apache.mina.core.filterchain.IoFilterChain;
-import org.apache.mina.core.service.IoProcessor;
-import org.apache.mina.core.service.IoService;
-import org.apache.mina.core.service.TransportMetadata;
-import org.apache.mina.core.session.AbstractIoSession;
+import java.net.ServerSocket;
+import java.security.KeyPair;
+
import org.apache.mina.core.session.IoSession;
-import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.apache.mina.transport.vmpipe.VmPipeAcceptor;
-import org.apache.mina.transport.vmpipe.VmPipeAddress;
-import org.apache.mina.transport.vmpipe.VmPipeConnector;
-import org.apache.sshd.client.UserInteraction;
-import org.apache.sshd.client.future.AuthFuture;
-import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.KeyPairProvider;
-import org.apache.sshd.common.NamedFactory;
-import org.apache.sshd.common.Session;
-import org.apache.sshd.common.SshConstants;
import org.apache.sshd.common.session.AbstractSession;
import org.apache.sshd.common.util.Buffer;
-import org.apache.sshd.server.UserAuth;
-import org.apache.sshd.server.auth.AbstractUserAuth;
-import org.apache.sshd.server.auth.UserAuthPassword;
-import org.apache.sshd.server.auth.UserAuthPublicKey;
+import org.apache.sshd.server.ServerFactoryManager;
import org.apache.sshd.server.session.ServerSession;
import org.apache.sshd.server.session.SessionFactory;
import org.apache.sshd.util.BogusPasswordAuthenticator;
@@ -53,12 +35,6 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import java.net.ServerSocket;
-import java.net.SocketAddress;
-import java.security.KeyPair;
-import java.util.Arrays;
-import java.util.concurrent.atomic.AtomicReference;
-
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -159,7 +135,7 @@ public class AuthenticationTest {
}
public static class TestSession extends ServerSession {
- public TestSession(FactoryManager server, IoSession ioSession) throws Exception {
+ public TestSession(ServerFactoryManager server, IoSession ioSession) throws Exception {
super(server, ioSession);
}
public void setState(State state) {