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 2009/03/30 21:09:33 UTC

svn commit: r760108 - in /mina/sshd/trunk/src/main/java/org/apache/sshd: SshClient.java client/SessionFactory.java

Author: gnodet
Date: Mon Mar 30 19:09:33 2009
New Revision: 760108

URL: http://svn.apache.org/viewvc?rev=760108&view=rev
Log:
SSHD-17: Custom session handler factory (client side)

Added:
    mina/sshd/trunk/src/main/java/org/apache/sshd/client/SessionFactory.java
      - copied, changed from r755158, mina/sshd/trunk/src/main/java/org/apache/sshd/server/SessionFactory.java
Modified:
    mina/sshd/trunk/src/main/java/org/apache/sshd/SshClient.java

Modified: mina/sshd/trunk/src/main/java/org/apache/sshd/SshClient.java
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/src/main/java/org/apache/sshd/SshClient.java?rev=760108&r1=760107&r2=760108&view=diff
==============================================================================
--- mina/sshd/trunk/src/main/java/org/apache/sshd/SshClient.java (original)
+++ mina/sshd/trunk/src/main/java/org/apache/sshd/SshClient.java Mon Mar 30 19:09:33 2009
@@ -35,6 +35,7 @@
 import org.apache.sshd.client.kex.DHG14;
 import org.apache.sshd.client.future.ConnectFuture;
 import org.apache.sshd.client.future.DefaultConnectFuture;
+import org.apache.sshd.client.SessionFactory;
 import org.apache.sshd.common.AbstractFactoryManager;
 import org.apache.sshd.common.session.AbstractSession;
 import org.apache.sshd.common.AbstractSessionIoHandler;
@@ -119,17 +120,28 @@
 public class SshClient extends AbstractFactoryManager {
 
     private IoConnector connector;
+    private SessionFactory sessionFactory;
 
     public SshClient() {
     }
 
+    public SessionFactory getSessionFactory() {
+        return sessionFactory;
+    }
+
+    public void setSessionFactory(SessionFactory sessionFactory) {
+        this.sessionFactory = sessionFactory;
+    }
+
     public void start() {
         connector = new NioSocketConnector();
-        connector.setHandler(new AbstractSessionIoHandler() {
-            protected AbstractSession createSession(IoSession ioSession) throws Exception {
-                return new ClientSessionImpl(SshClient.this, ioSession);
-            }
-        });
+
+        SessionFactory handler = sessionFactory;
+        if (handler == null) {
+            handler = new SessionFactory();
+        }
+        handler.setClient(this);
+        connector.setHandler(handler);
     }
 
     public void stop() {

Copied: mina/sshd/trunk/src/main/java/org/apache/sshd/client/SessionFactory.java (from r755158, mina/sshd/trunk/src/main/java/org/apache/sshd/server/SessionFactory.java)
URL: http://svn.apache.org/viewvc/mina/sshd/trunk/src/main/java/org/apache/sshd/client/SessionFactory.java?p2=mina/sshd/trunk/src/main/java/org/apache/sshd/client/SessionFactory.java&p1=mina/sshd/trunk/src/main/java/org/apache/sshd/server/SessionFactory.java&r1=755158&r2=760108&rev=760108&view=diff
==============================================================================
--- mina/sshd/trunk/src/main/java/org/apache/sshd/server/SessionFactory.java (original)
+++ mina/sshd/trunk/src/main/java/org/apache/sshd/client/SessionFactory.java Mon Mar 30 19:09:33 2009
@@ -16,19 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sshd.server;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.IOException;
+package org.apache.sshd.client;
 
 import org.apache.mina.core.session.IoSession;
-
-import org.apache.sshd.common.session.AbstractSession;
-import org.apache.sshd.common.AbstractSessionIoHandler;
-
 import org.apache.sshd.SshServer;
-import org.apache.sshd.server.session.ServerSession;
+import org.apache.sshd.SshClient;
+import org.apache.sshd.client.session.ClientSessionImpl;
+import org.apache.sshd.common.AbstractSessionIoHandler;
+import org.apache.sshd.common.session.AbstractSession;
 
 /**
  * A factory of sessions.
@@ -37,14 +32,14 @@
  */
 public class SessionFactory extends AbstractSessionIoHandler {
 
-    protected SshServer server;
+    protected SshClient client;
 
-    public void setServer(SshServer server) {
-        this.server = server;
+    public void setClient(SshClient client) {
+        this.client = client;
     }
 
     protected AbstractSession createSession(IoSession ioSession) throws Exception {
-        return new ServerSession(server, ioSession);
+        return new ClientSessionImpl(client, ioSession);
     }
 
-}
+}
\ No newline at end of file