Modified: websites/production/camel/content/camel-2150-release.html
==============================================================================
--- websites/production/camel/content/camel-2150-release.html (original)
+++ websites/production/camel/content/camel-2150-release.html Tue Jan  6 
13:21:58 2015
@@ -84,7 +84,7 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1 
id="Camel2.15.0Release-Camel2.15.0release(currentlyinprogress)">Camel&#160;2.15.0
 release (currently in progress)</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"; 
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png";></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.15.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the 2.15.0 release which approx XXX issues resolved (new features, improvements 
and bug fixes such as...)</p><ul><li><span>Component documentation now included 
in the built component JARs. And Java API and JMX API to access that 
documentation. And APIs to explain an endpoint uri and what all those 
configured options mean.&#160;</span></li><li><span>Component can now 
have&#160;associated&#160;label(s) which are use
 d for grouping components into: core, database, messaging, http, rest, 
etc.</span></li><li><span>Provide Configurer for user to configure the CXF 
conduit and CXF destination from Java code</span></li><li><span><span>Added a 
<code>DelegateEndpoint</code>&#160;interface into Camel 
API</span></span></li><li>Support to setup the SslContextParameters in the <a 
shape="rect" href="restlet.html">camel-restlet</a> component</li><li>Java DSL - 
Should support nested choice in doTry .. doCatch</li><li><a shape="rect" 
href="mongodb.html">MongoDb</a> component now <a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-7996";>stores OIDs</a>&#160;of 
the inserted records in the message header</li><li><a shape="rect" 
href="recipient-list.html">Recipient List</a> now supports specifying 
custom&#160;<a shape="rect" href="exchange-pattern.html">Exchange Pattern</a> 
in the endpoint ur's</li><li><a shape="rect" href="type-converter.html">Type 
Converter</a> to enum's is now
  case insensitive, so you can convert safely level=info to an enum with name 
Level.INFO etc.</li><li><a shape="rect" href="xslt.html">XSLT</a> and&#160;<a 
shape="rect" 
href="https://cwiki.apache.org/confluence/display/SM/Validation";>Validation</a> 
components now provides all their endpoint configurations in the endpoint, and 
not only in the component, making these components like any other 
components.</li><li>Made the <a shape="rect" href="karaf.html">Camel Karaf 
Commands</a> reusable by moving common code into 
a&#160;<code>camel-commands-core</code> module that SPI can extend and plugin 
Camel commands for other environments.</li><li>Further hardening of the&#160;<a 
shape="rect" href="sjms.html">SJMS</a>&#160;component.</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> with embedded routes now supports <a 
shape="rect" href="exception-clause.html">onException</a>, <a shape="rect" 
href="intercept.html">intercept</a> etc in use for those embedded routes, just 
like any regular r
 outes.&#160;</li><li><a shape="rect" href="rest-dsl.html">Rest DSL</a> now by 
default uses custom error message as-is without attempting to binding output 
(requires a HTTP error code of 300+ is set as a header)</li><li>Camel&#160;<a 
shape="rect" href="using-propertyplaceholder.html">Using 
PropertyPlaceholder</a> now supports specifying a default value together with 
the key to lookup.</li><li>Camel&#160;<a shape="rect" 
href="using-propertyplaceholder.html">Using PropertyPlaceholder</a> now 
supports not having to define a PropertiesComponent if all the placeholder keys 
has default values which are to be used (less configuration needed in those 
situations).</li><li>Camel&#160;<a shape="rect" 
href="using-propertyplaceholder.html">Using PropertyPlaceholder</a> now 
supports 3rd party functions to lookup the property values, this allow end 
users to implement their own logic - we provide 3 out of the box functions to 
lookup values from OS environment variable, JVM system properties, or the 
 service name idiom.</li><li><a shape="rect" href="rabbitmq.html">RabbitMQ</a> 
now pools Channels for the producer to avoid sharing same Channel among 
concurrent producers which are not recommended by RabbitMQ 
client.</li><li>Camel commands is now reusable outside Apache Karaf as a base 
by the&#160;<code>commands-core</code> module.</li><li>Camel commands using <a 
shape="rect" class="external-link" href="http://www.jolokia.org/"; 
rel="nofollow">Jolokia</a> for remote communication by 
the&#160;<code>commands-jolokia</code> module.</li><li>More minor processors 
such as setHeader, removeHeader, removeHeaders and ditto for properties is now 
also enlisted in JMX under processors.</li><li>Optimized usage of type 
conversion during routing reducing the number of attempts 
needed.</li><li>Asynchronous routing engine that are forced to block threads 
now exposes this using a <a shape="rect" 
href="asyncprocessorawaitmanager.html">manager</a> that offers runtime insight 
using JMX. And as well attem
 pts to free blocked threads during graceful shutdown, to avoid any threads 
