You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by bu...@apache.org on 2015/11/10 09:41:56 UTC

svn commit: r971954 [6/9] - in /websites/staging/mina/trunk/content: ./ asyncweb-project/ ftpserver-project/ mina-project/ mina-project/userguide/ mina-project/userguide/ch1-getting-started/ mina-project/userguide/ch10-executor-filter/ mina-project/use...

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch14-state-machine/ch14-state-machine.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch14-state-machine/ch14-state-machine.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch14-state-machine/ch14-state-machine.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="chapter-14-state-machine">Chapter 14 - State Machine</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="chapter-14-state-machine">Chapter 14 - State Machine<a class="headerlink" href="#chapter-14-state-machine" title="Permanent link">&para;</a></h1>
 <p>If you are using MINA to develop an application with complex network interactions you may at some point find yourself reaching for the good old <a href="http://home.earthlink.net/~huston2/dp/state.html">State pattern</a> to try to sort out some of that complexity. However, before you do that you might want to checkout mina-statemachine which tries to address some of the shortcomings of the State pattern.</p>
 <div class="toc">
 <ul>
@@ -186,7 +208,7 @@
 </li>
 </ul>
 </div>
-<h2 id="a-simple-example">A simple example</h2>
+<h2 id="a-simple-example">A simple example<a class="headerlink" href="#a-simple-example" title="Permanent link">&para;</a></h2>
 <p>Let's demonstrate how mina-statemachine works with a simple example. The picture below shows a state machine for a typical tape deck. The ellipsis are the states while the arrows are the transitions. Each transition is labeled with an event name which triggers that transition.</p>
 <p><img alt="" src="../../../staticresources/images/mina/state-diagram.png" /></p>
 <p>Initially, the tape deck is in the <strong>Empty</strong> state. When a tape is inserted the <strong>load</strong> event is fired and the tape deck moves to the <strong>Loaded</strong> state. In <strong>Loaded</strong> the <strong>eject</strong> event will trigger a move back to <strong>Empty</strong> while the <strong>play</strong> event will trigger a move to the <strong>Playing</strong> state. And so on... I think you can work out the rest on your own.</p>
@@ -324,26 +346,26 @@ Tape ejected
     As you might have noticed there's nothing MINA specific about this example. But don't be alarmed. Later on we will see how to create state machines for MINA's <TT>IoHandler</TT> interface.
 </DIV>
 
-<h1 id="how-does-it-work">How does it work?</h1>
+<h1 id="how-does-it-work">How does it work?<a class="headerlink" href="#how-does-it-work" title="Permanent link">&para;</a></h1>
 <p>Let's walk through what happens when a method is called on the proxy.</p>
-<h2 id="lookup-a-statecontext-object">Lookup a StateContext object</h2>
+<h2 id="lookup-a-statecontext-object">Lookup a StateContext object<a class="headerlink" href="#lookup-a-statecontext-object" title="Permanent link">&para;</a></h2>
 <p>The StateContext object is important because it holds the current State. When a method is called on the proxy it will ask a StateContextLookup instance to get the StateContext from the method's arguments. Normally, the StateContextLookup implementation will loop through the method arguments and look for a particular type of object and use it to retrieve a StateContext object. If no StateContext has been assigned yet the StateContextLookup will create one and store it in the object.</p>
 <p>When proxying MINA's IoHandler we will use a IoSessoinStateContextLookup instance which looks for an IoSession in the method arguments. It will use the IoSession's attributes to store a separate instance of StateContext for each MINA session. That way the same state machine can be used for all MINA sessions without them interfering with each other.</p>
 <DIV class="note" markdown="1">
     In the example above we never specified what <TT>StateContextLookup</TT> implementation to use when we created the proxy using <TT>StateMachineProxyBuilder</TT>. If not specified a <TT>SingletonStateContextLookup</TT> will be used. <TT>SingletonStateContextLookup</TT> totally disregards the method arguments passed to it &ndash; it'll always return the same <TT>StateContext</TT> object. Obviously this won't be very useful when the same state machine is used concurrently by many clients as will be the case when we proxy <TT>IoHandler</TT> later on.
 </DIV>
 
-<h2 id="convert-the-method-invocation-into-an-event-object">Convert the method invocation into an Event object</h2>
+<h2 id="convert-the-method-invocation-into-an-event-object">Convert the method invocation into an Event object<a class="headerlink" href="#convert-the-method-invocation-into-an-event-object" title="Permanent link">&para;</a></h2>
 <p>All method invocations on the proxy object will be translated into Event objects by the proxy. An Event has an id and zero or more arguments. The id corresponds to the name of the method and the event arguments correspond to the method arguments. The method call deck.load("The Knife - Silent Shout") corresponds to the event {id = "load", arguments = ["The Knife - Silent Shout"]}. The Event object also contains a reference to the StateContext object looked up previously.</p>
-<h2 id="invoke-the-statemachine">Invoke the StateMachine</h2>
+<h2 id="invoke-the-statemachine">Invoke the StateMachine<a class="headerlink" href="#invoke-the-statemachine" title="Permanent link">&para;</a></h2>
 <p>Once the Event object has been created the proxy will call StateMachine.handle(Event). StateMachine.handle(Event) loops through the Transition objects of the current State in search for a Transition instance which accepts the current Event. This process will stop after a Transition has been found. The Transition objects will be searched in order of weight (typically specified by the @Transition annotation).</p>
-<h2 id="execute-the-transition">Execute the Transition</h2>
+<h2 id="execute-the-transition">Execute the Transition<a class="headerlink" href="#execute-the-transition" title="Permanent link">&para;</a></h2>
 <p>The final step is to call Transition.execute(Event) on the Transition which matched the Event. After the Transition has been executed the StateMachine will update the current State with the end state defined by the Transition.</p>
 <DIV class="info" markdown="1">
     <TT>Transition</TT> is an interface. Every time you use the <TT>@Transition</TT> annotation a <TT>MethodTransition</TT> object will be created.
 </DIV>
 
-<h1 id="methodtransition">MethodTransition</h1>
+<h1 id="methodtransition">MethodTransition<a class="headerlink" href="#methodtransition" title="Permanent link">&para;</a></h1>
 <p>MethodTransition is very important and requires some further explanation. MethodTransition matches an Event if the event's id matches the on parameter of the @Transition annotation and the annotated method's arguments are assignment compatible with a subset of the event's arguments.</p>
 <p>So, if the Event looks like {id = "foo", arguments = [a, b, c]} the method</p>
 <div class="codehilite"><pre><span class="nd">@Transition</span><span class="o">(</span><span class="n">on</span> <span class="o">=</span> <span class="s">&quot;foo&quot;</span><span class="o">)</span>
@@ -445,7 +467,7 @@ Tape ejected
 </pre></div>
 
 
