Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 233D6182FB for ; Sun, 31 Jan 2016 02:24:51 +0000 (UTC) Received: (qmail 89309 invoked by uid 500); 31 Jan 2016 02:24:51 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 89255 invoked by uid 500); 31 Jan 2016 02:24:51 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 89246 invoked by uid 99); 31 Jan 2016 02:24:51 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 31 Jan 2016 02:24:51 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 767C4C0179 for ; Sun, 31 Jan 2016 02:24:50 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.247 X-Spam-Level: * X-Spam-Status: No, score=1.247 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-0.554, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id u4NNcbBv8UJg for ; Sun, 31 Jan 2016 02:24:36 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTP id 9BC33258DB for ; Sun, 31 Jan 2016 02:24:35 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 704C4E064F for ; Sun, 31 Jan 2016 02:24:34 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 581363A0667 for ; Sun, 31 Jan 2016 02:24:34 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r979059 [2/3] - in /websites/production/camel/content: ./ 2016/01/30/ cache/ Date: Sun, 31 Jan 2016 02:24:33 -0000 To: commits@camel.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20160131022434.581363A0667@svn01-us-west.apache.org> 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 Sun Jan 31 02:24:33 2016 @@ -85,7 +85,7 @@ -

Camel 2.17.0 release (currently in progress)

 

New and Noteworthy

Welcome to the x.y.z release which approx XXX issues resolved (new features, improvements and bug fixes such as...)

  • 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.
  • Upgraded camel-hbase to Hadoop 2.x and HBase 1.1.x
  • Camel commands for Spring Boot
  • Many improvements to Camel Kura
  • Added transacted option to SQL Component when used as a consumer in a transacted route.
  • Added support for UPDATE operation to ElasticSearch.
  • Allow to reuse existing configured Elasticsearch Client on the ElasticSearch component, instead of creating a client per endpoint. 
  • The include and exclude options on File2 and FTP endpoints is now case in-sensitive out of the box.
  • Resource based component such as XSLTVelocity 0;etc can load the resource file from the Registry by using ref: as prefix.
  • Upgraded camel-amqp to the latest qpid-jms-client (also AMQP < 1.0 is not supported anymore).
  • Many improvements to Camel AMQP component.
  • The Metrics Component allows to capture Message History performance statistics with the MetricsMessageHistoryFactory 
  • Reduced the number of mbeans enlisted in the services tree, to only include mbeans that has value to be managed.
  • The Elasticsearch Component now supports MultiGet operation
  • The Throttler has been improved to be more performant and use a rolling window for time periods which gives a better flow.
  • The setHeader and setExchangeProperty allows to use a dynamic header key using the Simple language if the name of the key is a Simple language expression.
  • Add collate function to Simple 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.
  • The Camel Run Maven Goal 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.
  • Camel-Elasticsearch now supports Multiget, Multisearch and exists operation
  • Camel-Git no w supports Cherry-pick operation
  • Stopping the Main class from JMX will now trigger shutdown of the Main class/JVM also, as it does when hitting ctrl + c.
  • Added option to skipFirst to the Tokenizer language to make it easy to skip the very first element, when for example splitting a CSV file using the Splitter EIP.
  • The Rest DSL now supports default values for query parameters
  • Exchange and Message only output id in their toString method to avoid outputting any message details such as sensitive details from message bodies.
  • RabbitMQ consumer more resilient to auto re-connect in case of connection failures

Fixed these issues

  • The Swagger Java now parses nested types in the POJO model that has been annotated with the swagger api annotations to use in the schema api model
  • Fixed Rest DSL with apiContextPath fail to start if there are 2 ore more rest's in use.
  • Paho component name is not limited to 4 characters anymore.
  • Fixed Spring Boot not starting Camel routes if running in Spring Cloud.
  • Fixed an issue with Swagger Java using api-docs could lead to api-doc route being added multiple times
  • Fixed a few things missing in the generated swagger model when using Swagger Java
  • Fixed using statement.xxx options on the JDBC consumer would only be used in first poll.
  • Fixed  HTTP and HTTP4 to keep trailing slash if provided in uri when calling remote HTTP service.
  • Fixed OnCompletion to keep any caught exception stored as property on the Exchange which allows to access that information to know if there was an exception during routing.
  • Fixed an issue with Bean component or Simple language with OGNL method call, would pick method with java.lang.Object type over a better suited method, when the method is overloaded.
  • Fixed Idempotent Consumer would not propagate exception thrown from IdempotentRepository to Camel's Error Handler such as onException

