Apache camel 4.18.0 Release

New and Noteworthy

This release is the new Camel 4.18.0 LTS release.

Supported Java version

This version supports Java 17 and 21.

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>4.18.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>4.18.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

Git tag checkout

Release is tagged with camel-4.18.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-4.18.0

Resolved issues

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

Bug (38)

CAMEL-22998
camel-kamelet - Kamelet should inherit route configuration so error handler can take affect
CAMEL-22997
camel-jbang - Using circuit breakers can cause an error creating processor
CAMEL-22978
Camel Bean Constructor Fails to Resolve String Parameters with Quotes in Overloaded Factory Method
CAMEL-22973
camel-core - ClassCastException in Splitter with exchange pooling
CAMEL-22972
camel-as2 - AS2ClientConnection leaks HTTP connections on error paths
CAMEL-22952
Camel JBang cmd receive - does not support when using stub
CAMEL-22951
camel-jbang - The groovy example fails with Caused by: java.lang.IllegalArgumentException: Unsupported scheme: classpath:camel-groovy/Gold.groovy
CAMEL-22950
RecipientList with UseOriginalAggregationStrategy fails to capture exception with NPE
CAMEL-22947
Camel-Google-pubsub: consumer does not properly trigger ACK/NACK callbacks and lacks deliveryAttempt visibility
CAMEL-22941
"POST_Exchange____Id__" metrics
CAMEL-22940
[camel-milo] Cannot configure certificate chain
CAMEL-22939
camel-jbang: observe flag ignored when camel.jbang.dependencies is set
CAMEL-22937
camel-jbang: using different custom ports for both embedded and management server runs into an error
CAMEL-22936
camel-spring-boot - camel health check breaks if one component has exception without message
CAMEL-22932
[camel-opentelemetry-metrics] Integration testing failure
CAMEL-22926
GooglePubsubProducer applies HeaderFilterStrategy incorrectly, causing Camel headers to leak as Pub/Sub attributes
CAMEL-22923
camel-jbang - Capturing last message in backlog tracer may hit 1000 limit
CAMEL-22922
Camel JBang stub option is broken when stubbing kafka
CAMEL-22916
camel-ftp - RemoteFileProducer ignores NOOP result when sendNoop() returns false without exception
CAMEL-22907
Consumer errors with bridgeErrorHandler=true and handled=false do not propagate to subroutes
CAMEL-22904
camel-core - Simple language ternary parser should not fail for log expressions
CAMEL-22898
Memory Leak in google PubSub consumer
CAMEL-22888
Most of the docling metadata are missing
CAMEL-22874
Error handler in openapi-contract-first route is invoked twice when using handled(false)
CAMEL-22858
camel-jbang - get history command may only show last step
CAMEL-22854
Camel-Keycloak: KeycloakSecurityPolicy does not validate token issuer
CAMEL-22849
AS2 server/listen does not resolve requestUriPattern wildcards when selecting consumer configuration
CAMEL-22848
camel-file: checksumFileAlgorithm option is ignored due to missing mapping in GenericFileEndpoint
CAMEL-22833
camel-jbang - Yaml DSL file with only templatedRoute is not loaded
CAMEL-22830
camel-salesforce - ReplayId ignored when using multiple routes with same salesforce channel
CAMEL-22828
camel-main - camel.main.endpoint-runtime-statistics-enabled not working since Camel 4.5
CAMEL-22824
camel-core - Choice with bodyAs predicate may cause stream caching to be EOL
CAMEL-22823
Ensure Null Response Entity will be honored when StreamCache kicks in
CAMEL-22820
routeConfiguration onException does not propagate to direct endpoints for consumer-level exceptions
CAMEL-22816
camel-telegram - Messages that don't require chatId fail when chatId is not configured
CAMEL-22809
camel-main export failing to run when using --observe
CAMEL-22648
[camel-opentelemetry2] don't propagate headers when creating a new trace
CAMEL-22429
camel-aws2-sns component fails when sending CloudEvents with subjects over 100 characters

Dependency upgrade (3)

CAMEL-22982
camel-jbang - Upgrade to jkube 1.19
CAMEL-22979
Upgrade to Jolokia 2.5.0
CAMEL-22896
camel-spring-boot - Upgrade to Spring Boot 3.5.10

Improvement (70)

