Apache Camel 4.1 (non LTS) has just been released.
This release introduces a set of new features and noticeable improvements that we will cover in this blog post.
We continue with our performance optimizations in the core.
This release brings an optimized type converter, that works around JDK issue 8180450, and can bring improved performance for many scenarios, such as the content-based router and filter.
The XML and YAML DSL now have better support for defining bean which can be configured with properties, and references to other beans. We have added support for easier configuration to specify constructor arguments, factory beans and methods, and inlined script or java code that gives full power for creating the bean.
We have also enhanced
camel-core to make it able to dump route DSLs with bean included. This makes it possible for Camel being able to migrate your route sources between XML and YAML DSLs (see more in next section).
The XML DSL
camel-xml-io now has line-precise parsing error that shows you exactly where the problem is.
Camel JBang (Camel CLI)
We have continued investing in Camel JBang, and this time we introduce the new DSL
transform command, that can be used for transforming your Camel source routes from one DSL to another (currently only XML and YAML is supported).
We also added best effort support for loading and running legacy OSGi blueprint XML files. This is intended for Camel end users to have a tool they can use to assist them for migrating away from Apache Karaf to a modern Camel runtime such as Spring Boot, Quarkus or vanilla Camel Main. You can use this to migrate those OSGi blueprint XML files to standard Camel XML or YAML. We plan to publish a blog post about this in the near future.
ignoreLoadingError option to
transform commands, that allows to keep running, even if there is error loading route sources on startup.
export is made more robust and can export, even if not all source code is present to fully run the project.
There is a new
sbom command to generate SBom (CycloneDX or SPDX).
--jvm-debug option in
run can now be configured with the debugging port (4004 by default).
camel get startup command to output timed report of startup procedures that can help identify which part may be slow on startup.
Added type converter for
String to make it easy to get Kafka header content as text value (data is stored as byte array by Kafka).
OpenTelemetryTracingStrategy that allows fine-grained tracing of every step a message is routed by Camel.
Decorators now uses OpenTelemetry Semantic Naming Style for tracing headers.
Upgraded to latest 3.1.4 release.
camel-report:route-coverage Maven plugin can now generate reports in HTML format.
file component now has options to accept hidden files and directories.
xslt component is more dynamic by make it possible to specify the XSLT template as a header, meaning that each
Exchange can use a dynamic computed stylesheet.
camel-aws-sqs consumer is now batching visibility extension requests (reducing network bandwidth) for inflight messages currently being processed by Camel.
camel-aws-s3 producer can now upload big payloads without reading stream into memory.
rest component can now use a custom
The HTTP server based components will now mute exceptions by default (avoid sending stactraces in HTTP 500 errors back to clients). Set
muteException=false to have old behaviour.
camel-aws2-redshift-data- Perform operations on AWS Redshift using Redshift Data API.
camel-aws2-timestream- A Camel Amazon Web Services TimeStream component
camel-thymeleaf- Transform messages using a Thymeleaf template.
Make sure to read the upgrade guide if you are upgrading from a previous Camel version.
You can find more information about this release in the list of JIRA tickets resolved in the release: