Apache camel 3.20.0 Release

New and Noteworthy

This release is the new Camel 3.20.0 LTS release.

Supported Java version

This version supports Java 11 and 17.

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>3.20.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 Spring Boot spring-boot-dependencies and Camel camel-spring-boot-bom Bill of Materials (BOM):

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version> SPRING BOOT VERSION HERE </version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.camel.springboot</groupId>
      <artifactId>camel-spring-boot-bom</artifactId>
      <version>3.20.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>

Apache Camel

Download Signature and checksum
apache-camel-3.20.0-src.zip (Sources) PGP Signature, SHA512 Checksum

Git tag checkout

Release is tagged with camel-3.20.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-3.20.0

Resolved issues

Here is a list of all the issues that have been resolved for this release

Bug (58)

CAMEL-18811
camel-ldap - InvalidSearchFilterException: invalid attribute description
CAMEL-18809
camel-core-model: RouteDefinitionHelper should resolve the intercepted from URI which is configured with property placeholder
CAMEL-18807
camel-yaml-dsl - Using method call in filter EIP not working
CAMEL-18805
Camel-telegram: bug while unregistreing webhook with autoregister=true
CAMEL-18796
camel-kafka: kafka consumer stops in case of an authentication issue
CAMEL-18795
camel-kafka: consumer not being closed during shutdown
CAMEL-18782
Apache camel http component HTTP_PATH header not working with toD
CAMEL-18778
camel-jbang - Export to quarkus on windows generate wrong GAVs in pom.xml
CAMEL-18776
camel-hdfs - Fix HdfsNormalFileHandler to handle temporary file path correctly
CAMEL-18772
camel-jbang - Run from gist can lead to JMX ObjectName issue
CAMEL-18766
camel-support: background tasks without maxDuration are reeschedulable
CAMEL-18764
camel-core - templatedRoute builder from Java cannot use templates from other DSLs
CAMEL-18755
camel-yaml-dsl - Intercept is not added in the route definition.
CAMEL-18753
camel-yaml-dsl - OnCompletion is not added in the route definition.
CAMEL-18750
camel-elastisearch-starter - Spring Boot clash with json-api dependency
CAMEL-18739
ZipAggregationStrategy loses onCompletion
CAMEL-18737
[camel-kamelet] parameter substitution does not work in bean instantiation when constructor or factory method is used
CAMEL-18736
Duplicate schema/cxfEndpoint.xsd resource in camel-cxf-spring-rest and camel-cxf-spring-soap jars
CAMEL-18733
camel-micrometer - Route policy should use unique names
CAMEL-18730
camel-report-maven-plugin - Class missing when generating the route coverage report
CAMEL-18728
Elasticsearch rest and Elasticsearch Java component name clash
CAMEL-18722
Camel AWS2 S3 doesn't handle metadata correctly
CAMEL-18719
camel-jbang - Adding the dependency of camel-quarkus-core creates two entries in exported POM.xml
CAMEL-18717
camel-kafka: investigate offset not increasing
CAMEL-18713
Loop processor interrupted when Camel engine shutdown
CAMEL-18711
OpenAPI Schema references not generating correctly
CAMEL-18704
components - Headers metadata is not included for components extending another component
CAMEL-18703
camel-jbang - doc command with --header does not show headers
CAMEL-18690
camel-jbang generates package name with special symbols
CAMEL-18689
Context reload doesn't update properties when using EndpointDSL
CAMEL-18688
camel-kafka: kafka component is not fully resumable
CAMEL-18676
Camel-Jbang does not add camel-openapi-java component when required
CAMEL-18661
Camel OpenTelemtery instrumentation does not make spans current
CAMEL-18657
camel-jbang - Loading dynamic JARs should load EndpointUriFactory
CAMEL-18656
Camel-git always merge at master branch
CAMEL-18648
Google-bigquery: ResolveEndpointFailedException because of the bug in configuration class
CAMEL-18642
camel-jbang change class packag when export
CAMEL-18641
Python not available in the Java DSL
CAMEL-18634
camel-health - Custom health check may get registered twice
CAMEL-18627
camel-kafka: Kafka resume throws null pointer exception if no partition offset exists
CAMEL-18624
camel-jbang - Should load custom type converters when adding new JARs
CAMEL-18617
Some health checks are hidden when running withg supervised controller enabled
CAMEL-18614
Getting Route for a RouteConfiguration is null when doing manual route loading
CAMEL-18612
Inconsistency in JsonPath component causes problems with databinding
CAMEL-18611
camel-karaf - CNFE when using camel-blueprint
CAMEL-18603
Camel-Jbang: When using aws-ddb-sink Kamelet dependency are not resolved
CAMEL-18594
camel-master: NPE when taking the leadership
CAMEL-18589
Bug in org.apache.camel.http.common.DefaultHttpBinding.java
CAMEL-18588
Kafka consumer on any exception should repoll records after the committed offset
CAMEL-18587
Kafka Consumer closes on any exception if breakOnFirstError is set to TRUE
CAMEL-18586
Spinning JVM through interception using interceptFrom interceptSendToEndpoint
CAMEL-18585
Validator: investigate strange validator behavior
CAMEL-18583
[camel-minio] deleteObjects operation does not delete multiple objects
CAMEL-18579
Missing osgi import for CxfUtils in camel-cxf-rest
CAMEL-18576
kamelets - JSon Property value can't finish with }}
CAMEL-18563
camel-karaf - ClassNotDefFoundError when an exception thrown from a cxfrs route
CAMEL-18447
Camel-pubsub: com.google.api.gax.rpc.AsyncTaskException: Asynchronous task failed with real account
CAMEL-18350
camel-kafka: enabling "breakOnFirstError" causes camel to reconsume all records on error

