KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > mina > example > chat > Main


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

20 package org.apache.mina.example.chat;
21
22 import java.net.InetSocketAddress JavaDoc;
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  * (<b>Entry point</b>) Chat server
37  *
38  * @author The Apache Directory Project (mina-dev@directory.apache.org)
39  * @version $Rev$, $Date$
40  */

41 public class Main {
42     /** Choose your favorite port number. */
43     private static final int PORT = 1234;
44
45     /** Set this to true if you want to make the server SSL */
46     private static final boolean USE_SSL = false;
47
48     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
49         IoAcceptor acceptor = new SocketAcceptor();
50         IoAcceptorConfig config = new SocketAcceptorConfig();
51         DefaultIoFilterChainBuilder chain = config.getFilterChain();
52
53         // Add SSL filter if SSL is enabled.
54
if (USE_SSL) {
55             addSSLSupport(chain);
56         }
57
58         chain.addLast("codec", new ProtocolCodecFilter(
59                 new TextLineCodecFactory()));
60
61         addLogger(chain);
62
63         // Bind
64
acceptor.bind(new InetSocketAddress JavaDoc(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 JavaDoc {
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 JavaDoc {
80         chain.addLast("logger", new LoggingFilter());
81         System.out.println("Logging ON");
82     }
83 }
84
Popular Tags