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.echoserver;
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.transport.socket.nio.SocketAcceptor;
31 import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
32
33
34
35
36
37
38
39 public class Main {
40
41 private static final int PORT = 8080;
42
43
44 private static final boolean USE_SSL = false;
45
46 public static void main(String[] args) throws Exception {
47 IoAcceptor acceptor = new SocketAcceptor();
48 IoAcceptorConfig config = new SocketAcceptorConfig();
49 DefaultIoFilterChainBuilder chain = config.getFilterChain();
50
51
52 if (USE_SSL) {
53 addSSLSupport(chain);
54 }
55
56 addLogger(chain);
57
58
59 acceptor.bind(new InetSocketAddress(PORT), new EchoProtocolHandler(),
60 config);
61
62 System.out.println("Listening on port " + PORT);
63 }
64
65 private static void addSSLSupport(DefaultIoFilterChainBuilder chain)
66 throws Exception {
67 SSLFilter sslFilter = new SSLFilter(BogusSSLContextFactory
68 .getInstance(true));
69 chain.addLast("sslFilter", sslFilter);
70 System.out.println("SSL ON");
71 }
72
73 private static void addLogger(DefaultIoFilterChainBuilder chain)
74 throws Exception {
75 chain.addLast("logger", new LoggingFilter());
76 System.out.println("Logging ON");
77 }
78 }