<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>Main xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/examples/reverser/Main.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: Main.java 165594 2005-05-02 07:21:22Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="comment"> *       <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/examples/reverser/package-summary.html">org.apache.mina.examples.reverser</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolAcceptor;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.protocol.filter.ProtocolLoggingFilter;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.registry.Service;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.registry.ServiceRegistry;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.registry.SimpleServiceRegistry;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <em>/**<em>*</em></em>
<a name="29" href="#29">29</a>  <em> * (&lt;b>Entry point&lt;/b>) Reverser server which reverses all text lines from</em>
<a name="30" href="#30">30</a>  <em> * clients.</em>
<a name="31" href="#31">31</a>  <em> * </em>
<a name="32" href="#32">32</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="33" href="#33">33</a>  <em> * @version $Rev: 165594 $, $Date: 2005-05-02 16:21:22 +0900 (월, 02  5월 2005) $,</em>
<a name="34" href="#34">34</a>  <em> */</em>
<a name="35" href="#35">35</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/reverser/Main.html">Main</a>
<a name="36" href="#36">36</a>  {
<a name="37" href="#37">37</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> <strong>int</strong> PORT = 8080;
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>      <strong>public</strong> <strong>static</strong> <strong>void</strong> main( String[] args ) throws Exception
<a name="40" href="#40">40</a>      {
<a name="41" href="#41">41</a>          ServiceRegistry registry = <strong>new</strong> SimpleServiceRegistry();
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>          addLogger( registry );
<a name="44" href="#44">44</a>          <em class="comment">// Bind</em>
<a name="45" href="#45">45</a>          Service service = <strong>new</strong> Service( <span class="string">"reverse"</span>, TransportType.SOCKET, PORT );
<a name="46" href="#46">46</a>          registry.bind( service, <strong>new</strong> ReverseProtocolProvider() );
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>          System.out.println( <span class="string">"Listening on port "</span> + PORT );
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong>private</strong> <strong>static</strong> <strong>void</strong> addLogger( ServiceRegistry registry )
<a name="52" href="#52">52</a>      {
<a name="53" href="#53">53</a>          ProtocolAcceptor acceptor = registry.getProtocolAcceptor( TransportType.SOCKET );
<a name="54" href="#54">54</a>          acceptor.getFilterChain().addLast( <span class="string">"logger"</span>, <strong>new</strong> ProtocolLoggingFilter() );
<a name="55" href="#55">55</a>          System.out.println( <span class="string">"Logging ON"</span> );
<a name="56" href="#56">56</a>      }
<a name="57" href="#57">57</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