-<h2 id="state-inheritance">State inheritance</h2>
+<h2 id="state-inheritance">State inheritance<a class="headerlink" href="#state-inheritance" title="Permanent link">&para;</a></h2>
 <p>State instances may have a parent State. If StateMachine.handle(Event) cannot find a Transition matching the current Event in the current State it will search the parent State. If no match is found there either the parent's parent will be searched and so on.</p>
 <p>This feature is useful when you want to add some generic code to all states without having to specify @Transition annotations for each state. Here's how you create a hierarchy of states using the @State annotation:</p>
 <div class="codehilite"><pre><span class="nd">@State</span>    <span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">A</span> <span class="o">=</span> <span class="s">&quot;A&quot;</span><span class="o">;</span>
@@ -456,7 +478,7 @@ Tape ejected
 </pre></div>
 
 
-<h2 id="error-handling-using-state-inheritance">Error handling using state inheritance</h2>
+<h2 id="error-handling-using-state-inheritance">Error handling using state inheritance<a class="headerlink" href="#error-handling-using-state-inheritance" title="Permanent link">&para;</a></h2>
 <p>Let's go back to the TapeDeck example. What happens if you call deck.play() when there's no tape in the deck? Let's try:</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
     <span class="o">...</span>
@@ -520,7 +542,7 @@ Tape ejected
 
 
 <p>The result will be the same but things will be much easier to maintain whith this last approach.</p>
-<h2 id="mina-statemachine-with-iohandler">mina-statemachine with IoHandler</h2>
+<h2 id="mina-statemachine-with-iohandler">mina-statemachine with IoHandler<a class="headerlink" href="#mina-statemachine-with-iohandler" title="Permanent link">&para;</a></h2>
 <p>Now we're going to convert our tape deck into a TCP server and extend it with some more functionality. The server will receive commands like load <tape>, play, stop, etc. The responses will either be positive + <message> or negative - <message>. The protocol is text based, all commands and responses are lines of UTF-8 text terminated by CRLF (i.e. \r\n in Java). Here's an example session:</p>
 <div class="codehilite"><pre><span class="n">telnet</span> <span class="n">localhost</span> 12345
 <span class="n">S</span><span class="p">:</span> <span class="o">+</span> <span class="n">Greetings</span> <span class="n">from</span> <span class="n">your</span> <span class="n">tape</span> <span class="n">deck</span>!
@@ -670,10 +692,10 @@ Tape ejected
 
 <p>createIoHandler() creates a StateMachine just like we did before except that we specify IoHandlerTransition.class instead of Transition.class in the call to StateMachineFactory.getInstance(...). This is necessary since we're now using the @IoHandlerTransition annotation. Also, this time we use IoSessionStateContextLookup and a custom StateContextFactory when we create the IoHandler proxy. If we didn't use IoSessionStateContextLookup all clients would share the same state machine which isn't desirable.</p>
 <p>The main() method creates the SocketAcceptor and attaches a ProtocolCodecFilter which decodes/encodes Command objects to its filter chain. Finally, it binds to port 12345 using an IoHandler instance created by the createIoHandler() method.</p>
-<h1 id="advanced-topics">Advanced topics</h1>
-<h2 id="changing-state-programmatically">Changing state programmatically</h2>
+<h1 id="advanced-topics">Advanced topics<a class="headerlink" href="#advanced-topics" title="Permanent link">&para;</a></h1>
+<h2 id="changing-state-programmatically">Changing state programmatically<a class="headerlink" href="#changing-state-programmatically" title="Permanent link">&para;</a></h2>
 <p>To be written...</p>
-<h2 id="calling-the-state-machine-recursively">Calling the state machine recursively</h2>
+<h2 id="calling-the-state-machine-recursively">Calling the state machine recursively<a class="headerlink" href="#calling-the-state-machine-recursively" title="Permanent link">&para;</a></h2>
 <p>To be written...</p>
 
 

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch15-proxy/ch15-proxy.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch15-proxy/ch15-proxy.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch15-proxy/ch15-proxy.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="chapter-15-proxy">Chapter 15 - Proxy</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="chapter-15-proxy">Chapter 15 - Proxy<a class="headerlink" href="#chapter-15-proxy" title="Permanent link">&para;</a></h1>
 <p>To be completed...</p>
 
 

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch16-jmx-support/ch16-jmx-support.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch16-jmx-support/ch16-jmx-support.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch16-jmx-support/ch16-jmx-support.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,10 +169,21 @@
     </div>
 
 
-<h1 id="chapter-16-jmx-support">Chapter 16 - JMX Support</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="chapter-16-jmx-support">Chapter 16 - JMX Support<a class="headerlink" href="#chapter-16-jmx-support" title="Permanent link">&para;</a></h1>
 <p>Java Management Extensions (JMX) is used for managing and monitoring java applications.  This tutorial will provide you with an example as to how you can JMX-enable your MINA based application.</p>
 <p>This tutorial is designed to help you get the JMX technology integrated in to your MINA-based application. In this tutorial, we will integrate the MINA-JMX classes into the imagine server example program.</p>
-<h1 id="adding-jmx-support">Adding JMX Support</h1>
+<h1 id="adding-jmx-support">Adding JMX Support<a class="headerlink" href="#adding-jmx-support" title="Permanent link">&para;</a></h1>
 <p>To JMX enable MINA application we have to perform following</p>
 <ul>
 <li>Create/Get MBean server</li>
@@ -169,14 +191,14 @@
 <li>Register MBeans with MBean server</li>
 </ul>
 <p>We shall follow \src\main\java\org\apache\mina\example\imagine\step3\server\ImageServer.java, for the rest of our discussion</p>
-<h2 id="createget-mbean-server">Create/Get MBean server</h2>
+<h2 id="createget-mbean-server">Create/Get MBean server<a class="headerlink" href="#createget-mbean-server" title="Permanent link">&para;</a></h2>
 <div class="codehilite"><pre><span class="c1">// create a JMX MBean Server server instance</span>
 <span class="n">MBeanServer</span> <span class="n">mBeanServer</span> <span class="o">=</span> <span class="n">ManagementFactory</span><span class="o">.</span><span class="na">getPlatformMBeanServer</span><span class="o">();</span>
 </pre></div>
 
 
 <p>This lines get the MBean Server instance.</p>
-<h2 id="instantiate-mbeans">Instantiate MBean(s)</h2>
+<h2 id="instantiate-mbeans">Instantiate MBean(s)<a class="headerlink" href="#instantiate-mbeans" title="Permanent link">&para;</a></h2>
 <p>We create an MBean for IoService</p>
 <div class="codehilite"><pre><span class="c1">// create a JMX-aware bean that wraps a MINA IoService object.  In this</span>
 <span class="c1">// case, a NioSocketAcceptor. </span>
@@ -186,7 +208,7 @@
 
 <p>This creates an IoService MBean. It accepts instance of an acceptor that it exposed via JMX.</p>
 <p>Similarly, you can add IoFilterMBean and other custom MBeans as well</p>
