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 Fri May 29 07:21:08
2015
@@ -4051,11 +4051,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.rbtoc1432747117379 {padding: 0px;}
-div.rbtoc1432747117379 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1432747117379 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1432883996886 {padding: 0px;}
+div.rbtoc1432883996886 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1432883996886 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1432747117379">
+/*]]>*/</style></p><div class="toc-macro rbtoc1432883996886">
<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>
@@ -6241,11 +6241,11 @@ So we completed the last piece in the pi
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1432747117703 {padding: 0px;}
-div.rbtoc1432747117703 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1432747117703 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1432883997232 {padding: 0px;}
+div.rbtoc1432883997232 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1432883997232 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1432747117703">
+/*]]>*/</style><div class="toc-macro rbtoc1432883997232">
<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>
@@ -18828,11 +18828,11 @@ template.send("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.rbtoc1432747137005 {padding: 0px;}
-div.rbtoc1432747137005 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1432747137005 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1432884017313 {padding: 0px;}
+div.rbtoc1432884017313 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1432884017313 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1432747137005">
+/*]]>*/</style></p><div class="toc-macro rbtoc1432884017313">
<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>
@@ -26068,7 +26068,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&option=value&...</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> </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"><p><strong>Camel 2.15:</strong>
Producer only.  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.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>clientMode</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> Consumer only. If
the <code>clientMode</code> is true, netty consumer will connect the address as
a TCP client.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><code>useChannelBuffer</code></td><td colspan="1
" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1"
rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> Producer only. If
the <code><span>useChannelBuffer</span></code> is true, netty producer will
turn the message body into channelBuffer before sending it
out.</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> Serve
r 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>sslHandl
er</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="rect" 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" r
owspan="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="BookInOnePage-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
implem
ent 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"> using 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> </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="confluenceTh">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>CamelNet
tyChannelHandlerContext</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</c
ode></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">
+</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&option=value&...</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> </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>300000</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 examp
le 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,
such 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"><p><strong>Camel 2.15:</strong>
Producer only.  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.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>clientMode</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> Consumer only. If
the <code>clientMode</code> is true, netty consumer will connect the address as
a TCP client.</td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><code>useChannelBuffer</code></td><td colspan="
1" rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1"
rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> Producer only. If
the <code><span>useChannelBuffer</span></code> is true, netty producer will
turn the message body into channelBuffer before sending it
out.</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>
Serv
er 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>sslHand
ler</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="rect" 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="BookInOnePage-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 imple
ment 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"> using 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> </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="confluenceTh">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>CamelNe
ttyChannelHandlerContext</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">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[RouteBuilder builder = new RouteBuilder() {
public void configure() {
from("netty:udp://localhost:5155?sync=true")
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.