hanging in the JVM.</li><li><a shape="rect" href="swagger.html">Swagger</a> now 
supports any kind of runtime environment, as only JMX being enabled is 
required.</li></ul><h3 id="Camel2.15.0Release-Fixedissues">Fixed 
issues</h3><ul><li>Fixed processors was not enlisted in JMX when routes was 
transacted.</li><li>Fixed the NullPointerException when using CXF endpoint with 
enrich</li><li>Fixed the&#160;endpointProperty of&#160;restConfiguration 
doesn't work issue</li><li>Fixed the issue that&#160;CircuitBreakerLoadBalancer 
fails on async processors</li><li>Fixed&#160;MyBatis consumer <a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8011";>ignoring 
maxMessagesPerPoll</a> option</li><li>Fixed potential issue 
with&#160;pollEnrich not triggering error handler if an exception was thrown in 
the polling.</li><li>Fixed a memory leak if using&#160;<a shape="rect" 
href="dynamic-router.
 html">Dynamic Router</a> that loops many times, and uses&#160;any 
of&#160;<code>convertBodyTo</code> or&#160;<code>setBody</code> 
or&#160;<code>transform</code> in the loop, causing memory to stack up until 
the Exchange is done.</li><li>Fixed and improved how&#160;<a shape="rect" 
href="bean.html">Bean</a>&#160;component and&#160;<a shape="rect" 
href="simple.html">Simple</a>&#160;language invoking beans detect methods that 
are overridden, and able to filter and apply this as a single method, to be 
invoked. Avoids AmbiguousMethodCallException&#160;being thrown.</li><li>Fixed a 
thread leak if restarting routes using stop/start and the routes is a scheduled 
poll consumer, such as file/ftp&#160;components.<br clear="none"><br 
clear="none"></li></ul><h3 id="Camel2.15.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a></h3><h3 id="Camel2.15.0Release-New.1">New <a shape="rect" 
href="components.html">Components</a></h3><ul><li><a 
 shape="rect" href="beanstalk.html">camel-beanstalk</a> - for working with 
Amazon Beanstalk jobs.</li><li>came-cassandraql -&#160;Cassandra CQL3 
support</li><li><code>camel-chunk</code> - for templating with Chunk 
engine.</li><li><a shape="rect" href="docker.html">camel-docker</a> - to 
communicate with Docker.</li><li>camel-github - for integrating with 
github</li><li>camel-google-calendar -&#160;provides access to&#160;<a 
shape="rect" class="external-link" href="http://google.com/calendar"; 
rel="nofollow">Google Calendar</a>&#160;via the&#160;<a shape="rect" 
class="external-link" 
href="https://developers.google.com/google-apps/calendar/v3/reference/"; 
rel="nofollow">Google Calendar Web APIs</a>.</li><li>camel-google-mail 
-&#160;provides access to&#160;<a shape="rect" class="external-link" 
href="http://gmail.com/"; rel="nofollow">Gmail</a>&#160;via the&#160;<a 
shape="rect" class="external-link" 
href="https://developers.google.com/gmail/api/v1/reference/"; 
rel="nofollow">Google Mail Web A
 PIs</a>.</li><li>camel-pgevent -&#160;Component for sending/receiving 
notifications in PostgreSQL via the pgjdbc-ng driver</li><li>camel-jira - for 
integrating with JIRA issue tracker</li><li>camel-scr - for using Camel with <a 
shape="rect" class="external-link" 
href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html";>SCR</a>&#160;(OSGi
 declarative services) on OSGi containers such as Apache Karaf</li><li><a 
shape="rect" href="spring-boot.html">camel-spring-boot</a> - for using Camel 
with Spring Boot</li><li>camel-test-spring40 - for testing with Spring 4.0.x. 
camel-test-spring is for Spring 4.1.x onwards.</li></ul><h3 
id="Camel2.15.0Release-NewDSL">New DSL</h3><ul><li>Added 
<strong>removeProperties</strong> to remove the properties from 
exchange.</li></ul><h3 id="Camel2.15.0Release-NewAnnotations">New 
Annotations</h3><h3 id="Camel2.15.0Release-NewDataFormats">New <a shape="rect" 
href="data-format.html">Data Formats</a></h3><ul><li>
 camel-univocity-parsers</li></ul><h3 id="Camel2.15.0Release-New.2">New <a 