Dependency upgrade (14)

CAMEL-18819
hbase: different version of audience-annotations brought by zookeeper
CAMEL-18810
camel-kubernetes - Upgrade to 6.3.x
CAMEL-18758
camel-spring-boot - Upgrade to 2.7.6
CAMEL-18707
upgrade to Jandex 3
CAMEL-18668
Upgrade SmallRye Fault Tolerance to 5.6.x
CAMEL-18644
Camel - Upgrade hsqldb 2.7.1
CAMEL-18631
spring boot - upgrade to 2.7.5
CAMEL-18629
camel-kubernetes - Upgrade to 6.2.x
CAMEL-18621
Vulnerabilities identified with jackson-databind dependency
CAMEL-18573
upgrade to spring boot 2.7.4
CAMEL-18571
Upgrade to Infinispan 14.0.0.Final
CAMEL-17856
camel-jackson - Upgrade to 2.14.x
CAMEL-16484
Camel-Dropbox: Bump to Dropbox-core 5.x
CAMEL-15616
camel-saxon - Upgrade to Saxon 11.x

Improvement (80)

CAMEL-18817
camel-hbase - Support append and increment operations in the producer
CAMEL-18813
[Hyperledger-Aries] Add support for service=present-proof/send-proposal
CAMEL-18812
REST DSL configuration placeholder for .id() doesn't work
CAMEL-18808
camel-azure-storage-blob producer doesn't use CamelAzureStorageBlobBlobSize-header
CAMEL-18803
[Hyperledger-Aries] Add support for service=didexchange
CAMEL-18802
camel-base64 - Optional properties: if encoded the optional doesn't have any effect
CAMEL-18800
Support Camel K integration in JBang run command
CAMEL-18797
camel-sql - Conditionally execute ps.getParameterMetaData() in SqlProducer populateStatement
CAMEL-18790
camel-log - Do not show MEP by default
CAMEL-18789
camel-log - Add option to allowCachedStreams
CAMEL-18788
camel-jbang - run myfolder/foo.yaml --dev will have live reload in current folder
CAMEL-18784
camel-jbang - Run example with csimple should compile on startup
CAMEL-18783
camel-cxf - avoid referring Singleton bean instance(CxfEndpoint) while changing its state in different URIs
CAMEL-18777
Camel-Google-Storage: getObject Producer operation should place the object content in the body and populating headers with other info
CAMEL-18773
camel-google-pubsub - Do not use dot in header keys
CAMEL-18767
camel-jbang - Make --trace output message body
CAMEL-18763
camel-jbang - camel doc main should should main options
CAMEL-18762
camel-hdfs - Add LZ4 and Zstd compression support
CAMEL-18761
camel-open-api - Warning log when using boolean type.
CAMEL-18754
Camel Rest Monitoring Metrics UNKNOWN URI
CAMEL-18749
camel-hdfs: Add Snappy compression support
CAMEL-18748
camel-catalog - Missing properties for ErrorHandler in catalog for yaml DSL
CAMEL-18735
camel-rest - Add option back to set route id for api-route
CAMEL-18732
camel-micrometer - Include description of metrics
CAMEL-18731
camel-core - Languages should have a way to set result type / and input from header instead of body
CAMEL-18727
camel-jbang - get micrometer to filter out Camel route metrics
CAMEL-18724
Add defaults for options for the EIPs in the documentation
CAMEL-18715
camel-jbang - Make --local-kamelet-dir point to a github link for loading kamelets there
CAMEL-18714
camel-jbang - Remove command aliases
CAMEL-18712
camel-jbang - export dsl-modeline should only be included in needed
CAMEL-18710
camel-jbang - Only include kamelets JARs if kamelets are in use
CAMEL-18706
camel-jbang - Automatic include ASF snapshot repo if using SNAPSHOT jars
CAMEL-18702
camel-mail-microsoft-oauth: Add a Spring Boot starter
CAMEL-18700
camel-main - Unable to declare map bean with dotted keys
CAMEL-18699
camel-jbang - Export to Spring Boot - Allow to specify a Camel version
CAMEL-18697
camel-core - Propose a DSL for languages
CAMEL-18696
camel-ldap - Make filter a bit easier to use
CAMEL-18684
Add Microsoft Exchange Online OAuth2 Mail Authenticator
CAMEL-18683
Priorize RouteTemplate initialization
CAMEL-18679
camel-docker - Bind mount support
CAMEL-18677
camel-resume-api: allow setting the cache on the configuration builder
CAMEL-18675
camel-resume-api: implement resume strategy auto-instantiation
CAMEL-18669
camel-jbang - Using resilience4j as CB should include include dependency
CAMEL-18665
JsseParameters should use the camel provided resource loader instead of its own
CAMEL-18663
camel-vertx-http: allow to configure WebClientOptions at component level
CAMEL-18658
camel-jbang - Live reload of Camel K CRD with embedded source code
CAMEL-18653
camel-resume-api: reliability improvements
CAMEL-18652
camel-micrometer - Add more supported types
CAMEL-18650
camel-jbang - Auto create micrometer registry
CAMEL-18649
camel-resume-api: file resume for directory entries performs badly
CAMEL-18646
camel-git - Provide custom configuration
CAMEL-18645
camel-health - Details metadata is mixed between custom and standard details
CAMEL-18643
AWS Health Check: Use AwsServiceException instead of SdkClientException for health check
CAMEL-18640
camel-console - Stacktraces in json response should be as array
CAMEL-18639
camel-health - Add detail for last time there was a failure
CAMEL-18630
camel-jbang - Add get health command
CAMEL-18626
Set the ExchangePattern with a routeTemplate
CAMEL-18622
camel-yaml-dsl - Add support for xxx.camel.yaml extension
CAMEL-18618
Came milo client does not return response code on write
CAMEL-18613
camel-cxf - Add option on endpoint to configure schema validation
CAMEL-18609
camel-jbang - Export should sort dependencies in pom.xml
CAMEL-18604
XpathRouteBuilder in Route Templates
CAMEL-18601
Replace assertMockEndpointsSatisfied() in doc
CAMEL-18596
camel-azure-eventhubs consumer is invoking a blocking method
CAMEL-18584
Regression: MailBinding Contructor has been extended instead of creating a new contructor
CAMEL-18580
camel-elasticsearch - Propose an async producer
CAMEL-18578
camel-lra refactor LRAClient to use jdk11 HttpClient
CAMEL-18575
Replace temporary dir logic in test code
CAMEL-18568
Extend handleDuplicateAttachmentNames handling to suffix filename with UUID
CAMEL-18565
Camel fails to start routes without failure message when routes-include-pattern has an invalid entry
CAMEL-18558
camel-jbang - get inflight and blocked exchanges
CAMEL-18555
camel-jbang - Use standard Maven for download instead of ShrinkWrap
CAMEL-18549
Dynamic router component should add filters to a map (by filter id) instead of a list to prevent multiple additions of the same filter.
CAMEL-18363
camel-couchdb - improve the documentation for updates
CAMEL-18254
camel-jbang - Kamelets should only log explicit configured options on startup
CAMEL-18205
camel-jbang - Export to Quarkus and Spring Boot support Gradle
CAMEL-17929
camel-yaml-dsl - KameletBinding style error-handler is not Camel standard
CAMEL-17505
camel-core - Propose a DSL for data formats
CAMEL-17438
Camel-Kubernetes: Add the ability to replace a resource by producers operations
CAMEL-16354
camel-core - Optimize Splitters using Scanner

