You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2015/03/02 16:25:50 UTC

svn commit: r941936 [2/3] - in /websites/production/camel/content: book-component-appendix.html book-in-one-page.html cache/main.pageCache mina2.html netty.html

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.