shape="rect" href="languages.html">Languages</a></h3><h3 
id="Camel2.15.0Release-New.3">New <a shape="rect" 
href="examples.html">Examples</a></h3><h3 id="Camel2.15.0Release-New.4">New <a 
shape="rect" href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.15.0Release-KnownIssues">Known Issues</h2><h2 
id="Camel2.15.0Release-DependencyUpgrades"><span>Dependency 
Upgrades</span></h2><ul><li>AWS-Java-SDK 1.8.3 to 1.8.9.1</li><li>Codahale 
Metrics 3.0 to 3.1</li><li>CXF 3.0.2 to 3.0.3</li><li>JAXB 2.2.7 to 
2.2.11</li><li>JRuby 1.7.16 to 1.7.18</li><li>Guava 17.0 to 18.0</li><li>Jsch 
0.1.50 to 0.1.51</li><li>Spring 4.0.7.RELEASE to 4.1.4.RELEASE</li><li>Spring 
Security 3.1.7.RELEASE to 3.2.5.RELEASE</li><li>RX Java 0.20 to 
1.0.2</li><li>... and many other upgrades</li></ul><h2 
id="Camel2.15.0Release-Importantchangestoconsiderwhenupgrading">Important 
changes to consider when upgrading</h2><ul><li>Spring 4.1.x is now the 
 default out of the box Spring version.</li><li><span style="color: 
rgb(0,0,0);">Unit testing with Spring 4.0.x requires using camel-test-spring40, 
as camel-test-spring is for Spring 4.1 or better.</span></li><li><span 
style="color: rgb(0,0,0);">Remember to add&#160;<code class="java 
color1">@BootstrapWith</code><code class="java 
plain">(CamelTestContextBootstrapper.</code><code class="java 
keyword">class</code><code class="java plain">)</code>&#160;if upgrading from 
Spring 3.x or 4.0.x to Spring 4.1 onwards, and using the camel-test-spring 
module.</span></li><li><a shape="rect" href="xslt.html">XSLT</a>&#160;component 
now require configuring&#160;<code>transformerFactory</code> using&#160;<a 
shape="rect" href="uris.html">URIs</a> with the #syntax to refer to a bean. 
Just like any other component would do.</li><li>Slight refactor 
in&#160;<code>camel-metrics</code> component which may affect users who are 
using the java endpoint types instead of configuring using uris</li><li><code>ca
 mel-csv</code> upgraded to Commons CSV 1.x which has a different API than the 
old 0.x version. End users may need to adjust their 
code.</li><li><code>camel-sjms</code> has been refactored a bit to further 
harden this component.&#160;End users may need to adjust their 
code.</li><li>The <a shape="rect" href="simple.html">simple</a> function 
properties:locations:key has been renamed to properties-location:locations:key, 
as it would clash with the new functionality to specify a default value after 
the key name, eg properties:key:default</li><li>Support for Jetty 8.x is 
deprecated and being considered to be dropped in next release (as Jetty 8 is 
EOL).</li><li>Removed the backlog tracer commands from the Karaf Camel commands 
as they are not suitable for a CLI environment</li><li>The need for runtime 
specific servlets in <a shape="rect" href="swagger.html">Swagger</a>&#160;has 
been removed, and instead just use the default servlet which is provided out of 
the box.&#160;</li></ul><h2 id="Ca
 mel2.15.0Release-GettingtheDistributions">Getting the Distributions</h2><h3 
id="Camel2.15.0Release-BinaryDistributions">Binary Distributions</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>PGP Signature file of 
download</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Windows Distribution</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip";>apache-camel-2.15.0.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip.asc";>apache-camel-2.15.0.zip.asc</a></p></td></tr><tr><td
 colspan="1
 " rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz";>apache-camel-2.15.0.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz.asc";>apache-camel-2.15.0.tar.gz.asc</a></p></td></tr></tbody></table></div>
    <div class="aui-message hint shadowed information-macro">
+<div class="wiki-content maincontent"><h1 
id="Camel2.15.0Release-Camel2.15.0release(currentlyinprogress)">Camel&#160;2.15.0
 release (currently in progress)</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"; 
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png";></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.15.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the 2.15.0 release which approx XXX issues resolved (new features, improvements 
and bug fixes such as...)</p><ul><li><span>Component documentation now included 
in the built component JARs. And Java API and JMX API to access that 
documentation. And APIs to explain an endpoint uri and what all those 
configured options mean.&#160;</span></li><li><span>Component can now 
have&#160;associated&#160;label(s) which are use
 d for grouping components into: core, database, messaging, http, rest, 
