Skip to content

Commit 6df664d

Browse files
davsclauscunningtsquakez
authored
Blog - Whats new 4.15 (#1405)
* Blog - Whats new 4.15 WIP * Add details on langchain4j-embeddingstore component and the undertow metrics in the actuator endpoing. (#1406) * Blog - Whats new 4.15 WIP * chore: camel-mdc component * chore: micrometer observability implementation * Apply suggestions from code review Co-authored-by: Pasquale Congiusti <pasquale.congiusti@gmail.com> * Blog - Whats new 4.15 WIP * Blog - Whats new 4.15 --------- Co-authored-by: Tom Cunningham <tcunning@redhat.com> Co-authored-by: Pasquale Congiusti <pasquale.congiusti@gmail.com>
1 parent 2d44519 commit 6df664d

File tree

2 files changed

+141
-0
lines changed

2 files changed

+141
-0
lines changed
238 KB
Loading
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
---
2+
title: "Apache Camel 4.15 What's New"
3+
date: 2025-10-09
4+
draft: false
5+
authors: [ davsclaus,cunningt,squakez]
6+
categories: [ "Releases" ]
7+
preview: "Details of what we have done in the Camel 4.15 release."
8+
---
9+
10+
Apache Camel 4.15 has just been [released](/blog/2025/10/RELEASE-4.15.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 easier extend Camel via 3d-party dependencies via Java ServiceLoader using the `ContextServicePlugin` SPI.
17+
18+
You can add custom sensitive keys to `camel.main.additionalSensitiveKeywords` which Camel will mask in logging.
19+
20+
## Camel JBang
21+
22+
`camel debug` now also supports debugging Camel Quarkus applications, by executing `camel debug pom.xml` which will
23+
detect that it's a Camel Quarkus Maven project, and then startup Quarkus via `mvn quarkus:dev` and attach
24+
the Camel route debugger automatically.
25+
26+
The `camel get route-dump` now dumps in YAML format by default.
27+
28+
Added IBM MQ to `camel infra` which makes it easy to start up a local MQ broker for development purposes.
29+
30+
## Camel Groovy
31+
32+
Added the new `camel-groovy-xml` data format is a basic data format to transform XML to Groovy Node objects,
33+
and back to XML. This is convenient when working with XML and using Groovy for data manipulation.
34+
35+
This data format is limited in functionality but intended to be easier to use. There are none or only a few options to configure.
36+
37+
## Camel Spring Boot
38+
39+
`camel-spring-boot` is upgraded to the latest Spring Boot 3.5.6 release.
40+
41+
When Spring Boot Actuators and the camel-undertow-starter are used in a project, the undertow metrics are now exposed out of the box under the actuator endpoint.
42+
43+
## YAML DSL
44+
45+
It is now possible to inline Maps in the `parameters` section. However Camel components rarely have options
46+
that are Map based, but when they do this makes it easier to use. For example the plc4j component allow to
47+
configure _tags_ as a Map:
48+
49+
```yaml
50+
- from:
51+
uri: "timer://tick"
52+
parameters:
53+
period: "1s"
54+
steps:
55+
- to:
56+
uri: "plc4j"
57+
parameters:
58+
driver: "some driver url here"
59+
tags:
60+
"tags_2": "XXX"
61+
"tags_6": "YYY"
62+
```
63+
64+
In this example the _tags_ options is of Map type and can be configured using YAML map syntax.
65+
Because the keys use underscore, then they are quoted.
66+
67+
## Java 25
68+
69+
We have prepared the code-base for the upcoming Java 25 release. However, this release does
70+
not officially support Java 25, but we are not aware of any issues (feedback is welcome).
71+
We will work on official Java 25 support in the following releases.
72+
73+
## Micrometer Observability implementation of Camel Telemetry
74+
75+
Here a new implementation of the `camel-telemetry` component: `camel-micrometer-observability`. This component uses the technology offered by Micrometer and is available both trough Main and Spring Boot runtime. This component may result a bit more complicated to configure than other telemetry components: the framework is an abstraction layer, therefore it is expected that the integration developers configure the Registry and the Context Propagation mechanisms adding the concrete technology (Opentelemetry, Brave/Zipkin) of choice.
76+
77+
If you're using Spring Boot runtime, it will be much more easy as there are dependencies in charge to autoconfigure it. You can read all detailed information in the component page documentation.
78+
79+
## Logging MDC (Mapped Diagnostic Context) Service
80+
81+
We have introduced a new component which will make it easier the setting and usage of MDC traces in your applications. We haven't yet deprecated the older feature, but we'll likely do in the future. You're invited to start adopting the new component as soon as possible.
82+
83+
Adding the `camel-mdc` component (or related starter in Spring Boot and extension in Quarkus runtimes), you will be able to include traces information you want in the log by just declaring which are the Exchange headers or properties containing such info. This new component will let you include the trace in any DSL (you were kind of forced to do it only in Java before), for example:
84+
85+
```yaml
86+
- setHeader:
87+
name: "customHead"
88+
constant: "I am an header"
89+
- setProperty:
90+
name: "customProp"
91+
constant: "I am a property"
92+
```
93+
94+
When activated (`camel.mdc.enabled=true`) you will get automatically a series of default MDC parameters and additionally you can add your own (see more configuration detail in the component page). From there onward you can declare the MDC you want to trace in your log according to your logging framework notation. For example, in Log4j it will be:
95+
96+
```text
97+
... [%X{camel.contextId}, %X{camel.routeId}, %X{camel.exchangeId}, %X{camel.messageId}, %X{customHead}, %X{customProp}]
98+
```
99+
100+
You won't need any longer to worry about context propagation. Neither the MDC will be interleaved in Camel threads which don't belong to route processing: consistent and clean.
101+
102+
## Miscellaneous
103+
104+
Upgraded many third-party dependencies to the latest releases at the time of release.
105+
106+
The `camel-file` used as clustered file-lock (`FileLockClusterView`) is now more resilient to split-brain scenarios.
107+
108+
## New Components
109+
110+
- `camel-aws2-textract` - Extract text and data from documents using AWS Textract
111+
- `camel-aws2-transcribe` - Automatically convert speech to text using AWS Transcribe service
112+
- `camel-docling` - Process documents using Docling library for parsing and conversion
113+
- `camel-groovy-xml` - Transform between XML and Groovy Node (Map structure) objects.
114+
- `camel-langchain4j-embeddingstore` - Provides support for 25+ vector databases using the LangChain4j EmbeddingStore API.
115+
- `camel-keycloak` - Manage Keycloak instances via Admin API
116+
- `camel-mdc` - Logging MDC (Mapped Diagnostic Context) Service
117+
- `camel-micrometer-observability` - Micrometer Observability implementation of Camel Telemetry
118+
- `camel-resilience4j-micrometer` - Micrometer statistics for Resilience4j circuit breaker
119+
120+
## Upgrading
121+
122+
Make sure to read the [upgrade guide](/manual/camel-4x-upgrade-guide-4_14.html) if you are upgrading from a previous
123+
Camel version.
124+
125+
If you are upgrading from, for example, 4.4 to 4.8, then make sure to follow the upgrade guides for each release
126+
in-between, i.e.
127+
4.4 -> 4.5, 4.5 -> 4.6, and so forth.
128+
129+
The Camel Upgrade Recipes tool can also be used to automate upgrading.
130+
See more at: https://github.com/apache/camel-upgrade-recipes
131+
132+
## Release Notes
133+
134+
You can find additional information about this release in the list of resolved JIRA tickets:
135+
136+
- [Release notes 4.15](/releases/release-4.15.0/)
137+
138+
## Roadmap
139+
140+
The following 4.16 release is planned for December 2025.
141+

0 commit comments

Comments
 (0)