Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Mon Mar  2 15:25:49 
2015
@@ -4128,11 +4128,11 @@ While not actual tutorials you might fin
                     </div>
     </div>
 <h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the 
reader through the stages of creating a project which uses Camel to facilitate 
the routing of messages from a JMS queue to a <a shape="rect" 
class="external-link" href="http://www.springramework.org"; 
rel="nofollow">Spring</a> service. The route works in a synchronous fashion 
returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1425122337904 {padding: 0px;}
-div.rbtoc1425122337904 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1425122337904 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1425309761321 {padding: 0px;}
+div.rbtoc1425309761321 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1425309761321 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1425122337904">
+/*]]>*/</style></p><div class="toc-macro rbtoc1425309761321">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring 
Remoting with JMS</a></li><li><a shape="rect" 
href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect" 
href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a 
shape="rect" 
href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a 
shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a 
shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the 
Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with 
Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing 
the Server</a>
@@ -6318,11 +6318,11 @@ So we completed the last piece in the pi
 
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1425122339126 {padding: 0px;}
-div.rbtoc1425122339126 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1425122339126 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1425309765544 {padding: 0px;}
+div.rbtoc1425309765544 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1425309765544 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1425122339126">
+/*]]>*/</style><div class="toc-macro rbtoc1425309765544">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using 
Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a 
shape="rect" 
href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a 
shape="rect" 
href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a 
shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting 
up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a 
shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the 
Example</a></li></ul>
@@ -18853,11 +18853,11 @@ template.send(&quot;direct:alias-verify&
                     </div>
     </div>
 <p>The <strong>cxf:</strong> component provides integration with <a 
shape="rect" href="http://cxf.apache.org";>Apache CXF</a> for connecting to 
JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1425122352825 {padding: 0px;}
-div.rbtoc1425122352825 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1425122352825 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1425309834580 {padding: 0px;}
+div.rbtoc1425309834580 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1425309834580 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1425122352825">
+/*]]>*/</style></p><div class="toc-macro rbtoc1425309834580">
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF 
Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI 
format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#CXF-Thedescriptionsofthedataformats">The descriptions of the 
dataformats</a>
@@ -24916,79 +24916,31 @@ builder.unseen().body(Op.not, &quot;Spam
 SearchTerm term = builder.build();
 ]]></script>
 </div></div><p></p><h3 id="BookInOnePage-SeeAlso.59">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul> <h2 
id="BookInOnePage-MINAComponent">MINA Component</h2>
-<p><strong>Deprecated</strong></p>
-
-    <div class="aui-message problem shadowed information-macro">
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul> <h2 
id="BookInOnePage-MINAComponent">MINA 
Component</h2><p><strong>Deprecated</strong></p>    <div class="aui-message 
problem shadowed information-macro">
                     <p class="title">Deprecated</p>
                             <span class="aui-icon icon-problem">Icon</span>
                 <div class="message-content">
-                            
-<p>This component is deprecated as the Apache Mina 1.x project is EOL. Instead 
use <a shape="rect" href="mina2.html">Mina2</a> or <a shape="rect" 
href="netty.html">Netty</a> instead.</p>
+                            <p>This component is deprecated as the Apache Mina 
1.x project is EOL. Instead use <a shape="rect" href="mina2.html">MINA2</a> or 
<a shape="rect" href="netty.html">Netty</a> instead.</p>
                     </div>
     </div>
-
-
-<p>The <strong>mina:</strong> component is a transport for working with <a 
shape="rect" class="external-link" href="http://mina.apache.org/";>Apache 
MINA</a></p>
-
-<p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-&lt;dependency&gt;
+<p>The <strong>mina:</strong> component is a transport for working with <a 
shape="rect" class="external-link" href="http://mina.apache.org/";>Apache 
MINA</a></p><p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-mina&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-URIformat.44">URI format</h3>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-mina:tcp://hostname[:port][?options]
+</div></div><h3 id="BookInOnePage-URIformat.44">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[mina:tcp://hostname[:port][?options]
 mina:udp://hostname[:port][?options]
 mina:vm://hostname[:port][?options]
 ]]></script>
-</div></div>
-<p>You can specify a codec in the <a shape="rect" 
href="registry.html">Registry</a> using the <strong>codec</strong> option. If 
you are using TCP and no codec is specified then the <code>textline</code> flag 
is used to determine if text line based codec or object serialization should be 
used instead. By default the object serialization is used.</p>
-
-<p>For UDP if no codec is specified the default uses a basic 
<code>ByteBuffer</code> based codec.</p>
-
-<p>The VM protocol is used as a direct forwarding mechanism in the same JVM. 
See the <a shape="rect" class="external-link" 
href="http://mina.apache.org/report/1.1/apidocs/org/apache/mina/transport/vmpipe/package-summary.html";>MINA
 VM-Pipe API documentation</a> for details.</p>
-
-<p>A Mina producer has a default timeout value of 30 seconds, while it waits 
for a response from the remote server.</p>
-
-<p>In normal use, <code>camel-mina</code> only supports marshalling the body 
content&#8212;message headers and exchange properties are not sent.<br 
clear="none">
-However, the option, <strong>transferExchange</strong>, does allow you to 
transfer the exchange itself over the wire. See options below.</p>
-
-<p>You can append query options to the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p>
-
-<h3 id="BookInOnePage-Options.54">Options</h3>
-<div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Default Value </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>codec</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> You can refer to a named 
<code>ProtocolCodecFactory</code> instance in your <a shape="rect" 
href="registry.html">Registry</a> such as your Spring 
<code>ApplicationContext</code>, which is then used for the marshalling. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>codec</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> You must use the <code>#</code> notati
 on to look up your codec in the <a shape="rect" 
href="registry.html">Registry</a>. For example, use <code>#myCodec</code> to 
look up a bean with the <code>id</code> value, <code>myCodec</code>. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>disconnect</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <strong>Camel 2.3:</strong> Whether or not 
to disconnect(close) from Mina session right after use. Can be used for both 
consumer and producer. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>textline</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Only used for TCP. If no codec 
is specified, you can use this flag to indicate a text line based codec; if not 
specified or the value is <code>false</code>, then Object Serialization is 
 assumed over TCP. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>textlineDelimiter</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>DEFAULT</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Only used for TCP 
and if <strong>textline=true</strong>. Sets the text line delimiter to use. 
Possible values are: <code>DEFAULT</code>, <code>AUTO</code>, 
<code>WINDOWS</code>, <code>UNIX</code> or <code>MAC</code>. If none provided, 
Camel will use <code>DEFAULT</code>. This delimiter is used to mark the end of 
text. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>sync</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Setting to set endpoint as one-way or request-response. </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>lazySessionCreation</code> </p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Sessions can be lazily created 
to avoid exceptions, if the remote server is not up and running when the Camel 
producer is started. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>timeout</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>30000</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> You can configure the timeout 
that specifies how long to wait for a response from a remote server. The 
timeout unit is in milliseconds, so 60000 is 60 seconds. The timeout is only 
used for Mina producer. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>encoding</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <em>JVM Default</em> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> You can configure the encoding 
(a <a shape="rect" class="external-li
 nk" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/Charset.html"; 
rel="nofollow">charset name</a>) to use for the TCP textline codec and the UDP 
protocol. If not provided, Camel will use the <a shape="rect" 
class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/Charset.html#defaultCharset()"
 rel="nofollow">JVM default Charset</a>. </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>transferExchange</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Only used for 
TCP. You can transfer the exchange over the wire instead of just the body. The 
following fields are transferred: In body, Out body, fault body, In headers, 
Out headers, fault headers, exchange properties, exchange exception. This 
requires that the objects are <em>serializable</em>. Camel will exclude any 
non-serializable objects and log it at <code>WARN</code
 > level. </p></td></tr><tr><td colspan="1" rowspan="1" 
 > class="confluenceTd"><p> <code>minaLogger</code> </p></td><td colspan="1" 
 > rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td 
 > colspan="1" rowspan="1" class="confluenceTd"><p> You can enable the Apache 
 > MINA logging filter. Apache MINA uses <code>slf4j</code> logging at 
 > <code>INFO</code> level to log all input and output. </p></td></tr><tr><td 
 > colspan="1" rowspan="1" class="confluenceTd"><p> <code>filters</code> 
 > </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
 > <code>null</code> </p></td><td colspan="1" rowspan="1" 
 > class="confluenceTd"><p> You can set a list of <a shape="rect" 
 > class="external-link" href="http://mina.apache.org/iofilter.html";>Mina 
 > IoFilters</a> to register. The <code>filters</code> value must be one of the 
 > following:</p>