etc.</span></li><li><span>Provide Configurer for user to configure the CXF 
conduit and CXF destination from Java code</span></li><li><span><span>Added a 
<code>DelegateEndpoint</code>&#160;interface into Camel 
API</span></span></li><li>Support to setup the SslContextParameters in the <a 
shape="rect" href="restlet.html">camel-restlet</a> component</li><li>Java DSL - 
Should support nested choice in doTry .. doCatch</li><li><a shape="rect" 
href="mongodb.html">MongoDb</a> component now <a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-7996";>stores OIDs</a>&#160;of 
the inserted records in the message header</li><li><a shape="rect" 
href="recipient-list.html">Recipient List</a> now supports specifying 
custom&#160;<a shape="rect" href="exchange-pattern.html">Exchange Pattern</a> 
in the endpoint ur's</li><li><a shape="rect" href="type-converter.html">Type 
Converter</a> to enum's is now
  case insensitive, so you can convert safely level=info to an enum with name 
Level.INFO etc.</li><li><a shape="rect" href="xslt.html">XSLT</a> and&#160;<a 
shape="rect" 
href="https://cwiki.apache.org/confluence/display/SM/Validation";>Validation</a> 
components now provides all their endpoint configurations in the endpoint, and 
not only in the component, making these components like any other 
components.</li><li>Made the <a shape="rect" href="karaf.html">Camel Karaf 
Commands</a> reusable by moving common code into 
a&#160;<code>camel-commands-core</code> module that SPI can extend and plugin 
Camel commands for other environments.</li><li>Further hardening of the&#160;<a 
shape="rect" href="sjms.html">SJMS</a>&#160;component.</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> with embedded routes now supports <a 
shape="rect" href="exception-clause.html">onException</a>, <a shape="rect" 
href="intercept.html">intercept</a> etc in use for those embedded routes, just 
like any regular r
 outes.&#160;</li><li><a shape="rect" href="rest-dsl.html">Rest DSL</a> now by 
default uses custom error message as-is without attempting to binding output 
(requires a HTTP error code of 300+ is set as a header)</li><li>Camel&#160;<a 
shape="rect" href="using-propertyplaceholder.html">Using 
PropertyPlaceholder</a> now supports specifying a default value together with 
the key to lookup.</li><li>Camel&#160;<a shape="rect" 
href="using-propertyplaceholder.html">Using PropertyPlaceholder</a> now 
supports not having to define a PropertiesComponent if all the placeholder keys 
has default values which are to be used (less configuration needed in those 
situations).</li><li>Camel&#160;<a shape="rect" 
href="using-propertyplaceholder.html">Using PropertyPlaceholder</a> now 
supports 3rd party functions to lookup the property values, this allow end 
users to implement their own logic - we provide 3 out of the box functions to 
lookup values from OS environment variable, JVM system properties, or the 
 service name idiom.</li><li><a shape="rect" href="rabbitmq.html">RabbitMQ</a> 
now pools Channels for the producer to avoid sharing same Channel among 
concurrent producers which are not recommended by RabbitMQ 
client.</li><li>Camel commands is now reusable outside Apache Karaf as a base 
by the&#160;<code>commands-core</code> module.</li><li>Camel commands using <a 
shape="rect" class="external-link" href="http://www.jolokia.org/"; 
rel="nofollow">Jolokia</a> for remote communication by 
the&#160;<code>commands-jolokia</code> module.</li><li>More minor processors 
such as setHeader, removeHeader, removeHeaders and ditto for properties is now 
also enlisted in JMX under processors.</li><li>Optimized usage of type 
conversion during routing reducing the number of attempts 
needed.</li><li>Asynchronous routing engine that are forced to block threads 
now exposes this using a <a shape="rect" 
href="asyncprocessorawaitmanager.html">manager</a> that offers runtime insight 
using JMX. And as well attem
 pts to free blocked threads during graceful shutdown, to avoid any threads 