New Feature (25)

CAMEL-18798
camel-core - Add prefixId to route model so generated IDs of the route is prefixed
CAMEL-18794
camel-jbang - Add run --code
CAMEL-18771
camel-core - Route template with hardcoded node IDs - Allow to specify prefix
CAMEL-18745
camel-core - Simple language ${originalBody}
CAMEL-18743
camel-jbang - Command to see only if everything is okay or there has been a failure
CAMEL-18725
camel-jbang - Route profile command
CAMEL-18718
camel-javascript - Language based on graalvm sdk
CAMEL-18716
camel-jbang - Provide completion for positional file path parameters
CAMEL-18692
camel-jbang - Export - Add option to choose gradle as build system
CAMEL-18682
Camel-Plc4x: Add a Spring Boot starter
CAMEL-18673
camel-jbang - Provide shell completions for camel CLI
CAMEL-18655
Integrate the Apache PLC4X Camel Integration module into the Apache Camel Project
CAMEL-18651
camel-jbang - CLI command to get micrometer metrics
CAMEL-18647
Java DSL - Set delay options from route templates in Delay EIP
CAMEL-18628
rest-dsl to support autoStartup
CAMEL-18616
camel-file - Add option to jail starting directory
CAMEL-18615
Using CSVDataformat in a Route Template
CAMEL-18600
properties component - Allow to turn off nested placeholders
CAMEL-18593
Platform-http : add reverse proxy feature
CAMEL-18574
camel-core - Add disabled option to EIPs
CAMEL-16909
Camel-Kubernetes: Added support for Event Resources
CAMEL-16030
camel-pulsar - Add async send to producer
CAMEL-14832
Data format for SWIFT financial message conversion support
CAMEL-14831
Create a Camel-rocketmq component
CAMEL-10173
Create a camel component for etcd v3