CAMEL-22993
Camel-Jbang-mcp: For hardening tool, static information and data could a Quarkus MCP Resource
CAMEL-22991
Camel-Jbang-mcp: Support Transform route xml to yaml and yaml to xml in mcp tool
CAMEL-22988
Camel JBang eval command cannot work without camel cli installed
CAMEL-22985
camel-jbang-mcp - Add tool for yaml-dsl-validator
CAMEL-22984
camel-docling - Add advanced docling-serve processing options and return DoclingDocument from JSON operations
CAMEL-22977
DefaultCxfBinding: also populate credentials
CAMEL-22976
Camel-jbang-MCP: Add doc tool for dataformat and language too
CAMEL-22975
Camel-jbang-MCP: Add Kamelets catalog and doc tool
CAMEL-22974
camel-coap - Add option to configure a shared existing soap client
CAMEL-22971
camel-quarkus - Using rest-dsl contract-first should use fine grained vertx-web router
CAMEL-22968
camel-vertx-http: Add configuration option to set TracingPolicy
CAMEL-22966
Camel-LevelDB: Add ObjectInputFilter String pattern parameter in LevelDBAggregationRepository to be used in unmarshall operations
CAMEL-22964
SB platform-http: undertow access log managed by camel logging
CAMEL-22962
camel-jbang - infra run add a --port option
CAMEL-22958
camel-core - EIPs should be able to disabled with String values
CAMEL-22957
Not all the components support virtual threads
CAMEL-22955
camel-core - Add resource function to load resource from classpath
CAMEL-22954
camel-core - Add nested option to simple
CAMEL-22953
camel-core - XML languages that are Namespace should support property placeholders in key/ns
CAMEL-22949
Migrate components from Thread.sleep() to Camel's Task API for retry/backoff delays
CAMEL-22935
camel-core - Allow to add custom functions to simple
CAMEL-22931
camel-jbang - Command to validate YAML DSL file
CAMEL-22927
camel-sql endpoint opening unnecessary connections to the database if service location is enabled
CAMEL-22925
Enhance S3 producer to stream the payload of type GenericFile
CAMEL-22924
Add setAttachment to simple language
CAMEL-22918
camel-openai: Add metadata for header constants
CAMEL-22917
camel-openai: Enable default baseUrl option for https://api.openai.com/v1
CAMEL-22915
Camel-AWS-Polly: Expose headers element as endpoint options
CAMEL-22914
Camel-AWS-Lambda: Add more producer operations
CAMEL-22909
camel-spring-boot - Add camel.ssl.trustAllCertificates support in Spring Boot
CAMEL-22908
camel-jbang - Add extra files to classpath should allow to use relative paths
CAMEL-22901
Stream logs in Camel JBang Test plugin
CAMEL-22900
camel-mail - Allow to use headers for additional mail properties - support smtps protocol
CAMEL-22885
camel-core - Add trimResult to simple language
CAMEL-22882
camel-core - Local assignment for temporary variables in simple expressions
CAMEL-22880
camel-jbang: make kubernetes plugin generated project compatible with camel-dashboard
CAMEL-22879
camel-jbang - Make camel-jbang more roboust when running in cloud with weird HOME dir
CAMEL-22878
camel-core - Add note to from DSL
CAMEL-22876
camel-launcher - remove/handle jbang dependency in camel-jbang-core
CAMEL-22873
camel-core - Add support for ternary operator
CAMEL-22871
camel-core - Add simple function to assign a variable
CAMEL-22870
camel-core - Add elvis operator to simple language
CAMEL-22868
camel-core - Add not variant to startsWith and endsWith operator in simple language
CAMEL-22867
camel-core - Deprecate binary simple language operators with space in name
CAMEL-22866
camel-core - Add base64 functions to simple
CAMEL-22864
Camel-Kafka: Add KafkaSecurityConfigurer utility class to simplify Kafka authentication configuration
CAMEL-22863
Camel-CassandraQL: Add requestTimeout parameter to camel-cassandraql component
CAMEL-22862
camel-core - Simple language - Nested functions
CAMEL-22856
camel-core - Add substring before|after to simple language
CAMEL-22853
camel-core - Add convertTo function to simple language
CAMEL-22852
camel-core - Add length/size function to simple language
CAMEL-22847
camel-core - Optimize simple hash function to calc hash with low memory
CAMEL-22846
camel-file - Write checksum file to store hex in a header
CAMEL-22844
camel-core - Add pretty option to simple language
CAMEL-22841
camel-core - Add concat function to simple language
CAMEL-22835
camel-core - Add upper/lower case functions to simple language
CAMEL-22834
camel-core - Add trim function to simple language
CAMEL-22832
camel-azure-storage-blob: upload big files using uploadBlockBlobFromFile
CAMEL-22831
camel-file-watch: Expose file hash in Exchange headers
CAMEL-22818
camel-core - AdviceWith should pin point to same resource so route coverage can correlate
CAMEL-22817
camel-route-coverage - Improve coverage information to better match when using advicing
CAMEL-22810
camel-jbang - Remove project.build.outputTimestamp in pom.xml when exporting
CAMEL-22802
camel-ice60780 - Add connection status
CAMEL-22721
camel-zipfile - Zip iterator loads file entry into memory
CAMEL-22646
Integrate additional camel-dapr operations
CAMEL-22601
camel-jbang - Allow to route dump without running first
CAMEL-22093
camel-jbang - version list --fresh should persist the result
CAMEL-21254
Camel-Google-Big-Query: Cannot set a different projectId from default in particular conditions
CAMEL-16826
Camel-Azure-Storage-Blob: Add deleteAfterRead option for consumer side
CAMEL-14470
Camel-github: Implement a component supporting kohsuke github-api

