This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-website.git
The following commit(s) were added to refs/heads/main by this push: new 12442102 Whats new 4.13 (#1366) 12442102 is described below commit 12442102a417a70fdc026608493f5d4034731bc1 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Jul 8 20:41:30 2025 +0200 Whats new 4.13 (#1366) * Whats new 4.13 * Whats new 4.13 * doc: micrometer default last time exchange * Add camel-kakfa transaction enhancement (#1367) * Whats new 4.13 --------- Co-authored-by: Pasquale Congiusti <pasquale.congiu...@gmail.com> Co-authored-by: Claudio Miranda <clau...@claudius.com.br> --- .../blog/2025/07/camel413-whatsnew/featured.png | Bin 0 -> 243818 bytes content/blog/2025/07/camel413-whatsnew/index.md | 154 +++++++++++++++++++++ 2 files changed, 154 insertions(+) diff --git a/content/blog/2025/07/camel413-whatsnew/featured.png b/content/blog/2025/07/camel413-whatsnew/featured.png new file mode 100644 index 00000000..a9a95d3b Binary files /dev/null and b/content/blog/2025/07/camel413-whatsnew/featured.png differ diff --git a/content/blog/2025/07/camel413-whatsnew/index.md b/content/blog/2025/07/camel413-whatsnew/index.md new file mode 100644 index 00000000..7ac8205f --- /dev/null +++ b/content/blog/2025/07/camel413-whatsnew/index.md @@ -0,0 +1,154 @@ +--- +title: "Apache Camel 4.13 What's New" +date: 2025-07-08 +draft: false +authors: [ davsclaus,squakez,claudio4j ] +categories: [ "Releases" ] +preview: "Details of what we have done in the Camel 4.13 release." +--- + +Apache Camel 4.13 has just been [released](/blog/2025/07/RELEASE-4.13.0/). + +This release introduces a set of new features and noticeable improvements that we will cover in this blog post. + +## Camel Core + +We have made management possible for `BackOff`, `ForegroundTask`, and `BackgroundTask` which +are used as internal tasks to perform repetitive tasks, usually related to re-connection or recovery. +Some of the Came components uses these features, and other components has native recovery built-in from +the underlying library. However, those that uses these Camel tasks, is now exposed as JMX management, +and also provide more logging details during activity. All together it's easier to follow what is happening. + +If possible Camel will now report file name:line-number of the source file in the `FailedToStartRouteException` +if a route threw an exception on startup. + +## Camel JBang + +Reduced the number of dependencies used with `camel run`. + +Added `camel get internal-task` command to show state of internal tasks (see above). + +### Camel Launcher + +This module provides a self-contained executable JAR that includes all dependencies required to run Camel JBang without the need for the JBang two-step process. + +This is distributed as: + +1. A self-executing JAR: `camel-launcher-4.13.0.jar` +2. Distribution archives: `camel-launcher-4.13.0-bin.zip` or `camel-launcher-4.13.0-bin.tar.gz` + +You can then launch Camel either via `java -jar` or extract the distribution and execute the `camel` scripts. + +#### Benefits + +- No need for JBang installation +- Single executable JAR with all dependencies included +- Faster startup time (no dependency resolution step, on-demand class loading) +- Better memory usage (only loads classes that are actually used) +- Avoids classpath conflicts (dependencies kept as separate JARs) +- Each self-executing JAR is its own release, avoiding version complexity +- Can still be used with JBang if preferred + +## Rest DSL + +Overall improved the request validator, for both the built-in and as well when using `camel-openapi-validator` component. +The latter will now also validate the request payload is valid according to the OpenAPI schema. + +Added support for find-grained validation levels with `camel-openapi-validator`. +For example, you can ignore query parameters: + +```properties +camel.rest.validation-levels[validation.schema.required] = INFO +camel.rest.validation-levels[validation.request.parameter.query.missing] = IGNORE +camel.rest.validation-levels[validation.response.body.missing] = WARN +``` + +Added response validator which can be turned on via `clientResponseValidation=true`, which +makes Camel check what is being returned as response is valid according to the OpenAPI spec. + +## YAML DSL + +Removed support for using kebab-case in the DSL. So for example `set-body` should be migrated to `setBody` which +is the canonical syntax used in all the DSLs. + +## Camel AI + +The Camel components for langchain4j has been updated for the latest 1.0.x releases. + +## Camel HTTP + +Added `skipcontrolheaders` option which can be enabled, that makes it easier when you have +several HTTP endpoints being called in the routes, and don't want any `CamelHttpXXX` control headers +to interfere when calling new HTTP endpoints. This avoids having to use `removeHeaders` in the routes +to manually removing those headers. + +## Camel Kafka + +We added two parameters `transacted` and `transactionalId` to the `camel-kafka` component, so you don't have to set the `transactional.id` in the `additionalProperties` parameter. +This way sets the kafka producer with transaction boundaries, in this case the `transactional.id` is the endpoint id + route id. + +Example: +```java +from("platform-http:/sendtx/{word}") + .setBody(simple("{\"foo\": \"${header.word}\"}")) + .to("kafka:my-topic?transacted=true") + .to("sql:insert into foo(name) values (:#word)"); +``` + +In case you want to have finer control you can set a `transactionalId` parameter per route. Note that the old styles using the `additionalProperties` is still valid. + + +## Camel Spring Boot + +`camel-spring-boot` is upgraded to the latest Spring Boot 3.5.3 release. + +Removed deprecated `camel.springboot.xxx` auto configuration naming. Use `camel.main.xxx` instead. + +## Camel Micrometer + +`camel-micrometer` component added a little but (hopefully) useful default metric: `camel_exchanges_last_timestamp`. The goal of this new metric is to be able to discern how long a Camel application has been idle expecting any exchange to consume. In environments where there is the expectation of a continuous execution of exchanges, this can be of great help to immediately flag an application for some potential problem. The outcome of the metric in `Prometheus` is a `Gauge` which expose [...] + +``` +# HELP camel_exchanges_last_timestamp Last exchange processed time in milliseconds since the Unix epoch +# TYPE camel_exchanges_last_timestamp gauge +camel_exchanges_last_timestamp 1.749824808777E12 +``` + +## Miscellaneous + +Upgraded many third-party dependencies to the latest releases at the time of release. + +The `camel-nats` component now has support for using the Nats JetStreams feature. + +The `camel-ftp` and `camel-smb` components is now more resilient on startup when using `autoCreate` +and creating the starting directory in the consumer fails, then Camel will not try to recover and +attempt to create the directory on next poll. + +We made `camel-smb` more resilient and better recover when there are connectivity problems. + +## New Components + +There are no new components. + +## Upgrading + +Make sure to read the [upgrade guide](/manual/camel-4x-upgrade-guide-4_13.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.13](/releases/release-4.13.0/) + +## Roadmap + +The following 4.14 LTS release is planned for September 2025. +