hanging in the JVM.</li><li><a shape="rect" href="swagger.html">Swagger</a> now 
supports any kind of runtime environment, as only JMX being enabled is 
required.</li></ul><h3 id="Camel2.15.0Release-Fixedissues">Fixed 
issues</h3><ul><li>Fixed processors was not enlisted in JMX when routes was 
transacted.</li><li>Fixed the NullPointerException when using CXF endpoint with 
enrich</li><li>Fixed the&#160;endpointProperty of&#160;restConfiguration 
doesn't work issue</li><li>Fixed the issue that&#160;CircuitBreakerLoadBalancer 
fails on async processors</li><li>Fixed&#160;MyBatis consumer <a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8011";>ignoring 
maxMessagesPerPoll</a> option</li><li>Fixed potential issue 
with&#160;pollEnrich not triggering error handler if an exception was thrown in 
the polling.</li><li>Fixed a memory leak if using&#160;<a shape="rect" 
href="dynamic-router.
 html">Dynamic Router</a> that loops many times, and uses&#160;any 
of&#160;<code>convertBodyTo</code> or&#160;<code>setBody</code> 
or&#160;<code>transform</code> in the loop, causing memory to stack up until 
the Exchange is done.</li><li>Fixed and improved how&#160;<a shape="rect" 
href="bean.html">Bean</a>&#160;component and&#160;<a shape="rect" 
href="simple.html">Simple</a>&#160;language invoking beans detect methods that 
are overridden, and able to filter and apply this as a single method, to be 
invoked. Avoids AmbiguousMethodCallException&#160;being thrown.</li><li>Fixed a 
thread leak if restarting routes using stop/start and the routes is a scheduled 
poll consumer, such as file/ftp&#160;components.<br clear="none"><br 
clear="none"></li></ul><h3 id="Camel2.15.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a></h3><h3 id="Camel2.15.0Release-New.1">New <a shape="rect" 
href="components.html">Components</a></h3><ul><li><a 
 shape="rect" href="beanstalk.html">camel-beanstalk</a> - for working with 
Amazon Beanstalk jobs.</li><li>came-cassandraql -&#160;Cassandra CQL3 
support</li><li><code>camel-chunk</code> - for templating with Chunk 
engine.</li><li><a shape="rect" href="docker.html">camel-docker</a> - to 
communicate with Docker.</li><li>camel-github - for integrating with 
github</li><li>camel-google-calendar -&#160;provides access to&#160;<a 
shape="rect" class="external-link" href="http://google.com/calendar"; 
rel="nofollow">Google Calendar</a>&#160;via the&#160;<a shape="rect" 
class="external-link" 
href="https://developers.google.com/google-apps/calendar/v3/reference/"; 
rel="nofollow">Google Calendar Web APIs</a>.</li><li>camel-google-mail 
-&#160;provides access to&#160;<a shape="rect" class="external-link" 
href="http://gmail.com/"; rel="nofollow">Gmail</a>&#160;via the&#160;<a 
shape="rect" class="external-link" 
href="https://developers.google.com/gmail/api/v1/reference/"; 
rel="nofollow">Google Mail Web A
 PIs</a>.</li><li>camel-pgevent -&#160;Component for sending/receiving 
notifications in PostgreSQL via the pgjdbc-ng driver</li><li>camel-jira - for 
integrating with JIRA issue tracker</li><li>camel-scr - for using Camel with <a 
shape="rect" class="external-link" 
href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html";>SCR</a>&#160;(OSGi
 declarative services) on OSGi containers such as Apache Karaf</li><li><a 
shape="rect" href="spring-boot.html">camel-spring-boot</a> - for using Camel 
with Spring Boot</li><li>camel-test-spring40 - for testing with Spring 4.0.x. 
camel-test-spring is for Spring 4.1.x onwards.</li></ul><h3 
id="Camel2.15.0Release-NewDSL">New DSL</h3><ul><li>Added 
<strong>removeProperties</strong> to remove the properties from 
exchange.</li></ul><h3 id="Camel2.15.0Release-NewAnnotations">New 
Annotations</h3><h3 id="Camel2.15.0Release-NewDataFormats">New <a shape="rect" 
href="data-format.html">Data Formats</a></h3><ul><li>
 camel-univocity-parsers</li></ul><h3 id="Camel2.15.0Release-New.2">New <a 
