Modified: websites/production/camel/content/camel-2170-release.html
==============================================================================
--- websites/production/camel/content/camel-2170-release.html (original)
+++ websites/production/camel/content/camel-2170-release.html Wed Mar 30 
16:22:36 2016
@@ -85,7 +85,7 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1 
id="Camel2.17.0Release-Camel2.17.0Release">Camel 2.17.0 Release</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><span 
class="confluence-embedded-file-wrapper"><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";></span></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.17.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the 2.17.0 release which resolved approx. 450 issues (new features, 
improvements and bug fixes).</p><ul><li>The component documentation generated 
from the source code has been double checked to be up to date and include all 
the options the endpoints supports.</li><li>Reworked the Apache Karaf feature 
to not install camel-spring by default. The problem is camel-spring is using 
spring-dm which is only supports S
 pring 3.x, and therefore Spring 3.x was installed and used. All the Camel 
features that uses Spring JARs are now using Spring 4.x.</li><li><a 
shape="rect" href="tools.html">Camel commands</a> for&#160;<a shape="rect" 
href="spring-boot.html">Spring Boot</a></li><li>Many improvements 
to&#160;Camel&#160;<a shape="rect" href="kura.html">Kura</a></li><li>Added 
transacted option to&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> when used as a consumer in a transacted route.</li><li>Added 
support for UPDATE operation to&#160;<a shape="rect" 
href="elasticsearch.html">ElasticSearch</a>.</li><li>Allow to reuse existing 
configured Elasticsearch Client on the <a shape="rect" 
href="elasticsearch.html">ElasticSearch</a> component, instead of creating a 
client per endpoint.&#160;</li><li>The&#160;<code>include</code> 
and&#160;<code>exclude</code> options on&#160;<a shape="rect" 
href="file2.html">File2</a> and&#160;<a shape="rect" href="ftp.html">FTP</a> 
endpoints is now case in-s
 ensitive out of the box.</li><li>Resource based component such as&#160;<a 
shape="rect" href="xslt.html">XSLT</a>,&#160;<a shape="rect" 
href="velocity.html">Velocity</a>&#160;etc can load the resource file from 
the&#160;<a shape="rect" href="registry.html">Registry</a>&#160;by 
using&#160;<code>ref:</code> as prefix.</li><li><span>Upgraded camel-amqp to 
the latest qpid-jms-client (also AMQP &lt; 1.0 is not supported 
anymore).</span></li><li><span>Many improvements to Camel <a shape="rect" 
href="amqp.html">AMQP</a> component.</span></li><li><span>The&#160;<a 
shape="rect" href="metrics-component.html">Metrics Component</a> allows to 
capture&#160;<a shape="rect" href="message-history.html">Message History</a> 
performance statistics with 
the&#160;<code>MetricsMessageHistoryFactory&#160;</code></span></li><li>Reduced 
the number of mbeans enlisted in the services tree, to only include mbeans that 
has value to be managed.</li><li>The&#160;<a shape="rect" 
href="elasticsearch.html">Elasticsear
 ch Component</a>&#160;now supports MultiGet operation</li><li>The&#160;<a 
shape="rect" href="throttler.html">Throttler</a> has been improved to be more 
performant and use a rolling window for time periods which gives a better 
flow.</li><li>The&#160;<code>setHeader</code> 
and&#160;<code>setExchangeProperty</code> allows to use a dynamic header key 
using the&#160;<a shape="rect" href="simple.html">Simple</a>&#160;language if 
the name of the key is a&#160;<a shape="rect" 
href="simple.html">Simple</a>&#160;language expression.</li><li>Add collate 
function to&#160;<a shape="rect" href="simple.html">Simple</a> language to make 
it easier to split a message body into sub lists of a specified size. The 
function is similar to the collate function from Groovy.</li><li>The&#160;<a 
shape="rect" href="camel-run-maven-goal.html">Camel Run Maven Goal</a> is able 
to auto detect if its a OSGi Blueprint or CDI project so end users no longer 
have to explicit configure this on the plugin.</li><li><a sha
 pe="rect" href="elasticsearch.html">Camel-Elasticsearch</a> now supports 
Multiget, Multisearch and exists operation</li><li><a shape="rect" 
href="git.html">Camel-Git</a> now supports Cherry-pick 
operation</li><li>Stopping the&#160;<code>Main</code> class from JMX will now 
trigger shutdown of the Main class/JVM also, as it does when hitting ctrl + 
c.</li><li>Added option to skipFirst to the&#160;<a shape="rect" 
href="tokenizer.html">Tokenizer</a> language to make it easy to skip the very 
first element, when for example splitting a CSV file using the&#160;<a 
shape="rect" href="splitter.html">Splitter</a> EIP.</li><li>The&#160;<a 
shape="rect" href="rest-dsl.html">Rest DSL</a> now supports default values for 
query parameters</li><li>The&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> now only binds from POJO to JSon/XML if the content-type is for json or 
xml. This allows you to specify a custom content-type and omit the binding, 
such as when having binary payloads.</li><li>Exchan
 ge and Message only output id in their toString method to avoid outputting any 
message details such as sensitive details from message 
bodies.</li><li>Camel&#160;<a shape="rect" href="error-handler.html">Error 
Handler</a> no longer log message body/header details when logging the <a 
shape="rect" href="message-history.html">Message History</a>. This avoids 
logging any&#160;sensitive details from message bodies.</li><li>Camel&#160;<a 
shape="rect" href="exception-clause.html">Exception Clause</a> and&#160;<a 
shape="rect" href="error-handler.html">Error Handler</a> now supports using a 
custom&#160;<code>Processor</code> to be invoked right after an exception was 
thrown using the new&#160;<strong>onExceptionOccurred</strong> 
option.</li><li><a shape="rect" href="rabbitmq.html">RabbitMQ</a> consumer more 
resilient to auto re-connect in case of connection failures</li><li>The&#160;<a 
shape="rect" href="json.html">JSON</a> <code>camel-jackson</code>&#160;can be 
used as a type converter to co
 nvert json to/from POJO and String/byte[] types, if 
enabled.</li><li>The&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> now supports loading the SQL queries from external files on the 
classpath or file system, where you can format the queries using newlines and 
indenting.</li><li>The&#160;<a shape="rect" href="mail.html">Mail</a> consumer 
allows to use an idempotent repository&#160;which allows to cluster consuming 
from the same mailbox, and let the repository coordinate whether a mail message 
is valid for the consumer to process.</li><li>Added support for completion 
interval on the&#160;<a shape="rect" href="sjms-batch.html">SJMS Batch</a> 
component, which allows to trigger batch completion in a fixed scheduled 
interval.</li><li>The&#160;<a shape="rect" href="http.html">HTTP</a> 
and&#160;<a shape="rect" href="http4.html">HTTP4</a> producers now support 
the&#160;<code>disableStreamCache</code> option to allow to use the raw 
response stream as the message body inste
 ad of wrapping using&#160;<a shape="rect" href="stream-caching.html">Stream 
caching</a></li><li>The <a shape="rect" href="cdi.html">Camel CDI</a> component 
has been improved to better fit into the CDI programming model, cover a larger 
set of containers, and provide these new features:<ul><li>The Camel events from 
the <code>org.apache.camel.management.event</code> package (like 
<code>CamelContextStartedEvent</code>)&#160;can be observed as CDI 
events</li><li>The new CDI event Camel endpoint enable&#160;<span>CDI events to 
be seamlessly consumed from (respectively produced by) Camel consumers 
(respectively Camel producers)</span></li><li><span><span>CDI beans annotated 
with the&#160;</span><code>@Converter</code><span>&#160;annotation are 
automatically registered as type 
converters</span></span></li><li><span><span>The CDI Camel contexts can 
be&#160;properly customised programmatically in bean constructor 
or&#160;<code>@PostConstruct</code> lifecycle callback</span></span></li><li>Cam
 el routes configured in <code>RouteBuilder</code> beans are added before the 
corresponding Camel contexts get started</li><li><span>CDI Camel contexts are 
now properly adapted when deployed in OSGi containers and are registered as 
OSGi services</span></li><li>Proper support of multiple Camel contexts across 
all the features<span><br clear="none"></span></li><li>A new <a shape="rect" 
href="cdi-testing.html">Camel CDI Test</a> module is available to ease testing 
of Camel CDI applications</li></ul></li><li>The&#160;<a shape="rect" 
href="xslt.html">XSLT</a> component now supports Saxon's&#160;<a shape="rect" 
class="external-link" 
href="http://www.saxonica.com/html/documentation/extensibility/integratedfunctions";
 rel="nofollow" title="Follow link">integrated extension 
functions</a>.</li><li>Added option&#160;<code>reuseChannel</code> to&#160;<a 
shape="rect" href="netty4.html">Netty4</a> which allows to reuse existing 
Channel when using a netty producer to call a server multiple times dur
 ing routing an Exchange.</li><li>Idempotent Repository now supports optional 
serialized headers&#160;</li><li><a shape="rect" href="rest-dsl.html">Rest 
DSL</a> adjusted to swagger spec 2.0 and&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a> as well.</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> allows to specify response headers as 
well.</li><li><a shape="rect" href="rest-dsl.html">Rest DSL</a> is exposing the 
REST services using all local IP address (eg 0.0.0.0) by default.</li><li><a 
shape="rect" href="quartz2.html">Camel-quartz2</a> now supports customCalendar 
to avoid specific range of dates (Holidays for example) in Scheduler and 
Triggers.</li><li>Improved&#160;<a shape="rect" href="bean-language.html">Bean 
Language</a> to be able to invoke static methods on pure static 
classes.</li><li>When&#160;<a shape="rect" href="bean-language.html">Bean 
Language</a> failed to invoke a method from an&#160;OGNL method chain (eg 
invoke the following 3 methods "doFo
 o.doSomething.getBar") and a method returned null which prevent further method 
invocation as that would cause a NullPointerException. Now you have a more 
detailed exception message to better explain this.</li><li><a shape="rect" 
href="jaxb.html">JAXB</a> data format and type converter now supports 
converting from XML to POJO for classes that are using ObjectFactory classes 
instead of XmlRootElement annotations.</li><li>The&#160;<a shape="rect" 
href="kafka.html">Kafka</a> component has been migrated to use the Java Kafka 
client instead of Scala. As such there may be migration efforts or code changes 
that can affect users upgrading.</li><li>The&#160;<a shape="rect" 
href="loop.html">Loop</a> EIP now allows to run in a while loop mode, so it 
loops until the predicate returns false.</li><li>Improved&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> when CORS enabled to process and return the 
configured CORS headers in the rest-dsl in all the supported&#160;<a 
shape="rect" href="rest
 -dsl.html">Rest DSL</a> 
components.</li><li>The&#160;<code>options</code>&#160;verb in the&#160;<a 
shape="rect" href="rest-dsl.html">Rest DSL</a> has been deprecated and are not 
in use if CORS is enabled.</li><li>The&#160;<a shape="rect" 
href="logeip.html">LogEIP</a> allows to use a global configured log name, 
instead of using route id as the logger name</li><li>A 
new&#160;<code>camel-spring-boot-starter</code> module that is a Spring-Boot 
starter module like any other starter modules.</li><li>Allow to run 
Camel&#160;<a shape="rect" href="spring-boot.html">Spring Boot</a> applications 
and keep the JVM running in a easy way by 
setting&#160;<code>camel.springboot.main-run-controller = true</code> 
option.</li><li>The&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> supports using SQL IN queries in the producer where the number of 
values in the IN clause is dynamic from the current 
exchange.</li><li>The&#160;<a shape="rect" href="swagger-java.html">Swagger 
Java</a> modul
 e now supports YAML as response format in addition to the exisitng JSon 
format.</li></ul><p>Fixed these issues</p><ul><li>The&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a> now parses nested types in the POJO 
model that has been annotated with the swagger api annotations to use in the 
schema api model</li><li>Fixed&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> with&#160;apiContextPath fail to start if there are 2 ore more rest's 
in use.</li><li>Fixed&#160;<a shape="rect" href="rest-dsl.html">Rest DSL</a> 
with&#160;<a shape="rect" href="swagger-java.html">Swagger Java</a> to output 
the swagger API with property placeholder resolved to actual used 
values.</li><li><a shape="rect" href="paho.html">Paho</a>&#160;component name 
is not limited to 4 characters anymore.</li><li>Fixed&#160;<a shape="rect" 
href="spring-boot.html">Spring Boot</a> not starting Camel routes if running in 
Spring Cloud.</li><li>Fixed an issue with&#160;<a shape="rect" 
href="swagger-java.htm
 l">Swagger Java</a> using api-docs could lead to api-doc route being added 
multiple times</li><li>Fixed a few things missing in the generated swagger 
model when using&#160;<a shape="rect" href="swagger-java.html">Swagger 
Java</a></li><li>Fixed using&#160;<code>statement.xxx</code> options on 
the&#160;<a shape="rect" href="jdbc.html">JDBC</a> consumer would only be used 
in first poll.</li><li>Fixed &#160;<a shape="rect" 
href="http.html">HTTP</a>&#160;and&#160;<a shape="rect" 
href="http4.html">HTTP4</a>&#160;to keep trailing slash if provided in uri when 
calling remote HTTP service.</li><li>Fixed&#160;<a shape="rect" 
href="oncompletion.html">OnCompletion</a> to keep any caught exception stored 
as property on the&#160;<code>Exchange</code> which allows to access that 
information to know if there was an exception during routing.</li><li>Fixed an 
issue with&#160;<a shape="rect" href="bean.html">Bean</a> component or&#160;<a 
shape="rect" href="simple.html">Simple</a> language with OGNL me
 thod call, would pick method with java.lang.Object type over a better suited 
method, when the method is 
overloaded.</li><li>Fixed&#160;<code>camel-blueprint</code> to wait for the 
bundles with the component and data-formats the&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> has been configured to use, are available 
before starting Camel.</li><li>Fixed an issue with&#160;<a shape="rect" 
href="error-handler.html">Error Handler</a> would log any handled(true) 
exceptions.</li><li>Fixed a memory leak if adding/removing routes using&#160;<a 
shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a> where the 
repository would not be removed from the JMX registry when routes is 
removed.</li><li>Fixed issue with&#160;<a shape="rect" 
href="spring-boot.html">Spring Boot</a> would eager shutdown some Camel 
resources like type converters, which spring-boot should let Camel handle the 
lifecycle of these resources.</li><li>Fixed&#160;<a shape="rect" 
href="cxfrs.html">CXFRS</a> us
 ing simple binding mode would use the content-length header from the incoming 
message in the response, instead of calculating the length based on the output 
message body.</li><li>Fixed an issue with&#160;<a shape="rect" 
href="simple.html">Simple</a> if starting the expression 
with&#160;<code>file:</code> could fail with an error.</li><li>Fixed&#160;<a 
shape="rect" href="spring-boot.html">Spring Boot</a> may report spring type 
converter errors if <a shape="rect" href="stream-caching.html">Stream 
caching</a> is enabled.</li><li>Fixed&#160;<a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> would not propagate 
exception thrown from&#160;<code>IdempotentRepository</code> to Camel's&#160;<a 
shape="rect" href="error-handler.html">Error Handler</a> such 
as&#160;<code>onException</code><code><br clear="none"></code></li></ul><h3 
id="Camel2.17.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a></h3><h3 id="Came
 l2.17.0Release-New.1">New <a shape="rect" 
href="components.html">Components</a></h3><ul><li><a shape="rect" 
href="aws-kinesis.html">camel-aws</a><span style="line-height: 1.42857;"> - AWS 
kinesis streams component added</span></li><li><a shape="rect" 
href="aws-ddbstream.html">camel-aws</a> - DynamoDB streams component 
added</li><li><a shape="rect" href="braintree.html">camel-braintree</a>&#160;- 
for interacting with Braintree Payments.</li><li><a shape="rect" 
href="cdi-testing.html">camel-test-cdi</a> - ease testing of Camel CDI 
applications</li><li><a shape="rect" href="etcd.html">camel-etcd</a><span 
style="line-height: 1.42857;">&#160;- Integrating Camel with&#160;</span><a 
shape="rect" class="external-link" href="https://coreos.com/etcd/"; 
style="line-height: 1.42857;" rel="nofollow">Etcd</a><span style="line-height: 
1.42857;">&#160;key value store</span></li><li>camel-kubernetes - Integrates 
Camel with Kubernetes</li><li><a shape="rect" 
href="ignite.html">camel-ignite</a> - for w
 orking with Apache Ignite.</li><li>camel-ironmq - messaging with the <a 
shape="rect" class="external-link" href="http://www.iron.io/platform/ironmq/"; 
rel="nofollow">IronMQ</a> cloud messaging.</li><li><a shape="rect" 
href="jcache.html">camel-jcache</a><a shape="rect" 
href="mllp.html"><span>&#160;- support&#160;</span></a><a shape="rect" 
class="external-link" href="https://github.com/jsr107/jsr107spec"; 
rel="nofollow">JCache / JSR107</a><a shape="rect" 
href="mllp.html"><span>&#160;caching.</span></a></li><li><a shape="rect" 
href="mllp.html">camel-mllp</a> -&#160;<span style="color: rgb(0,0,0);">for 
working with the HL7 MLLP protocol. This is an alternative to&#160;<a 
shape="rect" href="hl7.html">HL7</a> component.</span></li><li><span 
style="color: rgb(0,0,0);">camel-nats - for interacting with Nats messaging 
platform</span></li><li><a shape="rect" 
href="apache-spark.html">camel-spark</a> - bridges Apache Spark computations 
with Camel endpoints</li><li><a shape="rect" href="sql-stored
 -procedure.html">camel-sql</a> - Now supports calling stored procedures using 
the new <a shape="rect" href="sql-stored-procedure.html">sql-stored 
component</a>.</li></ul><h3 id="Camel2.17.0Release-NewDSL">New DSL</h3><h3 
id="Camel2.17.0Release-NewAnnotations">New Annotations</h3><h3 
id="Camel2.17.0Release-NewDataFormats">New <a shape="rect" 
href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect" 
href="mime-multipart.html">MIME-Multipart</a> - mime based data 
format.</li><li><a shape="rect" href="lzf-data-format.html">LZF Data Format</a> 
- LZF based data format.&#160;</li><li><a shape="rect" 
href="yaml-data-format.html">YAML Data Format</a> - YAML based data 
format.</li><li>Hessian - Caucho Hessian based data format.</li></ul><h3 
id="Camel2.17.0Release-New.2">New <a shape="rect" 
href="languages.html">Languages</a></h3><h3 id="Camel2.17.0Release-New.3">New 
<a shape="rect" 
href="examples.html">Examples</a></h3><ul><li>camel-example-cdi-metrics - 
illustrates the integration
  between Camel, Dropwizard Metrics and 
CDI.</li><li>camel-example-cdi-properties -&#160;<span>illustrates the 
integration between Camel, DeltaSpike and CDI for configuration 
properties.</span></li><li><span>camel-example-cdi-osgi - a<span>&#160;CDI 
application using the SJMS component that can be executed inside an OSGi 
container using PAX 
CDI.</span></span></li><li><span>camel-example-cdi-rest-servlet 
-&#160;<span>illustrates the Camel REST DSL being used in a Web application 
that uses CDI as dependency injection 
framework.</span></span></li><li>camel-example-cdi-test - demonstrates the 
testing features that are provided as part of the integration between Camel and 
CDI.<span><span><br 
clear="none"></span></span></li><li>camel-example-spring-boot-metrics - showing 
a Camel spring-boot application that report metrics to Graphite. Requires 
Graphite running on your network.</li><li>camel-example-widget-gadget-cdi - The 
Widget and Gadget use-case from the EIP book implemented in Java wit
 h CDI dependency Injection.</li><li>camel-example-widget-gadget-java - The 
Widget and Gadget use-case from the EIP book implemented in plain old Java Main 
without any kind of <em>application 
server</em>.</li><li>camel-example-widget-gadget-xml - The Widget and Gadget 
use-case from the EIP book implemented in Spring XML without any Java code or 
any kind of&#160;<em>application server</em>.</li></ul><h3 
id="Camel2.17.0Release-New.4">New <a shape="rect" 
href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.17.0Release-APIbreaking">API breaking</h2><ul><li>As part of the <a 
shape="rect" href="cdi.html">Camel CDI</a> component refactoring:<ul><li>The 
<code>@ContextName</code>&#160;qualifier does not have a default empty value 
anymore as it is irrelevant</li><li>The&#160;CdiPropertiesComponent&#160;class 
has been removed, the standard&#160;PropertiesComponent&#160;can be used 
instead</li></ul></li></ul><h2 id="Camel2.17.0Release-KnownIssues">Known 
Issues</h2><ul><li>camel-guice cannot in
 stall in Karaf/ServiceMix</li></ul><h2 
id="Camel2.17.0Release-Dependencyupgrades">Dependency 
upgrades</h2><ul><li>Apache Cassandra from 2.1.8 to 2.2.2</li><li>Apache 
Deltaspike from 1.5.1 to 1.5.2</li><li>Apache Gora from 0.6 to 
0.6.1</li><li>Apache Jackrabbit from 2.11.0 to 2.11.3</li><li>Apache Kafka from 
0.8.2.2 to 0.9.0.0</li><li>Apache Lucene from 4.10.4 to 5.2.1</li><li>Apache 
Mina from 2.0.9 to 2.0.10</li><li>Apache OpenEjb from 4.7.2 to 
4.7.3</li><li>Apache Solr from 4.10.4 to 5.2.1</li><li>Aws SDK Java to version 
1.10.37</li><li>Atmosphere from <span class="blob-code-inner">2.4.0</span> to 
2.4.1.4</li><li>Cassandra driver from 2.1.8 to 2.1.9</li><li>Cassandra-unit 
from 2.1.9.2 to 2.2.2.1</li><li>Cglib from 3.1 to 3.2.0</li><li>Classmate from 
1.3.0 to 1.3.1</li><li>Chunk from 3.0.1 to 3.1.2</li><li>Drools from 
6.2.0.Final to 6.3.0.Final</li><li>EHCache from 2.10.0 to 
2.10.1</li><li>Elasticsearch from 1.7.3 to 2.0.0</li><li>Embedded Mongodb from 
1.50.0 to 1.50.2</li><li>Faceb
 ook4j from 2.3.1 to 2.4.2</li><li>GAE from 1.9.26 to 1.9.32</li><li>Google 
Gson from 2.4 to 2.61</li><li>Hazelcast from 3.5.2 to 3.6</li><li>Infinispan 
from 8.0.1.Final to 8.1.2.Final</li><li>Jackson from 2.6.3 to 
2.7.1</li><li>Jboss Xnio from 3.3.1.Final to 3.3.4.Final</li><li>Jboss Weld 
from 2.3.0.Final to 2.3.3.Final</li><li>Jbpm from 6.2.0.Final to 
6.3.0.Final</li><li>Jgit from <span class="blob-code-inner">4.1.<span class="x 
x-first x-last">0.201509280440</span>-r</span> to <span 
class="blob-code-inner">4.1.<span class="x x-first 
x-last">1.201511131810</span>-r</span></li><li>Joda-time from 2.8.2 to 
2.9.1</li><li>Json-path from 2.0.0 to 2.1.0</li><li>Jt400 from 8.6 to 
8.7</li><li>Kie from 6.2.0.Final to 6.3.0.Final</li><li>Maven Exec plugin from 
1.2.1 to 1.4.0</li><li>Mongodb Java driver from 3.0.4 to 3.2.0</li><li>Mvel 
from 2.2.6.Final to 2.2.7.Final</li><li>Ognl from 3.1 to 3.1.1</li><li>Olingo 
from 2.0.4 to 2.0.5</li><li>Optaplanner from 6.2.0.Final to 
6.3.0.Final</li><li>Pa
 x-exam from 4.6.0 to 4.8.0</li><li>Spring 4.1.x to 4.2.x</li><li>Spring-Boot 
1.2.x to 1.3.x</li><li>Spring Integration 2.x to 4.x</li><li>slf4j-api 1.6.x to 
1.7.x</li><li>Undertow from 1.3.3.Final to 1.3.7.Final</li><li>Vertx from 3.1.0 
to 3.2.0</li><li>Zookeeper from 3.4.6 to 3.4.7</li></ul><h2 
id="Camel2.17.0Release-Importantchangestoconsiderwhenupgrading">Important 
changes to consider when upgrading</h2><ul><li><strong>This is the last release 
that will support Java 1.7. Releases after this is expected to require Java 
1.8+.&#160;</strong></li><li>When installing the camel feature in Apache Karaf, 
then camel-spring is not longer installed by default. You need to install 
camel-spring feature if using spring-dm on Karaf.&#160;</li><li>Reworked the 
Apache Karaf feature to not install camel-spring by default. The problem is 
camel-spring is using spring-dm which is only supports Spring 3.x, and 
therefore Spring 3.x was installed and used. All the Camel features that uses 
Spring JARs ar
 e now using Spring 4.x.</li><li>Removed camel-docker from karaf features as it 
does not work in OSGi</li><li>Some changes in&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a>&#160;to adjust naming and types to the 
Swagger Spec 2.0</li><li>Any custom component that supports suspension in 
doSuspend/doResume should implement the new&#160;<code>Suspendable</code> 
marker interface, so Camel knows there is custom logic for suspension in the 
component.</li><li>Exchange and Message only output id in their toString method 
to avoid outputting any message details such as sensitive details from message 
bodies.</li><li>Removed camel-hbase as Karaf feature as it did not really work 
well in OSGi</li><li>Upgraded camel-hbase to Hadoop 2.x and HBase 
1.1.x</li><li>camel-infinispan requires Java 8.</li><li>camel-mustache requires 
Java 8.</li><li>Support for Spring 4.0.x is deprecated. Support for Spring 3.x 
is being <strong>removed</strong> in the next release.</li><li>Support for 
Karaf 2.x and 3
 .x is deprecated. And removed in next release, where Karaf 4.x onwards is only 
supported.</li><li>camel-jetty8 is deprecated and being removed in next 
release.</li><li>Moved some Camel tooling related dependencies (such as 
maven/plexus) from the Camel Parent BOM to the tooling BOM (to have them 
separated).</li><li>camel-amqp do not support 0.9 
anymore.&#160;</li><li>camel-spring-integration feature has been removed from 
the Camel karaf.</li><li>The&#160;<a shape="rect" href="mail.html">Mail</a> 
component now requires to configure to, cc, and bcc using lower case keys, eg 
to=f...@bar.com, instead of&#160;<a shape="rect" class="external-link" 
href="mailto:To=f...@bar.com"; rel="nofollow">To=f...@bar.com</a>&#160;as 
previously.</li><li>The&#160;<a shape="rect" 
href="file2.html">File</a>&#160;consumer no longer probe the file content by 
default. See the option&#160;<code>probeContentType</code> for more 
details.</li><li>If using&#160;<a shape="rect" 
href="bean.html">Bean</a>&#160;or&#160;<a
  shape="rect" href="class.html">Class</a>&#160;component and specifying 
additional parameters in the endpoint uri to configure on the bean, then these 
options should now be prefixed with bean., eg <code>foo=123</code>&#160;is now 
<code>bean.foo=123</code>.</li><li>The&#160;<a shape="rect" 
href="twitter.html">Twitter</a> delay option is changed from seconds to milli 
seconds by default, eg 10 should be 10000 to indicate 10 seconds. This is 
aligned how other components with delay option behaves.&#160;</li><li>The 
options&#160;<code>attributeNames</code> 
and&#160;<code>messageAttributeNames</code> on&#160;<a shape="rect" 
href="aws-sqs.html">AWS-SQS</a> is changed to a string type where you can 
separate multiple values using comma. Before the type was a Collection which 
was much harder to configure in the Camel uris.</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> is exposing the REST services using all local 
IP address (eg 0.0.0.0) by default, instead of the local IP address o
 f the host.</li><li>The&#160;<a shape="rect" href="hbase.html">hbase</a> 
component now require row mapping from the endpoint uri to be prefixed with 
<code style="line-height: 1.42857;">row.</code>&#160;as prefix.<br 
clear="none">Before: 
<code>family=info&amp;qualifier=firstName&amp;family2=birthdate&amp;qualifier2=year</code>.&#160;After:&#160;<code>row.family=info&amp;row.qualifier=firstName&amp;row.family2=birthdate&amp;row.qualifier2=year</code>.</li><li>As
 part of the <a shape="rect" href="cdi.html">Camel CDI</a> component 
refactoring,&#160;<em>DeltaSpike</em> is not used anymore for the sourcing of 
the configuration properties. This new version of the component is agnostic to 
any configuration sourcing mechanism and delegates that concern to the 
application so that it can declare a 
custom&#160;<code>PropertiesComponent</code>&#160;bean whose sourcing is 
tailored to its need. <em>DeltaSpike</em> can still be used by the application 
by declaring a&#160;<code>PropertiesComponent</
 code>&#160;bean configured with 
