Camel 2.22.0 Release
New and Noteworthy
Welcome to the 2.22.0 release which resolved 216 issues including new features, improvements and bug fixes.
- Camel has upgraded from Spring Boot v1 to v2 and therefore v1 is no longer supported.
- Upgraded to Spring Framework 5. Camel should work with Spring 4.3.x as well, but going forward Spring 5.x will be the minimum Spring version in future releases.
- Upgraded to Karaf 4.2. You may run Camel on Karaf 4.1 but we only officially support Karaf 4.2 in this release.
- Optimised using toD DSL to reuse endpoints and producers for components where its possible. For example HTTP based components will now reuse producer (http clients) with dynamic uris sending to the same host. See more details in the toD documentation.
- The File2 consumer with read-lock idempotent/idempotent-changed can now be configured to delay the release tasks to expand the window when a file is regarded as in-process, which is usable in active/active cluster settings with a shared idempotent repository to ensure other nodes dont too quickly see a processed file as a file they can process (only needed if you have readLockRemoveOnCommit=true).
- Allow to plugin a custom request/reply correlation id manager implementation on Netty4 producer in request/reply mode.
- The Twitter component now uses extended mode by default to support tweets > 140 characters
- Rest DSL producer now supports being configured in rest configuration via endpointProperties.
- The Kafka component now supports
HeaderFilterStrategy
to plugin custom implementations for controlling header mappings between Camel and Kafka messages. - Rest DSL now supports client request validation to validate that Content-Type/Accept headers is possible for the rest service.
- Camel has now a Service Registry SPI which allow to register routes to a service registry such as consul, etcd, zookeeper using a Camel implementation or Spring Cloud
- The SEDA component now has a default queue size of 1000 instead of unlimited.
And these important fixes:
- Fixed a CXF continuation timeout issue with camel-cxf consumer could cause the consumer to return a response with data instead of triggering a timeout to the calling SOAP client.
- Fixed camel-cxf consumer doesn't release UoW when using robust oneway operation
- Fixed using AdviceWith and using weave methods on
onException
etc. not working. - Fixed Splitter in parallel processing and streaming mode may block, while iterating message body when the iterator throws exception in first invoked next() method call.
- Fixed Kafka consumer to not auto commit if autoCommitEnable=false.
- Fixed file consumer was using markerFile as read-lock by default, which should have been none.
- Fixed using manual commit with Kafka to provide the current record offset and not the previous (and -1 for first)
- Fixed Content Based Router in Java DSL may not resolve property placeholders in when predicates
- camel-as2 - Component used for transferring data secure and reliable over the internet using the AS2 protocol.
- camel-google-mail-stream - The google-mail component provides access to Google Mail.
- camel-micrometer - To collect various metrics directly from Camel routes using the Micrometer library.
- camel-mybatis-bean - Performs a query, insert, update or delete in a relational database using MyBatis.
- camel-service - Represents an endpoint which only becomes active when the CamelClusterView has the leadership.
- camel-web3j - The web3j component uses the Web3j client API and allows you to add/read nodes to/from a web3j compliant content repositories.
- camel-rxjava2 - RxJava2 based back-end for Camel’s reactive streams component
- camel-testcontainers - Camel support for testcontainers
- camel-testcontainers-spring - Camel unit testing with Spring and testcontainers
New DSL
New Annotations
API breaking
- The RestProducerFactory has an API change where the RestConfiguration is provided as parameter as well.
Known Issues
Important changes to consider when upgrading
- Camel has upgraded from Spring Boot v1 to v2 and therefore v1 is no longer supported. Migrating from SB1 to SB2 may require changes, see the Spring Boot v1 to v2 migration documentation for details.
- Upgraded to Spring Framework v5 as default. Support for Spring Framework v4.3 is deprecated and not recommended to be used.
- Upgraded to Karaf 4.2. You may run Camel on Karaf 4.1 but we only officially support Karaf 4.2 in this release.
- Unit testing Camel with Spring Boot and extending the base classes
CamelTestSupport
or CamelSpringTestSupport
is now throwing an exception as this has never been intended/support. Instead use the CamelSpringBootRunner JUnit runner, and do not extend a base class. - The file consumer has changed to use readLock=none as default instead of readLock=markerFile. Documentation already indicated that readLock=none was the default.
- The SEDA component now has a default queue size of 1000 instead of unlimited.
- Upgraded camel-bean-validator to Bean Validation API 2.0 (JSR 380 - Bean Validation 2.0) is part of JEE 8, and as therefore camel 2.22.0 may not be running on Java EE 7 server.
Getting the Distributions
Binary Distributions
Source Distributions
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:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.22.0</version>
</dependency>
Git Tag Checkout
git clone https://git-wip-us.apache.org/repos/asf/camel.git
cd camel
git checkout camel-2.22.0
Changelog
For a more detailed view of new features and bug fixes, see the: