Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
114 changes: 114 additions & 0 deletions content/blog/2025/11/camel416-whatsnew/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
title: "Apache Camel 4.16 What's New"
date: 2025-11-05
draft: false
authors: [ davsclaus,squakez ]
categories: [ "Releases" ]
preview: "Details of what we have done in the Camel 4.16 release."
---

Apache Camel 4.16 has just been [released](/blog/2025/11/RELEASE-4.16.0/).

This release introduces a set of new features and noticeable improvements that we will cover in this blog post.

## Camel Core

You can now add note(s) to EIPs in the DSL. The notes have no impact on running Camel, but makes it
consistent to include code comments or other notes that are valuable for developers for maintaining.
You can of course still use code comments, but `note` make them available for Camel tooling.

The Rest DSL now supports using `camel-jacksonxml` for XML binding (JAXB is default).

## Camel Telemetry tracing info in headers

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`:

```
camel.opentelemetry2.enabled=true
camel.opentelemetry2.traceHeadersInclusion=true
```

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:

```
camel.mdc.enabled=true
camel.mdc.customHeaders=CAMEL_TRACE_ID,CAMEL_SPAN_ID
```

In your logging configuration:

```
appender.stdout.layout.pattern = ... %m [%X{CAMEL_TRACE_ID}, %X{CAMEL_SPAN_ID}]%n
```

and the output will be like:

```
2025-10-21 12:33:01.685 INFO 272555 --- [ - timer://java] route-main: timer: 796EDDB6DA9896F-0000000000000000 [b75bce5a51264a80b9bd0055ffa61754, cb3a21e2224e483d8e3354890c6ef30a]
2025-10-21 12:33:01.688 INFO 272555 --- [ - timer://java] route-a: directa: 796EDDB6DA9896F-0000000000000000 [b75bce5a51264a80b9bd0055ffa61754, e6661d02e92e46219018e23c64c68552]
...
2025-10-21 12:33:02.664 INFO 272555 --- [ - timer://java] route-main: timer: 796EDDB6DA9896F-0000000000000001 [107cf86699bc483b95a22092db647ef9, 4315098cc33d415c92eb6f5590226bda]
2025-10-21 12:33:02.668 INFO 272555 --- [ - timer://java] route-a: directa: 796EDDB6DA9896F-0000000000000001 [107cf86699bc483b95a22092db647ef9, 29638a34b3904e359480151d762107fc]
```

## Camel JBang

Camel JBang is improved to detect kamelets in use by dynamic EIPs such as `toD` to include these kamelets
during exporting.

The `camel get route-dump` is now printing precise source code line numbers. And the route dumper is now
dumping in YAML format by default.

Camel JBang now detects Spring Boot/Quarkus Java imports when running Java routes, and include
the JAR dependencies containing those classes.

## Camel Spring Boot

`camel-spring-boot` is upgraded to the latest Spring Boot 3.5.7 release.

Camel now works again with JDK17 on Spring Boot (was not working in previous 4.15 release).

## Java 25

We continue to prepare the code-base for the upcoming Java 25 release. However, this release does
not officially support Java 25, but we are not aware of any issues (feedback is welcome).
We will work on official Java 25 support in the following releases.

There are some 3rd-party libraries that are not yet Java 25 compatible, and we are waiting for those
to release compatible versions.

## Miscellaneous

Upgraded many third-party dependencies to the latest releases at the time of release.

The `camel-aws-s3` component now includes more bucket operations in the producer.

## New Components

- `camel-ibm-cos` - Store and retrieve objects from IBM Cloud Object Storage.
- `camel-ibm-watson-discovery` - Perform document understanding and search using IBM Watson Discovery
- `camel-ibm-watson-language` - Perform natural language processing using IBM Watson Natural Language Understanding
- `camel-pqc` - Encrypt and decrypt messages using Post-Quantum Cryptography Key Encapsulation Mechanisms (KEM).

## Upgrading

Make sure to read the [upgrade guide](/manual/camel-4x-upgrade-guide-4_16.html) if you are upgrading from a previous
Camel version.

If you are upgrading from, for example, 4.4 to 4.8, then make sure to follow the upgrade guides for each release
in-between, i.e.
4.4 -> 4.5, 4.5 -> 4.6, and so forth.

The Camel Upgrade Recipes tool can also be used to automate upgrading.
See more at: https://github.com/apache/camel-upgrade-recipes

## Release Notes

You can find additional information about this release in the list of resolved JIRA tickets:

- [Release notes 4.16](/releases/release-4.16.0/)

## Roadmap

The following 4.17 release is planned for January 2026.