New Enterprise Integration Patterns

New Components

  • camel-kubernetes - Integrates Camel with Kubernetes
  • camel-aws - AWS kinesis streams component added
  • camel-aws - DynamoDB streams component added
  • camel-ignite - for working with Apache Ignite.
  • camel-mllp - for working with the HL7 MLLP protocol. This is an alternative to HL7 component.
  • camel-spark - bridges Apache Spark computations with Camel endpoints
  • camel-sql - Now supports calling stored procedures using the new sql-stored component.
  • camel-braintree - for interacting with Braintree Payments.

New DSL

New Annotations

New Data Formats

New Languages

New Examples

  • camel-example-metrics-cdi - this example illustrates the integration between Camel, Dropwizard Metrics and CDI 
  • camel-example-spring-boot-metrics - showing a Camel spring-boot application that report metrics to Graphite. Requires Graphite running on your network.
  • camel-example-widget-gadget-cdi - The Widget and Gadget use-case from the EIP book implemented in Java with CDI dependency Injection.
  • camel-example-widget-gadget-java - The Widget and Gadget use-case fr om the EIP book implemented in plain old Java Main without any kind of application server.
  • 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 application server.

New Tutorials

API breaking

Known Issues

Dependency upgrades

  • Apache Cassandra from 2.1.8 to 2.2.2
  • Apache Deltaspike from 1.5.1 to 1.5.2
  • Apache Gora from 0.6 to 0.6.1
  • Apache Jackrabbit from 2.11.0 to 2.11.3
  • Apache Kafka from 0.8.2.2 to 0.9.0.0
  • Apache Lucene from 4.10.4 to 5.2.1
  • Apache Mina from 2.0.9 to 2.0.10
  • Apache OpenEjb from 4.7.2 to 4.7.3
  • Apache Solr from 4.10.4 to 5.2.1
  • Aws SDK Java to version 1.10.37
  • Atmosphere from 2.4.0 to 2.4.1.4
  • Cassandra driver from 2.1.8 to 2.1.9
  • Cassandra-unit from 2.1.9.2 to 2.2.2.1
  • Cglib from 3.1 to 3.2.0
  • Classmate from 1.3.0 to 1.3.1
  • Chunk from 3.0.1 to 3.1.2
  • Drools from 6.2.0.Final to 6.3.0.Final
  • EHCache from 2.10.0 to 2.10.1
  • Elasticsearch from 1.7.3 to 2.0.0
  • Embedded Mongodb from 1.50.0 to 1.50.1
  • Facebook4j from 2.3.1 to 2.4.1
  • GAE from 1.9.26 to 1.9.28
  • Google Gson from 2.4 to 2.5
  • Hazelcast from 3.5.2 to 3.5.4
  • Infinispan from 8.0.1.Final to 8.1.0.Final
  • Jackson from 2.6.3 to 2.6.4
  • Jboss Xnio from 3.3.1.Final to 3.3.2.Final
  • Jboss Weld from 2.3.0.Final to 2.3.2.Final
  • Jbpm from 6.2.0.Final to 6.3.0.Final
  • Jgit from 4.1.0.201509280440-r to 4.1.1.201511131810-r
  • Joda-time from 2.8.2 to 2.9.1
  • Json-path from 2.0.0 to 2.1.0
  • Jt400 from 8.6 to 8.7
  • Kie from 6.2.0.Final to 6.3.0.Final
  • Maven Exec plugin from 1.2.1 to 1.4.0
  • Mongodb Java driver from 3.0.4 to 3.2.0
  • Mvel from 2.2.6.Final to 2.2.7.Final
  • Ognl from 3.1 to 3.1.1
  • Olingo from 2.0.4 to 2.0.5
  • Optaplanner from 6.2.0.Final to 6.3.0.Final
  • Pax-exam from 4.6.0 to 4.8.0
  • Spring 4.1.x to 4.2.x
  • Spring-Boot 1.2.x to 1.3.x
  • Spring Integration 2.x to 4.x
  • slf4j-api 1.6.x to 1.7.x
  • Undertow from 1.3.3.Final to 1.3.7.Final
  • Vertx from 3.1.0 to 3.2.0
  • Zookeeper from 3.4.6 to 3.4.7

