Apache Camel 3.x Upgrade Guide
This document is for helping you upgrade your Apache Camel application from Camel 3.x to 3.y. For example if you are upgrading Camel 3.0 to 3.2, then you should follow the guides from both 3.0 to 3.1 and 3.1 to 3.2.
camel-spring-rabbitmq has been fixed and the default value from 5 to 30 seconds (this is the default used by Spring).
camel-jbang the Placeholders substitutes is changed to use
#name instead of
In Camel JBang the
-dir parameter for
run goal has been renamed to require 2 dashes
--dir like all the other options.
backlogTracing=true now automatic enabled the tracer on startup. The previous behavior was surprisingly that the tracer was only made available, and had to be manually enabled afterwards. The old behavior can be archived by setting
The Backlog Tracer has been enhanced and fixed to trace message headers (also streaming types). This means that previously headers of type
InputStream was not traced before, but is now included. This could mean that the header stream is positioned at end, and logging the header afterward, may appear as the header value is empty.
Using allowable values in Rest with YAML DSL is fixed to use correct name as other DSLs.
value: - available - pending - sold
allowableValues: - available - pending - sold
The following 4 advanced options in fhir data format has been made available for all DSLs:
Previously they were only possible to configure by manually creating a bean instance of the model, and configure them via Java code or classic Spring XML
The following options has changed default value as they were mistakenly out of sync with Apache Kafka. This caused camel-kafka producer to not enable idempotence out of the box, that otherwise plain Apache Kafka client would do:
enableIdempotence: changed from
requestRequiredAcks: changed from
retries: changed from
org.apache.camel.support.jsse.SSLContextParameters is now using
CamelContext to load keystore and other resources in a standard way. Therefore, the
SSLContextParameters now must have been pre-configured with a
CamelContext otherwise an exception is thrown. This also changes the default resource type from file to classpath. If using a file resource for a keystore and the keystore is not found, or entries/aliases aren’t found, try explicitly specifying the file resource type, .e.g
The model class
org.apache.camel.model.errorhandler.ErrorHandlerRefDefinition has been renamed to
camel-bom BOM no longer includes dependencies with
<type>test-jar</type> as these are for internal testing of the Apache Camel project.
The following Maven Plugins has been fixed to use correct GAV:
Dependencies not intended for end users has been removed, such as all
base64 property placeholder function will now lookup the value as a property key. For example
Will now look up myKey as a property placeholder value, which then is decoded. If you want to decode the value as-is, then use
base64:decode: as shown below:
The log component now shows cached streams (
org.apache.camel.StreamCache) message bodies by default. Camel comes with stream caching enabled out-of-the-box, and therefore using the log component you would expect to see the message body. Setting
showCachedStreams=false to use old behaviour.
The log component now does not show MEP by default. You can turn this on by
There is a new option
unpackArray that unpacks a single-element Json array, matched by a Jsonpath, into an object. This option is disabled by default (this behaviour was enabled by default in previous Camel versions). There is a new expression
jsonpathUnpack(String text, Class<?> resultType) that makes use of this new option.
error-handler has been refactored to be aligned with
errorHandler from the
camel-core-model DSL, meaning that it is now the same, how error handlers are in other DSLs.
noneis now called
loghas been removed, as you can use
dead-letter-channelwith a log endpoint as the
The Mongodb Driver core has been updated to version 4.8.1
This fully support MongoDB 6.1