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.
Upgrading Camel 3.2 to 3.3
The dependency on
jackson-module-jaxb-annotations and the option
enableJaxbAnnotationModule have been removed. To enable support for JAXB annotations, users have to:
JacksonTypeConvertersmodule classes, example:JacksonDataFormat
JacksonDataFormat formatPojo = new JacksonDataFormat(TestJAXBPojo.class); formatPojo.setModuleClassNames(JaxbAnnotationModule.class.getName());JacksonTypeConverters
context.getGlobalOptions().put(JacksonConstants.ENABLE_TYPE_CONVERTER, "true"); context.getGlobalOptions().put(JacksonConstants.TYPE_CONVERTER_TO_POJO, "true"); context.getGlobalOptions().put(JacksonConstants.TYPE_CONVERTER_MODULE_CLASS_NAMES, JaxbAnnotationModule.class.getName());
this change affects also the Java DSL and as consequence the
enableJaxbAnnotationModule option for the Json DataFormat definition has been removed.
The template components which supports using a header to specify a dynamic resource to use as template, instead of the configured template on the endpoint is now enabled out of the box. If you want to use this feature then you must turn on
allowTemplateFromHeader=true on either the endpoint or component level.
This applies to the following templating components: camel-freemarker, camel-velocity, camel-mvel, camel-mustache, camel-string-template, camel-chunk, camel-jolt, camel-jslt, camel-robotframework.
SupervisingRouteController has been refactored and its configuration has been simplified. And when configuring from spring boot, then the auto configuration parameters has been changed from
camel.supervising.controller into the general
camel.springboot which allows to share the same configuration across runtimes so its the same in Spring Boot, Camel Main, Camel K, Camel Quarkus, etc.
The following components is no longer supported in OSGi and has been removed from the Camel Karaf features file: camel-undertow, camel-jgroups, camel-jgroups-raft, camel-infinspan.
embedded goal has been removed (was never really in use). Use
run goal instead.
The dump model classes in package
org.apache.camel.support.dump has been removed as they were not in use by Camel.
In relation to the dump model classes removal, in camel-karaf the following commands were removed:
The following methods have been relocated from
This means that as example, the following snippet:
Main main = new Main(); main.addRoutesBuilder(....)
Main main = new Main(); main.configure().addRoutesBuilder(....)