1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.example.haiku;
20
21 import java.net.InetSocketAddress;
22 import java.nio.charset.Charset;
23 import java.util.concurrent.ExecutorService;
24 import java.util.concurrent.Executors;
25
26 import org.apache.mina.filter.codec.ProtocolCodecFilter;
27 import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
28 import org.apache.mina.filter.executor.ExecutorFilter;
29 import org.apache.mina.transport.socket.SocketAcceptor;
30 import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
31
32
33
34
35
36
37 public class HaikuValidationServer {
38 public static void main(String... args) throws Exception {
39 ExecutorService executor = Executors.newCachedThreadPool();
40 SocketAcceptor acceptor = new NioSocketAcceptor(Runtime.getRuntime()
41 .availableProcessors());
42
43 acceptor.getFilterChain().addLast("executor",
44 new ExecutorFilter(executor));
45 acceptor.getFilterChain().addLast(
46 "to-string",
47 new ProtocolCodecFilter(new TextLineCodecFactory(Charset
48 .forName("US-ASCII"))));
49 acceptor.getFilterChain().addLast("to-haiki", new ToHaikuIoFilter());
50
51 acceptor.setHandler(new HaikuValidatorIoHandler());
52 acceptor.bind(new InetSocketAddress(42458));
53 }
54 }