You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/11/30 18:32:59 UTC

svn commit: r349998 - in /directory/network/branches/chain_refactor/src: java/org/apache/mina/common/support/ java/org/apache/mina/transport/socket/nio/ java/org/apache/mina/transport/socket/nio/support/ test/org/apache/mina/common/

Author: trustin
Date: Wed Nov 30 09:32:35 2005
New Revision: 349998

URL: http://svn.apache.org/viewcvs?rev=349998&view=rev
Log:
Fixed: SocketSession.getManager() and DatagramSession.getManager() returns delegate.

Modified:
    directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/BaseIoSession.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoAcceptor.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoConnector.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramConnector.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketConnector.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramFilterChain.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketAcceptorDelegate.java
    directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketConnectorDelegate.java
    directory/network/branches/chain_refactor/src/test/org/apache/mina/common/FutureTest.java

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/BaseIoSession.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/BaseIoSession.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/BaseIoSession.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/BaseIoSession.java Wed Nov 30 09:32:35 2005
@@ -38,8 +38,6 @@
  */
 public abstract class BaseIoSession implements IoSession
 {
-    // TODO pull up getManager() from other implementations.
-    
     private final Map attributes = new HashMap();
     private final long creationTime;
 

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoAcceptor.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoAcceptor.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoAcceptor.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoAcceptor.java Wed Nov 30 09:32:35 2005
@@ -36,12 +36,19 @@
  */
 public class DelegatedIoAcceptor implements IoAcceptor
 {
-    protected final IoAcceptor delegate;
+    protected IoAcceptor delegate;
     
     /**
      * Creates a new instance.
      */
-    protected DelegatedIoAcceptor( IoAcceptor delegate )
+    protected DelegatedIoAcceptor()
+    {
+    }
+    
+    /**
+     * Sets the delegate.
+     */
+    protected void init( IoAcceptor delegate )
     {
         this.delegate = delegate;
     }

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoConnector.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoConnector.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoConnector.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/DelegatedIoConnector.java Wed Nov 30 09:32:35 2005
@@ -36,16 +36,23 @@
  */
 public class DelegatedIoConnector implements IoConnector
 {
-    protected final IoConnector delegate;
+    protected IoConnector delegate;
 
     /**
      * Creates a new instance.
      */
-    protected DelegatedIoConnector( IoConnector delegate )
+    protected DelegatedIoConnector()
     {
-        this.delegate = delegate;
     }
 
+    /**
+     * Sets the delegate.
+     */
+    protected void init( IoConnector delegate )
+    {
+        this.delegate = delegate;
+    }
+    
     public ConnectFuture connect( SocketAddress address, IoHandler handler ) throws IOException
     {
         return delegate.connect( address, handler );

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java Wed Nov 30 09:32:35 2005
@@ -35,6 +35,6 @@
      */
     public DatagramAcceptor()
     {
-        super( new DatagramAcceptorDelegate() );
+        init( new DatagramAcceptorDelegate( this ) );
     }
 }

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramConnector.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramConnector.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramConnector.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/DatagramConnector.java Wed Nov 30 09:32:35 2005
@@ -35,6 +35,6 @@
      */
     public DatagramConnector()
     {
-        super( new DatagramConnectorDelegate() );
+        init( new DatagramConnectorDelegate( this ) );
     }
 }

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java Wed Nov 30 09:32:35 2005
@@ -35,7 +35,7 @@
      */
     public SocketAcceptor()
     {
-        super( new SocketAcceptorDelegate() );
+        init( new SocketAcceptorDelegate( this ) );
     }
 
     public int getReceiveBufferSize()

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketConnector.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketConnector.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketConnector.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/SocketConnector.java Wed Nov 30 09:32:35 2005
@@ -35,7 +35,7 @@
      */
     public SocketConnector()
     {
-        super( new SocketConnectorDelegate() );
+        init( new SocketConnectorDelegate( this ) );
     }
 
 

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java Wed Nov 30 09:32:35 2005
@@ -47,9 +47,9 @@
  */
 public class DatagramAcceptorDelegate extends BaseIoAcceptor implements IoAcceptor, DatagramSessionManager
 {
-    // FIXME use real manager, not the delegate
     private static volatile int nextId = 0;
 
+    private final IoAcceptor wrapper;
     private final int id = nextId ++ ;
     private Selector selector;
     private final Map channels = new HashMap();
@@ -61,8 +61,9 @@
     /**
      * Creates a new instance.
      */
-    public DatagramAcceptorDelegate()
+    public DatagramAcceptorDelegate( IoAcceptor wrapper )
     {
+        this.wrapper = wrapper;
     }
 
     public void bind( SocketAddress address, IoHandler handler, IoFilterChainBuilder filterChainBuilder )
@@ -190,7 +191,7 @@
         }
 
         RegistrationRequest req = ( RegistrationRequest ) key.attachment();
-        DatagramSessionImpl s = new DatagramSessionImpl( this, ch, req.handler );
+        DatagramSessionImpl s = new DatagramSessionImpl( wrapper, this, ch, req.handler );
         s.setRemoteAddress( remoteAddress );
         s.setSelectionKey( key );
         
@@ -316,7 +317,7 @@
 
             RegistrationRequest req = ( RegistrationRequest ) key.attachment();
             DatagramSessionImpl session =
-                new DatagramSessionImpl( this, ch, req.handler );
+                new DatagramSessionImpl( wrapper, this, ch, req.handler );
             session.setSelectionKey( key );
             
             try

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java Wed Nov 30 09:32:35 2005
@@ -44,9 +44,9 @@
  */
 public class DatagramConnectorDelegate extends BaseIoConnector implements DatagramSessionManager
 {
-    // FIXME use real manager, not the delegate
     private static volatile int nextId = 0;
 
+    private final IoConnector wrapper;
     private final int id = nextId ++ ;
     private Selector selector;
     private final Queue registerQueue = new Queue();
@@ -58,8 +58,9 @@
     /**
      * Creates a new instance.
      */
-    public DatagramConnectorDelegate()
+    public DatagramConnectorDelegate( IoConnector wrapper )
     {
+        this.wrapper = wrapper;
     }
 
     public ConnectFuture connect( SocketAddress address, IoHandler handler, IoFilterChainBuilder filterChainBuilder ) throws IOException
@@ -474,7 +475,7 @@
                 break;
 
             DatagramSessionImpl session =
-                new DatagramSessionImpl( this, req.channel, req.handler );
+                new DatagramSessionImpl( wrapper, this, req.channel, req.handler );
 
             boolean success = false;
             try

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramFilterChain.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramFilterChain.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramFilterChain.java Wed Nov 30 09:32:35 2005
@@ -30,17 +30,18 @@
             if( writeRequestQueue.size() == 1 && session.getTrafficMask().isWritable() )
             {
                 // Notify DatagramSessionManager only when writeRequestQueue was empty.
-                ( ( DatagramSessionManager ) s.getManager() ).flushSession( s );
+                s.getManagerDelegate().flushSession( s );
             }
         }
     }
 
     protected void doClose( IoSession session, CloseFuture closeFuture )
     {
-        DatagramSessionManager manager = ( DatagramSessionManager ) session.getManager();
+        DatagramSessionImpl s = ( DatagramSessionImpl ) session;
+        DatagramSessionManager manager = s.getManagerDelegate();
         if( manager instanceof DatagramConnectorDelegate )
         {
-            ( ( DatagramConnectorDelegate ) manager ).closeSession( ( DatagramSessionImpl ) session );
+            ( ( DatagramConnectorDelegate ) manager ).closeSession( s );
         }
         else
         {

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java Wed Nov 30 09:32:35 2005
@@ -42,7 +42,8 @@
  */
 class DatagramSessionImpl extends BaseIoSession implements DatagramSession
 {
-    private final DatagramSessionManager manager;
+    private final IoSessionManager wrapperManager;
+    private final DatagramSessionManager managerDelegate;
     private final DatagramFilterChain filterChain;
     private final DatagramChannel ch;
     private final Queue writeRequestQueue;
@@ -54,10 +55,12 @@
     /**
      * Creates a new instance.
      */
-    DatagramSessionImpl( DatagramSessionManager manager,
+    DatagramSessionImpl( IoSessionManager wrapperManager,
+                         DatagramSessionManager managerDelegate,
                          DatagramChannel ch, IoHandler defaultHandler )
     {
-        this.manager = manager;
+        this.wrapperManager = wrapperManager;
+        this.managerDelegate = managerDelegate;
         this.filterChain = new DatagramFilterChain( this );
         this.ch = ch;
         this.writeRequestQueue = new Queue();
@@ -68,7 +71,12 @@
     
     public IoSessionManager getManager()
     {
-        return manager;
+        return wrapperManager;
+    }
+    
+    DatagramSessionManager getManagerDelegate()
+    {
+        return managerDelegate;
     }
 
     public IoFilterChain getFilterChain()
@@ -166,6 +174,6 @@
 
     protected void updateTrafficMask()
     {
-        manager.updateTrafficMask( this );
+        managerDelegate.updateTrafficMask( this );
     }
 }

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketAcceptorDelegate.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketAcceptorDelegate.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketAcceptorDelegate.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketAcceptorDelegate.java Wed Nov 30 09:32:35 2005
@@ -45,9 +45,9 @@
  */
 public class SocketAcceptorDelegate extends BaseIoAcceptor implements SocketSessionManager
 {
-    // FIXME use real manager, not the delegate
     private static volatile int nextId = 0;
 
+    private final IoAcceptor wrapper;
     private final int id = nextId ++ ;
     private final String threadName = "SocketAcceptor-" + id;
     private boolean reuseAddress = false;
@@ -65,8 +65,9 @@
     /**
      * Creates a new instance.
      */
-    public SocketAcceptorDelegate()
+    public SocketAcceptorDelegate( IoAcceptor wrapper )
     {
+        this.wrapper = wrapper;
     }
 
     /**
@@ -303,7 +304,7 @@
                 try
                 {
                     RegistrationRequest req = ( RegistrationRequest ) key.attachment();
-                    SocketSessionImpl session = new SocketSessionImpl( SocketAcceptorDelegate.this, ioProcessor, ch, req.handler );
+                    SocketSessionImpl session = new SocketSessionImpl( SocketAcceptorDelegate.this.wrapper, ioProcessor, ch, req.handler );
                     SocketAcceptorDelegate.this.filterChainBuilder.buildFilterChain( session.getFilterChain() );
                     req.filterChainBuilder.buildFilterChain( session.getFilterChain() );
                     ( ( SocketFilterChain ) session.getFilterChain() ).sessionCreated( session );

Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketConnectorDelegate.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketConnectorDelegate.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketConnectorDelegate.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/transport/socket/nio/support/SocketConnectorDelegate.java Wed Nov 30 09:32:35 2005
@@ -45,9 +45,9 @@
  */
 public class SocketConnectorDelegate extends BaseIoConnector implements SocketSessionManager
 {
-    // FIXME use real manager, not the delegate
     private static volatile int nextId = 0;
 
+    private final IoConnector wrapper;
     private final int id = nextId++;
     private final String threadName = "SocketConnector-" + id;
     private Selector selector;
@@ -58,8 +58,9 @@
     /**
      * Creates a new instance.
      */
-    public SocketConnectorDelegate()
+    public SocketConnectorDelegate( IoConnector wrapper )
     {
+        this.wrapper = wrapper;
     }
 
     public ConnectFuture connect( SocketAddress address, IoHandler handler, IoFilterChainBuilder filterChainBuilder ) throws IOException
@@ -241,7 +242,7 @@
 
     private SocketSessionImpl newSession( SocketChannel ch, IoHandler handler, IoFilterChainBuilder filterChainBuilder ) throws IOException
     {
-        SocketSessionImpl session = new SocketSessionImpl( this, ioProcessor, ch, handler );
+        SocketSessionImpl session = new SocketSessionImpl( wrapper, ioProcessor, ch, handler );
         try
         {
             this.filterChainBuilder.buildFilterChain( session.getFilterChain() );

Modified: directory/network/branches/chain_refactor/src/test/org/apache/mina/common/FutureTest.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/test/org/apache/mina/common/FutureTest.java?rev=349998&r1=349997&r2=349998&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/test/org/apache/mina/common/FutureTest.java (original)
+++ directory/network/branches/chain_refactor/src/test/org/apache/mina/common/FutureTest.java Wed Nov 30 09:32:35 2005
@@ -73,24 +73,9 @@
                 return null;
             }
 
-            public WriteFuture write( Object message )
-            {
-                return null;
-            }
-
-            public CloseFuture close()
-            {
-                return null;
-            }
-
             public TransportType getTransportType()
             {
                 return null;
-            }
-
-            public boolean isConnected()
-            {
-                return false;
             }
 
             public SocketAddress getRemoteAddress()