-<h2 id="registering-mbeans-with-mbean-server">Registering MBeans with MBean Server</h2>
+<h2 id="registering-mbeans-with-mbean-server">Registering MBeans with MBean Server<a class="headerlink" href="#registering-mbeans-with-mbean-server" title="Permanent link">&para;</a></h2>
 <div class="codehilite"><pre><span class="c1">// create a JMX ObjectName.  This has to be in a specific format.  </span>
 <span class="n">ObjectName</span> <span class="n">acceptorName</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ObjectName</span><span class="o">(</span> <span class="n">acceptor</span><span class="o">.</span><span class="na">getClass</span><span class="o">().</span><span class="na">getPackage</span><span class="o">().</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span>
         <span class="s">&quot;:type=acceptor,name=&quot;</span> <span class="o">+</span> <span class="n">acceptor</span><span class="o">.</span><span class="na">getClass</span><span class="o">().</span><span class="na">getSimpleName</span><span class="o">());</span>
@@ -198,7 +220,7 @@
 
 
 <p>We create an ObjectName that need to be used as logical name for accessing the MBean and register the MBean to the MBean Server. Our application in now JMX enabled. Lets see it in action.</p>
-<h2 id="start-the-imagine-server">Start the Imagine Server</h2>
+<h2 id="start-the-imagine-server">Start the Imagine Server<a class="headerlink" href="#start-the-imagine-server" title="Permanent link">&para;</a></h2>
 <p>If you are using Java 5 or earlier:</p>
 <div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">Dcom</span><span class="p">.</span><span class="n">sun</span><span class="p">.</span><span class="n">management</span><span class="p">.</span><span class="n">jmxremote</span> <span class="o">-</span><span class="n">classpath</span> <span class="o">&lt;</span><span class="n">CLASSPATH</span><span class="o">&gt;</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">mina</span><span class="p">.</span><span class="n">example</span><span class="p">.</span><span class="n">imagine</span><span class="p">.</span><span class="n">step3</span><span class="p">.</span><span class="n">server</span><span class="p">.</span><span class="n">ImageServer</span>
 </pre></div>
@@ -209,7 +231,7 @@
 </pre></div>
 
 
-<h2 id="start-jconsole">Start JConsole</h2>
+<h2 id="start-jconsole">Start JConsole<a class="headerlink" href="#start-jconsole" title="Permanent link">&para;</a></h2>
 <p>Start JConsole using the following command: </p>
 <p><JDK_HOME>/bin/jconsole</p>
 <p>We can see the different attributes and operations that are exposed by the MBeans</p>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch17-spring-integration/ch17-spring-integration.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,16 +169,27 @@
     </div>
 
 
-<h1 id="chapter-17-spring-integration">Chapter 17 - Spring Integration</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="chapter-17-spring-integration">Chapter 17 - Spring Integration<a class="headerlink" href="#chapter-17-spring-integration" title="Permanent link">&para;</a></h1>
 <p>This article demonstrates integrating MINA application with Spring. I wrote this article on my blog, and though to put it here, where this information actually belongs to. Can find the original copy at <a href="http://www.ashishpaliwal.com/blog/2008/11/integrating-apache-mina-with-spring/">Integrating Apache MINA with Spring</a>.</p>
-<h2 id="application-structure">Application Structure</h2>
+<h2 id="application-structure">Application Structure<a class="headerlink" href="#application-structure" title="Permanent link">&para;</a></h2>
 <p>We shall take a standard MINA application which has following construct</p>
 <ul>
 <li>One Handler</li>
 <li>Two Filter - Logging Filter and a ProtocolCodec Filter</li>
 <li>NioDatagram Socket</li>
 </ul>