New Feature (28)

CAMEL-22960
Camel-Jbang: Add an harden command and the related tool to camel-jbang-mcp
CAMEL-22946
camel-spring-boot - make it easier to write application access logs only, without management access logs
CAMEL-22942
camel-openai: add support for embeddings
CAMEL-22929
Camel-AWS: Create an AWS Comprehend Spring Boot starter
CAMEL-22928
Camel-AWS: Create an AWS comprehend component
CAMEL-22921
Camel-AWS: Add a Security Hub Spring Boot Starter
CAMEL-22919
Camel-AWS: Add a Security Hub component
CAMEL-22912
Camel-Spring-Boot: Create an AWS Polly starter
CAMEL-22911
Camel-AWS: Add Polly component
CAMEL-22905
Camel-Spring-Boot: Add OCSF dataformat starter
CAMEL-22903
Add OCSF (Open Cybersecurity Schema Framework) DataFormat component
CAMEL-22899
camel-core - Add chain operator to the simple language
CAMEL-22889
Camel-Jbang-MCP: Add the server option as exposing method, not stdio only
CAMEL-22886
Camel-Jbang: Add an MCP module
CAMEL-22881
Camel-Jbang: Add camel explain command to explain Camel routes using AI/LLM
CAMEL-22859
Auto-generate JBang commands documentation
CAMEL-22851
camel-langchain4j-tools - Implement native tool-search-tool
CAMEL-22843
camel-watsonx-ai component
CAMEL-22822
Camel-Chroma: Create a Spring Boot starter
CAMEL-22821
Camel-AWS-parameter-store: Create Spring Boot starter
CAMEL-22819
Camel-AWS: Create a parameter store component
CAMEL-22815
Support for Telegram Bot Payments API (Digital Goods)
CAMEL-22814
Support for Telegram Bot Payments API (Physical Products)
CAMEL-22805
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense
CAMEL-22804
Camel-AWS-IAM: Support more operations based on the API available
CAMEL-22379
camel-mina-sftp - FTP component based on Mina SSHD FTP
CAMEL-22292
camel-jbang - camel cmd send to work with infra services
CAMEL-22179
Create AWS Rekognition component

Sub-task (11)

CAMEL-22897
Camel-Chroma: Remove Spring Boot Starter
CAMEL-22895
Camel-Chroma: Remove the component
CAMEL-22861
Auto-generated Jbang commands documentation: Add support for adding examples
CAMEL-22842
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS Kinesis
CAMEL-22840
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS Eventbridge
CAMEL-22838
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS EKS
CAMEL-22837
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS ECS
CAMEL-22836
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS EC2
CAMEL-22829
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS DynamoDB
CAMEL-22827
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS CloudWatch
CAMEL-22825
Camel-AWS components: Avoid duplicated code and add pagination to producer operation where it makes sense - AWS Athena

Task (23)

CAMEL-22983
Several tests are failing with propertyDatabinding errors
CAMEL-22980
Endless loop for org.apache.camel.component.zookeepermaster.group.GroupIT
CAMEL-22970
camel-leveldb - Deprecate
CAMEL-22961
Deprecate Camel-Github
CAMEL-22956
camel-core - Simple function should be grouped
CAMEL-22944
Camel-box: avoid using java.security.SecureRandom in the static initializers
CAMEL-22938
Review changes in OpenTelemtry related to Map with wrong type for key
CAMEL-22933
[test-infra] camel-test-infra-cli IT test failure
CAMEL-22930
camel-observation-starter broken in 4.17.0
CAMEL-22913
[build] Verify components coverage
CAMEL-22906
[camel-resilience4j] Flaky test on JDK25
CAMEL-22892
Weaviate: component documentation advertises different operations then are implemented
CAMEL-22877
[build] Error generating source for Dhis and Olingo
CAMEL-22872
camel-core - Missing doc for model onWhen / predicateValidator
CAMEL-22869
cannot build camel-chroma on power and s390 platforms
CAMEL-22865
Add a method to MockValueBuilder that allows json comparison that ignores element order
CAMEL-22812
Deprecate olingo components
CAMEL-22520
[camel-plc4x] Implement consumer unit test
CAMEL-22357
Mark topics (from upgrade guide), which are covered by update tool
CAMEL-20282
Keys verification download missing
CAMEL-19525
camel-jetty: replace Thread.sleep in tests
CAMEL-19524
camel-infinispan: replace Thread.sleep in tests
CAMEL-18941
camel-spring-boot - AutoConfigurationMojo imports file creation

Test (1)

CAMEL-21196
camel-core: modernize throws/no throws assertions

Keys

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