-<ul><li><strong>Camel 2.2:</strong> comma-separated list of bean references 
(e.g. <code>#filterBean1,#filterBean2</code>) where each bean must be of type 
<code>org.apache.mina.common.IoFilter</code>.</li><li><strong>before Camel 
2.2:</strong> a reference to a bean of type 
<code>List&lt;org.apache.mina.common.IoFilter&gt;</code>.</li></ul>
-</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>encoderMaxLineLength</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>-1</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> As of 2.1, you can set the textline protocol encoder 
max line length. By default the default value of Mina itself is used which are 
<code>Integer.MAX_VALUE</code>. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>decoderMaxLineLength</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>-1</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> As of 2.1, you can set the 
textline protocol decoder max line length. By default the default value of Mina 
itself is used which are 1024. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>producerPoolSize</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> 16 </p></td><td colspan="1" rowspan="1" 
class=
 "confluenceTd"><p> The TCP producer is thread safe and supports concurrency 
much better. This option allows you to configure the number of threads in its 
thread pool for concurrent producers. <strong>Note:</strong> Camel has a pooled 
service which ensured it was already thread safe and supported concurrency 
already. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>allowDefaultCodec</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The mina component installs a default codec if both, 
<code>codec</code> is <code>null</code> and <code>textline</code> is 
<code>false</code>. Setting <code>allowDefaultCodec</code> to 
<code>false</code> prevents the mina component from installing a default codec 
as the first element in the filter chain. This is useful in scenarios where 
another filter must be the first in the filter chain, like the SSL filter. 
</p></td></tr><tr><td
  colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>disconnectOnNoReply</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <strong>Camel 2.3:</strong> If sync is enabled then 
this option dictates MinaConsumer if it should disconnect where there is no 
reply to send back. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>noReplyLogLevel</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>WARN</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <strong>Camel 2.3:</strong> If sync is 
enabled this option dictates MinaConsumer which logging level to use when 
logging a there is no reply to send back. Values are: <code>FATAL, ERROR, INFO, 
DEBUG, OFF</code>. </p></td></tr></tbody></table></div>
-</div>
-
-<h3 id="BookInOnePage-Usingacustomcodec">Using a custom codec</h3>
-
-<p>See the <a shape="rect" class="external-link" 
href="http://mina.apache.org/tutorial-on-protocolcodecfilter.html";>Mina 
documentation</a> how to write your own codec. To use your custom codec with 
<code>camel-mina</code>, you should register your codec in the <a shape="rect" 
href="registry.html">Registry</a>; for example, by creating a bean in the 
Spring XML file. Then use the <code>codec</code> option to specify the bean ID 
of your codec. See <a shape="rect" href="hl7.html">HL7</a> that has a custom 
codec.</p>
-
-<h3 id="BookInOnePage-Samplewithsync=false">Sample with sync=false</h3>
-
-<p>In this sample, Camel exposes a service that listens for TCP connections on 
port 6200. We use the <strong>textline</strong> codec. In our route, we create 
a Mina consumer endpoint that listens on port 6200:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p>You can specify a codec in the <a shape="rect" 
href="registry.html">Registry</a> using the <strong>codec</strong> option. If 
you are using TCP and no codec is specified then the <code>textline</code> flag 
is used to determine if text line based codec or object serialization should be 
used instead. By default the object serialization is used.</p><p>For UDP if no 
codec is specified the default uses a basic <code>ByteBuffer</code> based 
codec.</p><p>The VM protocol is used as a direct forwarding mechanism in the 
same JVM. See the <a shape="rect" class="external-link" 
href="http://mina.apache.org/report/1.1/apidocs/org/apache/mina/transport/vmpipe/package-summary.html";>MINA
 VM-Pipe API documentation</a> for details.</p><p>A Mina producer has a default 
timeout value of 30 seconds, while it waits for a response from the remote 
server.</p><p>In normal use, <code>camel-mina</code> only supports marshalling 
the body content&#8212;message headers and exchange properties are not
  sent.<br clear="none"> However, the option, 
<strong>transferExchange</strong>, does allow you to transfer the exchange 
itself over the wire. See options below.</p><p>You can append query options to 
the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookInOnePage-Options.54">Options</h3><div 
class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>codec</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>You can refer to a named 
<code>ProtocolCodecFactory</code> instance in your <a shape="rect" 
href="registry.html">Registry</a> such as
  your Spring <code>ApplicationContext</code>, which is then used for the 
marshalling.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>codec</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>You must use the <code>#</code> notation to look up 
your codec in the <a shape="rect" href="registry.html">Registry</a>. For 
example, use <code>#myCodec</code> to look up a bean with the <code>id</code> 
value, <code>myCodec</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>disconnect</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> Whether or not 
to disconnect(close) from Mina session right after use. Can be used for both 
consumer and producer.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>tex
 tline</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Only used for TCP. If no codec is specified, you can 
use this flag to indicate a text line based codec; if not specified or the 
value is <code>false</code>, then Object Serialization is assumed over 
TCP.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>textlineDelimiter</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>DEFAULT</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Only used for TCP and if 
<strong>textline=true</strong>. Sets the text line delimiter to use. Possible 
values are: <code>DEFAULT</code>, <code>AUTO</code>, <code>WINDOWS</code>, 
<code>UNIX</code> or <code>MAC</code>. If none provided, Camel will use 
<code>DEFAULT</code>. This delimiter is used to mark the end of 
text.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sync<
 /code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Setting to set endpoint as one-way or 
request-response.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>lazySessionCreation</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Sessions can be lazily created 
to avoid exceptions, if the remote server is not up and running when the Camel 
producer is started.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>timeout</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>30000</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>You can configure the timeout that 
specifies how long to wait for a response from a remote server. The timeout 
unit is in milliseconds, so 60000 is 60 seconds. The timeout is only used for 
Mina pr
 oducer.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encoding</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><em>JVM Default</em></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>You can configure the encoding 
(a <a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/Charset.html"; 
rel="nofollow">charset name</a>) to use for the TCP textline codec and the UDP 
protocol. If not provided, Camel will use the <a shape="rect" 
class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/nio/charset/Charset.html#defaultCharset()"
 rel="nofollow">JVM default Charset</a>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>transferExchange</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Only used for TCP. You can 
transfer the exchange over the wire instead of
  just the body. The following fields are transferred: In body, Out body, fault 
body, In headers, Out headers, fault headers, exchange properties, exchange 
exception. This requires that the objects are <em>serializable</em>. Camel will 
exclude any non-serializable objects and log it at <code>WARN</code> 
level.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>minaLogger</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>You can enable the Apache MINA logging 
filter. Apache MINA uses <code>slf4j</code> logging at <code>INFO</code> level 
to log all input and output.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>filters</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>You can set a list of <a shape="rect" 
class="external-link" href="http://mina.a
 pache.org/iofilter.html">Mina IoFilters</a> to register. The 
<code>filters</code> value must be one of the 
following:</p><ul><li><strong>Camel 2.2:</strong> comma-separated list of bean 
references (e.g. <code>#filterBean1,#filterBean2</code>) where each bean must 
be of type <code>org.apache.mina.common.IoFilter</code>.</li><li><strong>before 
Camel 2.2:</strong> a reference to a bean of type 
<code>List&lt;org.apache.mina.common.IoFilter&gt;</code>.</li></ul></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encoderMaxLineLength</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>As of 2.1, you can set the 
textline protocol encoder max line length. By default the default value of Mina 
itself is used which are <code>Integer.MAX_VALUE</code>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>decoderMaxLineLength</code></p></td><td 
colspan="1" rowspan="
 1" class="confluenceTd"><p><code>-1</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>As of 2.1, you can set the textline protocol decoder 
max line length. By default the default value of Mina itself is used which are 
1024.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>producerPoolSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>16</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The TCP producer is thread safe and supports 
concurrency much better. This option allows you to configure the number of 
threads in its thread pool for concurrent producers. <strong>Note:</strong> 
Camel has a pooled service which ensured it was already thread safe and 
supported concurrency already.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>allowDefaultCodec</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd">
 <p>The mina component installs a default codec if both, <code>codec</code> is 
<code>null</code> and <code>textline</code> is <code>false</code>. Setting 
<code>allowDefaultCodec</code> to <code>false</code> prevents the mina 
component from installing a default codec as the first element in the filter 
chain. This is useful in scenarios where another filter must be the first in 
the filter chain, like the SSL filter.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>disconnectOnNoReply</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> If 
sync is enabled then this option dictates MinaConsumer if it should disconnect 
where there is no reply to send back.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>noReplyLogLevel</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>WARN</code></p></td><td 
cols
 pan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> If 
sync is enabled this option dictates MinaConsumer which logging level to use 
when logging a there is no reply to send back. Values are: <code>FATAL, ERROR, 
INFO, DEBUG, OFF</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>clientMode</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15:</strong> Consumer only. If the 
<code>clientMode</code> is true, mina consumer will connect the address as a 
TCP client.</td></tr></tbody></table></div></div><h3 
id="BookInOnePage-Usingacustomcodec">Using a custom codec</h3><p>See the <a 
shape="rect" class="external-link" 
href="http://mina.apache.org/tutorial-on-protocolcodecfilter.html";>Mina 
documentation</a> how to write your own codec. To use your custom codec with 
<code>camel-mina</code>, you should register your codec in the <a shape="rect" 
href="
 registry.html">Registry</a>; for example, by creating a bean in the Spring XML 
file. Then use the <code>codec</code> option to specify the bean ID of your 
codec. See <a shape="rect" href="hl7.html">HL7</a> that has a custom 
codec.</p><h3 id="BookInOnePage-Samplewithsync=false">Sample with 
sync=false</h3><p>In this sample, Camel exposes a service that listens for TCP 
connections on port 6200. We use the <strong>textline</strong> codec. In our 
route, we create a Mina consumer endpoint that listens on port 6200:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 from(&quot;mina:tcp://localhost:&quot; + port1 + 
&quot;?textline=true&amp;sync=false&quot;).to(&quot;mock:result&quot;);
 ]]></script>