shape="rect" href="languages.html">Languages</a></h3><h3 
id="Camel2.15.0Release-New.3">New <a shape="rect" 
href="examples.html">Examples</a></h3><h3 id="Camel2.15.0Release-New.4">New <a 
shape="rect" href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.15.0Release-KnownIssues">Known Issues</h2><h2 
id="Camel2.15.0Release-DependencyUpgrades"><span>Dependency 
Upgrades</span></h2><ul><li>AWS-Java-SDK 1.8.3 to 1.8.9.1</li><li>Codahale 
Metrics 3.0 to 3.1</li><li>CXF 3.0.2 to 3.0.3</li><li>Hazelcast 3.3.2 to 
3.4</li><li>JAXB 2.2.7 to 2.2.11</li><li>JRuby 1.7.16 to 1.7.18</li><li>Guava 
17.0 to 18.0</li><li>Jsch 0.1.50 to 0.1.51</li><li>Spring 4.0.7.RELEASE to 
4.1.4.RELEASE</li><li>Spring Security 3.1.7.RELEASE to 3.2.5.RELEASE</li><li>RX 
Java 0.20 to 1.0.2</li><li>... and many other upgrades</li></ul><h2 
id="Camel2.15.0Release-Importantchangestoconsiderwhenupgrading">Important 
changes to consider when upgrading</h2><
 ul><li>Spring 4.1.x is now the default out of the box Spring 
version.</li><li><span style="color: rgb(0,0,0);">Unit testing with Spring 
4.0.x requires using camel-test-spring40, as camel-test-spring is for Spring 
4.1 or better.</span></li><li><span style="color: rgb(0,0,0);">Remember to 
add&#160;<code class="java color1">@BootstrapWith</code><code class="java 
plain">(CamelTestContextBootstrapper.</code><code class="java 
keyword">class</code><code class="java plain">)</code>&#160;if upgrading from 
Spring 3.x or 4.0.x to Spring 4.1 onwards, and using the camel-test-spring 
module.</span></li><li><a shape="rect" href="xslt.html">XSLT</a>&#160;component 
now require configuring&#160;<code>transformerFactory</code> using&#160;<a 
shape="rect" href="uris.html">URIs</a> with the #syntax to refer to a bean. 
Just like any other component would do.</li><li>Slight refactor 
in&#160;<code>camel-metrics</code> component which may affect users who are 
using the java endpoint types instead of configur
 ing using uris</li><li><code>camel-csv</code> upgraded to Commons CSV 1.x 
which has a different API than the old 0.x version. End users may need to 
adjust their code.</li><li><code>camel-sjms</code> has been refactored a bit to 
further harden this component.&#160;End users may need to adjust their 
code.</li><li>The <a shape="rect" href="simple.html">simple</a> function 
properties:locations:key has been renamed to properties-location:locations:key, 
as it would clash with the new functionality to specify a default value after 
the key name, eg properties:key:default</li><li>Support for Jetty 8.x is 
deprecated and being considered to be dropped in next release (as Jetty 8 is 
EOL).</li><li>Removed the backlog tracer commands from the Karaf Camel commands 
as they are not suitable for a CLI environment</li><li>The need for runtime 
specific servlets in <a shape="rect" href="swagger.html">Swagger</a>&#160;has 
been removed, and instead just use the default servlet which is provided out of 
the
  box.&#160;</li></ul><h2 
id="Camel2.15.0Release-GettingtheDistributions">Getting the 
Distributions</h2><h3 id="Camel2.15.0Release-BinaryDistributions">Binary 
Distributions</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Windows 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip";>apache-camel-2.15.0.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip.asc";>apache-camel-2.15.0.zip.asc</a><
 /p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Unix/Linux/Cygwin Distribution</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz";>apache-camel-2.15.0.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz.asc";>apache-camel-2.15.0.tar.gz.asc</a></p></td></tr></tbody></table></div>
    <div class="aui-message hint shadowed information-macro">
                     <p class="title">The above URLs use redirection</p>
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">

Modified: websites/production/camel/content/hazelcast-component.html
==============================================================================
--- websites/production/camel/content/hazelcast-component.html (original)
+++ websites/production/camel/content/hazelcast-component.html Tue Jan  6 
13:21:58 2015
@@ -94,15 +94,15 @@
 &lt;/dependency&gt;
 ]]></script>
 </div></div><h3 id="HazelcastComponent-URIformat">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[hazelcast:[ map | multimap | queue | topic | 
seda | set | atomicvalue | instance]:cachename[?options]
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[hazelcast:[ map | multimap | queue | topic | 
seda | set | atomicvalue | instance | list]:cachename[?options]
 ]]></script>
-</div></div>    <div class="aui-message problem shadowed information-macro">
-                            <span class="aui-icon icon-problem">Icon</span>
+</div></div>    <div class="aui-message hint shadowed information-macro">
+                            <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
                             <p>Topic support is available as of Camel 
2.15.&#160;</p>
                     </div>
     </div>
-<p>&#160;</p><h3 id="HazelcastComponent-Options">Options</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Required</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Description</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">hazelcastInstance</td><td colspan="1" 
rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Since Camel 2.14</strong> The hazelcast instance 
reference name which can be used for hazelcast endpoint. If you don't specify 
the instance reference, camel use the default hazelcast instance from the 
camel-hazelcast 
instance.</td></tr></tbody></table></div><p>&#160;</p><p>&#160;</p>    <div 
class="aui-message problem shadowed information-macro">
+<p>&#160;</p><h3 id="HazelcastComponent-Options">Options</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Required</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Description</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">hazelcastInstance</td><td colspan="1" 
rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.14:</strong> The hazelcast instance 
reference name which can be used for hazelcast endpoint. If you don't specify 
the instance reference, camel use the default hazelcast instance from the 
camel-hazelcast instance.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">operation</td><td colspan="1" rowspan="1" 
class="confluenceTd">-1</td><td colspan="1" rowspan="1" 
class="confluenceTd"><span>To specify a default operation to use, if no 
operation header 
 has been provided. <strong>deprecated</strong> use defaultOperation 
instead.</span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">defaultOperation</td><td colspan="1" rowspan="1" 
class="confluenceTd">-1</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15:</strong> To specify a default 
operation to use, if no operation header has been 
provided.</td></tr></tbody></table></div><p>&#160;</p><p>&#160;</p>    <div 
class="aui-message problem shadowed information-macro">
                             <span class="aui-icon icon-problem">Icon</span>
                 <div class="message-content">
                             <p>You have to use the second prefix to define 
which type of data store you want to use.</p>

Modified: websites/production/camel/content/netty.html
==============================================================================
--- websites/production/camel/content/netty.html (original)
+++ websites/production/camel/content/netty.html Tue Jan  6 13:21:58 2015
@@ -98,7 +98,7 @@
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[netty:tcp://localhost:99999[?options]
 netty:udp://remotehost:99999/[?options]
 ]]></script>
-</div></div><p>This component supports producer and consumer endpoints for 
both TCP and UDP.</p><p>You can append query options to the URI in the 
following format, <code>?option=value&amp;option=value&amp;...</code></p><h3 
id="Netty-Options">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>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.9.6/2.10.4/2.11:</strong> Allows to 
configure a backlog for netty consumer (server). Note the backlog is just a 
best effort depending on the OS. Setting this option to a value such as 
<code>200</code>, <code>500</code> or <code>1000</code>, tells the TCP stack 
how long the "accept" queue can be. If this option is not configured, then the 
backlog depends on OS setting.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>broadcast</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Setting to choose Multicast 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.XXX</code></p></td><t
 d 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" rowspa
 n="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><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>false</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 
 >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 defaul
 t 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="#Netty-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 shape="rect" class="e
 xternal-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.</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 authentication when using 
SSL.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>orderedThreadPoo
 lExecutor</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="confluenceTd"><p><code>producerPoolEnabled</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><cod
 e>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" row
 span="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 interface by 
its name, such as <code>eth0</code> to join a multicast 
group.</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><code>udpConnectionlessSending</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15:</strong> Producer only. &#160;This 
option supports connection less udp sending which is a real fire and forget. A 
connected udp send receive the PortUnreachableException if no one is listen on 
the receiving port.</td></tr></tbody></table></div></div><h3 
id="Netty-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" cla
 ss="confluenceTd"><p><code>passphrase</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>password setting to use in order to 
encrypt/decrypt payloads sent using SSH</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>keyStoreFormat</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>keystore format to be used for 
payload encryption. Defaults to "JKS" if not set</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>securityProvider</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Security provider to be used for payload 
encryption. Defaults to "SunX509" if not set.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>keyStoreFile</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>deprecated:</strong> 
Client side certificate keystore to be used for encryption</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>trustStoreFile<
 /code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>deprecated:</strong> Server side certificate 
keystore to be used for encryption</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyStoreResource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Client side 
certificate keystore to be used for encryption. Is loaded by default from 
classpath, but you can prefix with <code>"classpath:"</code>, 
<code>"file:"</code>, or <code>"http:"</code> to load the resource from 
different systems.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>trustStoreResource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Server side 
certificate keystore to be used for encryption. Is loaded by default from 
classpath, but you can prefix with <code>"classpath:"</code>, 
<code>"file:"</code>, or <code>"http:"</code> to load the resource from d
 ifferent systems.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sslHandler</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Reference to a class that could be used to 