a&#160;<code>PropertiesParser</code>&#160;relying on <em>DeltaSpike</em>. See 
the&#160;<code>camel-example-cdi-properties</code>&#160;example for more 
details.</li><li>The&#160;<a shape="rect" href="kafka.html">Kafka</a> component 
has been migrated to use the Java Kafka client instead of Scala. As such there 
may be migration efforts or code changes that can affect users 
upgrading.</li><li>Improved&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> when CORS enabled to process and return the configured CORS headers in 
the rest-dsl in all the supported&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> 
components.</li><li>The&#160;<code>options</code>&#160;verb in the&#160;<a 
shape="rect" href="rest-dsl.html">Rest DSL</a> has been deprecated and are not 
in use if CORS is enabled.<br clear="none"><br clear="none"><br 
clear="none"></li></ul><h2 
id="Camel2.17.0Release-GettingtheDistributions">Getting the 
Distributions</h2><h3 id="Camel2.17.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.17.0/apache-camel-2.17.0.zip";>apache-camel-2.17.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.17.0/apache-camel-2.17.0.zip.asc";>apache-camel-2.17.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" row
 span="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.17.0/apache-camel-2.17.0.tar.gz";>apache-camel-2.17.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.17.0/apache-camel-2.17.0.tar.gz.asc";>apache-camel-2.17.0.tar.gz.asc</a></p></td></tr></tbody></table></div><div
 class="confluence-information-macro 
confluence-information-macro-information"><p class="title">The above URLs use 
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The above URLs use the Apache 
Mirror system to redirect you to a suitable mirror for your download. Some 
users have experienced issues with some versions of browsers (e.g. some Safari 
browsers). If the download doesn't seem to work for you from the above URL
  then try using <a shape="rect" class="external-link" 
href="http://www.mozilla.com/en-US/firefox/"; 
rel="nofollow">FireFox</a></p></div></div><h3 
id="Camel2.17.0Release-SourceDistributions">Source 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>Source for Windows</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.17.0/apache-camel-2.17.0-src.zip";>apache-camel-2.17.0-src.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.17.0/apache-camel-2.
 
17.0-src.zip.asc">apache-camel-2.17.0-src.zip.asc</a></p></td></tr></tbody></table></div><h3
 id="Camel2.17.0Release-GettingtheBinariesusingMaven2">Getting the Binaries 
using Maven 2</h3><p>To use this release in your maven project, the proper 
dependency configuration that you should use in your <a shape="rect" 
class="external-link" 
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html";>Maven
 POM</a> is:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h1 
id="Camel2.17.0Release-Camel2.17.0Release">Camel 2.17.0 Release</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><span 
class="confluence-embedded-file-wrapper"><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";></span></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.17.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the 2.17.0 release which resolved approx. 450 issues (new features, 
improvements and bug fixes).</p><ul><li>The component documentation generated 
from the source code has been double checked to be up to date and include all 
the options the endpoints supports.</li><li>Reworked the Apache Karaf feature 
to not install camel-spring by default. The problem is camel-spring is using 
spring-dm which is only supports S
 pring 3.x, and therefore Spring 3.x was installed and used. All the Camel 
features that uses Spring JARs are now using Spring 4.x.</li><li><a 
shape="rect" href="tools.html">Camel commands</a> for&#160;<a shape="rect" 
href="spring-boot.html">Spring Boot</a></li><li>Many improvements 
to&#160;Camel&#160;<a shape="rect" href="kura.html">Kura</a></li><li>Added 
transacted option to&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> when used as a consumer in a transacted route.</li><li>Added 
support for UPDATE operation to&#160;<a shape="rect" 
href="elasticsearch.html">ElasticSearch</a>.</li><li>Allow to reuse existing 
configured Elasticsearch Client on the <a shape="rect" 
href="elasticsearch.html">ElasticSearch</a> component, instead of creating a 
client per endpoint.&#160;</li><li>The&#160;<code>include</code> 
and&#160;<code>exclude</code> options on&#160;<a shape="rect" 
href="file2.html">File2</a> and&#160;<a shape="rect" href="ftp.html">FTP</a> 
endpoints is now case in-s
 ensitive out of the box.</li><li>Resource based component such as&#160;<a 
shape="rect" href="xslt.html">XSLT</a>,&#160;<a shape="rect" 
href="velocity.html">Velocity</a>&#160;etc can load the resource file from 
the&#160;<a shape="rect" href="registry.html">Registry</a>&#160;by 
using&#160;<code>ref:</code> as prefix.</li><li><span>Upgraded camel-amqp to 
the latest qpid-jms-client (also AMQP &lt; 1.0 is not supported 
anymore).</span></li><li><span>Many improvements to Camel <a shape="rect" 
href="amqp.html">AMQP</a> component.</span></li><li><span>The&#160;<a 
shape="rect" href="metrics-component.html">Metrics Component</a> allows to 
capture&#160;<a shape="rect" href="message-history.html">Message History</a> 
performance statistics with 
the&#160;<code>MetricsMessageHistoryFactory&#160;</code></span></li><li>Reduced 
the number of mbeans enlisted in the services tree, to only include mbeans that 
has value to be managed.</li><li>The&#160;<a shape="rect" 
href="elasticsearch.html">Elasticsear
 ch Component</a>&#160;now supports MultiGet operation</li><li>The&#160;<a 
shape="rect" href="throttler.html">Throttler</a> has been improved to be more 
performant and use a rolling window for time periods which gives a better 
flow.</li><li>The&#160;<code>setHeader</code> 
and&#160;<code>setExchangeProperty</code> allows to use a dynamic header key 
using the&#160;<a shape="rect" href="simple.html">Simple</a>&#160;language if 
the name of the key is a&#160;<a shape="rect" 
href="simple.html">Simple</a>&#160;language expression.</li><li>Add collate 
function to&#160;<a shape="rect" href="simple.html">Simple</a> language to make 
it easier to split a message body into sub lists of a specified size. The 
function is similar to the collate function from Groovy.</li><li>The&#160;<a 
shape="rect" href="camel-run-maven-goal.html">Camel Run Maven Goal</a> is able 
to auto detect if its a OSGi Blueprint or CDI project so end users no longer 
have to explicit configure this on the plugin.</li><li><a sha
 pe="rect" href="elasticsearch.html">Camel-Elasticsearch</a> now supports 
Multiget, Multisearch and exists operation</li><li><a shape="rect" 
href="git.html">Camel-Git</a> now supports Cherry-pick 
operation</li><li>Stopping the&#160;<code>Main</code> class from JMX will now 
trigger shutdown of the Main class/JVM also, as it does when hitting ctrl + 
c.</li><li>Added option to skipFirst to the&#160;<a shape="rect" 
href="tokenizer.html">Tokenizer</a> language to make it easy to skip the very 
first element, when for example splitting a CSV file using the&#160;<a 
shape="rect" href="splitter.html">Splitter</a> EIP.</li><li>The&#160;<a 
shape="rect" href="rest-dsl.html">Rest DSL</a> now supports default values for 
query parameters</li><li>The&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> now only binds from POJO to JSon/XML if the content-type is for json or 
xml. This allows you to specify a custom content-type and omit the binding, 
such as when having binary payloads.</li><li>Exchan
 ge and Message only output id in their toString method to avoid outputting any 
message details such as sensitive details from message 
bodies.</li><li>Camel&#160;<a shape="rect" href="error-handler.html">Error 
Handler</a> no longer log message body/header details when logging the <a 
shape="rect" href="message-history.html">Message History</a>. This avoids 
logging any&#160;sensitive details from message bodies.</li><li>Camel&#160;<a 
shape="rect" href="exception-clause.html">Exception Clause</a> and&#160;<a 
shape="rect" href="error-handler.html">Error Handler</a> now supports using a 
custom&#160;<code>Processor</code> to be invoked right after an exception was 
thrown using the new&#160;<strong>onExceptionOccurred</strong> 
option.</li><li><a shape="rect" href="rabbitmq.html">RabbitMQ</a> consumer more 
resilient to auto re-connect in case of connection failures</li><li>The&#160;<a 
shape="rect" href="json.html">JSON</a> <code>camel-jackson</code>&#160;can be 
used as a type converter to co
 nvert json to/from POJO and String/byte[] types, if 
enabled.</li><li>The&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> now supports loading the SQL queries from external files on the 
classpath or file system, where you can format the queries using newlines and 
indenting.</li><li>The&#160;<a shape="rect" href="mail.html">Mail</a> consumer 
allows to use an idempotent repository&#160;which allows to cluster consuming 
from the same mailbox, and let the repository coordinate whether a mail message 
is valid for the consumer to process.</li><li>Added support for completion 
interval on the&#160;<a shape="rect" href="sjms-batch.html">SJMS Batch</a> 
component, which allows to trigger batch completion in a fixed scheduled 
interval.</li><li>The&#160;<a shape="rect" href="http.html">HTTP</a> 
and&#160;<a shape="rect" href="http4.html">HTTP4</a> producers now support 
the&#160;<code>disableStreamCache</code> option to allow to use the raw 
response stream as the message body inste
 ad of wrapping using&#160;<a shape="rect" href="stream-caching.html">Stream 
caching</a></li><li>The <a shape="rect" href="cdi.html">Camel CDI</a> component 
has been improved to better fit into the CDI programming model, cover a larger 
set of containers, and provide these new features:<ul><li>The Camel events from 
the <code>org.apache.camel.management.event</code> package (like 
<code>CamelContextStartedEvent</code>)&#160;can be observed as CDI 
events</li><li>The new CDI event Camel endpoint enable&#160;<span>CDI events to 
be seamlessly consumed from (respectively produced by) Camel consumers 
(respectively Camel producers)</span></li><li><span><span>CDI beans annotated 
with the&#160;</span><code>@Converter</code><span>&#160;annotation are 
automatically registered as type 
converters</span></span></li><li><span><span>The CDI Camel contexts can 
be&#160;properly customised programmatically in bean constructor 
or&#160;<code>@PostConstruct</code> lifecycle callback</span></span></li><li>Cam
 el routes configured in <code>RouteBuilder</code> beans are added before the 
