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 2012/11/01 06:13:21 UTC

svn commit: r836837 [5/7] - in /websites/staging/mina/trunk/content: ./ mina/ mina/userguide/ mina/userguide/ch1-getting-started/ mina/userguide/ch12-logging-filter/ mina/userguide/ch14-state-machine/ mina/userguide/ch16-jmx-support/ mina/userguide/ch1...

Modified: websites/staging/mina/trunk/content/mina/userguide/ch3-service/acceptor.html
==============================================================================
--- websites/staging/mina/trunk/content/mina/userguide/ch3-service/acceptor.html (original)
+++ websites/staging/mina/trunk/content/mina/userguide/ch3-service/acceptor.html Thu Nov  1 05:13:20 2012
@@ -167,39 +167,39 @@
 <p><img alt="" src="../../../staticresources/images/mina/IoServiceAcceptor.png" /></p>
 <h2 id="creation">Creation</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="n">public</span> <span class="n">TcpServer</span><span class="p">()</span> <span class="n">throws</span> <span class="n">IOException</span> <span class="p">{</span>
-    <span class="sr">//</span> <span class="n">Create</span> <span class="n">a</span> <span class="n">TCP</span> <span class="n">acceptor</span>
-    <span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NioSocketAcceptor</span><span class="p">();</span>
+<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>
+    <span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NioSocketAcceptor</span><span class="o">();</span>
 
-    <span class="sr">//</span> <span class="n">Associate</span> <span class="n">the</span> <span class="n">acceptor</span> <span class="n">to</span> <span class="n">an</span> <span class="n">IoHandler</span> <span class="n">instance</span> <span class="p">(</span><span class="n">your</span> <span class="n">application</span><span class="p">)</span>
-    <span class="n">acceptor</span><span class="o">.</span><span class="n">setHandler</span><span class="p">(</span><span class="n">this</span><span class="p">);</span>
+    <span class="c1">// Associate the acceptor to an IoHandler instance (your application)</span>
+    <span class="n">acceptor</span><span class="o">.</span><span class="na">setHandler</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
 
-    <span class="sr">//</span> <span class="n">Bind</span> <span class="p">:</span> <span class="n">this</span> <span class="n">will</span> <span class="n">start</span> <span class="n">the</span> <span class="n">server</span><span class="o">...</span>
-    <span class="n">acceptor</span><span class="o">.</span><span class="nb">bind</span><span class="p">(</span><span class="k">new</span> <span class="n">InetSocketAddress</span><span class="p">(</span><span class="n">PORT</span><span class="p">));</span>
+    <span class="c1">// Bind : this will start the server...</span>
+    <span class="n">acceptor</span><span class="o">.</span><span class="na">bind</span><span class="o">(</span><span class="k">new</span> <span class="n">InetSocketAddress</span><span class="o">(</span><span class="n">PORT</span><span class="o">));</span>
 
-    <span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;Server started...&quot;</span><span class="p">);</span>
-<span class="p">}</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;Server started...&quot;</span><span class="o">);</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <p>That's it ! You have created a TCP server. If you want to start an UDP server, simply replace the first line of code :</p>
-<div class="codehilite"><pre>    <span class="o">...</span>
-    <span class="sr">//</span> <span class="n">Create</span> <span class="n">an</span> <span class="n">UDP</span> <span class="n">acceptor</span>
-    <span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NioDatagramAcceptor</span><span class="p">();</span>
-    <span class="o">...</span>
+<div class="codehilite"><pre><span class="o">...</span>
+<span class="c1">// Create an UDP acceptor</span>
+<span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NioDatagramAcceptor</span><span class="o">();</span>
+<span class="o">...</span>
 </pre></div>
 
 
 <h2 id="disposal">Disposal</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="sr">//</span> <span class="n">Stop</span> <span class="n">the</span> <span class="n">service</span><span class="p">,</span> <span class="n">waiting</span> <span class="k">for</span> <span class="n">the</span> <span class="n">pending</span> <span class="n">sessions</span> <span class="n">to</span> <span class="n">be</span> <span class="n">inactive</span>
-<span class="n">acceptor</span><span class="o">.</span><span class="n">dispose</span><span class="p">();</span>
+<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>
 </pre></div>
 
 
 <p>You can also wait for every thread being executed to be properly completed by passing a boolean parameter to this method :</p>
-<div class="codehilite"><pre><span class="sr">//</span> <span class="n">Stop</span> <span class="n">the</span> <span class="n">service</span><span class="p">,</span> <span class="n">waiting</span> <span class="k">for</span> <span class="n">the</span> <span class="n">processing</span> <span class="n">session</span> <span class="n">to</span> <span class="n">be</span> <span class="n">properly</span> <span class="n">completed</span>
-<span class="n">acceptor</span><span class="o">.</span><span class="n">dispose</span><span class="p">(</span> <span class="n">true</span> <span class="p">);</span>
+<div class="codehilite"><pre><span class="c1">// Stop the service, waiting for the processing session to be properly completed</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">dispose</span><span class="o">(</span> <span class="kc">true</span> <span class="o">);</span>
 </pre></div>
 
 
@@ -214,19 +214,19 @@
 <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>
 <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="sr">//</span> <span class="n">Add</span> <span class="n">a</span> <span class="n">logger</span> <span class="n">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="n">getFilterChain</span><span class="p">();</span>
-<span class="n">chain</span><span class="o">.</span><span class="n">addLast</span><span class="p">(</span><span class="s">&quot;logger&quot;</span><span class="p">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="p">());</span>
+<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>
+<span class="n">chain</span><span class="o">.</span><span class="na">addLast</span><span class="o">(</span><span class="s">&quot;logger&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="o">());</span>
 </pre></div>
 
 
 <p>You can also create the chain before and set it into the service :</p>
-<div class="codehilite"><pre><span class="sr">//</span> <span class="n">Add</span> <span class="n">a</span> <span class="n">logger</span> <span class="n">filter</span>
-<span class="n">DefaultIoFilterChainBuilder</span> <span class="n">chain</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultIoFilterChainBuilder</span><span class="p">();</span>
-<span class="n">chain</span><span class="o">.</span><span class="n">addLast</span><span class="p">(</span><span class="s">&quot;logger&quot;</span><span class="p">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="p">());</span>
+<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="k">new</span> <span class="n">DefaultIoFilterChainBuilder</span><span class="o">();</span>
+<span class="n">chain</span><span class="o">.</span><span class="na">addLast</span><span class="o">(</span><span class="s">&quot;logger&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="o">());</span>
 
-<span class="sr">//</span> <span class="n">And</span> <span class="n">inject</span> <span class="n">the</span> <span class="n">created</span> <span class="n">chain</span> <span class="n">builder</span> <span class="n">in</span> <span class="n">the</span> <span class="n">service</span>
-<span class="n">acceptor</span><span class="o">.</span><span class="n">setFilterChainBuilder</span><span class="p">(</span><span class="n">chain</span><span class="p">);</span>
+<span class="c1">// And inject the created chain builder in the service</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">setFilterChainBuilder</span><span class="o">(</span><span class="n">chain</span><span class="o">);</span>
 </pre></div>
 
 

Modified: websites/staging/mina/trunk/content/mina/userguide/ch4-session/ch4-session.html
==============================================================================
--- websites/staging/mina/trunk/content/mina/userguide/ch4-session/ch4-session.html (original)
+++ websites/staging/mina/trunk/content/mina/userguide/ch4-session/ch4-session.html Thu Nov  1 05:13:20 2012
@@ -180,8 +180,8 @@
 <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>
-<span class="nb">int</span> <span class="n">counterValue</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="n">getAttribute</span><span class="p">(</span> <span class="s">&quot;counter&quot;</span> <span class="p">);</span>
-<span class="n">session</span><span class="o">.</span><span class="n">setAttribute</span><span class="p">(</span> <span class="s">&quot;counter&quot;</span><span class="p">,</span> <span class="n">counterValue</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">);</span>
+<span class="kt">int</span> <span class="n">counterValue</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="na">getAttribute</span><span class="o">(</span> <span class="s">&quot;counter&quot;</span> <span class="o">);</span>
+<span class="n">session</span><span class="o">.</span><span class="na">setAttribute</span><span class="o">(</span> <span class="s">&quot;counter&quot;</span><span class="o">,</span> <span class="n">counterValue</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">);</span>
 <span class="o">...</span>
 </pre></div>
 
@@ -191,18 +191,18 @@
 <h2 id="defining-the-container">Defining the container</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="n">protected</span> <span class="n">final</span> <span class="n">void</span> <span class="n">initSession</span><span class="p">(</span><span class="n">IoSession</span> <span class="n">session</span><span class="p">,</span>
-        <span class="n">IoFuture</span> <span class="n">future</span><span class="p">,</span> <span class="n">IoSessionInitializer</span> <span class="n">sessionInitializer</span><span class="p">)</span> <span class="p">{</span>
+<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>
+        <span class="n">IoFuture</span> <span class="n">future</span><span class="o">,</span> <span class="n">IoSessionInitializer</span> <span class="n">sessionInitializer</span><span class="o">)</span> <span class="o">{</span>
     <span class="o">...</span>
-    <span class="n">try</span> <span class="p">{</span>
-        <span class="p">((</span><span class="n">AbstractIoSession</span><span class="p">)</span> <span class="n">session</span><span class="p">)</span><span class="o">.</span><span class="n">setAttributeMap</span><span class="p">(</span><span class="n">session</span><span class="o">.</span><span class="n">getService</span><span class="p">()</span>
-                <span class="o">.</span><span class="n">getSessionDataStructureFactory</span><span class="p">()</span><span class="o">.</span><span class="n">getAttributeMap</span><span class="p">(</span><span class="n">session</span><span class="p">));</span>
-    <span class="p">}</span> <span class="n">catch</span> <span class="p">(</span><span class="n">IoSessionInitializationException</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">throw</span> <span class="n">e</span><span class="p">;</span>
-    <span class="p">}</span> <span class="n">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">throw</span> <span class="k">new</span> <span class="n">IoSessionInitializationException</span><span class="p">(</span>
-                <span class="s">&quot;Failed to initialize an attributeMap.&quot;</span><span class="p">,</span> <span class="n">e</span><span class="p">);</span>
-    <span class="p">}</span>
+    <span class="k">try</span> <span class="o">{</span>
+        <span class="o">((</span><span class="n">AbstractIoSession</span><span class="o">)</span> <span class="n">session</span><span class="o">).</span><span class="na">setAttributeMap</span><span class="o">(</span><span class="n">session</span><span class="o">.</span><span class="na">getService</span><span class="o">()</span>
+                <span class="o">.</span><span class="na">getSessionDataStructureFactory</span><span class="o">().</span><span class="na">getAttributeMap</span><span class="o">(</span><span class="n">session</span><span class="o">));</span>
+    <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">IoSessionInitializationException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">throw</span> <span class="n">e</span><span class="o">;</span>
+    <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">throw</span> <span class="k">new</span> <span class="nf">IoSessionInitializationException</span><span class="o">(</span>
+                <span class="s">&quot;Failed to initialize an attributeMap.&quot;</span><span class="o">,</span> <span class="n">e</span><span class="o">);</span>
+    <span class="o">}</span>
     <span class="o">...</span>
 </pre></div>
 
@@ -234,7 +234,7 @@
 <h2 id="handler">Handler</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="nb">write</span><span class="p">(</span> <span class="o">&lt;</span><span class="n">your</span> <span class="n">message</span><span class="o">&gt;</span> <span class="p">);</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>
 <span class="o">...</span>
 </pre></div>
 

Modified: websites/staging/mina/trunk/content/mina/userguide/ch5-filters/ch5-filters.html
==============================================================================
--- websites/staging/mina/trunk/content/mina/userguide/ch5-filters/ch5-filters.html (original)
+++ websites/staging/mina/trunk/content/mina/userguide/ch5-filters/ch5-filters.html Thu Nov  1 05:13:20 2012
@@ -173,125 +173,127 @@
 </div>
 <h2 id="filters-already-present">Filters already present</h2>
 <p>We have many filters already written. The following table list all the existing filters, with a short description of their usage.</p>
-<p><DIV class="table-wrap">
-<TABLE class="confluenceTable"><TBODY>
-<TR>
-<TH class="confluenceTh"> Filter </TH>
-<TH class="confluenceTh"> class </TH>
-<TH class="confluenceTh"> Description </TH>
-</TR>
-<TR>
-<TD class="confluenceTd"> Blacklist </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/firewall/BlacklistFilter.html" class="external-link" rel="nofollow">BlacklistFilter</A></TT> </TD>
-<TD class="confluenceTd">  Blocks connections from blacklisted remote addresses<BR class="atl-forced-newline"> </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Buffered Write </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/buffer/BufferedWriteFilter.html" class="external-link" rel="nofollow">BufferedWriteFilter</A></TT> </TD>
-<TD class="confluenceTd"> Buffers outgoing requests like the BufferedOutputStream does </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Compression </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/compression/CompressionFilter.html" class="external-link" rel="nofollow">CompressionFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> ConnectionThrottle </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/firewall/ConnectionThrottleFilter.html" class="external-link" rel="nofollow">ConnectionThrottleFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> ErrorGenerating </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/errorgenerating/ErrorGeneratingFilter.html" class="external-link" rel="nofollow">ErrorGeneratingFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Executor </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/executor/ExecutorFilter.html" class="external-link" rel="nofollow">ExecutorFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> FileRegionWrite </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/stream/FileRegionWriteFilter.html" class="external-link" rel="nofollow">FileRegionWriteFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> KeepAlive </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/keepalive/KeepAliveFilter.html" class="external-link" rel="nofollow">KeepAliveFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Logging </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/logging/LoggingFilter.html" class="external-link" rel="nofollow">LoggingFilter</A></TT> </TD>
-<TD class="confluenceTd"> Logs event messages, like MessageReceived, MessageSent, SessionOpened, ... </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> MDC Injection </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/logging/MdcInjectionFilter.html" class="external-link" rel="nofollow">MdcInjectionFilter</A></TT> </TD>
-<TD class="confluenceTd"> Inject key IoSession properties into the MDC </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Noop </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/NoopFilter.html" class="external-link" rel="nofollow">NoopFilter</A></TT> </TD>
-<TD class="confluenceTd"> A filter that does nothing. Useful for tests. </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Profiler </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/statistic/ProfilerTimerFilter.html" class="external-link" rel="nofollow">ProfilerTimerFilter</A></TT> </TD>
-<TD class="confluenceTd"> Profile event messages, like MessageReceived, MessageSent, SessionOpened, ... </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> ProtocolCodec </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/codec/ProtocolCodecFilter.html" class="external-link" rel="nofollow">ProtocolCodecFilter</A></TT> </TD>
-<TD class="confluenceTd"> A filter in charge of encoding and decoding messages </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Proxy </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/proxy/filter/ProxyFilter.html" class="external-link" rel="nofollow">ProxyFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> Reference counting </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/ReferenceCountingFilter.html" class="external-link" rel="nofollow">ReferenceCountingFilter</A></TT> </TD>
-<TD class="confluenceTd"> Keeps track of the number of usages of this filter </TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> RequestResponse </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/reqres/RequestResponseFilter.html" class="external-link" rel="nofollow">RequestResponseFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> SessionAttributeInitializing </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/SessionAttributeInitializingFilter.html" class="external-link" rel="nofollow">SessionAttributeInitializingFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> StreamWrite </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/stream/StreamWriteFilter.html" class="external-link" rel="nofollow">StreamWriteFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> SslFilter </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/ssl/SslFilter.html" class="external-link" rel="nofollow">SslFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-<TR>
-<TD class="confluenceTd"> WriteRequest </TD>
-<TD class="confluenceTd"> <TT><A href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/WriteRequestFilter.html" class="external-link" rel="nofollow">WriteRequestFilter</A></TT> </TD>
-<TD class="confluenceTd">&nbsp;</TD>
-</TR>
-</TBODY></TABLE>
-</DIV></p>
+<table>
+<thead>
+<tr>
+<th>Filter</th>
+<th>class</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Blacklist</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/firewall/BlacklistFilter.html">BlacklistFilter</a></td>
+<td>Blocks connections from blacklisted remote addresses<BR class="atl-forced-newline"></td>
+</tr>
+<tr>
+<td>Buffered Write</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/buffer/BufferedWriteFilter.html">BufferedWriteFilter</a></td>
+<td>Buffers outgoing requests like the BufferedOutputStream does</td>
+</tr>
+<tr>
+<td>Compression</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/compression/CompressionFilter.html">CompressionFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>ConnectionThrottle</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/firewall/ConnectionThrottleFilter.html">ConnectionThrottleFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>ErrorGenerating</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/errorgenerating/ErrorGeneratingFilter.html">ErrorGeneratingFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>Executor</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/executor/ExecutorFilter.html">ExecutorFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>FileRegionWrite</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/stream/FileRegionWriteFilter.html">FileRegionWriteFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>KeepAlive</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/keepalive/KeepAliveFilter.html">KeepAliveFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>Logging</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/logging/LoggingFilter.html">LoggingFilter</a></td>
+<td>Logs event messages, like MessageReceived, MessageSent, SessionOpened, ...</td>
+</tr>
+<tr>
+<td>MDC Injection</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/logging/MdcInjectionFilter.html">MdcInjectionFilter</a></td>
+<td>Inject key IoSession properties into the MDC</td>
+</tr>
+<tr>
+<td>Noop</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/NoopFilter.html">NoopFilter</a></td>
+<td>A filter that does nothing. Useful for tests.</td>
+</tr>
+<tr>
+<td>Profiler</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/statistic/ProfilerTimerFilter.html">ProfilerTimerFilter</a></td>
+<td>Profile event messages, like MessageReceived, MessageSent, SessionOpened, ...</td>
+</tr>
+<tr>
+<td>ProtocolCodec</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/codec/ProtocolCodecFilter.html">ProtocolCodecFilter</a></td>
+<td>A filter in charge of encoding and decoding messages</td>
+</tr>
+<tr>
+<td>Proxy</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/proxy/filter/ProxyFilter.html">ProxyFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>Reference counting</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/ReferenceCountingFilter.html">ReferenceCountingFilter</a></td>
+<td>Keeps track of the number of usages of this filter</td>
+</tr>
+<tr>
+<td>RequestResponse</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/reqres/RequestResponseFilter.html">RequestResponseFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>SessionAttributeInitializing</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/SessionAttributeInitializingFilter.html">SessionAttributeInitializingFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>StreamWrite</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/stream/StreamWriteFilter.html">StreamWriteFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>SslFilter</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/ssl/SslFilter.html">SslFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>WriteRequest</td>
+<td><a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/util/WriteRequestFilter.html">WriteRequestFilter</a></td>
+<td>&nbsp;</td>
+</tr>
+</tbody>
+</table>
 <h2 id="overriding-events-selectively">Overriding Events Selectively</h2>
 <p>You can extend IoAdapter instead of implementing IoFilter directly. Unless overriden, any received events will be forward to the next filter immediately:</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">class</span> <span class="n">MyFilter</span> <span class="n">extends</span> <span class="n">IoFilterAdapter</span> <span class="p">{</span>
-    <span class="nv">@Override</span>
-    <span class="n">public</span> <span class="n">void</span> <span class="n">sessionOpened</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
-        <span class="sr">//</span> <span class="n">Some</span> <span class="n">logic</span> <span class="n">here</span><span class="o">...</span>
-        <span class="n">nextFilter</span><span class="o">.</span><span class="n">sessionOpened</span><span class="p">(</span><span class="n">session</span><span class="p">);</span>
-        <span class="sr">//</span> <span class="n">Some</span> <span class="n">other</span> <span class="n">logic</span> <span class="n">here</span><span class="o">...</span>
-    <span class="p">}</span>
-<span class="p">}</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyFilter</span> <span class="kd">extends</span> <span class="n">IoFilterAdapter</span> <span class="o">{</span>
+    <span class="nd">@Override</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">sessionOpened</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</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="c1">// Some logic here...</span>
+        <span class="n">nextFilter</span><span class="o">.</span><span class="na">sessionOpened</span><span class="o">(</span><span class="n">session</span><span class="o">);</span>
+        <span class="c1">// Some other logic here...</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
@@ -299,85 +301,85 @@
 <p>If you are going to transform an incoming write request via IoSession.write(), things can get pretty tricky. For example, let's assume your filter transforms HighLevelMessage to LowLevelMessage when IoSession.write() is invoked with a HighLevelMessage object. You could insert appropriate transformation code to your filter's filterWrite() method and think that's all. However, you have to note that you also need to take care of messageSent event because an IoHandler or any filters next to yours will expect messageSent() method is called with HighLevelMessage as a parameter, because it's irrational for the caller to get notified that LowLevelMessage is sent when the caller actually wrote HighLevelMessage. Consequently, you have to implement both filterWrite() and messageSent() if your filter performs transformation.</p>
 <p>Please also note that you still need to implement similar mechanism even if the types of the input object and the output object are identical (e.g. CompressionFilter) because the caller of IoSession.write() will expect exactly what he wrote in his or her messageSent() handler method.</p>
 <p>Let's assume that you are implementing a filter that transforms a String into a char[]. Your filter's filterWrite() will look like the following:</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">void</span> <span class="n">filterWrite</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">,</span> <span class="n">WriteRequest</span> <span class="n">request</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">nextFilter</span><span class="o">.</span><span class="n">filterWrite</span><span class="p">(</span>
-        <span class="n">session</span><span class="p">,</span> <span class="k">new</span> <span class="n">DefaultWriteRequest</span><span class="p">(</span>
-                <span class="p">((</span><span class="n">String</span><span class="p">)</span> <span class="n">request</span><span class="o">.</span><span class="n">getMessage</span><span class="p">())</span><span class="o">.</span><span class="n">toCharArray</span><span class="p">(),</span> <span class="n">request</span><span class="o">.</span><span class="n">getFuture</span><span class="p">(),</span> <span class="n">request</span><span class="o">.</span><span class="n">getDestination</span><span class="p">()));</span>
-<span class="p">}</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">filterWrite</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="o">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="o">,</span> <span class="n">WriteRequest</span> <span class="n">request</span><span class="o">)</span> <span class="o">{</span>
+    <span class="n">nextFilter</span><span class="o">.</span><span class="na">filterWrite</span><span class="o">(</span>
+        <span class="n">session</span><span class="o">,</span> <span class="k">new</span> <span class="n">DefaultWriteRequest</span><span class="o">(</span>
+                <span class="o">((</span><span class="n">String</span><span class="o">)</span> <span class="n">request</span><span class="o">.</span><span class="na">getMessage</span><span class="o">()).</span><span class="na">toCharArray</span><span class="o">(),</span> <span class="n">request</span><span class="o">.</span><span class="na">getFuture</span><span class="o">(),</span> <span class="n">request</span><span class="o">.</span><span class="na">getDestination</span><span class="o">()));</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <p>Now, we need to do the reverse in messageSent():</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">void</span> <span class="n">messageSent</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">,</span> <span class="n">Object</span> <span class="n">message</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">nextFilter</span><span class="o">.</span><span class="n">messageSent</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="k">new</span> <span class="n">String</span><span class="p">((</span><span class="n">char</span><span class="o">[]</span><span class="p">)</span> <span class="n">message</span><span class="p">));</span>
-<span class="p">}</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">messageSent</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</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="o">{</span>
+    <span class="n">nextFilter</span><span class="o">.</span><span class="na">messageSent</span><span class="o">(</span><span class="n">session</span><span class="o">,</span> <span class="k">new</span> <span class="n">String</span><span class="o">((</span><span class="kt">char</span><span class="o">[])</span> <span class="n">message</span><span class="o">));</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <p>What about String-to-ByteBuffer transformation? We can be a little bit more efficient because we don't need to reconstruct the original message (String). However, it's somewhat more complex than the previous example:</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">void</span> <span class="n">filterWrite</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">,</span> <span class="n">WriteRequest</span> <span class="n">request</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">String</span> <span class="n">m</span> <span class="o">=</span> <span class="p">(</span><span class="n">String</span><span class="p">)</span> <span class="n">request</span><span class="o">.</span><span class="n">getMessage</span><span class="p">();</span>
-    <span class="n">ByteBuffer</span> <span class="n">newBuffer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">MyByteBuffer</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="n">ByteBuffer</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">getBytes</span><span class="p">());</span>
-
-    <span class="n">nextFilter</span><span class="o">.</span><span class="n">filterWrite</span><span class="p">(</span>
-            <span class="n">session</span><span class="p">,</span> <span class="k">new</span> <span class="n">WriteRequest</span><span class="p">(</span><span class="n">newBuffer</span><span class="p">,</span> <span class="n">request</span><span class="o">.</span><span class="n">getFuture</span><span class="p">(),</span> <span class="n">request</span><span class="o">.</span><span class="n">getDestination</span><span class="p">()));</span>
-<span class="p">}</span>
-
-<span class="n">public</span> <span class="n">void</span> <span class="n">messageSent</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">,</span> <span class="n">Object</span> <span class="n">message</span><span class="p">)</span> <span class="p">{</span>
-    <span class="k">if</span> <span class="p">(</span><span class="n">message</span> <span class="n">instanceof</span> <span class="n">MyByteBuffer</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">nextFilter</span><span class="o">.</span><span class="n">messageSent</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="p">((</span><span class="n">MyByteBuffer</span><span class="p">)</span> <span class="n">message</span><span class="p">)</span><span class="o">.</span><span class="n">originalValue</span><span class="p">);</span>
-    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
-        <span class="n">nextFilter</span><span class="o">.</span><span class="n">messageSent</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="n">message</span><span class="p">);</span>
-    <span class="p">}</span>
-<span class="p">}</span>
-
-<span class="n">private</span> <span class="n">static</span> <span class="n">class</span> <span class="n">MyByteBuffer</span> <span class="n">extends</span> <span class="n">ByteBufferProxy</span> <span class="p">{</span>
-    <span class="n">private</span> <span class="n">final</span> <span class="n">Object</span> <span class="n">originalValue</span><span class="p">;</span>
-    <span class="n">private</span> <span class="n">MyByteBuffer</span><span class="p">(</span><span class="n">Object</span> <span class="n">originalValue</span><span class="p">,</span> <span class="n">ByteBuffer</span> <span class="n">encodedValue</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">super</span><span class="p">(</span><span class="n">encodedValue</span><span class="p">);</span>
-        <span class="n">this</span><span class="o">.</span><span class="n">originalValue</span> <span class="o">=</span> <span class="n">originalValue</span><span class="p">;</span>
-    <span class="p">}</span>
-<span class="p">}</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">filterWrite</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="o">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="o">,</span> <span class="n">WriteRequest</span> <span class="n">request</span><span class="o">)</span> <span class="o">{</span>
+    <span class="n">String</span> <span class="n">m</span> <span class="o">=</span> <span class="o">(</span><span class="n">String</span><span class="o">)</span> <span class="n">request</span><span class="o">.</span><span class="na">getMessage</span><span class="o">();</span>
+    <span class="n">ByteBuffer</span> <span class="n">newBuffer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">MyByteBuffer</span><span class="o">(</span><span class="n">m</span><span class="o">,</span> <span class="n">ByteBuffer</span><span class="o">.</span><span class="na">wrap</span><span class="o">(</span><span class="n">m</span><span class="o">.</span><span class="na">getBytes</span><span class="o">());</span>
+
+    <span class="n">nextFilter</span><span class="o">.</span><span class="na">filterWrite</span><span class="o">(</span>
+            <span class="n">session</span><span class="o">,</span> <span class="k">new</span> <span class="n">WriteRequest</span><span class="o">(</span><span class="n">newBuffer</span><span class="o">,</span> <span class="n">request</span><span class="o">.</span><span class="na">getFuture</span><span class="o">(),</span> <span class="n">request</span><span class="o">.</span><span class="na">getDestination</span><span class="o">()));</span>
+<span class="o">}</span>
+
+<span class="kd">public</span> <span class="kt">void</span> <span class="nf">messageSent</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</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="o">{</span>
+    <span class="k">if</span> <span class="o">(</span><span class="n">message</span> <span class="k">instanceof</span> <span class="n">MyByteBuffer</span><span class="o">)</span> <span class="o">{</span>
+        <span class="n">nextFilter</span><span class="o">.</span><span class="na">messageSent</span><span class="o">(</span><span class="n">session</span><span class="o">,</span> <span class="o">((</span><span class="n">MyByteBuffer</span><span class="o">)</span> <span class="n">message</span><span class="o">).</span><span class="na">originalValue</span><span class="o">);</span>
+    <span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
+        <span class="n">nextFilter</span><span class="o">.</span><span class="na">messageSent</span><span class="o">(</span><span class="n">session</span><span class="o">,</span> <span class="n">message</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+
+<span class="kd">private</span> <span class="kd">static</span> <span class="kd">class</span> <span class="nc">MyByteBuffer</span> <span class="kd">extends</span> <span class="n">ByteBufferProxy</span> <span class="o">{</span>
+    <span class="kd">private</span> <span class="kd">final</span> <span class="n">Object</span> <span class="n">originalValue</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="nf">MyByteBuffer</span><span class="o">(</span><span class="n">Object</span> <span class="n">originalValue</span><span class="o">,</span> <span class="n">ByteBuffer</span> <span class="n">encodedValue</span><span class="o">)</span> <span class="o">{</span>
+        <span class="kd">super</span><span class="o">(</span><span class="n">encodedValue</span><span class="o">);</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">originalValue</span> <span class="o">=</span> <span class="n">originalValue</span><span class="o">;</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
 <p>If you are using MINA 2.0, it will be somewhat different from 1.0 and 1.1. Please refer to <a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/compression/CompressionFilter.html">CompressionFilter</a> and <a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/filter/reqres/RequestResponseFilter.html">RequestResponseFilter</a> meanwhile.</p>
 <h2 id="be-careful-when-filtering-sessioncreated-event">Be Careful When Filtering sessionCreated Event</h2>
 <p>sessionCreated is a special event that must be executed in the I/O processor thread (see Configuring Thread Model). Never forward sessionCreated event to the other thread.</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">void</span> <span class="n">sessionCreated</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
-    <span class="sr">//</span> <span class="o">...</span>
-    <span class="n">nextFilter</span><span class="o">.</span><span class="n">sessionCreated</span><span class="p">(</span><span class="n">session</span><span class="p">);</span>
-<span class="p">}</span>
-
-<span class="sr">//</span> <span class="n">DON</span><span class="err">&#39;</span><span class="n">T</span> <span class="n">DO</span> <span class="n">THIS</span><span class="o">!</span>
-<span class="n">public</span> <span class="n">void</span> <span class="n">sessionCreated</span><span class="p">(</span><span class="n">final</span> <span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">final</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">)</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
-    <span class="n">Executor</span> <span class="n">executor</span> <span class="o">=</span> <span class="o">...</span><span class="p">;</span>
-    <span class="n">executor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="k">new</span> <span class="n">Runnable</span><span class="p">()</span> <span class="p">{</span>
-        <span class="n">nextFilter</span><span class="o">.</span><span class="n">sessionCreated</span><span class="p">(</span><span class="n">session</span><span class="p">);</span>
-        <span class="p">});</span>
-    <span class="p">}</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">sessionCreated</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</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="c1">// ...</span>
+    <span class="n">nextFilter</span><span class="o">.</span><span class="na">sessionCreated</span><span class="o">(</span><span class="n">session</span><span class="o">);</span>
+<span class="o">}</span>
+
+<span class="c1">// DON&#39;T DO THIS!</span>
+<span class="kd">public</span> <span class="kt">void</span> <span class="nf">sessionCreated</span><span class="o">(</span><span class="kd">final</span> <span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="o">,</span> <span class="kd">final</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">Executor</span> <span class="n">executor</span> <span class="o">=</span> <span class="o">...;</span>
+    <span class="n">executor</span><span class="o">.</span><span class="na">execute</span><span class="o">(</span><span class="k">new</span> <span class="n">Runnable</span><span class="o">()</span> <span class="o">{</span>
+        <span class="n">nextFilter</span><span class="o">.</span><span class="na">sessionCreated</span><span class="o">(</span><span class="n">session</span><span class="o">);</span>
+        <span class="o">});</span>
+    <span class="o">}</span>
 </pre></div>
 
 
 <h2 id="watch-out-the-empty-buffers">Watch out the Empty Buffers!</h2>
 <p>MINA uses an empty buffer as an internal signal at a couple of cases. Empty buffers sometimes become a problem because it's a cause of various exceptions such as IndexOutOfBoundsException. This section explains how to avoid such a unexpected situation.</p>
 <p>ProtocolCodecFilter uses an empty buffer (i.e. buf.hasRemaining() = 0) to mark the end of the message. If your filter is placed before the ProtocolCodecFilter, please make sure your filter forward the empty buffer to the next filter if your filter implementation can throw a unexpected exception if the buffer is empty:</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">void</span> <span class="n">messageSent</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">,</span> <span class="n">Object</span> <span class="n">message</span><span class="p">)</span> <span class="p">{</span>
-    <span class="k">if</span> <span class="p">(</span><span class="n">message</span> <span class="n">instanceof</span> <span class="n">ByteBuffer</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">((</span><span class="n">ByteBuffer</span><span class="p">)</span> <span class="n">message</span><span class="p">)</span><span class="o">.</span><span class="n">hasRemaining</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">nextFilter</span><span class="o">.</span><span class="n">messageSent</span><span class="p">(</span><span class="n">nextFilter</span><span class="p">,</span> <span class="n">session</span><span class="p">,</span> <span class="n">message</span><span class="p">);</span>
-        <span class="k">return</span><span class="p">;</span>
-    <span class="p">}</span>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">messageSent</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</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="o">{</span>
+    <span class="k">if</span> <span class="o">(</span><span class="n">message</span> <span class="k">instanceof</span> <span class="n">ByteBuffer</span> <span class="o">&amp;&amp;</span> <span class="o">!((</span><span class="n">ByteBuffer</span><span class="o">)</span> <span class="n">message</span><span class="o">).</span><span class="na">hasRemaining</span><span class="o">())</span> <span class="o">{</span>
+        <span class="n">nextFilter</span><span class="o">.</span><span class="na">messageSent</span><span class="o">(</span><span class="n">nextFilter</span><span class="o">,</span> <span class="n">session</span><span class="o">,</span> <span class="n">message</span><span class="o">);</span>
+        <span class="k">return</span><span class="o">;</span>
+    <span class="o">}</span>
     <span class="o">...</span>
-<span class="p">}</span>
+<span class="o">}</span>
 