-<h3 id="initialization-code">Initialization Code</h3>
+<h3 id="initialization-code">Initialization Code<a class="headerlink" href="#initialization-code" title="Permanent link">&para;</a></h3>
 <p>Lets see the code first. For simplicity we have omitted the glue code.</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">initialize</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">IOException</span> <span class="o">{</span>
 
@@ -193,7 +215,7 @@
 </pre></div>
 
 
-<h2 id="integration-process">Integration Process</h2>
+<h2 id="integration-process">Integration Process<a class="headerlink" href="#integration-process" title="Permanent link">&para;</a></h2>
 <p>To integrate with Spring, we need to do following:</p>
 <ul>
 <li>Set the IO handler</li>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/application-architecture.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/application-architecture.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/application-architecture.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="mina-based-application-architecture">MINA based Application Architecture</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="mina-based-application-architecture">MINA based Application Architecture<a class="headerlink" href="#mina-based-application-architecture" title="Permanent link">&para;</a></h1>
 <p>It's the question most asked : 'How does a <strong>MINA</strong> based application look like'? In this article lets see what's the architecture of MINA based application. Have tried to gather the information from presentations based on <strong>MINA</strong>.</p>
 <p>A Bird's Eye View :</p>
 <p><img alt="" src="../../../staticresources/images/mina/apparch_small.png" /></p>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/ch2-basics.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/ch2-basics.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/ch2-basics.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="chapter-2-basics">Chapter 2 - Basics</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="chapter-2-basics">Chapter 2 - Basics<a class="headerlink" href="#chapter-2-basics" title="Permanent link">&para;</a></h1>
 <p>In Chapter 1, we had a brief glimpse of Apache MINA. In this chapter we shall have a look at Client/Server Architecture and details on working out a MINA based Server and Client.</p>
 <p>We will also expose some very simple Servers and Clients, based on TCP and UDP.</p>
 <ul>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/client-architecture.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/client-architecture.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/client-architecture.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="client-architecture">Client Architecture</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="client-architecture">Client Architecture<a class="headerlink" href="#client-architecture" title="Permanent link">&para;</a></h1>
 <p>We had a brief look at MINA based Server Architecture, lets see how Client looks like. Clients need to connect to a Server, send message and process the responses.</p>
 <p><img alt="" src="../../../staticresources/images/mina/clientdiagram.png" /></p>
 <ul>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-tcp-client.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-tcp-client.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-tcp-client.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="sample-tcp-client">Sample TCP Client</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="sample-tcp-client">Sample TCP Client<a class="headerlink" href="#sample-tcp-client" title="Permanent link">&para;</a></h1>
 <p>We have seen the Client Architecture. Lets explore a sample Client implementation.</p>
 <p>We shall use <a href="http://mina.apache.org/mina-project/xref/org/apache/mina/example/sumup/Client.html">Sumup Client</a> as a reference implementation.</p>
 <p>We will remove boiler plate code and concentrate on the important constructs. Below the code for the Client :</p>
@@ -206,13 +228,13 @@
 <li>Bind to Server</li>
 </ul>
 <p>Lets examine each one in detail</p>
-<h2 id="create-a-connector">Create a Connector</h2>
+<h2 id="create-a-connector">Create a Connector<a class="headerlink" href="#create-a-connector" title="Permanent link">&para;</a></h2>
 <div class="codehilite"><pre><span class="n">NioSocketConnector</span> <span class="n">connector</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NioSocketConnector</span><span class="o">();</span>
 </pre></div>
 
 
 <p>Here we have created a NIO Socket connector</p>
-<h2 id="create-a-filter-chain">Create a Filter Chain</h2>
+<h2 id="create-a-filter-chain">Create a Filter Chain<a class="headerlink" href="#create-a-filter-chain" title="Permanent link">&para;</a></h2>
 <div class="codehilite"><pre><span class="k">if</span> <span class="o">(</span><span class="n">USE_CUSTOM_CODEC</span><span class="o">)</span> <span class="o">{</span>
     <span class="n">connector</span><span class="o">.</span><span class="na">getFilterChain</span><span class="o">().</span><span class="na">addLast</span><span class="o">(</span><span class="s">&quot;codec&quot;</span><span class="o">,</span>
         <span class="k">new</span> <span class="nf">ProtocolCodecFilter</span><span class="o">(</span><span class="k">new</span> <span class="n">SumUpProtocolCodecFactory</span><span class="o">(</span><span class="kc">false</span><span class="o">)));</span>
@@ -224,13 +246,13 @@
 
 
 <p>We add Filters to the Filter Chain for the Connector. Here we have added a ProtocolCodec, to the filter Chain.</p>
-<h2 id="create-iohandler">Create IOHandler</h2>
+<h2 id="create-iohandler">Create IOHandler<a class="headerlink" href="#create-iohandler" title="Permanent link">&para;</a></h2>
 <div class="codehilite"><pre><span class="n">connector</span><span class="o">.</span><span class="na">setHandler</span><span class="o">(</span><span class="k">new</span> <span class="n">ClientSessionHandler</span><span class="o">(</span><span class="n">values</span><span class="o">));</span>
 </pre></div>
 
 
 <p>Here we create an instance of <a href="http://mina.apache.org/mina-project/xref/org/apache/mina/example/sumup/ClientSessionHandler.html">ClientSessionHandler</a> and set it as a handler for the Connector.</p>
-<h2 id="bind-to-server">Bind to Server</h2>
+<h2 id="bind-to-server">Bind to Server<a class="headerlink" href="#bind-to-server" title="Permanent link">&para;</a></h2>
 <div class="codehilite"><pre><span class="n">IoSession</span> <span class="n">session</span><span class="o">;</span>
 
 <span class="k">for</span> <span class="o">(;;)</span> <span class="o">{</span>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-tcp-server.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-tcp-server.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-tcp-server.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="sample-tcp-server">Sample TCP Server</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="sample-tcp-server">Sample TCP Server<a class="headerlink" href="#sample-tcp-server" title="Permanent link">&para;</a></h1>
 <p>This tutorial will walk you through the process of building a MINA based program.  This tutorial will walk through building a time server.  The following prerequisites are required for this tutorial:</p>
 <ul>
 <li>MINA 2.x Core</li>
@@ -173,7 +195,7 @@
 </ul>
 <p>For instance, slf4j-log4j12.jar and log4j-1.3.x.jar can not be used together, and will malfunction.</p>
 <p>We have tested this program on both Windows&copy; 2000 professional and linux.  If you have any problems getting this program to work, please do not hesitate to <a href="../../../contact.html">contact us</a> in order to talk to the MINA developers.  Also, this tutorial has tried to remain independent of development environments (IDE, editors..etc).  This tutorial will work with any environment that you are comfortable with.  Compilation commands and steps to execute the program have been removed for brevity.  If you need help learning how to either compile or execute java programs, please consult the <a href="http://java.sun.com/docs/books/tutorial/">Java tutorial</a>.</p>
-<h2 id="writing-the-mina-time-server">Writing the MINA time server</h2>
+<h2 id="writing-the-mina-time-server">Writing the MINA time server<a class="headerlink" href="#writing-the-mina-time-server" title="Permanent link">&para;</a></h2>
 <p>We will begin by creating a file called MinaTimeServer.java. The initial code can be found below:</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MinaTimeServer</span> <span class="o">{</span>
     <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
@@ -359,9 +381,9 @@
 </pre></div>
 
 
-<h2 id="try-out-the-time-server">Try out the Time server</h2>
+<h2 id="try-out-the-time-server">Try out the Time server<a class="headerlink" href="#try-out-the-time-server" title="Permanent link">&para;</a></h2>
 <p>At this point, we can go ahead and compile the program.  Once you have compiled the program you can run the program in order to test out what happens.  The easiest way to test the program is to start the program, and then telnet in to the program:</p>
-<table>
+<table class="table">
 <thead>
 <tr>
 <th>Client Output</th>
@@ -375,7 +397,7 @@
 </tr>
 </tbody>
 </table>
-<h2 id="whats-next">What's Next?</h2>
+<h2 id="whats-next">What's Next?<a class="headerlink" href="#whats-next" title="Permanent link">&para;</a></h2>
 <p>Please visit our Documentation page to find out more resources. You can also keep reading other tutorials.</p>
 
 

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-udp-client.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-udp-client.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-udp-client.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="sample-udp-client">Sample UDP Client</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="sample-udp-client">Sample UDP Client<a class="headerlink" href="#sample-udp-client" title="Permanent link">&para;</a></h1>
 <p>Lets look at the client code for the UDP Server from previous section.</p>
 <p>To implement the Client we need to do following:</p>
 <ul>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-udp-server.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-udp-server.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/sample-udp-server.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="sample-udp-server">Sample UDP Server</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="sample-udp-server">Sample UDP Server<a class="headerlink" href="#sample-udp-server" title="Permanent link">&para;</a></h1>
 <p>We will begin by looking at the code found in the <a href="http://mina.apache.org/mina-project/xref/org/apache/mina/example/udp/package-summary.html">org.apache.mina.example.udp</a> package. To keep life simple, we shall concentrate on MINA related constructs only.</p>
 <p>To construct the server, we shall have to do the following:</p>
 <ol>
@@ -184,7 +206,7 @@
 
 
 <p>Of course the last thing that is required here is to call bind().</p>
-<h2 id="iohandler-implementation">IoHandler implementation</h2>
+<h2 id="iohandler-implementation">IoHandler implementation<a class="headerlink" href="#iohandler-implementation" title="Permanent link">&para;</a></h2>
 <p>There are three major events of interest for our Server Implementation</p>
 <ul>
 <li>Session Created</li>
@@ -192,7 +214,7 @@
 <li>Session Closed</li>
 </ul>
 <p>Lets look at each of them in detail</p>
-<h3 id="session-created-event">Session Created Event</h3>
+<h3 id="session-created-event">Session Created Event<a class="headerlink" href="#session-created-event" title="Permanent link">&para;</a></h3>
 <div class="codehilite"><pre><span class="nd">@Override</span>
 <span class="kd">public</span> <span class="kt">void</span> <span class="nf">sessionCreated</span><span class="o">(</span><span class="n">IoSession</span> <span class="n">session</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
     <span class="n">SocketAddress</span> <span class="n">remoteAddress</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="na">getRemoteAddress</span><span class="o">();</span>
@@ -202,7 +224,7 @@
 
 
 <p>In the session creation event, we just call addClient() function, which internally adds a Tab to the UI</p>
-<h3 id="message-received-event">Message Received Event</h3>
+<h3 id="message-received-event">Message Received Event<a class="headerlink" href="#message-received-event" title="Permanent link">&para;</a></h3>
 <div class="codehilite"><pre><span class="nd">@Override</span>
 <span class="kd">public</span> <span class="kt">void</span> <span class="nf">messageReceived</span><span class="o">(</span><span class="n">IoSession</span> <span class="n">session</span><span class="o">,</span> <span class="n">Object</span> <span class="n">message</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
     <span class="k">if</span> <span class="o">(</span><span class="n">message</span> <span class="k">instanceof</span> <span class="n">IoBuffer</span><span class="o">)</span> <span class="o">{</span>
@@ -215,7 +237,7 @@
 
 
 <p>In the message received event, we just dump the data received in the message. Applications that need to send responses, can process message and write the responses onto session in this function.</p>
-<h3 id="session-closed-event">Session Closed Event</h3>
+<h3 id="session-closed-event">Session Closed Event<a class="headerlink" href="#session-closed-event" title="Permanent link">&para;</a></h3>
 <div class="codehilite"><pre><span class="nd">@Override</span>
 <span class="kd">public</span> <span class="kt">void</span> <span class="nf">sessionClosed</span><span class="o">(</span><span class="n">IoSession</span> <span class="n">session</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
     <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&quot;Session closed...&quot;</span><span class="o">);</span>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/server-architecture.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/server-architecture.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/server-architecture.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="server-architecture">Server Architecture</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="server-architecture">Server Architecture<a class="headerlink" href="#server-architecture" title="Permanent link">&para;</a></h1>
 <p>We have exposed the <strong>MINA</strong> Application Architecture in the previous section. Let's now focus on the Server Architecture. Basically, a Server listens on a port for incoming requests, process them and send replies. It also creates and handles a session for each client (whenever we have a TCP or UDP based protocol), this will be explain more extensively in the <a href="../ch4-session/ch4-session.html">chapter 4</a>.</p>
 <p><img alt="" src="../../../staticresources/images/mina/Server_arch.png" /></p>
 <ul>
@@ -167,10 +189,10 @@
 <li>All packets received for a Session, traverses the Filter Chain as specified in the diagram. Filters can be used to modify the content of packets (like converting to Objects, adding/removing information etc). For converting to/from raw bytes to High Level Objects, PacketEncoder/Decoder are particularly useful</li>
 <li>Finally the packet or converted object lands in <code>IOHandler</code>. <code>IOHandler</code>s can be used to fulfill business needs.</li>
 </ul>
-<h2 id="session-creation">Session creation</h2>
+<h2 id="session-creation">Session creation<a class="headerlink" href="#session-creation" title="Permanent link">&para;</a></h2>
 <p>Whenever a client connects on a MINA server, we will create a new session to store persistent data into it. Even if the protocol is not connected, this session will be created. The following schema shows how <strong>MINA</strong> handles incoming connections :</p>
 <p><img alt="Incoming connections handling" src="../../../staticresources/images/mina/incoming-connections.png" /></p>
-<h2 id="incoming-messages-processing">Incoming messages processing</h2>
+<h2 id="incoming-messages-processing">Incoming messages processing<a class="headerlink" href="#incoming-messages-processing" title="Permanent link">&para;</a></h2>
 <p>We will now explain how <strong>MINA</strong> processes incoming messages.</p>
 <p>Assuming that a session has been created, any new incoming message will result in a selector being waken up</p>
 

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/summary.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/summary.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch2-basics/summary.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="summary">Summary</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">&para;</a></h1>
 <p>In this chapter, we looked at MINA based Application Architecture, for Client as well as Server. We also touched upon the implementation of Sample TCP Server/Client, and UDP Server and Client.</p>
 <p>In the chapters to come we shall discuss about MINA Core constructs and advanced topics</p>
 

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/acceptor.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/acceptor.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/acceptor.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,9 +169,20 @@
     </div>
 
 
-<h1 id="acceptor">Acceptor</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="acceptor">Acceptor<a class="headerlink" href="#acceptor" title="Permanent link">&para;</a></h1>
 <p>In order to build a server, you need to select an implementation of the <em>IoAcceptor</em> interface.</p>
-<h2 id="ioacceptor">IoAcceptor</h2>
+<h2 id="ioacceptor">IoAcceptor<a class="headerlink" href="#ioacceptor" title="Permanent link">&para;</a></h2>
 <p>Basically, this interface is named because of the <em>accept()</em> method, responsible for the creation of new connection between a client and the server. The server accepts incoming connection request.</p>
 <p>At some point, we could have named this interface 'Server'.</p>
 <p>As we may deal with more than one kind of transport (TCP/UDP/...), we have more than one implementation for this interface. It would be very unlikely that you need to implement a new one.</p>
@@ -174,7 +196,7 @@
 <p>Just pick the one that fit your need.</p>
 <p>Here is the class diagram for the <em>IoAcceptor</em> interfaces and classes :</p>
 <p><img alt="" src="../../../staticresources/images/mina/IoServiceAcceptor.png" /></p>
-<h2 id="creation">Creation</h2>
+<h2 id="creation">Creation<a class="headerlink" href="#creation" title="Permanent link">&para;</a></h2>
 <p>You first have to select the type of <em>IoAcceptor</em> you want to instanciate. This is a choice you will made early in the process, as it all boils down to which network protocol you will use. Let's see with an example how it works :</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="nf">TcpServer</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">IOException</span> <span class="o">{</span>
     <span class="c1">// Create a TCP acceptor</span>
@@ -199,7 +221,7 @@
 </pre></div>
 
 
-<h2 id="disposal">Disposal</h2>
+<h2 id="disposal">Disposal<a class="headerlink" href="#disposal" title="Permanent link">&para;</a></h2>
 <p>The service can be stopped by calling the <em>dispose()</em> method. The service will be stopped only when all the pending sessions have been processed :</p>
 <div class="codehilite"><pre><span class="c1">// Stop the service, waiting for the pending sessions to be inactive</span>
 <span class="n">acceptor</span><span class="o">.</span><span class="na">dispose</span><span class="o">();</span>
@@ -212,16 +234,16 @@
 </pre></div>
 
 
-<h2 id="status">Status</h2>
+<h2 id="status">Status<a class="headerlink" href="#status" title="Permanent link">&para;</a></h2>
 <p>You can get the <em>IoService</em> status by calling one of the following methods :</p>
 <ul>
 <li><em>isActive()</em> : true if the service can accept incoming requests</li>
 <li><em>isDisposing()</em> : true if the <em>dispose()</em> method has been called. It does not tell if the service is actually stopped (some sessions might be processed)</li>
 <li><em>isDisposed()</em> : true if the <em>dispose(boolean)</em> method has been called, and the executing threads have been completed.</li>
 </ul>
-<h2 id="managing-the-iohandler">Managing the IoHandler</h2>
+<h2 id="managing-the-iohandler">Managing the IoHandler<a class="headerlink" href="#managing-the-iohandler" title="Permanent link">&para;</a></h2>
 <p>You can add or get the associated <em>IoHandler</em> when the service has been instanciated. Youjust have to call the <em>setHandler(IoHandler)</em> or <em>getHandler()</em> methods.</p>
-<h2 id="managing-the-filters-chain">Managing the Filters chain</h2>
+<h2 id="managing-the-filters-chain">Managing the Filters chain<a class="headerlink" href="#managing-the-filters-chain" title="Permanent link">&para;</a></h2>
 <p>if you want to manage the filters chain, you will have to call the <em>getFilterChain()</em> method. Here is an example :</p>
 <div class="codehilite"><pre><span class="c1">// Add a logger filter</span>
 <span class="n">DefaultIoFilterChainBuilder</span> <span class="n">chain</span> <span class="o">=</span> <span class="n">acceptor</span><span class="o">.</span><span class="na">getFilterChain</span><span class="o">();</span>
@@ -239,7 +261,7 @@
 </pre></div>
 
 
-<h2></h2>
+<h2 id="_1"><a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
 
 
     <div class="nav">

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/ch3-service.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/ch3-service.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/ch3-service.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,7 +169,18 @@
     </div>
 
 
-<h1 id="chapter-3-ioservice">Chapter 3 - IoService</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="chapter-3-ioservice">Chapter 3 - IoService<a class="headerlink" href="#chapter-3-ioservice" title="Permanent link">&para;</a></h1>
 <p>A <strong>MINA</strong> <em>IoService</em> - as seen in the <a href="../ch2-basics/application-architecture.html">application architecture</a> chapter, is the base class supporting all the <strong>IO</strong> services, either from the server side or the client side. </p>
 <p>It will handle all the interaction with your application, and with the remote peer, send and receive messages, manage sessions, conections, etc.</p>
 <p>It's an interface, which is implemented as an <em>IoAcceptor</em> for the server side, and <em>IoConnector</em> for the client side.</p>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/connector.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/connector.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/connector.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,9 +169,20 @@
     </div>
 
 
-<h1 id="connector">Connector</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="connector">Connector<a class="headerlink" href="#connector" title="Permanent link">&para;</a></h1>
 <p>For client applications, you need to implement an implementation of the IoConnector interface.</p>
-<h2 id="ioconnector">IoConnector</h2>
+<h2 id="ioconnector">IoConnector<a class="headerlink" href="#ioconnector" title="Permanent link">&para;</a></h2>
 <p>As we have to use an IoAcceptor for servers, you have to implement the IoConnector. Again, we have many implementation classes :</p>
 <ul>
 <li><strong>NioSocketConnector</strong> : the non-blocking Socket transport Connector</li>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/io-service-details.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/io-service-details.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/io-service-details.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,14 +169,25 @@
     </div>
 
 
-<h1 id="ioservice-details">IoService Details</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="ioservice-details">IoService Details<a class="headerlink" href="#ioservice-details" title="Permanent link">&para;</a></h1>
 <p><em>IoService</em> is an interface that is implemented by the two most important classes in <strong>MINA</strong> :</p>
 <ul>
 <li>IoAcceptor</li>
 <li>IoConnector</li>
 </ul>
 <p>In order to build a server, you need to select an implementation of the <em>IoAcceptor</em> interface. For client applications, you need to implement an implementation of the <em>IoConnector</em> interface.</p>
-<h2 id="ioacceptor">IoAcceptor</h2>
+<h2 id="ioacceptor">IoAcceptor<a class="headerlink" href="#ioacceptor" title="Permanent link">&para;</a></h2>
 <p>Basically, this interface is named because of the <em>accept()</em> method, responsible for the creation of new connections between a client and the server. The server accepts incoming connection requests.</p>
 <p>At some point, we could have named this interface 'Server' (and this is the new name in the coming <strong>MINA 3.0</strong>).</p>
 <p>As we may deal with more than one kind of transport (TCP/UDP/...), we have more than one implementation for this interface. It would be very unlikely that you need to implement a new one.</p>
@@ -179,7 +201,7 @@
 <p>Just pick the one that fit your need.</p>
 <p>Here is the class diagram for the <em>IoAcceptor</em> interfaces and classes :</p>
 <p><img alt="" src="../../../staticresources/images/mina/IoServiceAcceptor.png" /></p>
-<h2 id="ioconnector">IoConnector</h2>
+<h2 id="ioconnector">IoConnector<a class="headerlink" href="#ioconnector" title="Permanent link">&para;</a></h2>
 <p>As we have to use an <em>IoAcceptor</em> for servers, you have to implement the <em>IoConnector</em> for clients. Again, we have many implementation classes :</p>
 <ul>
 <li><strong>NioSocketConnector</strong> : the non-blocking Socket transport <em>IoConnector</em></li>

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/io-service.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/io-service.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch3-service/io-service.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,12 +169,23 @@
     </div>
 
 
-<h1 id="ioservice-introduction">IoService Introduction</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="ioservice-introduction">IoService Introduction<a class="headerlink" href="#ioservice-introduction" title="Permanent link">&para;</a></h1>
 <p><a href="http://mina.apache.org/mina-project/xref/org/apache/mina/core/service/IoService.html">IoService</a> provides basic <strong>I/O</strong> Service and manages <strong>I/O</strong> Sessions within <strong>MINA</strong>. Its one of the most crucial part of <strong>MINA</strong> Architecture. The implementing classes of <em>IoService</em> and child interface, are where most of the low level <strong>I/O</strong> operations are handled.</p>
-<h1 id="ioservice-mind-map">IoService Mind Map</h1>
+<h1 id="ioservice-mind-map">IoService Mind Map<a class="headerlink" href="#ioservice-mind-map" title="Permanent link">&para;</a></h1>
 <p>Let's try to see what are the responsibilities of the <em>IoService</em> and it implementing class <a href="http://mina.apache.org/mina-project/xref/org/apache/mina/core/service/AbstractIoService.html">AbstractIoService</a>. Let's take a slightly different approach of first using a <a href="http://en.wikipedia.org/wiki/Mind_map">Mind Map</a> and then jump into the inner working. The Mind Map was created using <a href="http://www.xmind.net/">XMind</a>.</p>
 <p><img alt="" src="../../../staticresources/images/mina/IoService_mindmap.png" /></p>
-<h2 id="responsabilities">Responsabilities</h2>
+<h2 id="responsabilities">Responsabilities<a class="headerlink" href="#responsabilities" title="Permanent link">&para;</a></h2>
 <p>As seen in the previous graphic, The <em>IoService</em> has many responsabilities :</p>
 <ul>
 <li>sessions management : Creates and deletes sessions, detect idleness.</li>
@@ -174,7 +196,7 @@
 <li>communication management : Handles the transmission of data, in both side</li>
 </ul>
 <p>All those aspects will be described in the following chapters.</p>
-<h2 id="interface-details">Interface Details</h2>
+<h2 id="interface-details">Interface Details<a class="headerlink" href="#interface-details" title="Permanent link">&para;</a></h2>
 <p><em>IoService</em> is the base interface for all the <em>IoConnector</em>'s and <em>IoAcceptor</em>'s that provides <strong>I/O</strong> services and manages <strong>I/O</strong> sessions. The interface has all the functions need to perform <strong>I/O</strong> related operations.</p>
 <p>Lets take a deep dive into the various methods in the interface</p>
 <ul>
@@ -200,48 +222,48 @@
 <li>getScheduledWriteMessages()</li>
 <li>getStatistics()</li>
 </ul>
-<h3 id="gettransportmetadata">getTransportMetadata()</h3>
+<h3 id="gettransportmetadata">getTransportMetadata()<a class="headerlink" href="#gettransportmetadata" title="Permanent link">&para;</a></h3>
 <p>This method returns the Transport meta-data the <em>IoAcceptor</em> or <em>IoConnector</em> is running. The typical details include provider name (nio, apr, rxtx), connection type (connectionless/connection oriented) etc.</p>
-<h3 id="addlistener">addListener</h3>
+<h3 id="addlistener">addListener<a class="headerlink" href="#addlistener" title="Permanent link">&para;</a></h3>
 <p>Allows to add a <em>IoServiceListener</em> to listen to specific events related to <em>IoService</em>.</p>
-<h3 id="removelistener">removeListener</h3>
+<h3 id="removelistener">removeListener<a class="headerlink" href="#removelistener" title="Permanent link">&para;</a></h3>
 <p>Removes specified <em>IoServiceListener</em> attached to this <em>IoService</em>.</p>
-<h3 id="isdisposing">isDisposing</h3>
+<h3 id="isdisposing">isDisposing<a class="headerlink" href="#isdisposing" title="Permanent link">&para;</a></h3>
 <p>This method tells if the service is currently being disposed. As it can take a while, it's useful to know the current status of the service.</p>
-<h3 id="isdisposed">isDisposed</h3>
+<h3 id="isdisposed">isDisposed<a class="headerlink" href="#isdisposed" title="Permanent link">&para;</a></h3>
 <p>This method tells if the service has been disposed. A service will be considered as disposed only when all the resources it has allocated have been released.</p>
-<h3 id="dispose">dispose</h3>
+<h3 id="dispose">dispose<a class="headerlink" href="#dispose" title="Permanent link">&para;</a></h3>
 <p>This method releases all the resources the service has allocated. As it may take a while, the user should check the service status using the <em>isDisposing()</em> and <em>isDisposed()</em> to know if the service is now disposed completely.</p>
 <p>Always call <em>dispose()</em> when you shutdown a service !</p>
-<h3 id="gethandler">getHandler</h3>
+<h3 id="gethandler">getHandler<a class="headerlink" href="#gethandler" title="Permanent link">&para;</a></h3>
 <p>Returns the <em>IoHandler</em> associated with the service.</p>
-<h3 id="sethandler">setHandler</h3>
+<h3 id="sethandler">setHandler<a class="headerlink" href="#sethandler" title="Permanent link">&para;</a></h3>
 <p>Sets the <em>IoHandler</em> that will be responsible for handling all the events for the service. The handler contains your application logic !</p>
-<h3 id="getmanagedsessions">getManagedSessions</h3>
+<h3 id="getmanagedsessions">getManagedSessions<a class="headerlink" href="#getmanagedsessions" title="Permanent link">&para;</a></h3>
 <p>Returns the map of all sessions which are currently managed by this service. A managed session is a session which is added to the service listener. It will be used to process the idle sessions, and other session aspects, depending on the kind of listeners a user adds to a service.</p>
-<h3 id="getmanagedsessioncount">getManagedSessionCount</h3>
+<h3 id="getmanagedsessioncount">getManagedSessionCount<a class="headerlink" href="#getmanagedsessioncount" title="Permanent link">&para;</a></h3>
 <p>Returns the number of all sessions which are currently managed by this service.</p>
-<h3 id="getsessionconfig">getSessionConfig</h3>
+<h3 id="getsessionconfig">getSessionConfig<a class="headerlink" href="#getsessionconfig" title="Permanent link">&para;</a></h3>
 <p>Returns the session configuration.</p>
-<h3 id="getfilterchainbuilder">getFilterChainBuilder</h3>
+<h3 id="getfilterchainbuilder">getFilterChainBuilder<a class="headerlink" href="#getfilterchainbuilder" title="Permanent link">&para;</a></h3>
 <p>Returns the <em>Filter</em> chain builder. This is useful if one wants to add some new filter that will be injected when the sessions will be created.</p>
-<h3 id="setfilterchainbuilder">setFilterChainBuilder</h3>
+<h3 id="setfilterchainbuilder">setFilterChainBuilder<a class="headerlink" href="#setfilterchainbuilder" title="Permanent link">&para;</a></h3>
 <p>Defines the <em>Filter</em> chain builder to use with the service.</p>
-<h3 id="getfilterchain">getFilterChain</h3>
+<h3 id="getfilterchain">getFilterChain<a class="headerlink" href="#getfilterchain" title="Permanent link">&para;</a></h3>
 <p>Returns the current default <em>Filter</em> chain for the service.</p>
-<h3 id="isactive">isActive</h3>
+<h3 id="isactive">isActive<a class="headerlink" href="#isactive" title="Permanent link">&para;</a></h3>
 <p>Tells if the service is active or not.</p>
-<h3 id="getactivationtime">getActivationTime</h3>
+<h3 id="getactivationtime">getActivationTime<a class="headerlink" href="#getactivationtime" title="Permanent link">&para;</a></h3>
 <p>Returns the time when this service was activated. It returns the last time when this service was activated if the service is not anymore active.</p>
-<h3 id="broadcast">broadcast</h3>
+<h3 id="broadcast">broadcast<a class="headerlink" href="#broadcast" title="Permanent link">&para;</a></h3>
 <p>Writes the given message to all the managed sessions.</p>
-<h3 id="setsessiondatastructurefactory">setSessionDataStructureFactory</h3>
+<h3 id="setsessiondatastructurefactory">setSessionDataStructureFactory<a class="headerlink" href="#setsessiondatastructurefactory" title="Permanent link">&para;</a></h3>
 <p>Sets the <em>IoSessionDataStructureFactory</em> that provides related data structures for a new session created by this service.</p>
-<h3 id="getscheduledwritebytes">getScheduledWriteBytes</h3>
+<h3 id="getscheduledwritebytes">getScheduledWriteBytes<a class="headerlink" href="#getscheduledwritebytes" title="Permanent link">&para;</a></h3>
 <p>Returns the number of bytes scheduled to be written (ie, the bytes stored in memory waiting for the socket to be ready for write).</p>
-<h3 id="getscheduledwritemessages">getScheduledWriteMessages</h3>
+<h3 id="getscheduledwritemessages">getScheduledWriteMessages<a class="headerlink" href="#getscheduledwritemessages" title="Permanent link">&para;</a></h3>
 <p>Returns the number of messages scheduled to be written (ie, the messages stored in memory waiting for the socket to be ready for write).</p>
-<h3 id="getstatistics">getStatistics</h3>
+<h3 id="getstatistics">getStatistics<a class="headerlink" href="#getstatistics" title="Permanent link">&para;</a></h3>
 <p>Returns the <em>IoServiceStatistics</em> object for this service.</p>
 
 

Modified: websites/staging/mina/trunk/content/mina-project/userguide/ch4-session/ch4-session.html
==============================================================================
--- websites/staging/mina/trunk/content/mina-project/userguide/ch4-session/ch4-session.html (original)
+++ websites/staging/mina/trunk/content/mina-project/userguide/ch4-session/ch4-session.html Tue Nov 10 08:41:53 2015
@@ -74,7 +74,18 @@
           
           
           
-            <div id="navigation">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<div id="navigation">
 
     <h5>Latest Downloads</h5>
     <ul>
@@ -158,10 +169,21 @@
     </div>
 
 
-<h1 id="chapter-4-session">Chapter 4 - Session</h1>
+<style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="chapter-4-session">Chapter 4 - Session<a class="headerlink" href="#chapter-4-session" title="Permanent link">&para;</a></h1>
 <p>The Session is at the heart of MINA : every time a client connects to the server, a new session is created, and will be kept in memory until the client is disconnected.</p>
 <p>A session is used to store persistent informations about the connection, plus any kind of information the server might need to use during the request processing, and eventually during the whole session life.</p>
-<h2 id="session-state">Session state</h2>
+<h2 id="session-state">Session state<a class="headerlink" href="#session-state" title="Permanent link">&para;</a></h2>
 <p>A session has a state, which will evolve during time.</p>
 <ul>
 <li>Connected : the session has been created and is available</li>
@@ -176,7 +198,7 @@
 </ul>
 <p>The following state diagram exposes all the possible states and transitions :</p>
 <p><img alt="" src="../../../staticresources/images/mina/session-state.png" /></p>
-<h2 id="configuration">Configuration</h2>
+<h2 id="configuration">Configuration<a class="headerlink" href="#configuration" title="Permanent link">&para;</a></h2>
 <p>Many different parameters can be set for a specific session :</p>
 <ul>
 <li>receive buffer size</li>
@@ -185,7 +207,7 @@
 <li>Write timeOut</li>
 </ul>
 <p>plus other configuration, depending on the transport type used (see Chapter 6 - Transports)</p>
-<h2 id="managing-user-defined-attributes">Managing user-defined attributes</h2>
+<h2 id="managing-user-defined-attributes">Managing user-defined attributes<a class="headerlink" href="#managing-user-defined-attributes" title="Permanent link">&para;</a></h2>
 <p>It might be necessary to store some data which may be used later. This is done using the dedicated data structure associated which each session. This is a key-value association, which can store any type of data the developer might want to keep remanent.</p>
 <p>For instance, if you want to track the number of request a user has sent since the session has been created, it's easy to store it into this map: just create a key that will be associated with this value.</p>
 <div class="codehilite"><pre><span class="o">...</span>
@@ -197,7 +219,7 @@
 
 <p>We have a way to handle stored Attributes into the session : an Attribute is a key/value pair, which can be added, removed and read from the session's container.</p>
 <p>This container is created automatically when the session is created, and will be disposed when the session is terminated.</p>
-<h2 id="defining-the-container">Defining the container</h2>
+<h2 id="defining-the-container">Defining the container<a class="headerlink" href="#defining-the-container" title="Permanent link">&para;</a></h2>
 <p>As we said, this container is a key/value container, which default to a Map, but it's also possible to define another data structure if one want to handle long lived data, or to avoid storing all those data in memory if they are large : we can implement an interface and a factory that will be used to create this container when the session is created.</p>
 <p>This snippet of code shows how the container is created during the session initialization :</p>
 <div class="codehilite"><pre><span class="kd">protected</span> <span class="kd">final</span> <span class="kt">void</span> <span class="nf">initSession</span><span class="o">(</span><span class="n">IoSession</span> <span class="n">session</span><span class="o">,</span>
@@ -228,10 +250,10 @@
 </pre></div>
 
 
-<h2 id="filter-chain">Filter chain</h2>
+<h2 id="filter-chain">Filter chain<a class="headerlink" href="#filter-chain" title="Permanent link">&para;</a></h2>
 <p>Each session is associated with a chain of filters, which will be processed when an incoming request or an outgoing message is received or emitted. Those filters are specific for each session individually, even if most of the cases, we will use the very same chain of filters for all the existing sessions.</p>
 <p>However, it's possible to dynamically modify the chain for a single session, for instance by adding a Logger Filter in the chain for a specific session.</p>
-<h2 id="statistics">Statistics</h2>
+<h2 id="statistics">Statistics<a class="headerlink" href="#statistics" title="Permanent link">&para;</a></h2>
 <p>Each session also keep a track of records about what has been done for the session :</p>
 <ul>
 <li>number of bytes received/sent</li>
@@ -240,7 +262,7 @@
 <li>throughput</li>
 </ul>
 <p>and many other useful informations.</p>
-<h2 id="handler">Handler</h2>
+<h2 id="handler">Handler<a class="headerlink" href="#handler" title="Permanent link">&para;</a></h2>
 <p>Last, not least, a session is attached to a Handler, in charge of dispatching the messages to your application. This handler will also send pack response by using the session, simply by calling the write() method :</p>
 <div class="codehilite"><pre><span class="o">...</span>
 <span class="n">session</span><span class="o">.</span><span class="na">write</span><span class="o">(</span> <span class="o">&lt;</span><span class="n">your</span> <span class="n">message</span><span class="o">&gt;</span> <span class="o">);</span>