corresponding Camel contexts get started</li><li><span>CDI Camel contexts are 
now properly adapted when deployed in OSGi containers and are registered as 
OSGi services</span></li><li>Proper support of multiple Camel contexts across 
all the features<span><br clear="none"></span></li><li>A new <a shape="rect" 
href="cdi-testing.html">Camel CDI Test</a> module is available to ease testing 
of Camel CDI applications</li></ul></li><li>The&#160;<a shape="rect" 
href="xslt.html">XSLT</a> component now supports Saxon's&#160;<a shape="rect" 
class="external-link" 
href="http://www.saxonica.com/html/documentation/extensibility/integratedfunctions";
 rel="nofollow" title="Follow link">integrated extension 
functions</a>.</li><li>Added option&#160;<code>reuseChannel</code> to&#160;<a 
shape="rect" href="netty4.html">Netty4</a> which allows to reuse existing 
Channel when using a netty producer to call a server multiple times dur
 ing routing an Exchange.</li><li>Idempotent Repository now supports optional 
serialized headers&#160;</li><li><a shape="rect" href="rest-dsl.html">Rest 
DSL</a> adjusted to swagger spec 2.0 and&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a> as well.</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> allows to specify response headers as 
well.</li><li><a shape="rect" href="rest-dsl.html">Rest DSL</a> is exposing the 
REST services using all local IP address (eg 0.0.0.0) by default.</li><li><a 
shape="rect" href="quartz2.html">Camel-quartz2</a> now supports customCalendar 
to avoid specific range of dates (Holidays for example) in Scheduler and 
Triggers.</li><li>Improved&#160;<a shape="rect" href="bean-language.html">Bean 
Language</a> to be able to invoke static methods on pure static 
classes.</li><li>When&#160;<a shape="rect" href="bean-language.html">Bean 
Language</a> failed to invoke a method from an&#160;OGNL method chain (eg 
invoke the following 3 methods "doFo
 o.doSomething.getBar") and a method returned null which prevent further method 
invocation as that would cause a NullPointerException. Now you have a more 
detailed exception message to better explain this.</li><li><a shape="rect" 
href="jaxb.html">JAXB</a> data format and type converter now supports 
converting from XML to POJO for classes that are using ObjectFactory classes 
instead of XmlRootElement annotations.</li><li>The&#160;<a shape="rect" 
href="kafka.html">Kafka</a> component has been migrated to use the Java Kafka 
client instead of Scala. As such there may be migration efforts or code changes 
that can affect users upgrading.</li><li>The&#160;<a shape="rect" 
href="loop.html">Loop</a> EIP now allows to run in a while loop mode, so it 
loops until the predicate returns false.</li><li>Improved&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> when CORS enabled to process and return the 
configured CORS headers in the rest-dsl in all the supported&#160;<a 
shape="rect" href="rest
 -dsl.html">Rest DSL</a> 
components.</li><li>The&#160;<code>options</code>&#160;verb in the&#160;<a 
shape="rect" href="rest-dsl.html">Rest DSL</a> has been deprecated and are not 
in use if CORS is enabled.</li><li>The&#160;<a shape="rect" 
href="logeip.html">LogEIP</a> allows to use a global configured log name, 
instead of using route id as the logger name</li><li>A 
new&#160;<code>camel-spring-boot-starter</code> module that is a Spring-Boot 
starter module like any other starter modules.</li><li>Allow to run 
Camel&#160;<a shape="rect" href="spring-boot.html">Spring Boot</a> applications 
and keep the JVM running in a easy way by 
setting&#160;<code>camel.springboot.main-run-controller = true</code> 
option.</li><li>The&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> supports using SQL IN queries in the producer where the number of 
values in the IN clause is dynamic from the current 
exchange.</li><li>The&#160;<a shape="rect" href="swagger-java.html">Swagger 
Java</a> modul
 e now supports YAML as response format in addition to the exisitng JSon 
format.</li></ul><p>Fixed these issues</p><ul><li>The&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a> now parses nested types in the POJO 
model that has been annotated with the swagger api annotations to use in the 
schema api model</li><li>Fixed&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> with&#160;apiContextPath fail to start if there are 2 ore more rest's 
in use.</li><li>Fixed&#160;<a shape="rect" href="rest-dsl.html">Rest DSL</a> 
with&#160;<a shape="rect" href="swagger-java.html">Swagger Java</a> to output 
the swagger API with property placeholder resolved to actual used 
values.</li><li><a shape="rect" href="paho.html">Paho</a>&#160;component name 
is not limited to 4 characters anymore.</li><li>Fixed&#160;<a shape="rect" 
href="spring-boot.html">Spring Boot</a> not starting Camel routes if running in 
Spring Cloud.</li><li>Fixed an issue with&#160;<a shape="rect" 
href="swagger-java.htm
 l">Swagger Java</a> using api-docs could lead to api-doc route being added 
multiple times</li><li>Fixed a few things missing in the generated swagger 
model when using&#160;<a shape="rect" href="swagger-java.html">Swagger 
Java</a></li><li>Fixed using&#160;<code>statement.xxx</code> options on 
the&#160;<a shape="rect" href="jdbc.html">JDBC</a> consumer would only be used 
in first poll.</li><li>Fixed &#160;<a shape="rect" 
href="http.html">HTTP</a>&#160;and&#160;<a shape="rect" 
href="http4.html">HTTP4</a>&#160;to keep trailing slash if provided in uri when 
calling remote HTTP service.</li><li>Fixed&#160;<a shape="rect" 
href="oncompletion.html">OnCompletion</a> to keep any caught exception stored 
as property on the&#160;<code>Exchange</code> which allows to access that 
information to know if there was an exception during routing.</li><li>Fixed an 
issue with&#160;<a shape="rect" href="bean.html">Bean</a> component or&#160;<a 
shape="rect" href="simple.html">Simple</a> language with OGNL me
 thod call, would pick method with java.lang.Object type over a better suited 
method, when the method is 
overloaded.</li><li>Fixed&#160;<code>camel-blueprint</code> to wait for the 
bundles with the component and data-formats the&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> has been configured to use, are available 
before starting Camel.</li><li>Fixed an issue with&#160;<a shape="rect" 
href="error-handler.html">Error Handler</a> would log any handled(true) 
exceptions.</li><li>Fixed a memory leak if adding/removing routes using&#160;<a 
shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a> where the 
repository would not be removed from the JMX registry when routes is 
removed.</li><li>Fixed issue with&#160;<a shape="rect" 
href="spring-boot.html">Spring Boot</a> would eager shutdown some Camel 
resources like type converters, which spring-boot should let Camel handle the 
lifecycle of these resources.</li><li>Fixed&#160;<a shape="rect" 
href="cxfrs.html">CXFRS</a> us
 ing simple binding mode would use the content-length header from the incoming 
message in the response, instead of calculating the length based on the output 
message body.</li><li>Fixed an issue with&#160;<a shape="rect" 
href="simple.html">Simple</a> if starting the expression 
with&#160;<code>file:</code> could fail with an error.</li><li>Fixed&#160;<a 
shape="rect" href="spring-boot.html">Spring Boot</a> may report spring type 
converter errors if <a shape="rect" href="stream-caching.html">Stream 
caching</a> is enabled.</li><li>Fixed&#160;<a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> would not propagate 
exception thrown from&#160;<code>IdempotentRepository</code> to Camel's&#160;<a 
shape="rect" href="error-handler.html">Error Handler</a> such 
as&#160;<code>onException</code><code><br clear="none"></code></li></ul><h3 
id="Camel2.17.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a></h3><h3 id="Came
 l2.17.0Release-New.1">New <a shape="rect" 
href="components.html">Components</a></h3><ul><li><a shape="rect" 
href="aws-kinesis.html">camel-aws</a><span style="line-height: 1.42857;"> - AWS 
kinesis streams component added</span></li><li><a shape="rect" 
href="aws-ddbstream.html">camel-aws</a> - DynamoDB streams component 
added</li><li><a shape="rect" href="braintree.html">camel-braintree</a>&#160;- 
for interacting with Braintree Payments.</li><li><a shape="rect" 
href="cdi-testing.html">camel-test-cdi</a> - ease testing of Camel CDI 
applications</li><li><a shape="rect" href="etcd.html">camel-etcd</a><span 
style="line-height: 1.42857;">&#160;- Integrating Camel with&#160;</span><a 
shape="rect" class="external-link" href="https://coreos.com/etcd/"; 
style="line-height: 1.42857;" rel="nofollow">Etcd</a><span style="line-height: 
1.42857;">&#160;key value store</span></li><li>camel-kubernetes - Integrates 
Camel with Kubernetes</li><li><a shape="rect" 
href="ignite.html">camel-ignite</a> - for w
 orking with Apache Ignite.</li><li>camel-ironmq - messaging with the <a 
shape="rect" class="external-link" href="http://www.iron.io/platform/ironmq/"; 
rel="nofollow">IronMQ</a> cloud messaging.</li><li><a shape="rect" 
href="jcache.html">camel-jcache</a><a shape="rect" 
href="mllp.html"><span>&#160;- support&#160;</span></a><a shape="rect" 
class="external-link" href="https://github.com/jsr107/jsr107spec"; 
rel="nofollow">JCache / JSR107</a><a shape="rect" 
href="mllp.html"><span>&#160;caching.</span></a></li><li><a shape="rect" 
href="mllp.html">camel-mllp</a> -&#160;<span style="color: rgb(0,0,0);">for 
working with the HL7 MLLP protocol. This is an alternative to&#160;<a 
shape="rect" href="hl7.html">HL7</a> component.</span></li><li><span 
style="color: rgb(0,0,0);">camel-nats - for interacting with Nats messaging 
platform</span></li><li><a shape="rect" 
href="apache-spark.html">camel-spark</a> - bridges Apache Spark computations 
with Camel endpoints</li><li><a shape="rect" href="sql-stored
 -procedure.html">camel-sql</a> - Now supports calling stored procedures using 