Important changes to consider when upgrading

  • Exchange and Message only output id in their toString method to avoid outputting any message details such as sensitive details from message bodies.
  • Removed camel-hbase as Karaf feature as it did not really work well in OSGi
  • camel-infinispan requires Java 8.
  • Support for Spring 4.0.x is deprecated.
  • Moved some Camel tooling related dependencies (such as maven/plexus) from the Camel Parent BOM to the tooling BOM (to have them separated).
  • camel-amqp do not support 0.9 anymore. 
  • camel-spring-integration feature has been removed from the Camel karaf.
  • The Mail component now requires to configure to, cc, and bcc using lower case keys, eg to=foo@bar.com, instead of To=foo@bar.com as previously.
  • The File consumer no longer probe the file content by default. See the option probeContentType for more details.
  • If using Bean or Class component and specifying additional parameters in the endpoint uri to configure on the bean, then these options should now be prefixed with bean., eg foo=123 is now bean.foo=123.
  • The hbase component now require row mapping from the endpoint uri to be prefixed with row. as prefix.
    Before: family=info&qualifier=firstName&family2=birthdate&qualifier2=year. After: row.family=info&row.qualifier=firstName&row.family2=birthdate&row.qualifier2=year.

Getting the Distributions

Binary Distributions

Description

Download Link

PGP Signature file of download

Windows Distribution

apache-camel-x.y.x.zip

apache-camel-x.y.x.zip.asc

Unix/Linux/Cygwin Distribution

apache-camel-x.y.x.tar.gz

apache-camel-x.y.x.tar.gz.asc

The above URLs use redirection

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 FireFox

Source Distributions

Description

Download Link

PGP Signature file of download

Source for Windows

apache-camel-x.y.x-src.zip

apache-camel-x.y.x-src.zip.asc

Getting the Binaries using Maven 2

To use this release in your maven project, the proper dependency configuration that you should use in your Maven POM is:

+

Camel 2.17.0 release (currently in progress)

 

New and Noteworthy

Welcome to the x.y.z release which approx XXX issues resolved (new features, improvements and bug fixes such as...)

  • 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.
  • Upgraded camel-hbase to Hadoop 2.x and HBase 1.1.x
  • Camel commands for Spring Boot
  • Many improvements to Camel Kura
  • Added transacted option to SQL Component when used as a consumer in a transacted route.
  • Added support for UPDATE operation to ElasticSearch.
  • Allow to reuse existing configured Elasticsearch Client on the ElasticSearch component, instead of creating a client per endpoint. 
  • The include and exclude options on File2 and FTP endpoints is now case in-sensitive out of the box.
  • Resource based component such as XSLTVelocity 0;etc can load the resource file from the Registry by using ref: as prefix.
  • Upgraded camel-amqp to the latest qpid-jms-client (also AMQP < 1.0 is not supported anymore).
  • Many improvements to Camel AMQP component.
  • The Metrics Component allows to capture Message History performance statistics with the MetricsMessageHistoryFactory 
  • Reduced the number of mbeans enlisted in the services tree, to only include mbeans that has value to be managed.
  • The Elasticsearch Component now supports MultiGet operation
  • The Throttler has been improved to be more performant and use a rolling window for time periods which gives a better flow.
  • The setHeader and setExchangeProperty allows to use a dynamic header key using the Simple language if the name of the key is a Simple language expression.
  • Add collate function to Simple 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.
  • The Camel Run Maven Goal 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.
  • Camel-Elasticsearch now supports Multiget, Multisearch and exists operation
  • Camel-Git no w supports Cherry-pick operation
  • Stopping the Main class from JMX will now trigger shutdown of the Main class/JVM also, as it does when hitting ctrl + c.
  • Added option to skipFirst to the Tokenizer language to make it easy to skip the very first element, when for example splitting a CSV file using the Splitter EIP.
  • The Rest DSL now supports default values for query parameters
  • Exchange and Message only output id in their toString method to avoid outputting any message details such as sensitive details from message bodies.
  • Camel Error Handler no longer log message body/header details when logging the Message History. This avoids logging any sensitive details from message bodies.
  • RabbitMQ consumer more resilient to auto re-connect in case of connection failures

