1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.examples.reverser;
20
21 import org.apache.mina.common.IoFilter;
22 import org.apache.mina.common.IoHandler;
23 import org.apache.mina.common.IoHandlerAdapter;
24 import org.apache.mina.common.IoSession;
25 import org.apache.mina.filter.LoggingFilter;
26 import org.apache.mina.filter.codec.ProtocolCodecFilter;
27 import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
28
29 /***
30 * {@link IoHandler} implementation of reverser server protocol.
31 *
32 * @author The Apache Directory Project (dev@directory.apache.org)
33 * @version $Rev: 355016 $, $Date: 2005-12-08 16:00:30 +0900 (Thu, 08 Dec 2005) $,
34 */
35 public class ReverseProtocolHandler extends IoHandlerAdapter
36 {
37 private static IoFilter LOGGING_FILTER = new LoggingFilter();
38 private static IoFilter CODEC_FILTER =
39 new ProtocolCodecFilter( new TextLineCodecFactory() );
40
41 public void sessionCreated( IoSession session ) throws Exception
42 {
43 session.getFilterChain().addLast( "logger", LOGGING_FILTER );
44 session.getFilterChain().addLast( "codec", CODEC_FILTER );
45 }
46
47 public void exceptionCaught( IoSession session, Throwable cause )
48 {
49 cause.printStackTrace();
50
51 session.close();
52 }
53
54 public void messageReceived( IoSession session, Object message )
55 {
56
57 String str = message.toString();
58 StringBuffer buf = new StringBuffer( str.length() );
59 for( int i = str.length() - 1; i >= 0; i-- )
60 {
61 buf.append( str.charAt( i ) );
62 }
63
64
65 session.write( buf.toString() );
66 }
67 }