<!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>AbstractTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: AbstractTest.java 355016 2005-12-08 07:00:30Z 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/echoserver/package-summary.html">org.apache.mina.examples.echoserver</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.io.IOException;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <strong>import</strong> junit.framework.TestCase;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.common.IoSession;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.filter.LoggingFilter;
<a name="29" href="#29">29</a>  <strong>import</strong> org.apache.mina.filter.SSLFilter;
<a name="30" href="#30">30</a>  <strong>import</strong> org.apache.mina.registry.Service;
<a name="31" href="#31">31</a>  <strong>import</strong> org.apache.mina.registry.ServiceRegistry;
<a name="32" href="#32">32</a>  <strong>import</strong> org.apache.mina.registry.SimpleServiceRegistry;
<a name="33" href="#33">33</a>  <strong>import</strong> org.apache.mina.transport.socket.nio.SocketAcceptor;
<a name="34" href="#34">34</a>  <strong>import</strong> org.apache.mina.util.SessionLog;
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>  <em>/**<em>*</em></em>
<a name="37" href="#37">37</a>  <em> * Tests echo server example.</em>
<a name="38" href="#38">38</a>  <em> * </em>
<a name="39" href="#39">39</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="40" href="#40">40</a>  <em> * @version $Rev: 355016 $, $Date: 2005-12-08 16:00:30 +0900 (Thu, 08 Dec 2005) $</em>
<a name="41" href="#41">41</a>  <em> */</em>
<a name="42" href="#42">42</a>  <strong>public</strong> <strong>abstract</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/echoserver/AbstractTest.html">AbstractTest</a> <strong>extends</strong> TestCase
<a name="43" href="#43">43</a>  {
<a name="44" href="#44">44</a>      <strong>protected</strong> <strong>int</strong> port;
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>      <strong>protected</strong> ServiceRegistry registry;
<a name="47" href="#47">47</a>      
<a name="48" href="#48">48</a>      <strong>protected</strong> <a href="../../../../../org/apache/mina/examples/echoserver/AbstractTest.html">AbstractTest</a>()
<a name="49" href="#49">49</a>      {
<a name="50" href="#50">50</a>      }
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong>protected</strong> <strong>static</strong> <strong>void</strong> assertEquals( byte[] expected, byte[] actual )
<a name="53" href="#53">53</a>      {
<a name="54" href="#54">54</a>          assertEquals( toString( expected ), toString( actual ) );
<a name="55" href="#55">55</a>      }
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>      <strong>protected</strong> <strong>static</strong> <strong>void</strong> assertEquals( ByteBuffer expected, ByteBuffer actual )
<a name="58" href="#58">58</a>      {
<a name="59" href="#59">59</a>          assertEquals( toString( expected ), toString( actual ) );
<a name="60" href="#60">60</a>      }
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>      <strong>protected</strong> <strong>static</strong> String toString( byte[] buf )
<a name="63" href="#63">63</a>      {
<a name="64" href="#64">64</a>          StringBuffer str = <strong>new</strong> StringBuffer( buf.length * 4 );
<a name="65" href="#65">65</a>          <strong>for</strong>( <strong>int</strong> i = 0; i &lt; buf.length; i ++ )
<a name="66" href="#66">66</a>          {
<a name="67" href="#67">67</a>              str.append( buf[ i ] );
<a name="68" href="#68">68</a>              str.append( ' ' );
<a name="69" href="#69">69</a>          }
<a name="70" href="#70">70</a>          <strong>return</strong> str.toString();
<a name="71" href="#71">71</a>      }
<a name="72" href="#72">72</a>      
<a name="73" href="#73">73</a>      <strong>protected</strong> <strong>static</strong> String toString( ByteBuffer buf )
<a name="74" href="#74">74</a>      {
<a name="75" href="#75">75</a>          <strong>return</strong> buf.getHexDump();
<a name="76" href="#76">76</a>      }
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>      <strong>protected</strong> <strong>void</strong> setUp() throws Exception
<a name="79" href="#79">79</a>      {
<a name="80" href="#80">80</a>          registry = <strong>new</strong> SimpleServiceRegistry();
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>          <em class="comment">// Find an availble test port and bind to it.</em>
<a name="83" href="#83">83</a>          <strong>boolean</strong> socketBound = false;
<a name="84" href="#84">84</a>          <strong>boolean</strong> datagramBound = false;
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>          <strong>final</strong> SocketAcceptor acceptor = ( SocketAcceptor ) registry.getAcceptor( TransportType.SOCKET );
<a name="87" href="#87">87</a>          acceptor.setReuseAddress( <strong>true</strong> );
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          <em class="comment">// Let's start from port #1 to detect possible resource leak</em>
<a name="90" href="#90">90</a>          <em class="comment">// because test will fail in port 1-1023 if user run this test</em>
<a name="91" href="#91">91</a>          <em class="comment">// as a normal user.</em>
<a name="92" href="#92">92</a>          <strong>for</strong>( port = 1; port &lt;= 65535; port ++ )
<a name="93" href="#93">93</a>          {
<a name="94" href="#94">94</a>              socketBound = false;
<a name="95" href="#95">95</a>              datagramBound = false;
<a name="96" href="#96">96</a>              
<a name="97" href="#97">97</a>              Service socketService = <strong>new</strong> Service( <span class="string">"echo"</span>, TransportType.SOCKET, port );
<a name="98" href="#98">98</a>              Service datagramService = <strong>new</strong> Service( <span class="string">"echo"</span>, TransportType.DATAGRAM, port );
<a name="99" href="#99">99</a>              
<a name="100" href="#100">100</a>             <strong>try</strong>
<a name="101" href="#101">101</a>             {
<a name="102" href="#102">102</a>                 registry.bind( socketService, <strong>new</strong> EchoProtocolHandler()
<a name="103" href="#103">103</a>                 {
<a name="104" href="#104">104</a>                     <em class="comment">// This is for TLS reentrance test</em>
<a name="105" href="#105">105</a>                     <strong>public</strong> <strong>void</strong> messageReceived( IoSession session, Object message ) throws Exception
<a name="106" href="#106">106</a>                     {
<a name="107" href="#107">107</a>                         <strong>if</strong>( !( message instanceof ByteBuffer ) )
<a name="108" href="#108">108</a>                         {
<a name="109" href="#109">109</a>                             <strong>return</strong>;
<a name="110" href="#110">110</a>                         }
<a name="111" href="#111">111</a>                         
<a name="112" href="#112">112</a>                         ByteBuffer buf = ( ByteBuffer ) message;
<a name="113" href="#113">113</a>                         <strong>if</strong>( buf.remaining() == 1 &amp;&amp; buf.get() == ( byte ) '.' )
<a name="114" href="#114">114</a>                         {
<a name="115" href="#115">115</a>                             SessionLog.info( session, <span class="string">"TLS Reentrance"</span> );
<a name="116" href="#116">116</a>                             ( ( SSLFilter ) acceptor.getFilterChain().get( <span class="string">"SSL"</span> ) ).startSSL( session );
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>                             <em class="comment">// Send a response</em>
<a name="119" href="#119">119</a>                             buf = ByteBuffer.allocate( 1 );
<a name="120" href="#120">120</a>                             buf.put( ( byte ) '.' );
<a name="121" href="#121">121</a>                             buf.flip();
<a name="122" href="#122">122</a>                             session.setAttribute( SSLFilter.DISABLE_ENCRYPTION_ONCE );
<a name="123" href="#123">123</a>                             session.write( buf );
<a name="124" href="#124">124</a>                         }
<a name="125" href="#125">125</a>                         <strong>else</strong>
<a name="126" href="#126">126</a>                         {
<a name="127" href="#127">127</a>                             <strong>super</strong>.messageReceived( session, message );
<a name="128" href="#128">128</a>                         }
<a name="129" href="#129">129</a>                     }
<a name="130" href="#130">130</a>                 } );
<a name="131" href="#131">131</a>                 socketBound = <strong>true</strong>;
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>                 registry.bind( datagramService, <strong>new</strong> EchoProtocolHandler() );
<a name="134" href="#134">134</a>                 datagramBound = <strong>true</strong>;
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>                 <strong>break</strong>;
<a name="137" href="#137">137</a>             }
<a name="138" href="#138">138</a>             <strong>catch</strong>( IOException e )
<a name="139" href="#139">139</a>             {
<a name="140" href="#140">140</a>             }
<a name="141" href="#141">141</a>             <strong>finally</strong>
<a name="142" href="#142">142</a>             {
<a name="143" href="#143">143</a>                 <strong>if</strong>( !socketBound || !datagramBound )
<a name="144" href="#144">144</a>                 {
<a name="145" href="#145">145</a>                     registry.unbindAll();
<a name="146" href="#146">146</a>                 }
<a name="147" href="#147">147</a>             }
<a name="148" href="#148">148</a>         }
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>         <em class="comment">// If there is no port available, test fails.</em>
<a name="151" href="#151">151</a>         <strong>if</strong>( !socketBound || !datagramBound )
<a name="152" href="#152">152</a>         {
<a name="153" href="#153">153</a>             <strong>throw</strong> <strong>new</strong> IOException( <span class="string">"Cannot bind any test port."</span> );
<a name="154" href="#154">154</a>         }
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         registry.getAcceptor( TransportType.SOCKET ).getFilterChain().addLast( <span class="string">"logger"</span>, <strong>new</strong> LoggingFilter() );
<a name="157" href="#157">157</a>         registry.getAcceptor( TransportType.DATAGRAM ).getFilterChain().addLast( <span class="string">"logger"</span>, <strong>new</strong> LoggingFilter() );
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>         System.out.println( <span class="string">"Using port "</span> + port + <span class="string">" for testing."</span> );
<a name="160" href="#160">160</a>     }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     <strong>protected</strong> <strong>void</strong> tearDown() throws Exception
<a name="163" href="#163">163</a>     {
<a name="164" href="#164">164</a>         registry.unbindAll();
<a name="165" href="#165">165</a>         registry.getAcceptor( TransportType.SOCKET ).getFilterChain().remove( <span class="string">"logger"</span> );
<a name="166" href="#166">166</a>         registry.getAcceptor( TransportType.DATAGRAM ).getFilterChain().remove( <span class="string">"logger"</span> );
<a name="167" href="#167">167</a>     }
<a name="168" href="#168">168</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