Fixed these issues

  • The Swagger Java now parses nested types in the POJO model that has been annotated with the swagger api annotations to use in the schema api model
  • Fixed Rest DSL with apiContextPath fail to start if there are 2 ore more rest's in use.
  • Paho component name is not limited to 4 characters anymore.
  • Fixed Spring Boot not starting Camel routes if running in Spring Cloud.
  • Fixed an issue with Swagger Java using api-docs could lead to api-doc route being added multiple times
  • Fixed a few things missing in the generated swagger model when using Swagger J ava
  • Fixed using statement.xxx options on the JDBC consumer would only be used in first poll.
  • Fixed  HTTP and HTTP4 to keep trailing slash if provided in uri when calling remote HTTP service.
  • Fixed OnCompletion to keep any caught exception stored as property on the Exchange which allows to access that information to know if there was an exception during routing.
  • Fixed an issue with Bean component or Simple language with OGNL method call, would pick method with java.lang.Object type over a better suited method, when the method is overloaded.
  • Fixed Idempotent Consumer would not propa gate exception thrown from IdempotentRepository to Camel's Error Handler such as onException

New Enterprise Integration Patterns

New Components

  • camel-kubernetes - Integrates Camel with Kubernetes
  • camel-aws - AWS kinesis streams component added
  • camel-aws - DynamoDB streams component added
  • camel-ignite - for working with Apache Ignite.
  • camel-mllp - for working with the HL7 MLLP protocol. This is an alternative to HL7 component.
  • camel-spark - bridges Apache Spark computations with Camel endpoints
  • camel-sql - Now supports calling stored procedures using the new sql-stored component.
  • camel-braintree - for interacting with Braintree Payments.

New DSL

New Annotations

New Data Formats

New Languages

New Examples

  • camel-example-cdi-metrics - illustrates the integration between Camel, Dropwizard Metrics and CDI.
  • camel-example-cdi-properties - illustrates the integration between Camel, DeltaSpike and CDI for configura tion properties.
  • camel-example-cdi-rest-servlet - illustrates the Camel REST DSL being used in a Web application that uses CDI as dependency injection framework
  • camel-example-spring-boot-metrics - showing a Camel spring-boot application that report metrics to Graphite. Requires Graphite running on your network.
  • camel-example-widget-gadget-cdi - The Widget and Gadget use-case from the EIP book implemented in Java with CDI dependency Injection.
  • 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 application server.
  • 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 application server.

New Tutorials

API breaking

Known Issues

Dependency upgrades

  • Apache Cassandra from 2.1.8 to 2.2.2
  • Apache Deltaspike from 1.5.1 to 1.5.2
  • Apache Gora from 0.6 to 0.6.1
  • Apache Jackrabbit from 2.11.0 to 2.11.3
  • Apache Kafka from 0.8.2.2 to 0.9.0.0
  • Apache Lucene from 4.10.4 to 5.2.1
  • Apache Mina from 2.0.9 to 2.0.10
  • Apache OpenEjb from 4.7.2 to 4.7.3
  • Apache Solr from 4.10.4 to 5.2.1
  • Aws SDK Java to version 1.10.37
  • Atmosphere from 2.4.0 to 2.4.1.4
  • Cassandra driver from 2.1.8 to 2.1.9
  • Cassandra-unit from 2.1.9.2 to 2.2.2.1
  • Cglib from 3.1 to 3.2.0
  • Classmate from 1.3.0 to 1.3.1
  • Chunk from 3.0.1 to 3.1.2
  • Drools from 6.2.0.Final to 6.3.0.Final
  • EHCache from 2.10.0 to 2.10.1
  • Elasticsearch from 1.7.3 to 2.0.0
  • Embedded Mongodb from 1.50.0 to 1.50.1
  • Facebook4j from 2.3.1 to 2.4.1
  • GAE from 1.9.26 to 1.9.28
  • Google Gson from 2.4 to 2.5
  • Hazelcast from 3.5.2 to 3.5.4
  • Infinispan from 8.0.1.Final to 8.1.0.Final
  • Jackson from 2.6.3 to 2.6.4
  • Jboss Xnio from 3.3.1.Final to 3.3.2.Final
  • Jboss Weld from 2.3.0.Final to 2.3.2.Final
  • Jbpm from 6.2.0.Final to 6.3.0.Final
  • Jgit from 4.1.0.201509280440-r to 4.1.1.201511131810-r
  • Joda-time from 2.8.2 to 2.9.1
  • Json-path from 2.0.0 to 2.1.0
  • Jt400 from 8.6 to 8.7
  • Kie from 6.2.0.Final to 6.3.0.Final
  • Maven Exec plugin from 1.2.1 to 1.4.0
  • Mongodb Java driver from 3.0.4 to 3.2.0
  • Mvel from 2.2.6.Final to 2.2.7.Final
  • Ognl from 3.1 to 3.1.1
  • Olingo from 2.0.4 to 2.0.5
  • Optaplanner from 6.2.0.Final to 6.3.0.Final
  • Pax-exam from 4.6.0 to 4.8.0
  • Spring 4.1.x to 4.2.x
  • Spring-Boot 1.2.x to 1.3.x
  • Spring Integration 2.x to 4.x
  • slf4j-api 1.6.x to 1.7.x
  • Undertow from 1.3.3.Final to 1.3.7.Final
  • Vertx from 3.1.0 to 3.2.0
  • Zookeeper from 3.4.6 to 3.4.7