-<span class="n">public</span> <span class="n">void</span> <span class="n">filterWrite</span><span class="p">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="p">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="p">,</span> <span class="n">WriteRequest</span> <span class="n">request</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">Object</span> <span class="n">message</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">getMessage</span><span class="p">();</span>
-    <span class="k">if</span> <span class="p">(</span><span class="n">message</span> <span class="n">instanceof</span> <span class="n">ByteBuffer</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">((</span><span class="n">ByteBuffer</span><span class="p">)</span> <span class="n">message</span><span class="p">)</span><span class="o">.</span><span class="n">hasRemaining</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">nextFilter</span><span class="o">.</span><span class="n">filterWrite</span><span class="p">(</span><span class="n">nextFilter</span><span class="p">,</span> <span class="n">session</span><span class="p">,</span> <span class="n">request</span><span class="p">);</span>
-        <span class="k">return</span><span class="p">;</span>
-    <span class="p">}</span>
+<span class="kd">public</span> <span class="kt">void</span> <span class="nf">filterWrite</span><span class="o">(</span><span class="n">NextFilter</span> <span class="n">nextFilter</span><span class="o">,</span> <span class="n">IoSession</span> <span class="n">session</span><span class="o">,</span> <span class="n">WriteRequest</span> <span class="n">request</span><span class="o">)</span> <span class="o">{</span>
+    <span class="n">Object</span> <span class="n">message</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="na">getMessage</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">ByteBuffer</span> <span class="o">&amp;&amp;</span> <span class="o">!((</span><span class="n">ByteBuffer</span><span class="o">)</span> <span class="n">message</span><span class="o">).</span><span class="na">hasRemaining</span><span class="o">())</span> <span class="o">{</span>
+        <span class="n">nextFilter</span><span class="o">.</span><span class="na">filterWrite</span><span class="o">(</span><span class="n">nextFilter</span><span class="o">,</span> <span class="n">session</span><span class="o">,</span> <span class="n">request</span><span class="o">);</span>
+        <span class="k">return</span><span class="o">;</span>
+    <span class="o">}</span>
     <span class="o">...</span>
