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.
beanType (full qualified class name) with the bean language, then the bean language will now lookup in registry and if there is a single instance of the same type, then the existing bean is used. If not then a new bean is created (same behavior as before).
The aggregate EIP will now always use a worker thread pool for processing outgoing messages. Previously a worker pool was only created when
parallelProcessing=true. When having
parallelProcessing=false then a single-threaded worker pool is created and used by the aggregator.
Camels routing engine works better when a dedicated worker pool that eliminates a hack that otherwise was needed in other EIPs that was affected if using the aggregator in some special configurations.
In XML and YAML DSL the
headerName attribute has been deprecated, and you should use
name instead. This is to make the EIP consistent with the naming used by other similar EIPs.
The default pattern for discovering Camel routes et all from the classpath has changed from only including XML files to now include all files.
routesIncludePattern is changed from:
This is from the
camel-main module which is for running Camel standalone, but also reused for Camel on Spring Boot, or Camel on Quarkus.
camel-apns component has been removed as the APNS (Apple Push Notification Service) online service has been retired y Apple.
streamFilter option should now be configured as endpoint uri parameter, instead of a route property.
The camel-saxon component no longer depends on camel-xslt-saxon. Any applications in needs of XSLT transformation with saxon should now declare an explicit dependency upon camel-xslt-saxon.
run goal of the
camel-maven-plugin has moved its OSGi Blueprint support out to its own
This means if you use Camel on OSGi Blueprint then you need to migrate from:
<plugin> <groupId>org.apache.camel</groupId> <artifactId>camel-maven-plugin</artifactId> <version>3.11.0</version> </plugin>
<plugin> <groupId>org.apache.camel.karaf</groupId> <artifactId>camel-karaf-maven-plugin</artifactId> <version>3.11.0</version> </plugin>
Also remember to execute the
run goal, you should use
camel-karaf:run instead of
camel:run as shown:
Support of deprecated use of named dataSource in the URI has been removed.
You have to use
sql:select * from table where id=# order by name?dataSource=myDS instead of
sql:select * from table where id= order by name?dataSource=myDS.
Some of the Camel Spring Boot starters have additional auto configuration options that clashed with component. Therefore those configurations has renamed their configuration keys:
Old Key prefix
New key prefix