the new <a shape="rect" href="sql-stored-procedure.html">sql-stored 
component</a>.</li></ul><h3 id="Camel2.17.0Release-NewDSL">New DSL</h3><h3 
id="Camel2.17.0Release-NewAnnotations">New Annotations</h3><h3 
id="Camel2.17.0Release-NewDataFormats">New <a shape="rect" 
href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect" 
href="mime-multipart.html">MIME-Multipart</a> - mime based data 
format.</li><li><a shape="rect" href="lzf-data-format.html">LZF Data Format</a> 
- LZF based data format.&#160;</li><li><a shape="rect" 
href="yaml-data-format.html">YAML Data Format</a> - YAML based data 
format.</li><li>Hessian - Caucho Hessian based data format.</li></ul><h3 
id="Camel2.17.0Release-New.2">New <a shape="rect" 
href="languages.html">Languages</a></h3><h3 id="Camel2.17.0Release-New.3">New 
<a shape="rect" 
href="examples.html">Examples</a></h3><ul><li>camel-example-cdi-metrics - 
illustrates the integration
  between Camel, Dropwizard Metrics and 
CDI.</li><li>camel-example-cdi-properties -&#160;<span>illustrates the 
integration between Camel, DeltaSpike and CDI for configuration 
properties.</span></li><li><span>camel-example-cdi-osgi - a<span>&#160;CDI 
application using the SJMS component that can be executed inside an OSGi 
container using PAX 
CDI.</span></span></li><li><span>camel-example-cdi-rest-servlet 
-&#160;<span>illustrates the Camel REST DSL being used in a Web application 
that uses CDI as dependency injection 
framework.</span></span></li><li>camel-example-cdi-test - demonstrates the 
testing features that are provided as part of the integration between Camel and 
CDI.<span><span><br 
clear="none"></span></span></li><li>camel-example-spring-boot-metrics - showing 
a Camel spring-boot application that report metrics to Graphite. Requires 
Graphite running on your network.</li><li>camel-example-widget-gadget-cdi - The 
Widget and Gadget use-case from the EIP book implemented in Java wit
 h CDI dependency Injection.</li><li>camel-example-widget-gadget-java - The 
Widget and Gadget use-case from the EIP book implemented in plain old Java Main 
without any kind of <em>application 
server</em>.</li><li>camel-example-widget-gadget-xml - The Widget and Gadget 
use-case from the EIP book implemented in Spring XML without any Java code or 
any kind of&#160;<em>application server</em>.</li></ul><h3 
id="Camel2.17.0Release-New.4">New <a shape="rect" 
href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.17.0Release-APIbreaking">API breaking</h2><ul><li>As part of the <a 
shape="rect" href="cdi.html">Camel CDI</a> component refactoring:<ul><li>The 
<code>@ContextName</code>&#160;qualifier does not have a default empty value 
anymore as it is irrelevant</li><li>The&#160;CdiPropertiesComponent&#160;class 
has been removed, the standard&#160;PropertiesComponent&#160;can be used 
instead</li></ul></li></ul><h2 id="Camel2.17.0Release-KnownIssues">Known 
Issues</h2><ul><li>camel-guice cannot in
 stall in Karaf/ServiceMix</li></ul><h2 
id="Camel2.17.0Release-Dependencyupgrades">Dependency 
upgrades</h2><ul><li>Apache Cassandra from 2.1.8 to 2.2.2</li><li>Apache 
Deltaspike from 1.5.1 to 1.5.2</li><li>Apache Gora from 0.6 to 
0.6.1</li><li>Apache Jackrabbit from 2.11.0 to 2.11.3</li><li>Apache Kafka from 
0.8.2.2 to 0.9.0.0</li><li>Apache Lucene from 4.10.4 to 5.2.1</li><li>Apache 
Mina from 2.0.9 to 2.0.10</li><li>Apache OpenEjb from 4.7.2 to 
4.7.3</li><li>Apache Solr from 4.10.4 to 5.2.1</li><li>Aws SDK Java to version 
1.10.37</li><li>Atmosphere from <span class="blob-code-inner">2.4.0</span> to 
2.4.1.4</li><li>Cassandra driver from 2.1.8 to 2.1.9</li><li>Cassandra-unit 
from 2.1.9.2 to 2.2.2.1</li><li>Cglib from 3.1 to 3.2.0</li><li>Classmate from 
1.3.0 to 1.3.1</li><li>Chunk from 3.0.1 to 3.1.2</li><li>Drools from 
6.2.0.Final to 6.3.0.Final</li><li>EHCache from 2.10.0 to 
2.10.1</li><li>Elasticsearch from 1.7.3 to 2.0.0</li><li>Embedded Mongodb from 
1.50.0 to 1.50.2</li><li>Faceb
 ook4j from 2.3.1 to 2.4.2</li><li>GAE from 1.9.26 to 1.9.32</li><li>Google 
Gson from 2.4 to 2.61</li><li>Hazelcast from 3.5.2 to 3.6</li><li>Infinispan 
from 8.0.1.Final to 8.1.2.Final</li><li>Jackson from 2.6.3 to 
2.7.1</li><li>Jboss Xnio from 3.3.1.Final to 3.3.4.Final</li><li>Jboss Weld 
from 2.3.0.Final to 2.3.3.Final</li><li>Jbpm from 6.2.0.Final to 
6.3.0.Final</li><li>Jgit from <span class="blob-code-inner">4.1.<span class="x 
x-first x-last">0.201509280440</span>-r</span> to <span 
class="blob-code-inner">4.1.<span class="x x-first 
x-last">1.201511131810</span>-r</span></li><li>Joda-time from 2.8.2 to 
2.9.1</li><li>Json-path from 2.0.0 to 2.1.0</li><li>Jt400 from 8.6 to 
8.7</li><li>Kie from 6.2.0.Final to 6.3.0.Final</li><li>Maven Exec plugin from 
1.2.1 to 1.4.0</li><li>Mongodb Java driver from 3.0.4 to 3.2.0</li><li>Mvel 
from 2.2.6.Final to 2.2.7.Final</li><li>Ognl from 3.1 to 3.1.1</li><li>Olingo 
from 2.0.4 to 2.0.5</li><li>Optaplanner from 6.2.0.Final to 
6.3.0.Final</li><li>Pa
 x-exam from 4.6.0 to 4.8.0</li><li>Spring 4.1.x to 4.2.x</li><li>Spring-Boot 
1.2.x to 1.3.x</li><li>Spring Integration 2.x to 4.x</li><li>slf4j-api 1.6.x to 
1.7.x</li><li>Undertow from 1.3.3.Final to 1.3.7.Final</li><li>Vertx from 3.1.0 
to 3.2.0</li><li>Zookeeper from 3.4.6 to 3.4.7</li></ul><h2 
id="Camel2.17.0Release-Importantchangestoconsiderwhenupgrading">Important 
changes to consider when upgrading</h2><ul><li><strong>This is the last release 
that will support Java 1.7. Releases after this is expected to require Java 
1.8+.&#160;</strong></li><li>When installing the camel feature in Apache Karaf, 
then camel-spring is not longer installed by default. You need to install 
camel-spring feature if using spring-dm on Karaf.&#160;</li><li>Reworked the 
Apache Karaf feature to not install camel-spring by default. The problem is 
camel-spring is using spring-dm which is only supports Spring 3.x, and 
therefore Spring 3.x was installed and used. All the Camel features that uses 
Spring JARs ar
 e now using Spring 4.x.</li><li>Removed camel-docker from karaf features as it 
does not work in OSGi</li><li>Some changes in&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a>&#160;to adjust naming and types to the 
Swagger Spec 2.0</li><li>Any custom component that supports suspension in 
doSuspend/doResume should implement the new&#160;<code>Suspendable</code> 
marker interface, so Camel knows there is custom logic for suspension in the 
component.</li><li>Exchange and Message only output id in their toString method 
to avoid outputting any message details such as sensitive details from message 
bodies.</li><li>Removed camel-hbase as Karaf feature as it did not really work 
well in OSGi</li><li>Upgraded camel-hbase to Hadoop 2.x and HBase 
1.1.x</li><li>camel-infinispan requires Java 8.</li><li>camel-mustache requires 
Java 8.</li><li>Support for Spring 4.0.x is deprecated. Support for Spring 3.x 
is being <strong>removed</strong> in the next release.</li><li>Support for 
Karaf 2.x and 3
 .x is deprecated. And removed in next release, where Karaf 4.x onwards is only 
supported.</li><li>camel-jetty8 is deprecated and being removed in next 
release.</li><li>Moved some Camel tooling related dependencies (such as 
maven/plexus) from the Camel Parent BOM to the tooling BOM (to have them 
separated).</li><li>camel-amqp do not support 0.9 
anymore.&#160;</li><li>camel-spring-integration feature has been removed from 
the Camel karaf.</li><li>The&#160;<a shape="rect" href="mail.html">Mail</a> 
component now requires to configure to, cc, and bcc using lower case keys, eg 
to=f...@bar.com, instead of&#160;<a shape="rect" class="external-link" 
href="mailto:To=f...@bar.com"; rel="nofollow">To=f...@bar.com</a>&#160;as 
previously.</li><li>The&#160;<a shape="rect" 
href="file2.html">File</a>&#160;consumer no longer probe the file content by 
default. See the option&#160;<code>probeContentType</code> for more 
details.</li><li>If using&#160;<a shape="rect" 
href="bean.html">Bean</a>&#160;or&#160;<a
  shape="rect" href="class.html">Class</a>&#160;component and specifying 
