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/05/09 12:02:40 UTC

svn commit: r169265 - in /directory/network/branches/api_integration/src: examples/org/apache/mina/examples/reverser/Main.java examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java java/org/apache/mina/filter/codec/ProtocolCodecFilter.java

Author: trustin
Date: Mon May  9 03:02:38 2005
New Revision: 169265

URL: http://svn.apache.org/viewcvs?rev=169265&view=rev
Log:
Fixed: ProtocolCodecFilter FIXMEs

Modified:
    directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/Main.java
    directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java
    directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java

Modified: directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/Main.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/Main.java?rev=169265&r1=169264&r2=169265&view=diff
==============================================================================
--- directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/Main.java (original)
+++ directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/Main.java Mon May  9 03:02:38 2005
@@ -18,9 +18,7 @@
  */
 package org.apache.mina.examples.reverser;
 
-import org.apache.mina.common.IoAcceptor;
 import org.apache.mina.common.TransportType;
-import org.apache.mina.filter.LoggingFilter;
 import org.apache.mina.registry.Service;
 import org.apache.mina.registry.ServiceRegistry;
 import org.apache.mina.registry.SimpleServiceRegistry;
@@ -40,18 +38,10 @@
     {
         ServiceRegistry registry = new SimpleServiceRegistry();
 
-        addLogger( registry );
         // Bind
         Service service = new Service( "reverse", TransportType.SOCKET, PORT );
         registry.bind( service, new ReverseProtocolHandler() );
 
         System.out.println( "Listening on port " + PORT );
-    }
-
-    private static void addLogger( ServiceRegistry registry )
-    {
-        IoAcceptor acceptor = registry.getAcceptor( TransportType.SOCKET );
-        acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
-        System.out.println( "Logging ON" );
     }
 }

Modified: directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java?rev=169265&r1=169264&r2=169265&view=diff
==============================================================================
--- directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java (original)
+++ directory/network/branches/api_integration/src/examples/org/apache/mina/examples/reverser/ReverseProtocolHandler.java Mon May  9 03:02:38 2005
@@ -18,9 +18,11 @@
  */
 package org.apache.mina.examples.reverser;
 
+import org.apache.mina.common.IoFilter;
 import org.apache.mina.common.IoHandler;
 import org.apache.mina.common.IoHandlerAdapter;
 import org.apache.mina.common.IoSession;
+import org.apache.mina.filter.LoggingFilter;
 import org.apache.mina.filter.codec.ProtocolCodecFactory;
 import org.apache.mina.filter.codec.ProtocolCodecFilter;
 import org.apache.mina.filter.codec.ProtocolDecoder;
@@ -34,6 +36,8 @@
  */
 public class ReverseProtocolHandler extends IoHandlerAdapter
 {
+    private static IoFilter LOGGING_FILTER = new LoggingFilter();
+    
     private static ProtocolCodecFactory CODEC_FACTORY = new ProtocolCodecFactory()
     {
         public ProtocolEncoder newEncoder()
@@ -49,10 +53,12 @@
         }
     };
 
+    private static IoFilter CODEC_FILTER = new ProtocolCodecFilter( CODEC_FACTORY );
+
     public void sessionCreated( IoSession session )
     {
-        session.getFilterChain().addFirst(
-                "codec", new ProtocolCodecFilter( CODEC_FACTORY ) );
+        session.getFilterChain().addLast( "codec", CODEC_FILTER );
+        session.getFilterChain().addLast( "logger", LOGGING_FILTER );
     }
 
     public void exceptionCaught( IoSession session, Throwable cause )

Modified: directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?rev=169265&r1=169264&r2=169265&view=diff
==============================================================================
--- directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java (original)
+++ directory/network/branches/api_integration/src/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java Mon May  9 03:02:38 2005
@@ -1,6 +1,7 @@
 package org.apache.mina.filter.codec;
 
 import org.apache.mina.common.ByteBuffer;
+import org.apache.mina.common.ByteBufferProxy;
 import org.apache.mina.common.IoFilterAdapter;
 import org.apache.mina.common.IoSession;
 import org.apache.mina.util.Queue;
@@ -58,8 +59,8 @@
 
     public void messageSent( NextFilter nextFilter, IoSession session, Object message ) throws Exception
     {
-        // FIXME message is a bytebuffer here
-        super.messageSent(nextFilter, session, message);
+        MessageByteBuffer buf = ( MessageByteBuffer ) message;
+        nextFilter.messageSent( session, buf.message );
     }
     
     public void filterWrite( NextFilter nextFilter, IoSession session, Object message ) throws Exception
@@ -78,8 +79,8 @@
             ByteBuffer buf = ( ByteBuffer ) queue.pop();
             if( buf == null )
                 break;
-            // FIXME messageSent issues
-            nextFilter.filterWrite( session, buf );
+            
+            nextFilter.filterWrite( session, new MessageByteBuffer( buf, message ) );
         }
     }
     
@@ -125,5 +126,17 @@
             session.setAttribute( DECODER_OUT, out );
         }
         return out;
+    }
+    
+    private static class MessageByteBuffer extends ByteBufferProxy
+    {
+        private final Object message;
+        
+        private MessageByteBuffer( ByteBuffer buf, Object message )
+        {
+            super( buf );
+            this.message = message;
+        }
+        
     }
 }