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 public class HaikuValidationServer {
37 public static void main(String... args) throws Exception {
38 ExecutorService executor = Executors.newCachedThreadPool();
39 SocketAcceptor acceptor = new NioSocketAcceptor(Runtime.getRuntime()
40 .availableProcessors());
41
42 acceptor.getFilterChain().addLast("executor",
43 new ExecutorFilter(executor));
44 acceptor.getFilterChain().addLast(
45 "to-string",
46 new ProtocolCodecFilter(new TextLineCodecFactory(Charset
47 .forName("US-ASCII"))));
48 acceptor.getFilterChain().addLast("to-haiki", new ToHaikuIoFilter());
49
50 acceptor.setHandler(new HaikuValidatorIoHandler());
51 acceptor.bind(new InetSocketAddress(42458));
52 }
53 }