return an SSL Handler</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encoder</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A custom <code>ChannelHandler</code> class 
that can be used to perform special marshalling of outbound payloads. Must 
override 
<code>org.jboss.netty.channel.ChannelDownStreamHandler</code>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encorders</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A list of encoders to be used. You can use 
a String which have values separated by comma, and have the values be looked up 
in the <a shape="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="Netty-Usingnonshareableencodersordecoders">Using non shareable encoders or 
decoders</h4><p>If your encoders or decoders is not sh
 areable (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="Netty-SendingMessagesto/fromaNettyendpoint">Sending Messages to/from a 
Netty endpoint</h3><h4 id="Netty-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="Netty-NettyConsumer">Netty Consumer</h4><p>In Consumer mode, the 
component provides the ability to:</p><ul class="alternate"><li>listen on a 
specified socket using either TCP or UDP protocols (with optional SSL 
support),</li><li>receive requests on the socket using text/xml, binary and 
serialized object based payloads and</li><li>send them along on a route as 
message exchanges.</li></ul><p>The consumer mode supports both one-way and 
request-response based operations.</p><p>&#160;</p><h3 
id="Netty-Headers">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>NettyCons
 tants.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" rowsp
 an="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="Netty-UsageSamples">Usage Samples</h3><h4 
id="Netty-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&amp;option=value&amp;...</code></p><h3 
id="Netty-Options">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>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.9.6/2.10.4/2.11:</strong> Allows to 
configure a backlog for netty consumer (server). Note the backlog is just a 
best effort depending on the OS. Setting this option to a value such as 
<code>200</code>, <code>500</code> or <code>1000</code>, tells the TCP stack 
how long the "accept" queue can be. If this option is not configured, then the 
backlog depends on OS setting.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>broadcast</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Setting to choose Multicast 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.XXX</code></p></td><t
 d 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" rowspa
 n="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><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>false</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 
 >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 defaul
 t 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="#Netty-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 shape="rect" class="e
 xternal-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.</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 authentication when using 
SSL.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>orderedThreadPoo
 lExecutor</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="confluenceTd"><p><code>producerPoolEnabled</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><cod
 e>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" row
 span="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 interface by 
its name, such as <code>eth0</code> to join a multicast 
group.</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><code>udpConnectionlessSending</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>false</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.15:</strong> Producer only. 
&#160;This option supports connection less udp sending which is a real fire and 
forget. A connected udp send receive the PortUnreachableException if no one is 
listen on the receiving port.</td></tr></tbody></table></div></div><h3 
id="Netty-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>trustSto
 reFile</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>deprecated:</strong> Server side certificate 
keystore to be used for encryption</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>keyStoreResource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Client side 
certificate keystore to be used for encryption. Is loaded by default from 
classpath, but you can prefix with <code>"classpath:"</code>, 
<code>"file:"</code>, or <code>"http:"</code> to load the resource from 
different systems.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>trustStoreResource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> Server side 
certificate keystore to be used for encryption. Is loaded by default from 
classpath, but you can prefix with <code>"classpath:"</code>, 
<code>"file:"</code>, or <code>"http:"</code> to load the resource
  from different systems.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sslHandler</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Reference to a class that could be used to 
return an SSL Handler</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encoder</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A custom <code>ChannelHandler</code> class 
that can be used to perform special marshalling of outbound payloads. Must 
override 
<code>org.jboss.netty.channel.ChannelDownStreamHandler</code>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>encorders</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A list of encoders to be used. You can use 
a String which have values separated by comma, and have the values be looked up 
in the <a shape="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="Netty-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="Netty-SendingMessagesto/fromaNettyendpoint">Sending Messages to/from a 
Netty endpoint</h3><h4 id="Netty-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 operatio
 ns.</p><h4 id="Netty-NettyConsumer">Netty Consumer</h4><p>In Consumer mode, 
the component provides the ability to:</p><ul class="alternate"><li>listen on a 
specified socket using either TCP or UDP protocols (with optional SSL 
support),</li><li>receive requests on the socket using text/xml, binary and 
serialized object based payloads and</li><li>send them along on a route as 
message exchanges.</li></ul><p>The consumer mode supports both one-way and 
request-response based operations.</p><p>&#160;</p><h3 
id="Netty-Headers">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>Ne
 ttyConstants.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="Netty-UsageSamples">Usage Samples</h3><h4 
id="Netty-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(&quot;netty:udp://localhost:5155?sync=true&quot;)


Reply via email to