additional parameters in the endpoint uri to configure on the bean, then these 
options should now be prefixed with bean., eg <code>foo=123</code>&#160;is now 
<code>bean.foo=123</code>.</li><li>The&#160;<a shape="rect" 
href="twitter.html">Twitter</a> delay option is changed from seconds to milli 
seconds by default, eg 10 should be 10000 to indicate 10 seconds. This is 
aligned how other components with delay option behaves.&#160;</li><li>The 
options&#160;<code>attributeNames</code> 
and&#160;<code>messageAttributeNames</code> on&#160;<a shape="rect" 
href="aws-sqs.html">AWS-SQS</a> is changed to a string type where you can 
separate multiple values using comma. Before the type was a Collection which 
was much harder to configure in the Camel uris.</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> is exposing the REST services using all local 
IP address (eg 0.0.0.0) by default, instead of the local IP address o
 f the host.</li><li>The&#160;<a shape="rect" href="hbase.html">hbase</a> 
component now require row mapping from the endpoint uri to be prefixed with 
<code style="line-height: 1.42857;">row.</code>&#160;as prefix.<br 
clear="none">Before: 
<code>family=info&amp;qualifier=firstName&amp;family2=birthdate&amp;qualifier2=year</code>.&#160;After:&#160;<code>row.family=info&amp;row.qualifier=firstName&amp;row.family2=birthdate&amp;row.qualifier2=year</code>.</li><li>As
 part of the <a shape="rect" href="cdi.html">Camel CDI</a> component 
refactoring,&#160;<em>DeltaSpike</em> is not used anymore for the sourcing of 
the configuration properties. This new version of the component is agnostic to 
any configuration sourcing mechanism and delegates that concern to the 
application so that it can declare a 
custom&#160;<code>PropertiesComponent</code>&#160;bean whose sourcing is 
tailored to its need. <em>DeltaSpike</em> can still be used by the application 
by declaring a&#160;<code>PropertiesComponent</
 code>&#160;bean configured with 
a&#160;<code>PropertiesParser</code>&#160;relying on <em>DeltaSpike</em>. See 
the&#160;<code>camel-example-cdi-properties</code>&#160;example for more 
details.</li><li>The&#160;<a shape="rect" href="kafka.html">Kafka</a> component 
has been migrated to use the Java Kafka client instead of Scala. As such there 
may be migration efforts or code changes that can affect users 
upgrading.</li><li>Improved&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> when CORS enabled to process and return the configured CORS headers in 
the rest-dsl in all the supported&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> 
components.</li><li>The&#160;<code>options</code>&#160;verb in the&#160;<a 
shape="rect" href="rest-dsl.html">Rest DSL</a> has been deprecated and are not 
in use if CORS is enabled.</li><li>camel-gae is deprecated and will be removed 
from Camel 2.18 onwards.<br clear="none"><br clear="none"><br 
clear="none"></li></ul><h2 id="Camel2.17.0Release-Gett
 ingtheDistributions">Getting the Distributions</h2><h3 
id="Camel2.17.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.17.0/apache-camel-2.17.0.zip";>apache-camel-2.17.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.17.0/apache-camel-2.17.0.zip.asc";>apache-camel-2.17.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.17.0/apache-camel-2.17.0.tar.gz";>apache-camel-2.17.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.17.0/apache-camel-2.17.0.tar.gz.asc";>apache-camel-2.17.0.tar.gz.asc</a></p></td></tr></tbody></table></div><div
 class="confluence-information-macro 
confluence-information-macro-information"><p class="title">The above URLs use 
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The above URLs use the Apache 
Mirror system to redirect you to a suitable mirror for your download. Some 
users have experienced issues with some versions of browsers (e.g. some Safa
 ri browsers). If the download doesn't seem to work for you from the above URL 
then try using <a shape="rect" class="external-link" 
href="http://www.mozilla.com/en-US/firefox/"; 
rel="nofollow">FireFox</a></p></div></div><h3 
id="Camel2.17.0Release-SourceDistributions">Source 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>Source for Windows</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.17.0/apache-camel-2.17.0-src.zip";>apache-camel-2.17.0-src.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-lin
 k" 
href="http://www.apache.org/dist/camel/apache-camel/2.17.0/apache-camel-2.17.0-src.zip.asc";>apache-camel-2.17.0-src.zip.asc</a></p></td></tr></tbody></table></div><h3
 id="Camel2.17.0Release-GettingtheBinariesusingMaven2">Getting the Binaries 
using Maven 2</h3><p>To use this release in your maven project, the proper 
dependency configuration that you should use in your <a shape="rect" 
class="external-link" 
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html";>Maven
 POM</a> is:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-core&lt;/artifactId&gt;

Modified: websites/production/camel/content/gae.html
==============================================================================
--- websites/production/camel/content/gae.html (original)
+++ websites/production/camel/content/gae.html Wed Mar 30 16:22:36 2016
@@ -84,36 +84,8 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 
id="GAE-CamelComponentsforGoogleAppEngine">Camel Components for Google App 
Engine</h2>
-
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tutorials</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<ul><li>A good starting point for using Camel on GAE is the <a shape="rect" 
href="tutorial-for-camel-on-google-app-engine.html">Tutorial for Camel on 
Google App Engine</a></li><li>The <a shape="rect" 
href="tutorial-oauth.html">OAuth tutorial</a> demonstrates how to implement <a 
shape="rect" class="external-link" href="http://oauth.net/"; 
rel="nofollow">OAuth</a> in web applications.</li></ul>
-</div></div>
-
-<p>The Camel components for <a shape="rect" class="external-link" 
href="http://code.google.com/appengine/"; rel="nofollow">Google App Engine</a> 
(GAE) are part of the <code>camel-gae</code> project and provide connectivity 
to GAE's <a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/apis.html"; 
rel="nofollow">cloud computing services</a>. They make the GAE cloud computing 
environment accessible to applications via Camel interfaces. Following this 
pattern for other cloud computing environments could make it easier to port 
Camel applications from one cloud computing provider to another. The following 
table lists the cloud computing services provided by Google and the supporting 
Camel components. The documentation of each component can be found by following 
the link in the <em>Camel Component</em> column.</p>
-
-<div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p>GAE service</p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Camel component</p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Component 
description</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/urlfetch/"; rel="nofollow">URL 
fetch service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="ghttp.html">ghttp</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Provides connectivity to the 
GAE URL fetch service but can also be used to receive messages from 
servlets.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/taskqueue/"; 
rel="nofollow">Task queueing service</a></p></td><td colspan="1" r
 owspan="1" class="confluenceTd"><p><a shape="rect" 
href="gtask.html">gtask</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Supports asynchronous message processing on GAE by 
using the task queueing service as message queue.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" href="http://code.google.com/appengine/docs/java/mail/"; 
rel="nofollow">Mail service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="gmail.html">gmail</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Supports sending of emails via 
the GAE mail service. Receiving mails is not supported yet but will be added 
later.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/memcache/"; 
rel="nofollow">Memcache service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td c
 olspan="1" rowspan="1" class="confluenceTd"><p>Not supported 
yet.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/xmpp/"; rel="nofollow">XMPP 
service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Not supported yet.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/images/"; rel="nofollow">Images 
service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Not supported yet.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/datastore/"; 
rel="nofollow">Datastore service</a></p></td><td colspan="1" rowspan="1" clas
 s="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Not supported yet.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/apis/accounts/"; rel="nofollow">Accounts 
service</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="gauth.html">gauth</a> <br clear="none" 
class="atl-forced-newline"> <a shape="rect" 
href="glogin.html">glogin</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>These components interact with the Google Accounts API 
for authentication and authorization. Google Accounts is not specific to Google 
App Engine but is often used by GAE applications for implementing security. The 
<a shape="rect" href="gauth.html">gauth</a> component is used by web 
applications to implement a <a shape="rect" class="external-link" 
href="http://code.google.com/apis/accounts/docs/OAuth.html"; 
rel="nofollow">Google-specific OAuth</
 a> consumer. This component can also be used to OAuth-enable non-GAE web 
applications. The <a shape="rect" href="glogin.html">glogin</a> component is 
used by Java clients (outside GAE) for programmatic login to GAE applications. 
For instructions how to protect GAE applications against unauthorized access 
refer to the <a shape="rect" href="gsec.html">Security for Camel GAE 
applications</a> page.</p></td></tr></tbody></table></div>
-</div>
-
-<h3 id="GAE-Camelcontext">Camel context</h3>
-
-<p>Setting up a <code>SpringCamelContext</code> on Google App Engine differs 
between Camel 2.1 and higher versions. The problem is that usage of the 
Camel-specific Spring configuration XML schema from the <code><a shape="rect" 
class="external-link" 
href="http://camel.apache.org/schema/spring";>http://camel.apache.org/schema/spring</a></code>
 namespace requires JAXB and Camel 2.1 depends on a Google App Engine SDK 
version that doesn't support JAXB yet. This limitation has been removed since 
Camel 2.2. </p>
-
-<p>JMX must be disabled in any case because the <code>javax.management</code> 
package isn't on the App Engine JRE whitelist.</p>
-
-<h4 id="GAE-Camel2.1">Camel 2.1</h4>
-
-<p><code>camel-gae</code> 2.1 comes with the following 
<code>CamelContext</code> implementations.</p>
-
-<ul><li><code>org.apache.camel.component.gae.context.GaeDefaultCamelContext</code>
 (extends 
<code>org.apache.camel.impl.DefaultCamelContext</code>)</li><li><code>org.apache.camel.component.gae.context.GaeSpringCamelContext</code>
 (extends <code>org.apache.camel.spring.SpringCamelContext</code>)</li></ul>
