1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.example.chat;
21
22 import java.net.InetSocketAddress;
23
24 import org.apache.mina.common.DefaultIoFilterChainBuilder;
25 import org.apache.mina.common.IoAcceptor;
26 import org.apache.mina.common.IoAcceptorConfig;
27 import org.apache.mina.example.echoserver.ssl.BogusSSLContextFactory;
28 import org.apache.mina.filter.LoggingFilter;
29 import org.apache.mina.filter.SSLFilter;
30 import org.apache.mina.filter.codec.ProtocolCodecFilter;
31 import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
32 import org.apache.mina.transport.socket.nio.SocketAcceptor;
33 import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
34
35
36
37
38
39
40
41 public class Main {
42
43 private static final int PORT = 1234;
44
45
46 private static final boolean USE_SSL = false;
47
48 public static void main(String[] args) throws Exception {
49 IoAcceptor acceptor = new SocketAcceptor();
50 IoAcceptorConfig config = new SocketAcceptorConfig();
51 DefaultIoFilterChainBuilder chain = config.getFilterChain();
52
53
54 if (USE_SSL) {
55 addSSLSupport(chain);
56 }
57
58 chain.addLast("codec", new ProtocolCodecFilter(
59 new TextLineCodecFactory()));
60
61 addLogger(chain);
62
63
64 acceptor.bind(new InetSocketAddress(PORT), new ChatProtocolHandler(),
65 config);
66
67 System.out.println("Listening on port " + PORT);
68 }
69
70 private static void addSSLSupport(DefaultIoFilterChainBuilder chain)
71 throws Exception {
72 SSLFilter sslFilter = new SSLFilter(BogusSSLContextFactory
73 .getInstance(true));
74 chain.addLast("sslFilter", sslFilter);
75 System.out.println("SSL ON");
76 }
77
78 private static void addLogger(DefaultIoFilterChainBuilder chain)
79 throws Exception {
80 chain.addLast("logger", new LoggingFilter());
81 System.out.println("Logging ON");
82 }
83 }