<!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>VmPipeEventOrderTest 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.transport.vmpipe;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.Semaphore;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> junit.framework.Assert;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.ConnectFuture;
<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.service.IoConnector;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoHandlerAdapter;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.executor.ExecutorFilter;
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * Makes sure if the order of event is correct.</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> *</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @version $Rev: 671827 $, $Date: 2008-06-26 10:49:48 +0200 (jeu, 26 jun 2008) $</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.html">VmPipeEventOrderTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testServerToClient() <strong class="jxr_keyword">throws</strong> Exception {
<a name="44" href="#44">44</a>          IoAcceptor acceptor = <strong class="jxr_keyword">new</strong> VmPipeAcceptor();
<a name="45" href="#45">45</a>          <em class="jxr_comment">//acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );</em>
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>          IoConnector connector = <strong class="jxr_keyword">new</strong> VmPipeConnector();
<a name="48" href="#48">48</a>          <em class="jxr_comment">//connector.getFilterChain().addLast( "logger", new LoggingFilter() );</em>
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>          acceptor.setHandler(<strong class="jxr_keyword">new</strong> IoHandlerAdapter() {
<a name="51" href="#51">51</a>              @Override
<a name="52" href="#52">52</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionOpened(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="53" href="#53">53</a>                  session.write(<span class="jxr_string">"B"</span>);
<a name="54" href="#54">54</a>              }
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>              @Override
<a name="57" href="#57">57</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageSent(IoSession session, Object message)
<a name="58" href="#58">58</a>                      <strong class="jxr_keyword">throws</strong> Exception {
<a name="59" href="#59">59</a>                  session.close();
<a name="60" href="#60">60</a>              }
<a name="61" href="#61">61</a>          });
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>          acceptor.bind(<strong class="jxr_keyword">new</strong> VmPipeAddress(1));
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>          <strong class="jxr_keyword">final</strong> StringBuffer actual = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>          connector.setHandler(<strong class="jxr_keyword">new</strong> IoHandlerAdapter() {
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>              @Override
<a name="70" href="#70">70</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(IoSession session, Object message)
<a name="71" href="#71">71</a>                      <strong class="jxr_keyword">throws</strong> Exception {
<a name="72" href="#72">72</a>                  actual.append(message);
<a name="73" href="#73">73</a>              }
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>              @Override
<a name="76" href="#76">76</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionClosed(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="77" href="#77">77</a>                  actual.append(<span class="jxr_string">"C"</span>);
<a name="78" href="#78">78</a>              }
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>              @Override
<a name="81" href="#81">81</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionOpened(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="82" href="#82">82</a>                  actual.append(<span class="jxr_string">"A"</span>);
<a name="83" href="#83">83</a>              }
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>          });
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          ConnectFuture future = connector.connect(<strong class="jxr_keyword">new</strong> VmPipeAddress(1));
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          future.awaitUninterruptibly();
<a name="90" href="#90">90</a>          future.getSession().getCloseFuture().awaitUninterruptibly();
<a name="91" href="#91">91</a>          acceptor.dispose();
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          <em class="jxr_comment">// sessionClosed() might not be invoked yet</em>
<a name="94" href="#94">94</a>          <em class="jxr_comment">// even if the connection is closed.</em>
<a name="95" href="#95">95</a>          <strong class="jxr_keyword">while</strong> (actual.indexOf(<span class="jxr_string">"C"</span>) &lt; 0) {
<a name="96" href="#96">96</a>              Thread.yield();
<a name="97" href="#97">97</a>          }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>          Assert.assertEquals(<span class="jxr_string">"ABC"</span>, actual.toString());
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testClientToServer() <strong class="jxr_keyword">throws</strong> Exception {
<a name="103" href="#103">103</a>         IoAcceptor acceptor = <strong class="jxr_keyword">new</strong> VmPipeAcceptor();
<a name="104" href="#104">104</a>         <em class="jxr_comment">//acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );</em>
<a name="105" href="#105">105</a> 
<a name="106" href="#106">106</a>         IoConnector connector = <strong class="jxr_keyword">new</strong> VmPipeConnector();
<a name="107" href="#107">107</a>         <em class="jxr_comment">//connector.getFilterChain().addLast( "logger", new LoggingFilter() );</em>
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>         <strong class="jxr_keyword">final</strong> StringBuffer actual = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>         acceptor.setHandler(<strong class="jxr_keyword">new</strong> IoHandlerAdapter() {
<a name="112" href="#112">112</a> 
<a name="113" href="#113">113</a>             @Override
<a name="114" href="#114">114</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(IoSession session, Object message)
<a name="115" href="#115">115</a>                     <strong class="jxr_keyword">throws</strong> Exception {
<a name="116" href="#116">116</a>                 actual.append(message);
<a name="117" href="#117">117</a>             }
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a>             @Override
<a name="120" href="#120">120</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionClosed(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="121" href="#121">121</a>                 actual.append(<span class="jxr_string">"C"</span>);
<a name="122" href="#122">122</a>             }
<a name="123" href="#123">123</a> 
<a name="124" href="#124">124</a>             @Override
<a name="125" href="#125">125</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionOpened(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="126" href="#126">126</a>                 actual.append(<span class="jxr_string">"A"</span>);
<a name="127" href="#127">127</a>             }
<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>         acceptor.bind(<strong class="jxr_keyword">new</strong> VmPipeAddress(1));
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         connector.setHandler(<strong class="jxr_keyword">new</strong> IoHandlerAdapter() {
<a name="134" href="#134">134</a>             @Override
<a name="135" href="#135">135</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionOpened(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="136" href="#136">136</a>                 session.write(<span class="jxr_string">"B"</span>);
<a name="137" href="#137">137</a>             }
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>             @Override
<a name="140" href="#140">140</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageSent(IoSession session, Object message)
<a name="141" href="#141">141</a>                     <strong class="jxr_keyword">throws</strong> Exception {
<a name="142" href="#142">142</a>                 session.close();
<a name="143" href="#143">143</a>             }
<a name="144" href="#144">144</a>         });
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>         ConnectFuture future = connector.connect(<strong class="jxr_keyword">new</strong> VmPipeAddress(1));
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>         future.awaitUninterruptibly();
<a name="149" href="#149">149</a>         future.getSession().getCloseFuture().awaitUninterruptibly();
<a name="150" href="#150">150</a>         acceptor.dispose();
<a name="151" href="#151">151</a>         connector.dispose();
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>         <em class="jxr_comment">// sessionClosed() might not be invoked yet</em>
<a name="154" href="#154">154</a>         <em class="jxr_comment">// even if the connection is closed.</em>
<a name="155" href="#155">155</a>         <strong class="jxr_keyword">while</strong> (actual.indexOf(<span class="jxr_string">"C"</span>) &lt; 0) {
<a name="156" href="#156">156</a>             Thread.yield();
<a name="157" href="#157">157</a>         }
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>         Assert.assertEquals(<span class="jxr_string">"ABC"</span>, actual.toString());
<a name="160" href="#160">160</a>     }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSessionCreated() <strong class="jxr_keyword">throws</strong> Exception {
<a name="163" href="#163">163</a>         <strong class="jxr_keyword">final</strong> Semaphore semaphore = <strong class="jxr_keyword">new</strong> Semaphore(0);
<a name="164" href="#164">164</a>         <strong class="jxr_keyword">final</strong> StringBuffer stringBuffer = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="165" href="#165">165</a>         VmPipeAcceptor vmPipeAcceptor = <strong class="jxr_keyword">new</strong> VmPipeAcceptor();
<a name="166" href="#166">166</a>         <strong class="jxr_keyword">final</strong> VmPipeAddress vmPipeAddress = <strong class="jxr_keyword">new</strong> VmPipeAddress(12345);
<a name="167" href="#167">167</a>         vmPipeAcceptor.setHandler(<strong class="jxr_keyword">new</strong> IoHandlerAdapter() {
<a name="168" href="#168">168</a>             @Override
<a name="169" href="#169">169</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionCreated(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="170" href="#170">170</a>                 <em class="jxr_comment">// pretend we are doing some time-consuming work. For</em>
<a name="171" href="#171">171</a>                 <em class="jxr_comment">// performance reasons, you would never want to do time</em>
<a name="172" href="#172">172</a>                 <em class="jxr_comment">// consuming work in sessionCreated.</em>
<a name="173" href="#173">173</a>                 <em class="jxr_comment">// However, this increases the likelihood of the timing bug.</em>
<a name="174" href="#174">174</a>                 Thread.sleep(1000);
<a name="175" href="#175">175</a>                 stringBuffer.append(<span class="jxr_string">"A"</span>);
<a name="176" href="#176">176</a>             }
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>             @Override
<a name="179" href="#179">179</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionOpened(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="180" href="#180">180</a>                 stringBuffer.append(<span class="jxr_string">"B"</span>);
<a name="181" href="#181">181</a>             }
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>             @Override
<a name="184" href="#184">184</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(IoSession session, Object message)
<a name="185" href="#185">185</a>                     <strong class="jxr_keyword">throws</strong> Exception {
<a name="186" href="#186">186</a>                 stringBuffer.append(<span class="jxr_string">"C"</span>);
<a name="187" href="#187">187</a>             }
<a name="188" href="#188">188</a>             
<a name="189" href="#189">189</a>             @Override
<a name="190" href="#190">190</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionClosed(IoSession session) <strong class="jxr_keyword">throws</strong> Exception {
<a name="191" href="#191">191</a>                 stringBuffer.append(<span class="jxr_string">"D"</span>);
<a name="192" href="#192">192</a>                 semaphore.release();
<a name="193" href="#193">193</a>             }
<a name="194" href="#194">194</a>         });
<a name="195" href="#195">195</a>         vmPipeAcceptor.bind(vmPipeAddress);
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>         <strong class="jxr_keyword">final</strong> VmPipeConnector vmPipeConnector = <strong class="jxr_keyword">new</strong> VmPipeConnector();
<a name="198" href="#198">198</a>         vmPipeConnector.getFilterChain().addLast(<span class="jxr_string">"executor"</span>, <strong class="jxr_keyword">new</strong> ExecutorFilter());
<a name="199" href="#199">199</a>         vmPipeConnector.setHandler(<strong class="jxr_keyword">new</strong> IoHandlerAdapter());
<a name="200" href="#200">200</a>         ConnectFuture connectFuture = vmPipeConnector.connect(vmPipeAddress);
<a name="201" href="#201">201</a>         connectFuture.awaitUninterruptibly();
<a name="202" href="#202">202</a>         connectFuture.getSession().write(IoBuffer.wrap(<strong class="jxr_keyword">new</strong> byte[1]));
<a name="203" href="#203">203</a>         connectFuture.getSession().closeOnFlush().awaitUninterruptibly();
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>         semaphore.tryAcquire(1, TimeUnit.SECONDS);
<a name="206" href="#206">206</a>         vmPipeAcceptor.unbind(vmPipeAddress);
<a name="207" href="#207">207</a>         Assert.assertEquals(1, connectFuture.getSession().getWrittenBytes());
<a name="208" href="#208">208</a>         Assert.assertEquals(<span class="jxr_string">"ABCD"</span>, stringBuffer.toString());
<a name="209" href="#209">209</a>     }
<a name="210" href="#210">210</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