-
-
-<p>Both disable JMX before startup. The <code>GaeSpringCamelContext</code> 
additionally provides setter methods adding route builders as shown in the next 
example.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>appctx.xml</b></div><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
+<div class="wiki-content maincontent"><h2 
id="GAE-CamelComponentsforGoogleAppEngine">Camel Components for Google App 
Engine</h2><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This component is deprecated and 
will be removed form Camel 2.18 onwards.</p></div></div><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tutorials</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><ul><li>A good starting point for 
using Camel on GAE is the <a shape="rect" 
href="tutorial-for-camel-on-google-app-engine.html">Tutorial for Camel on 
Google App Engine</a></li><li>The <a shape="rect" 
href="tutorial-oauth.html">OAuth tutorial</a> demonstrates how to implement <a 
shape="rect" class="ex
 ternal-link" href="http://oauth.net/"; rel="nofollow">OAuth</a> in web 
applications.</li></ul></div></div><p>The Camel components for <a shape="rect" 
class="external-link" href="http://code.google.com/appengine/"; 
rel="nofollow">Google App Engine</a> (GAE) are part of the 
<code>camel-gae</code> project and provide connectivity to GAE's <a 
shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/apis.html"; 
rel="nofollow">cloud computing services</a>. They make the GAE cloud computing 
environment accessible to applications via Camel interfaces. Following this 
pattern for other cloud computing environments could make it easier to port 
Camel applications from one cloud computing provider to another. The following 
table lists the cloud computing services provided by Google and the supporting 
Camel components. The documentation of each component can be found by following 
the link in the <em>Camel Component</em> column.</p><div 
class="confluenceTableSmall"><div cla
 ss="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>GAE service</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Camel component</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Component description</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://code.google.com/appengine/docs/java/urlfetch/"; rel="nofollow">URL 
fetch service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="ghttp.html">ghttp</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Provides connectivity to the 
GAE URL fetch service but can also be used to receive messages from 
servlets.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/taskqueue/"; 
rel="nofollow">Task queueing service</a></p></td><td colspan="1" rowspan="
 1" class="confluenceTd"><p><a shape="rect" 
href="gtask.html">gtask</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Supports asynchronous message processing on GAE by 
using the task queueing service as message queue.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" href="http://code.google.com/appengine/docs/java/mail/"; 
rel="nofollow">Mail service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="gmail.html">gmail</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Supports sending of emails via 
the GAE mail service. Receiving mails is not supported yet but will be added 
later.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/memcache/"; 
rel="nofollow">Memcache service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p>Not supported yet.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" href="http://code.google.com/appengine/docs/java/xmpp/"; 
rel="nofollow">XMPP service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Not supported yet.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/images/"; rel="nofollow">Images 
service</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Not supported yet.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/appengine/docs/java/datastore/"; 
rel="nofollow">Datastore service</a></p></td><td colspan="1" rowspan="1" 
class="confl
 uenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Not supported yet.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://code.google.com/apis/accounts/"; rel="nofollow">Accounts 
service</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="gauth.html">gauth</a> <br clear="none" 
class="atl-forced-newline"> <a shape="rect" 
href="glogin.html">glogin</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>These components interact with the Google Accounts API 
for authentication and authorization. Google Accounts is not specific to Google 
App Engine but is often used by GAE applications for implementing security. The 
<a shape="rect" href="gauth.html">gauth</a> component is used by web 
applications to implement a <a shape="rect" class="external-link" 
href="http://code.google.com/apis/accounts/docs/OAuth.html"; 
rel="nofollow">Google-specific OAuth</a> consu
 mer. This component can also be used to OAuth-enable non-GAE web applications. 
The <a shape="rect" href="glogin.html">glogin</a> component is used by Java 
clients (outside GAE) for programmatic login to GAE applications. For 
instructions how to protect GAE applications against unauthorized access refer 
to the <a shape="rect" href="gsec.html">Security for Camel GAE applications</a> 
page.</p></td></tr></tbody></table></div></div><h3 id="GAE-Camelcontext">Camel 
context</h3><p>Setting up a <code>SpringCamelContext</code> on Google App 
Engine differs between Camel 2.1 and higher versions. The problem is that usage 
of the Camel-specific Spring configuration XML schema from the <code><a 
shape="rect" class="external-link" 
href="http://camel.apache.org/schema/spring";>http://camel.apache.org/schema/spring</a></code>
 namespace requires JAXB and Camel 2.1 depends on a Google App Engine SDK 
version that doesn't support JAXB yet. This limitation has been removed since 
Camel 2.2.</p><p>JMX must be
  disabled in any case because the <code>javax.management</code> package isn't 
on the App Engine JRE whitelist.</p><h4 id="GAE-Camel2.1">Camel 
2.1</h4><p><code>camel-gae</code> 2.1 comes with the following 
<code>CamelContext</code> 
implementations.</p><ul><li><code>org.apache.camel.component.gae.context.GaeDefaultCamelContext</code>
 (extends 
<code>org.apache.camel.impl.DefaultCamelContext</code>)</li><li><code>org.apache.camel.component.gae.context.GaeSpringCamelContext</code>
 (extends 
<code>org.apache.camel.spring.SpringCamelContext</code>)</li></ul><p>Both 
disable JMX before startup. The <code>GaeSpringCamelContext</code> additionally 
provides setter methods adding route builders as shown in the next 
example.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>appctx.xml</b></div><div class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;beans 
xmlns=&quot;http://www.springframework.org/schema/beans&quot;
        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
        xsi:schemaLocation=&quot;
 http://www.springframework.org/schema/beans
@@ -130,17 +102,8 @@ http://www.springframework.org/schema/be
     
 &lt;/beans&gt;
 ]]></script>
-</div></div> 
-
-<p>Alternatively, use the <code>routeBuilders</code> property of the 
<code>GaeSpringCamelContext</code> for setting a list of route builders. Using 
this approach, a <code>SpringCamelContext</code> can be configured on GAE 
without the need for JAXB.</p>
-
-<h4 id="GAE-Camel2.2orhigher">Camel 2.2 or higher</h4>
-
-<p>With Camel 2.2 or higher, applications can use the <code><a shape="rect" 
class="external-link" 
href="http://camel.apache.org/schema/spring";>http://camel.apache.org/schema/spring</a></code>
 namespace for configuring a <code>SpringCamelContext</code> but still need to 
disable JMX. Here's an example.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>appctx.xml</b></div><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
+</div></div><p>Alternatively, use the <code>routeBuilders</code> property of 
the <code>GaeSpringCamelContext</code> for setting a list of route builders. 
Using this approach, a <code>SpringCamelContext</code> can be configured on GAE 
without the need for JAXB.</p><h4 id="GAE-Camel2.2orhigher">Camel 2.2 or 
higher</h4><p>With Camel 2.2 or higher, applications can use the <code><a 
shape="rect" class="external-link" 
href="http://camel.apache.org/schema/spring";>http://camel.apache.org/schema/spring</a></code>
 namespace for configuring a <code>SpringCamelContext</code> but still need to 
disable JMX. Here's an example.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>appctx.xml</b></div><div 
class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;beans 
xmlns=&quot;http://www.springframework.org/schema/beans&quot;
        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
        xmlns:camel=&quot;http://camel.apache.org/schema/spring&quot;
        xsi:schemaLocation=&quot;
@@ -160,16 +123,8 @@ http://camel.apache.org/schema/spring/ca
     
 &lt;/beans&gt;
 ]]></script>
-</div></div> 
-
-<p><span class="confluence-anchor-link" id="GAE-web-xml"></span></p>
-<h3 id="GAE-Theweb.xml">The web.xml</h3>
-
-<p>Running Camel on GAE requires usage of the 
<code>CamelHttpTransportServlet</code> from <code>camel-servlet</code>. The 
following example shows how to configure this servlet together with a Spring 
application context XML file. </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml</b></div><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;web-app 
+</div></div><p><span class="confluence-anchor-link" 
id="GAE-web-xml"></span></p><h3 id="GAE-Theweb.xml">The web.xml</h3><p>Running 
Camel on GAE requires usage of the <code>CamelHttpTransportServlet</code> from 
<code>camel-servlet</code>. The following example shows how to configure this 
servlet together with a Spring application context XML file.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml</b></div><div 
class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;web-app 
 xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
 xmlns:web=&quot;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;
@@ -204,9 +159,7 @@ http://java.sun.com/xml/ns/javaee/web-ap
 
 &lt;/web-app&gt;
 ]]></script>
-</div></div>
-
-<p>The location of the Spring application context XML file is given by the 
<code>contextConfigLocation</code> init parameter. The <code>appctx.xml</code> 
file must be on the classpath. The servlet mapping makes the Camel application 
accessible under <code>http://&lt;appname&gt;.appspot.com/camel/...</code> when 
deployed to Google App Engine where <code>&lt;appname&gt;</code> must be 
replaced by a real GAE application name. The second servlet mapping is used 
internally by the task queueing service for background processing via <a 
shape="rect" class="external-link" href="http://www.webhooks.org/"; 
rel="nofollow">web hooks</a>. This mapping is relevant for the <a shape="rect" 
href="gtask.html">gtask</a> component and is explained there in more detail. 
</p></div>
+</div></div><p>The location of the Spring application context XML file is 
given by the <code>contextConfigLocation</code> init parameter. The 
<code>appctx.xml</code> file must be on the classpath. The servlet mapping 
makes the Camel application accessible under 
<code>http://&lt;appname&gt;.appspot.com/camel/...</code> when deployed to 
Google App Engine where <code>&lt;appname&gt;</code> must be replaced by a real 
GAE application name. The second servlet mapping is used internally by the task 
queueing service for background processing via <a shape="rect" 
class="external-link" href="http://www.webhooks.org/"; rel="nofollow">web 
hooks</a>. This mapping is relevant for the <a shape="rect" 
href="gtask.html">gtask</a> component and is explained there in more 
detail.</p></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to