-</div></div>
-
-<p>As the sample is part of a unit test, we test it by sending some data to it 
on port 6200.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p>As the sample is part of a unit test, we test it by sending 
some data to it on port 6200.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 MockEndpoint mock = getMockEndpoint(&quot;mock:result&quot;);
 mock.expectedBodiesReceived(&quot;Hello World&quot;);
@@ -24997,13 +24949,7 @@ template.sendBody(&quot;mina:tcp://local
 
 assertMockEndpointsSatisfied();
 ]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-Samplewithsync=true">Sample with sync=true</h3>
-
-<p>In the next sample, we have a more common use case where we expose a TCP 
service on port 6201 also use the textline codec. However, this time we want to 
return a response, so we set the <code>sync</code> option to <code>true</code> 
on the consumer.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookInOnePage-Samplewithsync=true">Sample with 
sync=true</h3><p>In the next sample, we have a more common use case where we 
expose a TCP service on port 6201 also use the textline codec. However, this 
time we want to return a response, so we set the <code>sync</code> option to 
<code>true</code> on the consumer.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 from(&quot;mina:tcp://localhost:&quot; + port2 + 
&quot;?textline=true&amp;sync=true&quot;).process(new Processor() {
     public void process(Exchange exchange) throws Exception {
@@ -25012,48 +24958,24 @@ from(&quot;mina:tcp://localhost:&quot; +
     }
 });
 ]]></script>
-</div></div>
-
-<p>Then we test the sample by sending some data and retrieving the response 
using the <code>template.requestBody()</code> method. As we know the response 
is a <code>String</code>, we cast it to <code>String</code> and can assert that 
the response is, in fact, something we have dynamically set in our processor 
code logic.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p>Then we test the sample by sending some data and retrieving the 
response using the <code>template.requestBody()</code> method. As we know the 
response is a <code>String</code>, we cast it to <code>String</code> and can 
assert that the response is, in fact, something we have dynamically set in our 
processor code logic.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 String response = 
(String)template.requestBody(&quot;mina:tcp://localhost:&quot; + port2 + 
&quot;?textline=true&amp;sync=true&quot;, &quot;World&quot;);
 assertEquals(&quot;Bye World&quot;, response);
 ]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-SamplewithSpringDSL">Sample with Spring DSL</h3>
-
-<p>Spring DSL can, of course, also be used for <a shape="rect" 
href="mina.html">Mina</a>. In the sample below we expose a TCP server on port 
5555:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-   &lt;route&gt;
+</div></div><h3 id="BookInOnePage-SamplewithSpringDSL">Sample with Spring 
DSL</h3><p>Spring DSL can, of course, also be used for <a shape="rect" 
href="mina.html">MINA</a>. In the sample below we expose a TCP server on port 
5555:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[   &lt;route&gt;
      &lt;from uri=&quot;mina:tcp://localhost:5555?textline=true&quot;/&gt;
      &lt;to uri=&quot;bean:myTCPOrderHandler&quot;/&gt;
   &lt;/route&gt;
 ]]></script>
-</div></div>
-
-<p>In the route above, we expose a TCP server on port 5555 using the textline 
codec. We let the Spring bean with ID, <code>myTCPOrderHandler</code>, handle 
the request and return a reply. For instance, the handler bean could be 
implemented as follows:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-    public String handleOrder(String payload) {
+</div></div><p>In the route above, we expose a TCP server on port 5555 using 
the textline codec. We let the Spring bean with ID, 
<code>myTCPOrderHandler</code>, handle the request and return a reply. For 
instance, the handler bean could be implemented as follows:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[    public String handleOrder(String payload) 
{
         ...
         return &quot;Order: OK&quot;
    }
 ]]></script>
-</div></div>
-
-<h3 
id="BookInOnePage-ConfiguringMinaendpointsusingSpringbeanstyle">Configuring 
Mina endpoints using Spring bean style</h3>
-
-<p>Configuration of Mina endpoints is possible using regular Spring bean style 
configuration in the Spring DSL.</p>
-
-<p>However, in the underlying Apache Mina toolkit, it is relatively difficult 
to set up the acceptor and the connector, because you can <em>not</em> use 
simple setters. To resolve this difficulty, we leverage the 
<code>MinaComponent</code> as a Spring factory bean to configure this for us. 
If you really need to configure this yourself, there are setters on the 
<code>MinaEndpoint</code> to set these when needed.</p>
-
-<p>The sample below shows the factory approach:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 
id="BookInOnePage-ConfiguringMinaendpointsusingSpringbeanstyle">Configuring 
Mina endpoints using Spring bean style</h3><p>Configuration of Mina endpoints 
is possible using regular Spring bean style configuration in the Spring 
DSL.</p><p>However, in the underlying Apache Mina toolkit, it is relatively 
difficult to set up the acceptor and the connector, because you can 
<em>not</em> use simple setters. To resolve this difficulty, we leverage the 
<code>MinaComponent</code> as a Spring factory bean to configure this for us. 
If you really need to configure this yourself, there are setters on the 
<code>MinaEndpoint</code> to set these when needed.</p><p>The sample below 
shows the factory approach:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 &lt;!-- Creating mina endpoints is a bit complex so we reuse MinaComponnet
      as a factory bean to create our endpoint, this is the easiest to do --&gt;