Task (26)

CAMEL-18804
Camel-SFTP: Host key type ED25519 not supported
CAMEL-18787
Add camel-elasticsearch to Camel-Karaf
CAMEL-18781
Re-add camel-mongodb to Camel-Karaf
CAMEL-18775
Re-add camel-spring-redis to Camel-Karaf
CAMEL-18774
camel-bom - Do not include test-jar
CAMEL-18757
camel-bom should specify <type>pom</type> for pom-only artifacts like camel-*-parent
CAMEL-18756
camel-spark: deprecate the component
CAMEL-18751
camel-hbase: deprecate the component
CAMEL-18746
camel-spring-boot 3.18.3 release missing debezium-db2-starter / debezium-oracle-starter
CAMEL-18734
camel-microprofile - Deprecate mp-metrics
CAMEL-18672
[DOCS] Dataset component - incorrect link
CAMEL-18671
[DOCS] Dataset component - unclear parameter description
CAMEL-18670
[DOCS] Dataset component - unclear parameter name
CAMEL-18664
Fix camel-karaf-examples with features.xml
CAMEL-18660
Kinesis tests fail due to an API rate limit exceeded
CAMEL-18633
Wrong debug log output when using MockEndpoint
CAMEL-18607
camel-yaml-dsl - bannedDefinition partially fails to exclude expression definition
CAMEL-18602
Adjust sync-properties-maven-plugin to generate apache parent version 25
CAMEL-18564
Use Jkube kubernetes-maven-plugin instead of deprecated fabric8-maven-plugin in camel-spring-boot-example
CAMEL-18554
The example kamelet-chucknorris fails
CAMEL-18516
camel-yaml-dsl - bannedDefinitions doesn't work for generate-yaml-schema
CAMEL-18327
camel-kafka: Kafka consumer closes when it is paused
CAMEL-18148
camel-resume-api: improve key/offset data serialization
CAMEL-17448
build: review and remove unused dependencies in components
CAMEL-17447
build: review and remove unused dependencies in core
CAMEL-16273
Camel-google-* cloud components: Make the serviceAccountKey explicitly configurable

Test (5)

CAMEL-18792
camel-hdfs - Make integration tests runnable without a real cluster
CAMEL-18741
js-dsl fails on GraalVM 22.3 on camel-quarkus
CAMEL-18729
add more tests for camel-cxf-soap-starter
CAMEL-18694
Documentation using uri attribute for rest dsl in xml examples
CAMEL-18680
Wrong initialization of KeyStoreParameters causes java.lang.IllegalArgumentException

Keys

You can verify your download by following these procedures and using these KEYS.