<!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=UTF-8" />
<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="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_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="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.example.echoserver;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.net.SocketAddress;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.security.GeneralSecurityException;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="28" href="#28">28</a>  
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoAcceptor;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.example.echoserver.ssl.BogusSslContextFactory;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.ssl.SslFilter;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.DatagramSessionConfig;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.nio.NioSocketAcceptor;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.AvailablePortFinder;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">/**</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * Tests echo server example.</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> *</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> */</em>
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/example/echoserver/AbstractTest.html">AbstractTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> Logger LOGGER = LoggerFactory.getLogger(AbstractTest.<strong class="jxr_keyword">class</strong>);
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> useSSL;
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">int</strong> port;
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <strong class="jxr_keyword">protected</strong> SocketAddress boundAddress;
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>      <strong class="jxr_keyword">protected</strong> IoAcceptor datagramAcceptor;
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>      <strong class="jxr_keyword">protected</strong> IoAcceptor socketAcceptor;
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../org/apache/mina/example/echoserver/AbstractTest.html">AbstractTest</a>() {
<a name="60" href="#60">60</a>          <em class="jxr_comment">// Do nothing</em>
<a name="61" href="#61">61</a>      }
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertEquals(byte[] expected, byte[] actual) {
<a name="64" href="#64">64</a>          assertEquals(toString(expected), toString(actual));
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertEquals(IoBuffer expected, IoBuffer actual) {
<a name="68" href="#68">68</a>          assertEquals(toString(expected), toString(actual));
<a name="69" href="#69">69</a>      }
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String toString(byte[] buf) {
<a name="72" href="#72">72</a>          StringBuilder str = <strong class="jxr_keyword">new</strong> StringBuilder(buf.length * 4);
<a name="73" href="#73">73</a>          <strong class="jxr_keyword">for</strong> (byte element : buf) {
<a name="74" href="#74">74</a>              str.append(element);
<a name="75" href="#75">75</a>              str.append(' ');
<a name="76" href="#76">76</a>          }
<a name="77" href="#77">77</a>          <strong class="jxr_keyword">return</strong> str.toString();
<a name="78" href="#78">78</a>      }
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String toString(IoBuffer buf) {
<a name="81" href="#81">81</a>          <strong class="jxr_keyword">return</strong> buf.getHexDump();
<a name="82" href="#82">82</a>      }
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>      @Override
<a name="85" href="#85">85</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception {
<a name="86" href="#86">86</a>          <em class="jxr_comment">// Disable SSL by default</em>
<a name="87" href="#87">87</a>          useSSL = false;
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          boundAddress = <strong class="jxr_keyword">null</strong>;
<a name="90" href="#90">90</a>          datagramAcceptor = <strong class="jxr_keyword">new</strong> NioDatagramAcceptor();
<a name="91" href="#91">91</a>          socketAcceptor = <strong class="jxr_keyword">new</strong> NioSocketAcceptor();
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          ((DatagramSessionConfig) datagramAcceptor.getSessionConfig())
<a name="94" href="#94">94</a>                  .setReuseAddress(<strong class="jxr_keyword">true</strong>);
<a name="95" href="#95">95</a>          ((NioSocketAcceptor) socketAcceptor).setReuseAddress(<strong class="jxr_keyword">true</strong>);
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>          <em class="jxr_comment">// Find an available test port and bind to it.</em>
<a name="98" href="#98">98</a>          <strong class="jxr_keyword">boolean</strong> socketBound = false;
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">boolean</strong> datagramBound = false;
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>         <em class="jxr_comment">// Let's start from port #1 to detect possible resource leak</em>
<a name="102" href="#102">102</a>         <em class="jxr_comment">// because test will fail in port 1-1023 if user run this test</em>
<a name="103" href="#103">103</a>         <em class="jxr_comment">// as a normal user.</em>
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>         SocketAddress address = <strong class="jxr_keyword">null</strong>;
<a name="106" href="#106">106</a> 
<a name="107" href="#107">107</a>         <em class="jxr_comment">// Find the first available port above 1024</em>
<a name="108" href="#108">108</a>         port = AvailablePortFinder.getNextAvailable(1024);
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>         socketBound = false;
<a name="111" href="#111">111</a>         datagramBound = false;
<a name="112" href="#112">112</a> 
<a name="113" href="#113">113</a>         address = <strong class="jxr_keyword">new</strong> InetSocketAddress(port);
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>         <strong class="jxr_keyword">try</strong> {
<a name="116" href="#116">116</a>             socketAcceptor.setHandler(<strong class="jxr_keyword">new</strong> EchoProtocolHandler() {
<a name="117" href="#117">117</a>                 @Override
<a name="118" href="#118">118</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionCreated(IoSession session) {
<a name="119" href="#119">119</a>                     <strong class="jxr_keyword">if</strong> (useSSL) {
<a name="120" href="#120">120</a>                         <strong class="jxr_keyword">try</strong> {
<a name="121" href="#121">121</a>                             session.getFilterChain().addFirst(
<a name="122" href="#122">122</a>                                     <span class="jxr_string">"SSL"</span>,
<a name="123" href="#123">123</a>                                     <strong class="jxr_keyword">new</strong> SslFilter(BogusSslContextFactory
<a name="124" href="#124">124</a>                                             .getInstance(<strong class="jxr_keyword">true</strong>)));
<a name="125" href="#125">125</a>                         } <strong class="jxr_keyword">catch</strong> (GeneralSecurityException e) {
<a name="126" href="#126">126</a>                             LOGGER.error(<span class="jxr_string">""</span>, e);
<a name="127" href="#127">127</a>                             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(e);
<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> 
<a name="132" href="#132">132</a>                 <em class="jxr_comment">// This is for TLS re-entrance test</em>
<a name="133" href="#133">133</a>                 @Override
<a name="134" href="#134">134</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(IoSession session, Object message)
<a name="135" href="#135">135</a>                         <strong class="jxr_keyword">throws</strong> Exception {
<a name="136" href="#136">136</a>                     <strong class="jxr_keyword">if</strong> (!(message instanceof IoBuffer)) {
<a name="137" href="#137">137</a>                         <strong class="jxr_keyword">return</strong>;
<a name="138" href="#138">138</a>                     }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>                     IoBuffer buf = (IoBuffer) message;
<a name="141" href="#141">141</a>                     <strong class="jxr_keyword">if</strong> (session.getFilterChain().contains(<span class="jxr_string">"SSL"</span>)
<a name="142" href="#142">142</a>                             &amp;&amp; buf.remaining() == 1 &amp;&amp; buf.get() == (byte) '.') {
<a name="143" href="#143">143</a>                         LOGGER.info(<span class="jxr_string">"TLS Reentrance"</span>);
<a name="144" href="#144">144</a>                         ((SslFilter) session.getFilterChain().get(<span class="jxr_string">"SSL"</span>))
<a name="145" href="#145">145</a>                                 .startSsl(session);
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>                         <em class="jxr_comment">// Send a response</em>
<a name="148" href="#148">148</a>                         buf = IoBuffer.allocate(1);
<a name="149" href="#149">149</a>                         buf.put((byte) '.');
<a name="150" href="#150">150</a>                         buf.flip();
<a name="151" href="#151">151</a>                         session.setAttribute(SslFilter.DISABLE_ENCRYPTION_ONCE);
<a name="152" href="#152">152</a>                         session.write(buf);
<a name="153" href="#153">153</a>                     } <strong class="jxr_keyword">else</strong> {
<a name="154" href="#154">154</a>                         <strong class="jxr_keyword">super</strong>.messageReceived(session, message);
<a name="155" href="#155">155</a>                     }
<a name="156" href="#156">156</a>                 }
<a name="157" href="#157">157</a>             });
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>             socketAcceptor.bind(address);
<a name="160" href="#160">160</a>             socketBound = <strong class="jxr_keyword">true</strong>;
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>             datagramAcceptor.setHandler(<strong class="jxr_keyword">new</strong> EchoProtocolHandler());
<a name="163" href="#163">163</a>             datagramAcceptor.bind(address);
<a name="164" href="#164">164</a>             datagramBound = <strong class="jxr_keyword">true</strong>;
<a name="165" href="#165">165</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a name="166" href="#166">166</a>             <em class="jxr_comment">// Do nothing</em>
<a name="167" href="#167">167</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="168" href="#168">168</a>             <strong class="jxr_keyword">if</strong> (socketBound &amp;&amp; !datagramBound) {
<a name="169" href="#169">169</a>                 socketAcceptor.unbind();
<a name="170" href="#170">170</a>             }
<a name="171" href="#171">171</a>             <strong class="jxr_keyword">if</strong> (datagramBound &amp;&amp; !socketBound) {
<a name="172" href="#172">172</a>                 datagramAcceptor.unbind();
<a name="173" href="#173">173</a>             }
<a name="174" href="#174">174</a>         }
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>         <em class="jxr_comment">// If there is no port available, test fails.</em>
<a name="177" href="#177">177</a>         <strong class="jxr_keyword">if</strong> (!socketBound || !datagramBound) {
<a name="178" href="#178">178</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Cannot bind any test port."</span>);
<a name="179" href="#179">179</a>         }
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>         boundAddress = address;
<a name="182" href="#182">182</a>         LOGGER.info(<span class="jxr_string">"Using port "</span> + port + <span class="jxr_string">" for testing."</span>);
<a name="183" href="#183">183</a>     }
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>     @Override
<a name="186" href="#186">186</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> tearDown() <strong class="jxr_keyword">throws</strong> Exception {
<a name="187" href="#187">187</a>         <strong class="jxr_keyword">if</strong> (boundAddress != <strong class="jxr_keyword">null</strong>) {
<a name="188" href="#188">188</a>             socketAcceptor.dispose();
<a name="189" href="#189">189</a>             datagramAcceptor.dispose();
<a name="190" href="#190">190</a>         }
<a name="191" href="#191">191</a>     }
<a name="192" href="#192">192</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