-<span class="p">}</span>
+<span class="o">}</span>
 </pre></div>
 
 

Modified: websites/staging/mina/trunk/content/mina/userguide/ch6-transports/apr-transport.html
==============================================================================
--- websites/staging/mina/trunk/content/mina/userguide/ch6-transports/apr-transport.html (original)
+++ websites/staging/mina/trunk/content/mina/userguide/ch6-transports/apr-transport.html Thu Nov  1 05:13:20 2012
@@ -162,32 +162,32 @@
 <h2 id="using-apr-transport">Using APR Transport</h2>
 <p>Refer <a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/example/gettingstarted/timeserver/">Time Server</a> example for complete source</p>
 <p>Lets see how NIO based Time server implementation looks like</p>
-<div class="codehilite"><pre><span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NioSocketAcceptor</span><span class="p">();</span>
+<div class="codehilite"><pre><span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">NioSocketAcceptor</span><span class="o">();</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getFilterChain</span><span class="p">()</span><span class="o">.</span><span class="n">addLast</span><span class="p">(</span> <span class="s">&quot;logger&quot;</span><span class="p">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="p">()</span> <span class="p">);</span>
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getFilterChain</span><span class="p">()</span><span class="o">.</span><span class="n">addLast</span><span class="p">(</span> <span class="s">&quot;codec&quot;</span><span class="p">,</span> <span class="k">new</span> <span class="n">ProtocolCodecFilter</span><span class="p">(</span> <span class="k">new</span> <span class="n">TextLineCodecFactory</span><span class="p">(</span> <span class="n">Charset</span><span class="o">.</span><span class="n">forName</span><span class="p">(</span> <span class="s">&quot;UTF-8&quot;</span> <span class="p">))));</span>
+<span class="n">acceptor</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;logger&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="o">()</span> <span class="o">);</span>
+<span class="n">acceptor</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="n">ProtocolCodecFilter</span><span class="o">(</span> <span class="k">new</span> <span class="n">TextLineCodecFactory</span><span class="o">(</span> <span class="n">Charset</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span> <span class="s">&quot;UTF-8&quot;</span> <span class="o">))));</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="n">setHandler</span><span class="p">(</span>  <span class="k">new</span> <span class="n">TimeServerHandler</span><span class="p">()</span> <span class="p">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">setHandler</span><span class="o">(</span>  <span class="k">new</span> <span class="n">TimeServerHandler</span><span class="o">()</span> <span class="o">);</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getSessionConfig</span><span class="p">()</span><span class="o">.</span><span class="n">setReadBufferSize</span><span class="p">(</span> <span class="mi">2048</span> <span class="p">);</span>
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getSessionConfig</span><span class="p">()</span><span class="o">.</span><span class="n">setIdleTime</span><span class="p">(</span> <span class="n">IdleStatus</span><span class="o">.</span><span class="n">BOTH_IDLE</span><span class="p">,</span> <span class="mi">10</span> <span class="p">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">getSessionConfig</span><span class="o">().</span><span class="na">setReadBufferSize</span><span class="o">(</span> <span class="mi">2048</span> <span class="o">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">getSessionConfig</span><span class="o">().</span><span class="na">setIdleTime</span><span class="o">(</span> <span class="n">IdleStatus</span><span class="o">.</span><span class="na">BOTH_IDLE</span><span class="o">,</span> <span class="mi">10</span> <span class="o">);</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="nb">bind</span><span class="p">(</span> <span class="k">new</span> <span class="n">InetSocketAddress</span><span class="p">(</span><span class="n">PORT</span><span class="p">)</span> <span class="p">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">bind</span><span class="o">(</span> <span class="k">new</span> <span class="n">InetSocketAddress</span><span class="o">(</span><span class="n">PORT</span><span class="o">)</span> <span class="o">);</span>
 </pre></div>
 
 
 <p>Lets see how to use APR Transport</p>
-<div class="codehilite"><pre><span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AprSocketAcceptor</span><span class="p">();</span>
+<div class="codehilite"><pre><span class="n">IoAcceptor</span> <span class="n">acceptor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AprSocketAcceptor</span><span class="o">();</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getFilterChain</span><span class="p">()</span><span class="o">.</span><span class="n">addLast</span><span class="p">(</span> <span class="s">&quot;logger&quot;</span><span class="p">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="p">()</span> <span class="p">);</span>
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getFilterChain</span><span class="p">()</span><span class="o">.</span><span class="n">addLast</span><span class="p">(</span> <span class="s">&quot;codec&quot;</span><span class="p">,</span> <span class="k">new</span> <span class="n">ProtocolCodecFilter</span><span class="p">(</span> <span class="k">new</span> <span class="n">TextLineCodecFactory</span><span class="p">(</span> <span class="n">Charset</span><span class="o">.</span><span class="n">forName</span><span class="p">(</span> <span class="s">&quot;UTF-8&quot;</span> <span class="p">))));</span>
+<span class="n">acceptor</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;logger&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">LoggingFilter</span><span class="o">()</span> <span class="o">);</span>
+<span class="n">acceptor</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="n">ProtocolCodecFilter</span><span class="o">(</span> <span class="k">new</span> <span class="n">TextLineCodecFactory</span><span class="o">(</span> <span class="n">Charset</span><span class="o">.</span><span class="na">forName</span><span class="o">(</span> <span class="s">&quot;UTF-8&quot;</span> <span class="o">))));</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="n">setHandler</span><span class="p">(</span>  <span class="k">new</span> <span class="n">TimeServerHandler</span><span class="p">()</span> <span class="p">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">setHandler</span><span class="o">(</span>  <span class="k">new</span> <span class="n">TimeServerHandler</span><span class="o">()</span> <span class="o">);</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getSessionConfig</span><span class="p">()</span><span class="o">.</span><span class="n">setReadBufferSize</span><span class="p">(</span> <span class="mi">2048</span> <span class="p">);</span>
-<span class="n">acceptor</span><span class="o">.</span><span class="n">getSessionConfig</span><span class="p">()</span><span class="o">.</span><span class="n">setIdleTime</span><span class="p">(</span> <span class="n">IdleStatus</span><span class="o">.</span><span class="n">BOTH_IDLE</span><span class="p">,</span> <span class="mi">10</span> <span class="p">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">getSessionConfig</span><span class="o">().</span><span class="na">setReadBufferSize</span><span class="o">(</span> <span class="mi">2048</span> <span class="o">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">getSessionConfig</span><span class="o">().</span><span class="na">setIdleTime</span><span class="o">(</span> <span class="n">IdleStatus</span><span class="o">.</span><span class="na">BOTH_IDLE</span><span class="o">,</span> <span class="mi">10</span> <span class="o">);</span>
 
-<span class="n">acceptor</span><span class="o">.</span><span class="nb">bind</span><span class="p">(</span> <span class="k">new</span> <span class="n">InetSocketAddress</span><span class="p">(</span><span class="n">PORT</span><span class="p">)</span> <span class="p">);</span>
+<span class="n">acceptor</span><span class="o">.</span><span class="na">bind</span><span class="o">(</span> <span class="k">new</span> <span class="n">InetSocketAddress</span><span class="o">(</span><span class="n">PORT</span><span class="o">)</span> <span class="o">);</span>
 </pre></div>
 
 

Modified: websites/staging/mina/trunk/content/mina/userguide/ch6-transports/serial-transport.html
==============================================================================
--- websites/staging/mina/trunk/content/mina/userguide/ch6-transports/serial-transport.html (original)
+++ websites/staging/mina/trunk/content/mina/userguide/ch6-transports/serial-transport.html Thu Nov  1 05:13:20 2012
@@ -168,15 +168,15 @@
 <p>Serial communication for MINA provide only an IoConnector, due to the point-to-point nature of the communication media.</p>
 <p>At this point you are supposed to have already read the MINA tutorial.</p>
 <p>Now for connecting to a serial port you need a SerialConnector :</p>
-<div class="codehilite"><pre><span class="sr">//</span> <span class="n">create</span> <span class="n">your</span> <span class="n">connector</span>
-<span class="n">IoConnector</span> <span class="n">connector</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SerialConnector</span><span class="p">()</span>
-<span class="n">connector</span><span class="o">.</span><span class="n">setHandler</span><span class="p">(</span> <span class="o">...</span> <span class="n">here</span> <span class="n">your</span> <span class="n">buisness</span> <span class="n">logic</span> <span class="n">IoHandler</span> <span class="o">...</span> <span class="p">);</span>
+<div class="codehilite"><pre><span class="c1">// create your connector</span>
+<span class="n">IoConnector</span> <span class="n">connector</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SerialConnector</span><span class="o">()</span>
+<span class="n">connector</span><span class="o">.</span><span class="na">setHandler</span><span class="o">(</span> <span class="o">...</span> <span class="n">here</span> <span class="n">your</span> <span class="n">buisness</span> <span class="n">logic</span> <span class="n">IoHandler</span> <span class="o">...</span> <span class="o">);</span>
 </pre></div>
 
 
 <p>Nothing very different of a SocketConnector.</p>
 <p>Let's create an address for connecting to our serial port.</p>
-<div class="codehilite"><pre><span class="n">SerialAddress</span> <span class="n">portAddress</span><span class="o">=</span><span class="k">new</span> <span class="n">SerialAddress</span><span class="p">(</span> <span class="s">&quot;/dev/ttyS0&quot;</span><span class="p">,</span> <span class="mi">38400</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="n">StopBits</span><span class="o">.</span><span class="n">BITS_1</span><span class="p">,</span> <span class="n">Parity</span><span class="o">.</span><span class="n">NONE</span><span class="p">,</span> <span class="n">FlowControl</span><span class="o">.</span><span class="n">NONE</span> <span class="p">);</span>
+<div class="codehilite"><pre><span class="n">SerialAddress</span> <span class="n">portAddress</span><span class="o">=</span><span class="k">new</span> <span class="n">SerialAddress</span><span class="o">(</span> <span class="s">&quot;/dev/ttyS0&quot;</span><span class="o">,</span> <span class="mi">38400</span><span class="o">,</span> <span class="mi">8</span><span class="o">,</span> <span class="n">StopBits</span><span class="o">.</span><span class="na">BITS_1</span><span class="o">,</span> <span class="n">Parity</span><span class="o">.</span><span class="na">NONE</span><span class="o">,</span> <span class="n">FlowControl</span><span class="o">.</span><span class="na">NONE</span> <span class="o">);</span>
 </pre></div>
 
 
@@ -189,9 +189,9 @@
 <li>the flow control mecanism</li>
 </ul>
 <p>Once it's done, connect the connector to the address :</p>
-<div class="codehilite"><pre><span class="n">ConnectFuture</span> <span class="n">future</span> <span class="o">=</span> <span class="n">connector</span><span class="o">.</span><span class="nb">connect</span><span class="p">(</span> <span class="n">portAddress</span> <span class="p">);</span>
-<span class="n">future</span><span class="o">.</span><span class="n">await</span><span class="p">();</span>
-<span class="n">IoSession</span> <span class="n">sessin</span> <span class="o">=</span> <span class="n">future</span><span class="o">.</span><span class="n">getSession</span><span class="p">();</span>
+<div class="codehilite"><pre><span class="n">ConnectFuture</span> <span class="n">future</span> <span class="o">=</span> <span class="n">connector</span><span class="o">.</span><span class="na">connect</span><span class="o">(</span> <span class="n">portAddress</span> <span class="o">);</span>
+<span class="n">future</span><span class="o">.</span><span class="na">await</span><span class="o">();</span>
+<span class="n">IoSession</span> <span class="n">sessin</span> <span class="o">=</span> <span class="n">future</span><span class="o">.</span><span class="na">getSession</span><span class="o">();</span>
 </pre></div>
 
 

Modified: websites/staging/mina/trunk/content/mina/userguide/ch8-iobuffer/ch8-iobuffer.html
==============================================================================
--- websites/staging/mina/trunk/content/mina/userguide/ch8-iobuffer/ch8-iobuffer.html (original)
+++ websites/staging/mina/trunk/content/mina/userguide/ch8-iobuffer/ch8-iobuffer.html Thu Nov  1 05:13:20 2012
@@ -168,11 +168,11 @@
 <h2 id="iobuffer-operations">IoBuffer Operations</h2>
 <h3 id="allocating-a-new-buffer">Allocating a new Buffer</h3>
 <p>IoBuffer is an abstract class, hence can't be instantiated directly. To allocate IoBuffer, we need to use one of the two allocate() methods.</p>
-<div class="codehilite"><pre><span class="sr">//</span> <span class="n">Allocates</span> <span class="n">a</span> <span class="k">new</span> <span class="n">buffer</span> <span class="n">with</span> <span class="n">a</span> <span class="n">specific</span> <span class="n">size</span><span class="p">,</span> <span class="n">defining</span> <span class="n">its</span> <span class="n">type</span> <span class="p">(</span><span class="n">direct</span> <span class="ow">or</span> <span class="n">heap</span><span class="p">)</span>
-<span class="n">public</span> <span class="n">static</span> <span class="n">IoBuffer</span> <span class="n">allocate</span><span class="p">(</span><span class="nb">int</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">boolean</span> <span class="n">direct</span><span class="p">)</span>
+<div class="codehilite"><pre><span class="c1">// Allocates a new buffer with a specific size, defining its type (direct or heap)</span>
+<span class="kd">public</span> <span class="kd">static</span> <span class="n">IoBuffer</span> <span class="nf">allocate</span><span class="o">(</span><span class="kt">int</span> <span class="n">capacity</span><span class="o">,</span> <span class="kt">boolean</span> <span class="n">direct</span><span class="o">)</span>
 
-<span class="sr">//</span> <span class="n">Allocates</span> <span class="n">a</span> <span class="k">new</span> <span class="n">buffer</span> <span class="n">with</span> <span class="n">a</span> <span class="n">specific</span> <span class="n">size</span>
-<span class="n">public</span> <span class="n">static</span> <span class="n">IoBuffer</span> <span class="n">allocate</span><span class="p">(</span><span class="nb">int</span> <span class="n">capacity</span><span class="p">)</span>
+<span class="c1">// Allocates a new buffer with a specific size</span>
+<span class="kd">public</span> <span class="kd">static</span> <span class="n">IoBuffer</span> <span class="nf">allocate</span><span class="o">(</span><span class="kt">int</span> <span class="n">capacity</span><span class="o">)</span>
 </pre></div>
 
 
@@ -183,10 +183,10 @@
 </ul>
 <p>The default buffer allocation is handled by <a href="http://mina.apache.org/report/trunk/xref/org/apache/mina/core/buffer/SimpleBufferAllocator.html">SimpleBufferAllocator</a></p>
 <p>Alternatively, following form can also be used</p>
-<div class="codehilite"><pre><span class="sr">//</span> <span class="n">Allocates</span> <span class="n">heap</span> <span class="n">buffer</span> <span class="n">by</span> <span class="n">default</span><span class="o">.</span>
-<span class="n">IoBuffer</span><span class="o">.</span><span class="n">setUseDirectBuffer</span><span class="p">(</span><span class="n">false</span><span class="p">);</span>
-<span class="sr">//</span> <span class="n">A</span> <span class="k">new</span> <span class="n">heap</span> <span class="n">buffer</span> <span class="n">is</span> <span class="n">returned</span><span class="o">.</span>
-<span class="n">IoBuffer</span> <span class="n">buf</span> <span class="o">=</span> <span class="n">IoBuffer</span><span class="o">.</span><span class="n">allocate</span><span class="p">(</span><span class="mi">1024</span><span class="p">);</span>
+<div class="codehilite"><pre><span class="c1">// Allocates heap buffer by default.</span>
+<span class="n">IoBuffer</span><span class="o">.</span><span class="na">setUseDirectBuffer</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
+<span class="c1">// A new heap buffer is returned.</span>
+<span class="n">IoBuffer</span> <span class="n">buf</span> <span class="o">=</span> <span class="n">IoBuffer</span><span class="o">.</span><span class="na">allocate</span><span class="o">(</span><span class="mi">1024</span><span class="o">);</span>
 </pre></div>
 
 
@@ -194,11 +194,11 @@
 <h2 id="creating-auto-expanding-buffer">Creating Auto Expanding Buffer</h2>
 <p>Creating auto expanding buffer is not very easy with java NIO API's, because of the fixed size of the buffers. Having a buffer, that can auto expand on needs is a big plus for networking applications. To address this, IoBuffer has introduced the autoExpand property. It automatically expands its capacity and limit value.</p>
 <p>Lets see how to create an auto expanding buffer :</p>
-<div class="codehilite"><pre><span class="n">IoBuffer</span> <span class="n">buffer</span> <span class="o">=</span> <span class="n">IoBuffer</span><span class="o">.</span><span class="n">allocate</span><span class="p">(</span><span class="mi">8</span><span class="p">);</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">setAutoExpand</span><span class="p">(</span><span class="n">true</span><span class="p">);</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">putString</span><span class="p">(</span><span class="s">&quot;12345678&quot;</span><span class="p">,</span> <span class="n">encoder</span><span class="p">);</span>
-<span class="sr">//</span> <span class="n">Add</span> <span class="n">more</span> <span class="n">to</span> <span class="n">this</span> <span class="n">buffer</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="n">byte</span><span class="p">)</span><span class="mi">10</span><span class="p">);</span>
+<div class="codehilite"><pre><span class="n">IoBuffer</span> <span class="n">buffer</span> <span class="o">=</span> <span class="n">IoBuffer</span><span class="o">.</span><span class="na">allocate</span><span class="o">(</span><span class="mi">8</span><span class="o">);</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">setAutoExpand</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">putString</span><span class="o">(</span><span class="s">&quot;12345678&quot;</span><span class="o">,</span> <span class="n">encoder</span><span class="o">);</span>
+<span class="c1">// Add more to this buffer</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">put</span><span class="o">((</span><span class="kt">byte</span><span class="o">)</span><span class="mi">10</span><span class="o">);</span>
 </pre></div>
 
 
@@ -209,16 +209,16 @@
 <h2 id="creating-auto-shrinking-buffer">Creating Auto Shrinking Buffer</h2>
 <p>There are situations which calls for releasing additionally allocated bytes from the buffer, to preserve memory. IoBuffer provides autoShrink property to address the need.  If autoShrink is turned on, IoBuffer halves the capacity of the buffer when compact() is invoked and only 1/4 or less of the current capacity is being used. To manually shrink the buffer, use shrink() method.</p>
 <p>Lets see this in action :</p>
-<div class="codehilite"><pre><span class="n">IoBuffer</span> <span class="n">buffer</span> <span class="o">=</span> <span class="n">IoBuffer</span><span class="o">.</span><span class="n">allocate</span><span class="p">(</span><span class="mi">16</span><span class="p">);</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">setAutoShrink</span><span class="p">(</span><span class="n">true</span><span class="p">);</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="n">byte</span><span class="p">)</span><span class="mi">1</span><span class="p">);</span>
-<span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;Initial Buffer capacity = &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="n">capacity</span><span class="p">());</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">shrink</span><span class="p">();</span>
-<span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;Initial Buffer capacity after shrink = &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="n">capacity</span><span class="p">());</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">capacity</span><span class="p">(</span><span class="mi">32</span><span class="p">);</span>
-<span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;Buffer capacity after incrementing capacity to 32 = &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="n">capacity</span><span class="p">());</span>
-<span class="n">buffer</span><span class="o">.</span><span class="n">shrink</span><span class="p">();</span>
-<span class="n">System</span><span class="o">.</span><span class="n">out</span><span class="o">.</span><span class="n">println</span><span class="p">(</span><span class="s">&quot;Buffer capacity after shrink= &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="n">capacity</span><span class="p">());</span>
+<div class="codehilite"><pre><span class="n">IoBuffer</span> <span class="n">buffer</span> <span class="o">=</span> <span class="n">IoBuffer</span><span class="o">.</span><span class="na">allocate</span><span class="o">(</span><span class="mi">16</span><span class="o">);</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">setAutoShrink</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">put</span><span class="o">((</span><span class="kt">byte</span><span class="o">)</span><span class="mi">1</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;Initial Buffer capacity = &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="na">capacity</span><span class="o">());</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">shrink</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;Initial Buffer capacity after shrink = &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="na">capacity</span><span class="o">());</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">capacity</span><span class="o">(</span><span class="mi">32</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;Buffer capacity after incrementing capacity to 32 = &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="na">capacity</span><span class="o">());</span>
+<span class="n">buffer</span><span class="o">.</span><span class="na">shrink</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;Buffer capacity after shrink= &quot;</span><span class="o">+</span><span class="n">buffer</span><span class="o">.</span><span class="na">capacity</span><span class="o">());</span>
 </pre></div>