Author: buildbot
Date: Fri May 29 07:21:08 2015
New Revision: 953065
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/book-component-appendix.html
websites/production/camel/content/book-in-one-page.html
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/netty.html
websites/production/camel/content/netty4.html
Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Fri May 29
07:21:08 2015
@@ -1334,11 +1334,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.rbtoc1432747093484 {padding: 0px;}
-div.rbtoc1432747093484 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1432747093484 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1432883972605 {padding: 0px;}
+div.rbtoc1432883972605 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1432883972605 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1432747093484">
+/*]]>*/</style></p><div class="toc-macro rbtoc1432883972605">
<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>
@@ -8574,7 +8574,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="BookComponentAppendix-Options.38">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
="confluenceTd"><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 Mul
ticast over 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
" rowspan="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 enabled 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.XX
X</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="conf
luenceTd"><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="confluenceT
d"><p><strong>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>f
alse</code></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 c
olspan="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 m
ode, 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="#BookComponentAppendix-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 documentatio
n and this <a shape="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 cl
ient authentication 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" rowspa
n="1" class="confluenceTd"><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></t
d><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 obje
ct 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 example 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 interfac
e 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></t
d><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="BookComponentAppendix-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>de
precated:</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="conflue
nceTd"><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="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="BookComponentAppendix-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="BookComponentAppendix-SendingMessagesto/fromaNettyendpoint">Sending
Messages to/from a Netty endpoint</h3><h4
id="BookComponentAppendix-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="BookComponentAppendix
-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="BookComponentAppendix-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>Nett
yConstants.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="BookComponentAppendix-UsageSamples">Usage Samples</h3><h4
id="BookComponentAppendix-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="BookComponentAppendix-Options.38">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
="confluenceTd"><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 Mul
ticast over 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
" rowspan="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 enabled 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.XX
X</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="conf
luenceTd"><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="confluenceT
d"><p><strong>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>f
alse</code></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 c
olspan="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 m
ode, 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="#BookComponentAppendix-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 documentatio
n and this <a shape="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 cl
ient authentication 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" rowspa
n="1" class="confluenceTd"><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></t
d><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 obj
ect 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 example 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 interfa
ce 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="BookComponentAppendix-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>d
eprecated:</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="conflu
enceTd"><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="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="BookComponentAppendix-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="BookComponentAppendix-SendingMessagesto/fromaNettyendpoint">Sending
Messages to/from a Netty endpoint</h3><h4
id="BookComponentAppendix-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="BookComponentAppendi
x-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="BookComponentAppendix-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>Net
tyConstants.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="BookComponentAppendix-UsageSamples">Usage Samples</h3><h4
id="BookComponentAppendix-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")