|
| 1 | +--- |
| 2 | +title: "Apache Camel 4.16 What's New" |
| 3 | +date: 2025-11-05 |
| 4 | +draft: false |
| 5 | +authors: [ davsclaus,squakez ] |
| 6 | +categories: [ "Releases" ] |
| 7 | +preview: "Details of what we have done in the Camel 4.16 release." |
| 8 | +--- |
| 9 | + |
| 10 | +Apache Camel 4.16 has just been [released](/blog/2025/11/RELEASE-4.16.0/). |
| 11 | + |
| 12 | +This release introduces a set of new features and noticeable improvements that we will cover in this blog post. |
| 13 | + |
| 14 | +## Camel Core |
| 15 | + |
| 16 | +You can now add note(s) to EIPs in the DSL. The notes have no impact on running Camel, but makes it |
| 17 | +consistent to include code comments or other notes that are valuable for developers for maintaining. |
| 18 | +You can of course still use code comments, but `note` make them available for Camel tooling. |
| 19 | + |
| 20 | +The Rest DSL now supports using `camel-jacksonxml` for XML binding (JAXB is default). |
| 21 | + |
| 22 | +## Camel Telemetry tracing info in headers |
| 23 | + |
| 24 | +From this version onward you will be able to include the trace (and span) generated by any of the `camel-telemetry` concrete component used. It does not matter which is the implementation chosen, you can now get this information into the Exchange Headers. For example, if you're using `camel-opentelemetry2`: |
| 25 | + |
| 26 | +``` |
| 27 | +camel.opentelemetry2.enabled=true |
| 28 | +camel.opentelemetry2.traceHeadersInclusion=true |
| 29 | +``` |
| 30 | + |
| 31 | +Each exchange will now provide the a `CAMEL_TRACE_ID` amd `CAMEL_SPAN_ID` that you can use for any scope. Typically you want to use that information for troubleshooting. Together with the new MDC service released in version 4.15, you can now show the different traces flowing in your log: |
| 32 | + |
| 33 | +``` |
| 34 | +camel.mdc.enabled=true |
| 35 | +camel.mdc.customHeaders=CAMEL_TRACE_ID,CAMEL_SPAN_ID |
| 36 | +``` |
| 37 | + |
| 38 | +In your logging configuration: |
| 39 | + |
| 40 | +``` |
| 41 | +appender.stdout.layout.pattern = ... %m [%X{CAMEL_TRACE_ID}, %X{CAMEL_SPAN_ID}]%n |
| 42 | +``` |
| 43 | + |
| 44 | +and the output will be like: |
| 45 | + |
| 46 | +``` |
| 47 | +2025-10-21 12:33:01.685 INFO 272555 --- [ - timer://java] route-main: timer: 796EDDB6DA9896F-0000000000000000 [b75bce5a51264a80b9bd0055ffa61754, cb3a21e2224e483d8e3354890c6ef30a] |
| 48 | +2025-10-21 12:33:01.688 INFO 272555 --- [ - timer://java] route-a: directa: 796EDDB6DA9896F-0000000000000000 [b75bce5a51264a80b9bd0055ffa61754, e6661d02e92e46219018e23c64c68552] |
| 49 | +... |
| 50 | +2025-10-21 12:33:02.664 INFO 272555 --- [ - timer://java] route-main: timer: 796EDDB6DA9896F-0000000000000001 [107cf86699bc483b95a22092db647ef9, 4315098cc33d415c92eb6f5590226bda] |
| 51 | +2025-10-21 12:33:02.668 INFO 272555 --- [ - timer://java] route-a: directa: 796EDDB6DA9896F-0000000000000001 [107cf86699bc483b95a22092db647ef9, 29638a34b3904e359480151d762107fc] |
| 52 | +``` |
| 53 | + |
| 54 | +## Camel JBang |
| 55 | + |
| 56 | +Camel JBang is improved to detect kamelets in use by dynamic EIPs such as `toD` to include these kamelets |
| 57 | +during exporting. |
| 58 | + |
| 59 | +The `camel get route-dump` is now printing precise source code line numbers. And the route dumper is now |
| 60 | +dumping in YAML format by default. |
| 61 | + |
| 62 | +Camel JBang now detects Spring Boot/Quarkus Java imports when running Java routes, and include |
| 63 | +the JAR dependencies containing those classes. |
| 64 | + |
| 65 | +## Camel Spring Boot |
| 66 | + |
| 67 | +`camel-spring-boot` is upgraded to the latest Spring Boot 3.5.7 release. |
| 68 | + |
| 69 | +Camel now works again with JDK17 on Spring Boot (was not working in previous 4.15 release). |
| 70 | + |
| 71 | +## Java 25 |
| 72 | + |
| 73 | +We continue to prepare the code-base for the upcoming Java 25 release. However, this release does |
| 74 | +not officially support Java 25, but we are not aware of any issues (feedback is welcome). |
| 75 | +We will work on official Java 25 support in the following releases. |
| 76 | + |
| 77 | +There are some 3rd-party libraries that are not yet Java 25 compatible, and we are waiting for those |
| 78 | +to release compatible versions. |
| 79 | + |
| 80 | +## Miscellaneous |
| 81 | + |
| 82 | +Upgraded many third-party dependencies to the latest releases at the time of release. |
| 83 | + |
| 84 | +The `camel-aws-s3` component now includes more bucket operations in the producer. |
| 85 | + |
| 86 | +## New Components |
| 87 | + |
| 88 | +- `camel-ibm-cos` - Store and retrieve objects from IBM Cloud Object Storage. |
| 89 | +- `camel-ibm-watson-discovery` - Perform document understanding and search using IBM Watson Discovery |
| 90 | +- `camel-ibm-watson-language` - Perform natural language processing using IBM Watson Natural Language Understanding |
| 91 | +- `camel-pqc` - Encrypt and decrypt messages using Post-Quantum Cryptography Key Encapsulation Mechanisms (KEM). |
| 92 | + |
| 93 | +## Upgrading |
| 94 | + |
| 95 | +Make sure to read the [upgrade guide](/manual/camel-4x-upgrade-guide-4_16.html) if you are upgrading from a previous |
| 96 | +Camel version. |
| 97 | + |
| 98 | +If you are upgrading from, for example, 4.4 to 4.8, then make sure to follow the upgrade guides for each release |
| 99 | +in-between, i.e. |
| 100 | +4.4 -> 4.5, 4.5 -> 4.6, and so forth. |
| 101 | + |
| 102 | +The Camel Upgrade Recipes tool can also be used to automate upgrading. |
| 103 | +See more at: https://github.com/apache/camel-upgrade-recipes |
| 104 | + |
| 105 | +## Release Notes |
| 106 | + |
| 107 | +You can find additional information about this release in the list of resolved JIRA tickets: |
| 108 | + |
| 109 | +- [Release notes 4.16](/releases/release-4.16.0/) |
| 110 | + |
| 111 | +## Roadmap |
| 112 | + |
| 113 | +The following 4.17 release is planned for January 2026. |
| 114 | + |
0 commit comments