Important changes to consider when upgrading

  • Exchange and Message only output id in their toString method to avoid outputting any message details such as sensitive details from message bodies.
  • Removed camel-hbase as Karaf feature as it did not really work well in OSGi
  • camel-infinispan requires Java 8.
  • Support for Spring 4.0.x is deprecated.
  • Moved some Camel tooling related dependencies (such as maven/plexus) from the Camel Parent BOM to the tooling BOM (to have them separated).
  • camel-amqp do not support 0.9 anymore. 0;
  • camel-spring-integration feature has been removed from the Camel karaf.
  • The Mail component now requires to configure to, cc, and bcc using lower case keys, eg to=foo@bar.com, instead of To=foo@bar.com as previously.
  • The File consumer no longer probe the file content by default. See the option probeContentType for more details.
  • If using Bean or Class component and specifying additional parameters in the endpoint uri to configure on the bean, then these options should now be prefixed with bean., eg foo=123 is now bean.foo=123.
  • The hbase component now require row mapping from t he endpoint uri to be prefixed with row. as prefix.
    Before: family=info&qualifier=firstName&family2=birthdate&qualifier2=year. After: row.family=info&row.qualifier=firstName&row.family2=birthdate&row.qualifier2=year.

Getting the Distributions

Binary Distributions

Description

Download Link

PGP Signature file of download

Windows Distribution

apache-camel-x.y.x.zip

apache-camel-x.y.x.zip.asc

Unix/Linux/Cygwin Distribution

apache-camel-x.y.x.tar.gz

apache-camel-x.y.x.tar.gz.asc

The above URLs use redi rection

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 FireFox

Source Distributions

Description

Download Link

PGP Signature file of download

Sou rce for Windows

apache-camel-x.y.x-src.zip

apache-camel-x.y.x-src.zip.asc

Getting the Binaries using Maven 2

To use this release in your maven project, the proper dependency configuration that you should use in your Maven POM is:

-

Then the messages routed to the jms:queue:dead is the original input. If we want to manually retry we can move the JMS message from the failed to the input queue, with no problem as the message is the same as the original we received.

OnRedelivery

When Dead Letter Channel is doing redeliver its possible to configure a Processor that is executed just before every redelivery attempt. This can be used for the situations where you need to alter the message before its redelivered. See below for sample.

onException and onRedeliver

We also support for per onException to set a onRedeliver. That means you can do special on redelivery for different exceptions, as opposed to onRedelivery set on Dead Letter Channel can be viewed as a global scope.

Redelivery default values

Redelivery is disabled by default.

The default redeliver policy will use the following values:

  • maximumRedeliveries=0
  • redeliverDelay=1000L (1 second)
  • maximumRedeliveryDelay = 60 * 1000L (60 seconds)
  • And the exponential backoff and collision avoidance is turned off.
  • The retriesExhaustedLogLevel are set to LoggingLevel.ERROR
  • The retryAttemptedLogLevel are set to LoggingLevel.DEBUG
  • Stack traces is logged for exhausted messages from Camel 2.2 onwards.
  • Handled exceptions is not logged from Camel 2.3 onwar ds
  • logExhaustedMessageHistory is true for default error handler, and false for dead letter channel.

The maximum redeliver delay ensures that a delay is never longer than the value, default 1 minute. This can happen if you turn on the exponential backoff.

