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 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"> </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. </span></li><li><span>Component can now
have associated 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> 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> of
the inserted records in the message header</li><li><a shape="rect"
href="recipient-list.html">Recipient List</a> now supports specifying
custom <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 <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 <code>camel-commands-core</code> module that SPI can extend and plugin
Camel commands for other environments.</li><li>Further hardening of the <a
shape="rect" href="sjms.html">SJMS</a> 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. </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 <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 <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 <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 <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 <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 endpointProperty of restConfiguration
doesn't work issue</li><li>Fixed the issue that CircuitBreakerLoadBalancer
fails on async processors</li><li>Fixed 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 pollEnrich not triggering error handler if an exception was thrown in
the polling.</li><li>Fixed a memory leak if using <a shape="rect"
href="dynamic-router.
html">Dynamic Router</a> that loops many times, and uses any
of <code>convertBodyTo</code> or <code>setBody</code>
or <code>transform</code> in the loop, causing memory to stack up until
the Exchange is done.</li><li>Fixed and improved how <a shape="rect"
href="bean.html">Bean</a> component and <a shape="rect"
href="simple.html">Simple</a> language invoking beans detect methods that
are overridden, and able to filter and apply this as a single method, to be
invoked. Avoids AmbiguousMethodCallException 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 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 - 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 - provides access to <a
shape="rect" class="external-link" href="http://google.com/calendar"
rel="nofollow">Google Calendar</a> via the <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
- provides access to <a shape="rect" class="external-link"
href="http://gmail.com/" rel="nofollow">Gmail</a> via the <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 - 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> (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 <code class="java
color1">@BootstrapWith</code><code class="java
plain">(CamelTestContextBootstrapper.</code><code class="java
keyword">class</code><code class="java plain">)</code> 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> component
now require configuring <code>transformerFactory</code> using <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 <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. 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> has
been removed, and instead just use the default servlet which is provided out of
the box. </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 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"> </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. </span></li><li><span>Component can now
have associated 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> 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> of
the inserted records in the message header</li><li><a shape="rect"
href="recipient-list.html">Recipient List</a> now supports specifying
custom <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 <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 <code>camel-commands-core</code> module that SPI can extend and plugin
Camel commands for other environments.</li><li>Further hardening of the <a
shape="rect" href="sjms.html">SJMS</a> 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. </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 <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 <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 <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 <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 <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 endpointProperty of restConfiguration
doesn't work issue</li><li>Fixed the issue that CircuitBreakerLoadBalancer
fails on async processors</li><li>Fixed 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 pollEnrich not triggering error handler if an exception was thrown in
the polling.</li><li>Fixed a memory leak if using <a shape="rect"
href="dynamic-router.
html">Dynamic Router</a> that loops many times, and uses any
of <code>convertBodyTo</code> or <code>setBody</code>
or <code>transform</code> in the loop, causing memory to stack up until
the Exchange is done.</li><li>Fixed and improved how <a shape="rect"
href="bean.html">Bean</a> component and <a shape="rect"
href="simple.html">Simple</a> language invoking beans detect methods that
are overridden, and able to filter and apply this as a single method, to be
invoked. Avoids AmbiguousMethodCallException 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 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 - 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 - provides access to <a
shape="rect" class="external-link" href="http://google.com/calendar"
rel="nofollow">Google Calendar</a> via the <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
- provides access to <a shape="rect" class="external-link"
href="http://gmail.com/" rel="nofollow">Gmail</a> via the <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 - 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> (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 <code class="java color1">@BootstrapWith</code><code class="java
plain">(CamelTestContextBootstrapper.</code><code class="java
keyword">class</code><code class="java plain">)</code> 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> component
now require configuring <code>transformerFactory</code> using <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 <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. 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> has
been removed, and instead just use the default servlet which is provided out of
the
box. </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 @@
</dependency>
]]></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. </p>
</div>
</div>
-<p> </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> </p><p> </p> <div
class="aui-message problem shadowed information-macro">
+<p> </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> </p><p> </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&option=value&...</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> </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.  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> </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&option=value&...</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> </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.
 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> </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("netty:udp://localhost:5155?sync=true")