@@ -25080,10 +25002,7 @@ assertEquals(&quot;Bye World&quot;, resp
     &lt;property name=&quot;sync&quot; value=&quot;false&quot;/&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>And then we can refer to our endpoint directly in the route, as follows:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p>And then we can refer to our endpoint directly in the route, as 
follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 &lt;route&gt;
     &lt;!-- here we route from or mina endpoint we have defined above --&gt;
@@ -25091,16 +25010,8 @@ assertEquals(&quot;Bye World&quot;, resp
     &lt;to uri=&quot;mock:result&quot;/&gt;
 &lt;/route&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-ClosingSessionWhenComplete">Closing Session When 
Complete</h3>
-
-<p>When acting as a server you sometimes want to close the session when, for 
example, a client conversion is finished. To instruct Camel to close the 
session, you should add a header with the key 
<code>CamelMinaCloseSessionWhenComplete</code> set to a boolean 
<code>true</code> value.</p>
-
-<p>For instance, the example below will close the session after it has written 
the <code>bye</code> message back to the client:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-        
from(&quot;mina:tcp://localhost:8080?sync=true&amp;textline=true&quot;).process(new
 Processor() {
+</div></div><h3 id="BookInOnePage-ClosingSessionWhenComplete">Closing Session 
When Complete</h3><p>When acting as a server you sometimes want to close the 
session when, for example, a client conversion is finished. To instruct Camel 
to close the session, you should add a header with the key 
<code>CamelMinaCloseSessionWhenComplete</code> set to a boolean 
<code>true</code> value.</p><p>For instance, the example below will close the 
session after it has written the <code>bye</code> message back to the 
client:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[        
from(&quot;mina:tcp://localhost:8080?sync=true&amp;textline=true&quot;).process(new
 Processor() {
             public void process(Exchange exchange) throws Exception {
                 String body = exchange.getIn().getBody(String.class);
                 exchange.getOut().setBody(&quot;Bye &quot; + body);
@@ -25108,30 +25019,14 @@ assertEquals(&quot;Bye World&quot;, resp
             }
         });
 ]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-GettheIoSessionformessage">Get the IoSession for 
message</h3>
-
-<p><strong>Available since Camel 2.1</strong><br clear="none">
-You can get the IoSession from the message header with this key 
MinaEndpoint.HEADER_MINA_IOSESSION, and also get the local host address with 
the key MinaEndpoint.HEADER_LOCAL_ADDRESS and remote host address with the key 
MinaEndpoint.HEADER_REMOTE_ADDRESS.</p>
-
-<h3 id="BookInOnePage-ConfiguringMinafilters">Configuring Mina filters</h3>
-
-<p>Filters permit you to use some Mina Filters, such as 
<code>SslFilter</code>. You can also implement some customized filters. Please 
note that <code>codec</code> and <code>logger</code> are also implemented as 
Mina filters of type, <code>IoFilter</code>. Any filters you may define are 
appended to the end of the filter chain; that is, after <code>codec</code> and 
<code>logger</code>.</p>
-
-    <div class="aui-message success shadowed information-macro">
+</div></div><h3 id="BookInOnePage-GettheIoSessionformessage">Get the IoSession 
for message</h3><p><strong>Available since Camel 2.1</strong><br clear="none"> 
You can get the IoSession from the message header with this key 
MinaEndpoint.HEADER_MINA_IOSESSION, and also get the local host address with 
the key MinaEndpoint.HEADER_LOCAL_ADDRESS and remote host address with the key 
MinaEndpoint.HEADER_REMOTE_ADDRESS.</p><h3 
id="BookInOnePage-ConfiguringMinafilters">Configuring Mina 
filters</h3><p>Filters permit you to use some Mina Filters, such as 
<code>SslFilter</code>. You can also implement some customized filters. Please 
note that <code>codec</code> and <code>logger</code> are also implemented as 
Mina filters of type, <code>IoFilter</code>. Any filters you may define are 
appended to the end of the filter chain; that is, after <code>codec</code> and 
<code>logger</code>.</p>    <div class="aui-message success shadowed 
information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            
-<p>If using the <code>SslFilter</code> you need to add the 
<code>mina-filter-ssl</code> JAR to the classpath.</p>
+                            <p>If using the <code>SslFilter</code> you need to 
add the <code>mina-filter-ssl</code> JAR to the classpath.</p>
                     </div>
     </div>
-
-
-<p>For instance, the example below will send a keep-alive message after 10 
seconds of inactivity:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-public class KeepAliveFilter extends IoFilterAdapter {
+<p>For instance, the example below will send a keep-alive message after 10 
seconds of inactivity:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[public class KeepAliveFilter extends 
IoFilterAdapter {
     @Override
     public void sessionCreated(NextFilter nextFilter, IoSession session)
             throws Exception {
@@ -25148,13 +25043,8 @@ public class KeepAliveFilter extends IoF
     }
 }
 ]]></script>
-</div></div>
-
-<p>As Camel Mina may use a request-reply scheme, the endpoint as a client 
would like to drop some message, such as greeting when the connection is 
established. For example, when you connect to an FTP server, you will get a 
<code>220</code> message with a greeting (<code>220 Welcome to 
Pure-FTPd</code>). If you don't drop the message, your request-reply scheme 
will be broken.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-public class DropGreetingFilter extends IoFilterAdapter {
+</div></div><p>As Camel Mina may use a request-reply scheme, the endpoint as a 
client would like to drop some message, such as greeting when the connection is 
established. For example, when you connect to an FTP server, you will get a 
<code>220</code> message with a greeting (<code>220 Welcome to 
Pure-FTPd</code>). If you don't drop the message, your request-reply scheme 
will be broken.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[public class DropGreetingFilter extends 
IoFilterAdapter {
 
     @Override
     public void messageReceived(NextFilter nextFilter, IoSession session,
@@ -25171,12 +25061,8 @@ public class DropGreetingFilter extends
     }
 }
 ]]></script>
-</div></div>
-
-<p>Then, you can configure your endpoint using Spring DSL:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;myMinaFactory&quot; 
class=&quot;org.apache.camel.component.mina.MinaComponent&quot;&gt;
+</div></div><p>Then, you can configure your endpoint using Spring DSL:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;myMinaFactory&quot; 
class=&quot;org.apache.camel.component.mina.MinaComponent&quot;&gt;
     &lt;constructor-arg index=&quot;0&quot; ref=&quot;camelContext&quot; /&gt;
 &lt;/bean&gt;
 
@@ -25204,11 +25090,8 @@ public class DropGreetingFilter extends
     &lt;/constructor-arg&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-SeeAlso.60">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul>
-<ul class="alternate"><li><a shape="rect" 
href="mina2.html">Mina2</a></li><li><a shape="rect" 
href="netty.html">Netty</a></li></ul> <h2 
id="BookInOnePage-MockComponent.1">Mock Component</h2>
+</div></div><p></p><h3 id="BookInOnePage-SeeAlso.60">See Also</h3>
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul 
class="alternate"><li><a shape="rect" href="mina2.html">MINA2</a></li><li><a 
shape="rect" href="netty.html">Netty</a></li></ul> <h2 
id="BookInOnePage-MockComponent.1">Mock Component</h2>
 
 <a shape="rect" href="testing.html">Testing</a> of distributed and 
asynchronous processing is notoriously difficult. The <a shape="rect" 
href="mock.html">Mock</a>, <a shape="rect" href="test.html">Test</a> and <a 
shape="rect" href="dataset.html">DataSet</a> endpoints work great with the <a 
shape="rect" href="testing.html">Camel Testing Framework</a> to simplify your 
unit and integration testing using <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a> 
and Camel's large range of <a shape="rect" 
href="components.html">Components</a> together with the powerful <a 
shape="rect" href="bean-integration.html">Bean Integration</a>.
 
@@ -26050,7 +25933,7 @@ Camel also provides a <a shape="rect" hr
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[netty:tcp://localhost:99999[?options]
 netty:udp://remotehost:99999/[?options]
 ]]></script>
-</div></div><p>This component supports producer and consumer endpoints for 
both TCP and UDP.</p><p>You can append query options to the URI in the 
following format, <code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookInOnePage-Options.59">Options</h3><div 
class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>keepAlive</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Setting to ensure socket is not 
closed due to inactivity</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>tcpNoDelay</code></p></td><td colspan="1" 
rowspan="1" class="conflu
 enceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Setting to improve TCP protocol 
performance</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>backlog</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.9.6/2.10.4/2.11:</strong> Allows to 
configure a backlog for netty consumer (server). Note the backlog is just a 
best effort depending on the OS. Setting this option to a value such as 
<code>200</code>, <code>500</code> or <code>1000</code>, tells the TCP stack 
how long the "accept" queue can be. If this option is not configured, then the 
backlog depends on OS setting.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>broadcast</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Setting to choose Multicast o
 ver UDP</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>connectTimeout</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Time to wait for a socket connection to be 
available. Value is in millis.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>reuseAddress</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Setting to facilitate socket 
multiplexing</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sync</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Setting to set endpoint as one-way or 
request-response</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>synchronous</code></p></td><td colspan="1" rowspa
 n="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Whether <a 
shape="rect" href="asynchronous-routing-engine.html">Asynchronous Routing 
Engine</a> is not in use. <code>false</code> then the <a shape="rect" 
href="asynchronous-routing-engine.html">Asynchronous Routing Engine</a> is 
used, <code>true</code> to force processing synchronous.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>ssl</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Setting to specify whether SSL 
encryption is applied to this endpoint</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>sslClientCertHeaders</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> 
When e
 nabled and in SSL mode, then the Netty consumer will enrich the Camel <a 
shape="rect" href="message.html">Message</a> with headers having information 
about the client certificate such as subject name, issuer name, serial number, 
and the valid date range.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sendBufferSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>65536 bytes</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The TCP/UDP buffer sizes to be 
used during outbound communication. Size is bytes.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>receiveBufferSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>65536 bytes</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The TCP/UDP buffer sizes to be 
used during inbound communication. Size is bytes.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>option.XXX</code>
 </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11/2.10.4:</strong> Allows to configure 
additional netty options using "option." as prefix. For example 
"option.child.keepAlive=false" to set the netty option "child.keepAlive=false". 
See the Netty documentation for possible options that can be 
used.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>corePoolSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>10</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The number of allocated threads at 
component startup. Defaults to 10. <strong>Note:</strong> This option is 
removed from Camel 2.9.2 onwards. As we rely on Nettys default 
settings.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>maxPoolSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>100</code></p></td>
 <td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum number of 
threads that may be allocated to this endpoint. Defaults to 100. 
<strong>Note:</strong> This option is removed from Camel 2.9.2 onwards. As we 
rely on Nettys default settings.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>disconnect</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Whether or not to disconnect(close) from 
Netty Channel right after use. Can be used for both consumer and 
producer.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>lazyChannelCreation</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Channels can be lazily created 
to avoid exceptions, if the remote server is not up and running when the Camel 
producer is started.</p></td></tr><tr><td colspan
 ="1" rowspan="1" 
class="confluenceTd"><p><code>transferExchange</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Only used for TCP. You can transfer the 
exchange over the wire instead of just the body. The following fields are 
transferred: In body, Out body, fault body, In headers, Out headers, fault 
headers, exchange properties, exchange exception. This requires that the 
objects are serializable. Camel will exclude any non-serializable objects and 
log it at WARN level.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>disconnectOnNoReply</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If sync is enabled then this 
option dictates NettyConsumer if it should disconnect where there is no reply 
to send back.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd
 "><p><code>noReplyLogLevel</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>WARN</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If sync is enabled this option dictates NettyConsumer 
which logging level to use when logging a there is no reply to send back. 
Values are: <code>FATAL, ERROR, INFO, DEBUG, OFF</code>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>serverExceptionCaughtLogLevel</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>WARN</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> 
If the server (NettyConsumer) catches an exception then its logged using this 
logging level.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>serverClosedChannelExceptionCaughtLogLevel</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>DEBUG</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><s
 trong>Camel 2.11.1:</strong> If the server (NettyConsumer) catches an 
<code>java.nio.channels.ClosedChannelException</code> then its logged using 
this logging level. This is used to avoid logging the closed channel 
exceptions, as clients can disconnect abruptly and then cause a flod of closed 
exceptions in the Netty server.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>allowDefaultCodec</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> The netty 
component installs a default codec if both, encoder/deocder is null and 
textline is false. Setting allowDefaultCodec to false prevents the netty 
component from installing a default codec as the first element in the filter 
chain.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>textline</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</co
 de></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 
2.4:</strong> Only used for TCP. If no codec is specified, you can use this 
flag to indicate a text line based codec; if not specified or the value is 
false, then Object Serialization is assumed over TCP.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>delimiter</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>LINE</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> The delimiter 
to use for the textline codec. Possible values are <code>LINE</code> and 
<code>NULL</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>decoderMaxLineLength</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>1024</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> The 
max line length to use for the textline codec.</p></td></tr><tr><td colspan="
 1" rowspan="1" 
class="confluenceTd"><p><code>autoAppendDelimiter</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> 
Whether or not to auto append missing end delimiter when sending using the 
textline codec.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encoding</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> The encoding (a 
charset name) to use for the textline codec. If not provided, Camel will use 
the JVM default Charset.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>workerCount</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> When netty 
works on nio mode, it 
 uses default workerCount parameter from Netty, which is cpu_core_threads*2. 
User can use this operation to override the default workerCount from 
Netty</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sslContextParameters</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> SSL 
configuration using an 
<code>org.apache.camel.util.jsse.SSLContextParameters</code> instance. See <a 
shape="rect" href="#BookInOnePage-UsingtheJSSEConfigurationUtility">Using the 
JSSE Configuration Utility</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>receiveBufferSizePredictor</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> 
Configures the buffer size predictor. See details at Jetty documentation and 
this <a sh
 ape="rect" class="external-link" 
href="http://lists.jboss.org/pipermail/netty-users/2010-January/001958.html"; 
rel="nofollow">mail thread</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>requestTimeout</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Allows to 
use a timeout for the Netty producer when calling a remote server. By default 
no timeout is in use. The value is in milli seconds, so eg <code>30000</code> 
is 30 seconds. The requestTimeout is using Netty's <span>ReadTimeoutHandler to 
trigger the timeout.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>needClientAuth</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Configures 
whether the server needs client authenticat
 ion when using SSL.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>orderedThreadPoolExecutor</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.2:</strong> 
Whether to use ordered thread pool, to ensure events are processed orderly on 
the same channel. See details at the netty javadoc of 
<code>org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor</code>
 for more details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>maximumPoolSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>16</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.2:</strong> The core 
pool size for the ordered thread pool, if its in use.</p><p><strong>Since Camel 
2.14.1</strong>: This option is move the NettyComponent.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="con
 fluenceTd"><p><code>producerPoolEnabled</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.4/Camel 2.11:</strong> 
Producer only. Whether producer pool is enabled or not. 
<strong>Important:</strong> Do not turn this off, as the pooling is needed for 
handling concurrency and reliable request/reply.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>producerPoolMaxActive</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.3:</strong> 
Producer only. Sets the cap on the number of objects that can be allocated by 
the pool (checked out to clients, or idle awaiting checkout) at a given time. 
Use a negative value for no limit.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>producerPoolMinIdle</code></p></td><td colspan="1
 " rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.3:</strong> Producer 
only. Sets the minimum number of instances allowed in the producer pool before 
the evictor thread (if active) spawns new objects.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>producerPoolMaxIdle</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>100</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.3:</strong> 
Producer only. Sets the cap on the number of "idle" instances in the 
pool.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>producerPoolMinEvictableIdle</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>30000</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.3:</strong> 
Producer only. Sets the minimum amount of time (value in millis) an object may 
sit idle 
 in the pool before it is eligible for eviction by the idle object 
evictor.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>bootstrapConfiguration</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> 
Consumer only. Allows to configure the Netty ServerBootstrap options using a 
<code>org.apache.camel.component.netty.NettyServerBootstrapConfiguration</code> 
instance. This can be used to reuse the same configuration for multiple 
consumers, to align their configuration more easily.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>bossPoll</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To use a 
explicit <code>org.jboss.netty.channel.socket.nio.BossPool</code> as the boss 
thread pool. For exampl
 e to share a thread pool with multiple consumers. By default each consumer has 
their own boss pool with 1 core thread.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>workerPool</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To 
use a explicit <code>org.jboss.netty.channel.socket.nio.WorkerPool</code> as 
the worker thread pool. For example to share a thread pool with multiple 
consumers. By default each consumer has their own worker pool with 2 x cpu 
count core threads.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>networkInterface</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> Consumer only. 
When using UDP then this option can be used to specify a network interface by 
its name, s
 uch as <code>eth0</code> to join a multicast group.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>udpConnectionlessSending</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.15:</strong> 
Producer only. &#160;This option supports connection less udp sending which is 
a real fire and forget. A connected udp send receive the 
PortUnreachableException if no one is listen on the receiving 
port.</td></tr></tbody></table></div></div><h3 
id="BookInOnePage-RegistrybasedOptions">Registry based Options</h3><p>Codec 
Handlers and SSL Keystores can be enlisted in the <a shape="rect" 
href="registry.html">Registry</a>, such as in the Spring XML file.<br 
clear="none"> The values that could be passed in, are the following:</p><div 
class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p
 >Name</p></th><th colspan="1" rowspan="1" 
 >class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>passphrase</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>password setting to use in 
 >order to encrypt/decrypt payloads sent using SSH</p></td></tr><tr><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>keyStoreFormat</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p>keystore format to be used for payload 
 >encryption. Defaults to "JKS" if not set</p></td></tr><tr><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>securityProvider</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>Security provider to be used 
 >for payload encryption. Defaults to "SunX509" if not 
 >set.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>keyStoreFile</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><strong>deprecated:</strong> Client side 
 >certificate
  keystore to be used for encryption</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>trustStoreFile</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>deprecated:</strong> 
Server side certificate keystore to be used for encryption</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyStoreResource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Client side 
certificate keystore to be used for encryption. Is loaded by default from 
classpath, but you can prefix with <code>"classpath:"</code>, 
<code>"file:"</code>, or <code>"http:"</code> to load the resource from 
different systems.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>trustStoreResource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Server side 
certificate keystore to be used for encryption. Is loaded by default from 
classpath
 , but you can prefix with <code>"classpath:"</code>, <code>"file:"</code>, or 
<code>"http:"</code> to load the resource from different 
systems.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sslHandler</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Reference to a class that could be used to 
return an SSL Handler</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encoder</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A custom <code>ChannelHandler</code> class 
that can be used to perform special marshalling of outbound payloads. Must 
override 
<code>org.jboss.netty.channel.ChannelDownStreamHandler</code>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encorders</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A list of encoders to be used. You can use 
a String which have values separated by comma, and have the values be looked up 
in the <a shape="rec
 t" href="registry.html">Registry</a>. Just remember to prefix the value with # 
so Camel knows it should lookup.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>decoder</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A custom <code>ChannelHandler</code> class 
that can be used to perform special marshalling of inbound payloads. Must 
override 
<code>org.jboss.netty.channel.ChannelUpStreamHandler</code>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>decoders</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A list of decoders to be used. You can use 
a String which have values separated by comma, and have the values be looked up 
in the <a shape="rect" href="registry.html">Registry</a>. Just remember to 
prefix the value with # so Camel knows it should 
lookup.</p></td></tr></tbody></table></div></div><p><strong>Important:</strong> 
Read below about using non shareable encoders/decoders.</p><h4 id="Boo
 kInOnePage-Usingnonshareableencodersordecoders">Using non shareable encoders 
or decoders</h4><p>If your encoders or decoders is not shareable (eg they have 
the @Shareable class annotation), then your encoder/decoder must implement the 
<code>org.apache.camel.component.netty.ChannelHandlerFactory</code> interface, 
and return a new instance in the <code>newChannelHandler</code> method. This is 
to ensure the encoder/decoder can safely be used. If this is not the case, then 
the Netty component will log a WARN when<br clear="none"> an endpoint is 
created.</p><p>The Netty component offers a 
<code>org.apache.camel.component.netty.ChannelHandlerFactories</code> factory 
class, that has a number of commonly used methods.</p><h3 
id="BookInOnePage-SendingMessagesto/fromaNettyendpoint">Sending Messages 
to/from a Netty endpoint</h3><h4 id="BookInOnePage-NettyProducer">Netty 
Producer</h4><p>In Producer mode, the component provides the ability to send 
payloads to a socket endpoint<br clear="none"> u
 sing either TCP or UDP protocols (with optional SSL support).</p><p>The 
producer mode supports both one-way and request-response based 
operations.</p><h4 id="BookInOnePage-NettyConsumer">Netty Consumer</h4><p>In 
Consumer mode, the component provides the ability to:</p><ul 
class="alternate"><li>listen on a specified socket using either TCP or UDP 
protocols (with optional SSL support),</li><li>receive requests on the socket 
using text/xml, binary and serialized object based payloads and</li><li>send 
them along on a route as message exchanges.</li></ul><p>The consumer mode 
supports both one-way and request-response based 
operations.</p><p>&#160;</p><h3 id="BookInOnePage-Headers.4">Headers</h3><p>The 
following headers are filled for the exchanges created by the Netty 
consumer:</p><div class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Header key</p></th><th colspan="1" rowspan="1" 
class="conf
 luenceTh">Class</th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>NettyConstants.NETTY_CHANNEL_HANDLER_CONTEXT</code>
 / <code>CamelNettyChannelHandlerContext</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><code>org.jboss.netty.channel.ChannelHandlerContext</code></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code><span>ChannelHandlerContext 
</span></code>instance associated with the connection received by 
netty.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>NettyConstants.NETTY_MESSAGE_EVENT</code> / 
<code>CamelNettyMessageEvent</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code><span>org.jboss.netty.channel.</span>MessageEvent</code></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><span><code><span>MessageEvent 
</span></code>instance associated with the connection received by 
netty.</span></p></td></tr><tr><
 td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>NettyConstants.NETTY_REMOTE_ADDRESS</code> / 
<code>CamelNettyRemoteAddress</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>java.net.SocketAddress</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">Remote address of the incoming socket 
connection.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>NettyConstants.NETTY_LOCAL_ADDRESS</code> / 
<code>CamelNettyLocalAddress</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code><span>java.net.</span><span>SocketAddress</span></code></td><td
 colspan="1" rowspan="1" class="confluenceTd"><span>Local address of the 
incoming socket connection.</span></td></tr></tbody></table></div></div><h3 
id="BookInOnePage-UsageSamples">Usage Samples</h3><h4 
id="BookInOnePage-AUDPNettyendpointusingRequest-Replyandserializedobjectpayload">A
 UDP Netty endpoint using Request-Reply and serialized object payload</h4><div 
class="code panel pdl" style
 ="border-width: 1px;"><div class="codeContent panelContent pdl">

[... 5 lines stripped ...]
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.


Reply via email to