<!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>SpringXBeanTest 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>  <strong class="jxr_keyword">package</strong> org.apache.mina.integration.xbean;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNotNull;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertTrue;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.transport.socket.nio.NioDatagramAcceptor;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.xbean.spring.context.FileSystemXmlApplicationContext;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.springframework.context.ApplicationContext;
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">/**</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @version $Rev: 596086 $ $Date: 2007-11-18 09:15:50 -0500 (Sun, 18 Nov 2007) $</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> */</em>
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/integration/xbean/SpringXBeanTest.html">SpringXBeanTest</a>
<a name="41" href="#41">41</a>  {
<a name="42" href="#42">42</a>      <em class="jxr_javadoccomment">/**</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     * Checks to see we can easily configure a NIO based DatagramAcceptor </em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * using XBean-Spring.  Tests various configuration settings for the </em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * NIO based DatagramAcceptor.</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     */</em>
<a name="47" href="#47">47</a>      @Test
<a name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNioDatagramAcceptor() <strong class="jxr_keyword">throws</strong> Exception 
<a name="49" href="#49">49</a>      {
<a name="50" href="#50">50</a>          ClassLoader classLoader = <strong class="jxr_keyword">this</strong>.getClass().getClassLoader();
<a name="51" href="#51">51</a>          URL configURL = classLoader.getResource( <span class="jxr_string">"org/apache/mina/integration/xbean/datagramAcceptor.xml"</span> );
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>          File configF = <strong class="jxr_keyword">new</strong> File( configURL.toURI() );
<a name="54" href="#54">54</a>          ApplicationContext factory = <strong class="jxr_keyword">new</strong> FileSystemXmlApplicationContext( configF.toURI().toURL().toString() );
<a name="55" href="#55">55</a>          
<a name="56" href="#56">56</a>          <em class="jxr_comment">// test default without any properties</em>
<a name="57" href="#57">57</a>          NioDatagramAcceptor acceptor0 = ( NioDatagramAcceptor ) factory.getBean( <span class="jxr_string">"datagramAcceptor0"</span> );
<a name="58" href="#58">58</a>          assertNotNull( <span class="jxr_string">"acceptor0 should not be null"</span>, acceptor0 );
<a name="59" href="#59">59</a>          assertTrue( 
<a name="60" href="#60">60</a>              <span class="jxr_string">"Default constructor for NioDatagramAcceptor should have true value for closeOnDeactivation property"</span>, 
<a name="61" href="#61">61</a>              acceptor0.isCloseOnDeactivation() );
<a name="62" href="#62">62</a>          
<a name="63" href="#63">63</a>          <em class="jxr_comment">// test setting the port and IP for the acceptor</em>
<a name="64" href="#64">64</a>          NioDatagramAcceptor acceptor1 = ( NioDatagramAcceptor ) factory.getBean( <span class="jxr_string">"datagramAcceptor1"</span> );
<a name="65" href="#65">65</a>          assertNotNull( <span class="jxr_string">"acceptor1 should not be null"</span>, acceptor1 );
<a name="66" href="#66">66</a>          assertEquals( <span class="jxr_string">"192.168.0.1"</span>, acceptor1.getDefaultLocalAddress().getAddress().getHostAddress() );
<a name="67" href="#67">67</a>          assertEquals( 110, acceptor1.getDefaultLocalAddress().getPort() );
<a name="68" href="#68">68</a>          
<a name="69" href="#69">69</a>          <em class="jxr_comment">// test creating with executor and some primitive properties</em>
<a name="70" href="#70">70</a>          NioDatagramAcceptor acceptor2 = ( NioDatagramAcceptor ) factory.getBean( <span class="jxr_string">"datagramAcceptor2"</span> );
<a name="71" href="#71">71</a>          assertNotNull( acceptor2 );
<a name="72" href="#72">72</a>          assertFalse( acceptor2.isCloseOnDeactivation() );
<a name="73" href="#73">73</a>          assertFalse( 
<a name="74" href="#74">74</a>              <span class="jxr_string">"NioDatagramAcceptor should have false value for closeOnDeactivation property"</span>, 
<a name="75" href="#75">75</a>              acceptor2.isCloseOnDeactivation() );
<a name="76" href="#76">76</a>          
<a name="77" href="#77">77</a>          <em class="jxr_comment">// test creating with multiple addresses</em>
<a name="78" href="#78">78</a>          NioDatagramAcceptor acceptor3 = ( NioDatagramAcceptor ) factory.getBean( <span class="jxr_string">"datagramAcceptor3"</span> );
<a name="79" href="#79">79</a>          assertNotNull( acceptor3 );
<a name="80" href="#80">80</a>          assertEquals( 3, acceptor3.getDefaultLocalAddresses().size() );
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>          InetSocketAddress address1 = ( InetSocketAddress ) acceptor3.getDefaultLocalAddresses().get( 0 );
<a name="83" href="#83">83</a>          assertEquals( <span class="jxr_string">"192.168.0.1"</span>, address1.getAddress().getHostAddress() );
<a name="84" href="#84">84</a>          assertEquals( 10001, address1.getPort() );
<a name="85" href="#85">85</a>          
<a name="86" href="#86">86</a>          InetSocketAddress address2 = ( InetSocketAddress ) acceptor3.getDefaultLocalAddresses().get( 1 );
<a name="87" href="#87">87</a>          assertEquals( <span class="jxr_string">"192.168.0.2"</span>, address2.getAddress().getHostAddress() );
<a name="88" href="#88">88</a>          assertEquals( 10002, address2.getPort() );
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</a>          InetSocketAddress address3 = ( InetSocketAddress ) acceptor3.getDefaultLocalAddresses().get( 2 );
<a name="91" href="#91">91</a>          assertEquals( <span class="jxr_string">"192.168.0.3"</span>, address3.getAddress().getHostAddress() );
<a name="92" href="#92">92</a>          assertEquals( 10003, address3.getPort() );
<a name="93" href="#93">93</a>          
<a name="94" href="#94">94</a>          
<a name="95" href="#95">95</a>          <em class="jxr_comment">// test with multiple default addresses </em>
<a name="96" href="#96">96</a>  <em class="jxr_comment">//        NioDatagramAcceptor acceptor3 = ( NioDatagramAcceptor ) factory.getBean( "datagramAcceptor3" );</em>
<a name="97" href="#97">97</a>  <em class="jxr_comment">//        assertNotNull( acceptor3 );</em>
<a name="98" href="#98">98</a>  <em class="jxr_comment">//        assertEquals( 3, acceptor3.getDefaultLocalAddresses().size() );</em>
<a name="99" href="#99">99</a>  <em class="jxr_comment">//</em>
<a name="100" href="#100">100</a> <em class="jxr_comment">//        SocketAddress address0 = acceptor3.getDefaultLocalAddresses().get( 0 );</em>
<a name="101" href="#101">101</a> <em class="jxr_comment">//        assertNotNull( address0 );</em>
<a name="102" href="#102">102</a> <em class="jxr_comment">//        </em>
<a name="103" href="#103">103</a> <em class="jxr_comment">//        SocketAddress address1 = acceptor3.getDefaultLocalAddresses().get( 1 );</em>
<a name="104" href="#104">104</a> <em class="jxr_comment">//        assertNotNull( address1 );</em>
<a name="105" href="#105">105</a> <em class="jxr_comment">//</em>
<a name="106" href="#106">106</a> <em class="jxr_comment">//        SocketAddress address2 = acceptor3.getDefaultLocalAddresses().get( 2 );</em>
<a name="107" href="#107">107</a> <em class="jxr_comment">//        assertNotNull( address2 );</em>
<a name="108" href="#108">108</a>     }
<a name="109" href="#109">109</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

