Apache 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.
This release supports only Spring Boot 2. Spring Boot v1 is no longer supported.
- 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
Getting the Binaries
Getting the Binaries using Maven
To use this release in your Apache Maven
pom.xml, import the Camel Bill of Materials (BOM) and then include the
camel-core and any other components needed without specifying the version.
<dependencyManagement> <dependencies> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-bom</artifactId> <version>2.22.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-COMPONENT</artifactId> </dependency> </dependencies>
To use this release in a Spring Boot application, use the
camel-spring-boot-dependencies Bill of Materials (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-spring-boot-dependencies</artifactId> <version>2.22.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-COMPONENT-starter</artifactId> </dependency> </dependencies>
Binary distribution contains all the artifacts Apache Camel project distributes in binary form
|Description||Download Link||PGP Signature file of download|
Source distribution contains all the artifacts Apache Camel project distributes in source form
|Description||Download Link||PGP Signature file of download|
Git tag checkout
Release is tagged with
camel-2.22.0 in the Git, to fetch it use:
git clone https://git-wip-us.apache.org/repos/asf/camel.git cd camel git checkout camel-2.22.0
Here is a list of all the issues that have been resolved for this release
- Camel Proxy/Bridge - Premature end of Content-Length delimited message body
- regression in camel test blueprint behaviour
- Camel Wordpress don't set basic authentication even if user and password are provided
- camel-bindy: DefaultFactoryRegistry.unregister throws ConcurrentModificationException
- Camel-google-mail: Remove scopes from configuration. This option is never really used.
- Re-apply CAMEL-12104 Unintuitive default cxf timeout behavior
- ClassCastException thrown KafkaSpanDecorator
- Support fixed property placeholders from Aries blueprint
- camel-univocity-parsers: Upgrade to version 2.6.4 once released
- camel-dns: starter ignores serviceCall EIP configuration
- camel-kubernetes: serviceCall EIP throws NullPointerException
- camel-kubernetes: serviceCall EIP configuration is not read from application.properties
- camel-catalog - Transacted and Policy should not have outputs
- saga-eip: do not hang if option cannot be computed
- Camel does not have logic that checks that it should only retry when its a new/changed file
- Camel-Twilio: Karaf feature is not working
- NullPointerException in camel-cmis when using wrong credentials
- camel-cxfrs - rsClient does not work programmatically, only with XML
- We should avoid the address setting of CxfRsEndpointConfigurer
- camel-google-mail: adding the camel component to a spring boot project leads to java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;
- Fix syntax for wordpress component
- Content Based Router in Java DSL may not resolve property placeholders in when predicates
- Camel-Twilio: the credentials can be set only at component level
- AggregateProcessor does not stop AggregateTimeoutChecker threads on stop call
- Allow seda producers to offer data to the queue with timeout
- camel-servicenow: suport java.lang.String as output model
- camel-servicenow: add metadata option to list available tables
- Upgrade to jaxb 220.127.116.11
- service call : create a dns+srv resolver for kubernetes
- camel-servicenow: add metadata option to list available import set
- Using cxf new LoggingFeature
- Create a camel-google-mail-stream component
- seda - Have a default queue size limit
- rest-dsl - Should check for required parameters generally
New Feature (4)
- camel-stream - Add support for configuring timeout for HTTP urls
- camel-stream - Add support for HTTP headers
- create camel-testcontainers
- camel-web3j - Finish the work
- camel cloud : create a spring cloud based camel-service example
- Upgrade to CXF 3.2.5
- Delete boot2 and boot2ga branches
- Create a Camel-micrometer Karaf feature
- Disable Google Analytics phone home
- Bump to Lucene and Solr 7.2.1
- Camel-Grpc: Bump to version 1.12.0
- camel-testcontainers : add documentation
- camel-rest - Send the error reason in the resonse body
- Camel-Couchdb: Add a get method to have a complete CRUD support
- camel-caffeine: improve documentation
- Add docs how to configure additional parameters in camel-infinispan