The maximum redeliveries is the number of re delivery attempts. By default Camel will try to process the exchange 1 + 5 times. 1 time for the normal attempt and then 5 attempts as redeliveries.
Setting the maximumRedeliveries to a negative value such as -1 will then always redelivery (unlimited).
Setting the maximumRedeliveries to 0 will disable any re delivery attempt.

Camel will log delivery failures at the DEBUG logging level by default. You can change this by specifying retriesExhaustedLogLevel and/or retryAttemptedLogLevel. See ExceptionBuilderWithRetryLoggingLevelSetTest for an example.

You can turn logging of stack traces on/off. If turned off Camel will still log the redelivery attempt. Its just much less verbose.

Redeliver Delay Pattern

Delay pattern is used as a single option to set a range pattern for delays. If used then the following options does not apply: (delay, backOffMultiplier, useExponentialBackOff, useCollisionAvoidance, maximumRedeliveryDelay).

The idea is to set groups of ranges using the following syntax: limit:delay;limit 2:delay 2;limit 3:delay 3;...;limit N:delay N

Each group has two values separated with colon

  • limit = upper limit
  • delay = delay in millis
    And the groups is again separated with semi colon.
    The rule of thumb is that the next groups should ha ve a higher limit than the previous group.

Lets clarify this with an example:
delayPattern=5:1000;10:5000;20:20000

That gives us 3 groups:

  • 5:1000
  • 10:5000
  • 20:20000

Resulting in these delays for redelivery attempt:

  • Redelivery attempt number 1..4 = 0 millis (as the first group start with 5)
  • Redelivery attempt number 5..9 = 1000 millis (the first group)
  • Redelivery attempt number 10..19 = 5000 millis (the second group)
  • Redelivery attempt number 20.. = 20000 millis (the last group)

Note: The first redelivery attempt is 1, so the first group should start with 1 or higher.

You can start a group with limit 1 to eg have a starting delay: delayPattern=1:1000;5:5000

  • Redelivery attempt number 1..4 = 1000 millis (the first group)
  • Redelivery attempt number 5.. = 5000 millis ( the last group)

There is no requirement that the next delay should be higher than the previous. You can use any delay value you like. For example with delayPattern=1:5000;3:1000 we start with 5 sec delay and then later reduce that to 1 second.

Redelivery header

When a message is redelivered the DeadLetterChannel will append a customizable header to the message to indicate how many times its been redelivered.
Before Camel 2.6: The header is CamelRedeliveryCounter, which is also defined on the Exchange.REDELIVERY_COUNTER.
Starting with 2.6: The header CamelRedeliveryMaxCounter, which is also defined on the Exchange.REDELIVERY_MAX_COUNTER, contains the maximum redeliver y setting. This header is absent if you use retryWhile or have unlimited maximum redelivery configured.

And a boolean flag whether it is being redelivered or not (first attempt)
The header CamelRedelivered contains a boolean if the message is redelivered or not, which is also defined on the Exchange.REDELIVERED.

Dynamically calculated delay from the exchange
In Camel 2.9 and 2.8.2: The header is CamelRedeliveryDelay, which is also defined on the Exchange.REDELIVERY_DELAY.
Is this header is absent, normal redelivery rules apply.

Which endpoint failed

Available as of Camel 2.1

When Camel routes messages it will decorate the Exchange with a property that contains the last endpoint Camel send the Exchange to:

+

Then the messages routed to the jms:queue:dead is the original input. If we want to manually retry we can move the JMS message from the failed to the input queue, with no problem as the message is the same as the original we received.

OnRedelivery

When Dead Letter Channel is doing redeliver its possible to configure a Processor that is executed just before every redelivery attempt. This can be used for the situations where you need to alter the message before its redelivered. See below for sample.

onException and onRedeliver

We also support for per onException to set a onRedeliver. That means you can do special on redelivery for different exceptions, as opposed to onRedelivery set on Dead Letter Channel can be viewed as a global scope.

Redelivery default values

Redelivery is disabled by default.

The default redeliver policy will use the following values:

  • maximumRedeliveries=0
  • redeliverDelay=1000L (1 second)
  • maximumRedeliveryDelay = 60 * 1000L (60 seconds)
  • And the exponential backoff and collision avoidance is turned off.
  • The retriesExhaustedLogLevel are set to LoggingLevel.ERROR
  • The retryAttemptedLogLevel are set to LoggingLevel.DEBUG
  • Stack traces is logged for exhausted messages from Camel 2.2 onwards.
  • Handled exceptions is not logged from Camel 2.3 onwar ds
  • logExhaustedMessageHistory is true for default error handler, and false for dead letter channel.
  • logExhaustedMessageBody Camel 2.17: is disabled by default to avoid logging sensitive message body/header details. If this option is true, then logExhaustedMessageHistory must also be true.

The maximum redeliver delay ensures that a delay is never longer than the value, default 1 minute. This can happen if you turn on the exponential backoff.

The maximum redeliveries is the number of re delivery attempts. By default Camel will try to process the exchange 1 + 5 times. 1 time for the normal attempt and then 5 attempts as redeliveries.
Setting the maximumRedeliveries to a negative value such as -1 will then always redelivery (unlimited).
Setting the maximumRedeliveries to 0 will disable any re delivery attempt.

Camel will log delivery failures at the DEBUG logging level b y default. You can change this by specifying retriesExhaustedLogLevel and/or retryAttemptedLogLevel. See ExceptionBuilderWithRetryLoggingLevelSetTest for an example.

You can turn logging of stack traces on/off. If turned off Camel will still log the redelivery attempt. Its just much less verbose.

Redeliver Delay Pattern

Delay pattern is used as a single option to set a range pattern for delays. If used then the following options does not apply: (delay, backOffMultiplier, useExponentialBackOff, useCollisionAvoidance, maximumRedeliveryDelay).

The idea is to set groups of ranges using the following syntax: limit:delay;limit 2:delay 2;limit 3:delay 3;...;limit N:delay N

Each group has two values separated wit h colon

  • limit = upper limit
  • delay = delay in millis
    And the groups is again separated with semi colon.
    The rule of thumb is that the next groups should have a higher limit than the previous group.

Lets clarify this with an example:
delayPattern=5:1000;10:5000;20:20000

That gives us 3 groups:

  • 5:1000
  • 10:5000
  • 20:20000

Resulting in these delays for redelivery attempt:

  • Redelivery attempt number 1..4 = 0 millis (as the first group start with 5)
  • Redelivery attempt number 5..9 = 1000 millis (the first group)
  • Redelivery attempt number 10..19 = 5000 millis (the second group)
  • Redelivery attempt number 20.. = 20000 millis (the last group)

Note: The first redelivery attempt is 1, so the first group should start with 1 or higher.

You can start a group wi th limit 1 to eg have a starting delay: delayPattern=1:1000;5:5000

  • Redelivery attempt number 1..4 = 1000 millis (the first group)
  • Redelivery attempt number 5.. = 5000 millis (the last group)

There is no requirement that the next delay should be higher than the previous. You can use any delay value you like. For example with delayPattern=1:5000;3:1000 we start with 5 sec delay and then later reduce that to 1 second.

Redelivery header

When a message is redelivered the DeadLetterChannel will append a customizable header to the message to indicate how many times its been redelivered.
Before Camel 2.6: The header is CamelRedeliveryCounter, which is also defined on the Exchang e.REDELIVERY_COUNTER.
Starting with 2.6: The header CamelRedeliveryMaxCounter, which is also defined on the Exchange.REDELIVERY_MAX_COUNTER, contains the maximum redelivery setting. This header is absent if you use retryWhile or have unlimited maximum redelivery configured.

And a boolean flag whether it is being redelivered or not (first attempt)
The header CamelRedelivered contains a boolean if the message is redelivered or not, which is also defined on the Exchange.REDELIVERED.

Dynamically calculated delay from the exchange
In Camel 2.9 and 2.8.2: The header is CamelRedeliveryDelay, which is also defined on the Exchange.REDELIVERY_DELAY.
Is this header is absent, normal redelivery rules apply.

Which endpoint failed

Available as of Camel 2.1

When Camel routes messages it will decorate the Exchange with a property that contains the last endpoint Camel send the Exchange to:

The Exchange.TO_ENDPOINT have the constant value CamelToEndpoint.

This information is updated when Camel sends a message to any endpoint. So if it exists its the last endpoint which Camel send the Exchange to.

When for example processing the Exchange at a given Endpoint and the message is to be moved into the dead letter queue, then Camel also decorates the Exchange with another property that contains that last endpoint:

@@ -160,7 +160,7 @@ from("seda:foo").routeId(" .to("mock:foo") .throwException(new IllegalArgumentException("Forced")); ]]> -

And the sample sample with XML DSL

+
And the sample sample with XML DSL
-

You can also configure the RedeliveryPolicy as this example shows

+
You can also configure the RedeliveryPolicy as this example shows
-

And this is the processor MyRedeliveryProcessor where we alter the message.

+
And this is the processor MyRedeliveryProcessor where we alter the message.
-
- -

URI format

- -
- -
- -

Options

- -
-

Property

Default

Description

language

en

The language to use.

headersOnly

false

Whether to only enrich the Exchange with headers, and leave the body as-is.

clientId

 

To use google premium with this client id

clientKey

 

To use google premium with this client key

-
- -

You can append query options to the URI in the following format, ?option=value&option=value&...

- -

Exchange data format

- -

Camel will deliver the body as a com.google.code.geocoder.model.GeocodeResponse type.
-And if the address is "current" then the response is a String type with a JSON representation of the current location.

- -

If the option headersOnly is set to true then the message body is left as-is, and only headers will be added to the Exchange.

- -

Message Headers

-
-

Header

Description

CamelGeoCoderStatus

Mandatory. Status code from the geocoder library. If status is GeocoderStatus.OK then additional headers is enriched

CamelGeoCoderAddress

The formatted address

CamelGeoCoderLat

The latitude of the location.

CamelGeoCoderLng

The longitude of the location.

CamelGeoCoderLatlng

The latitude and longitude of the location. Separated by comma.

CamelGeoCoderCity

The city long name.

CamelGeoCoderRegionCode

The region code.

CamelGeoCoderRegionName

The region name.

CamelGeoCoderCountryLong

The country long name.

CamelGeoCoderCountryShort

The country short name.

-
- -

Notice not all headers may be provided depending on available data and mode in use (address vs latlng).

- -

Samples

- -

In the example below we get the latitude and longitude for Paris, France

-
- -
- -

If you provide a header with the CamelGeoCoderAddress then that overrides the endpoint configuration, so to get the location of Copenhagen, Denmark we can send a message with a headers as shown:

-
- -
- -

To get the address for a latitude and longitude we can do:

-
- +

To get the address for a latitude and longitude we can do:

+ -
- -

Which will log

-
- -
- -

To get the current location you can use "current" as the address as shown:

-
- +

To get the current location you can use "current" as the address as shown:

+
Modified: websites/production/camel/content/index.html ============================================================================== --- websites/production/camel/content/index.html (original) +++ websites/production/camel/content/index.html Sun Jan 31 02:24:33 2016 @@ -99,6 +99,26 @@ There's a great discussion about Camel a

+ +
+

Apache Camel's XStream usage is vulnerable to Remote Code Execution attacks

Apache Camel's camel-xstream component is vulnerable to Java object de-serialisation vulnerability.
Such as de-serializing untrusted data can lead to security flaws as demonstrated in various similar reports about Java de-serialization issues.

Please study this security vulnerability carefully!
CVE-2015-5344 - [1]

You can download the fixed Apache Camel 2.15.x and 2.16.x version from the Apache mirrors [2] or from the Central Maven repository.

[1] http://camel.apache.org/security-advisories.data/CVE-2015-5344.txt.asc?version=1&modificationDate=1454056803464&api=v2
[2] h ttp://camel.apache.org/download

 

On behalf of the Camel PMC,
Claus Ibsen

+
+ + +
+ + +
+
+ @@ -193,26 +213,6 @@ There's a great discussion about Camel a
-
- - -
-
- - - - - - Apache Camel 2.16.1 Released - - -
- -
-

The Camel community announces the immediate availability of the new patch release Camel 2.16.1. This release contains over 60 fixes applied in the past few weeks by the community on the Camel 2.16.x maintenance branch. This release also updates the Apache Commons Collections library to version 3.2.2 that contains a patch for a recently reported object de-serialization vulnerability.

The artifacts are published and ready for you to download either from the Apache mirrors or from the Central Maven repository. For more details ple ase take a look at the release notes.
Many thanks to all who made this release possible.

On behalf of the Camel PMC,
Gregor Zurowski

-
- -

RSS Feed