This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch docs/CAMEL-26508-26322-lts-upgrade-notes in repository https://gitbox.apache.org/repos/asf/camel.git
commit 77ee36874e708daceaa4e3d54da6da22b46feedd Author: Claus Ibsen <[email protected]> AuthorDate: Tue Nov 3 12:02:53 2026 +0100 CAMEL-26508, CAMEL-26322: docs - add the netty transferExchange and as2 MDN allow-list upgrade notes to the 4.22.3 and 4.18.6 sections of the upgrade guides on main Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../ROOT/pages/camel-4x-upgrade-guide-4_18.adoc | 20 ++++++++++++++++++++ .../ROOT/pages/camel-4x-upgrade-guide-4_22.adoc | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc index 1603524c35a5..bc78c1360262 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc @@ -29,6 +29,16 @@ The text of a body part now ends exactly where the boundary delimiter begins: th line is removed as the sender wrote it, CRLF or a bare LF. Before, two characters were always removed, so a part framed with bare line feeds (as `openssl cms -sign` writes them without `-crlfeol`) lost its last byte. +=== camel-as2 - the asynchronous MDN allow-list matches the host and port + +The `asyncMdnAllowedHosts` option now matches the full authority - host and port - of the asynchronous MDN delivery +address, rather than the host alone. Each entry is a host with an optional port in `host:port` form (IPv6 literals use +bracket notation, for example `[::1]` or `[::1]:8080`). A bare-host entry (for example `partner.example`) now matches +only the default port of `http` (80); to deliver to another port, list it explicitly (for example +`partner.example:8080`). + +A deployment that lists a bare host and receives asynchronous MDNs on a non-default port must add the port to the entry. + === camel-azure-eventhubs - per-partition checkpoint counters and timer; checkpoint window boundary fix Several fixes from 4.22.x have been brought forward to 4.18.6 to give this change a sound base. @@ -206,6 +216,16 @@ exception of the route. With an encoder that accepts any object, the serialised message, cause or stack trace of the exception of the route. Set `muteException=false` to write the exception as before. `transferExchange=true` is not affected. +=== camel-netty - with transferExchange the consumer keeps its own connection headers + +With `transferExchange=true` the connection headers `CamelNettyRemoteAddress`, `CamelNettyLocalAddress`, +`CamelNettyChannelHandlerContext`, `CamelNettySSLSession` and the `CamelNettySSLClientCert*` headers (and the +`CamelNettyRemoteAddress` and `CamelNettyChannel` exchange properties) are now always the ones of the receiving side: +the connection it accepted is the source of truth. Before, the headers of the transferred exchange replaced them. Such +a header in the transferred exchange is no longer used, also when the receiving side has no value for it (for example +the `CamelNettySSLClientCert*` headers on a connection without a client certificate). This also applies to the reply +the producer receives. Send any such value of the sender under a header name of your own. + === camel-oauth - the bearer token processor is stateless and reads the HTTP request headers `OAuthBearerTokenProcessor` no longer creates or updates the OAuth session, and no longer sets the diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc index 9b14837eb472..bb01690b85a0 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc @@ -36,6 +36,16 @@ The text of a body part now ends exactly where the boundary delimiter begins: th line is removed as the sender wrote it, CRLF or a bare LF. Before, two characters were always removed, so a part framed with bare line feeds (as `openssl cms -sign` writes them without `-crlfeol`) lost its last byte. +=== camel-as2 - the asynchronous MDN allow-list matches the host and port + +The `asyncMdnAllowedHosts` option now matches the full authority - host and port - of the asynchronous MDN delivery +address, rather than the host alone. Each entry is a host with an optional port in `host:port` form (IPv6 literals use +bracket notation, for example `[::1]` or `[::1]:8080`). A bare-host entry (for example `partner.example`) now matches +only the default port of `http` (80); to deliver to another port, list it explicitly (for example +`partner.example:8080`). + +A deployment that lists a bare host and receives asynchronous MDNs on a non-default port must add the port to the entry. + === camel-azure-eventhubs - an event that completes when the checkpoint timer of its window has run is checkpointed With `checkpointBatchTimeout`, the consumer now starts a new checkpoint window when the timer of the current window @@ -139,6 +149,16 @@ exception of the route. With an encoder that accepts any object, the serialised message, cause or stack trace of the exception of the route. Set `muteException=false` to write the exception as before. `transferExchange=true` is not affected. +=== camel-netty - with transferExchange the consumer keeps its own connection headers + +With `transferExchange=true` the connection headers `CamelNettyRemoteAddress`, `CamelNettyLocalAddress`, +`CamelNettyChannelHandlerContext`, `CamelNettySSLSession` and the `CamelNettySSLClientCert*` headers (and the +`CamelNettyRemoteAddress` and `CamelNettyChannel` exchange properties) are now always the ones of the receiving side: +the connection it accepted is the source of truth. Before, the headers of the transferred exchange replaced them. Such +a header in the transferred exchange is no longer used, also when the receiving side has no value for it (for example +the `CamelNettySSLClientCert*` headers on a connection without a client certificate). This also applies to the reply +the producer receives. Send any such value of the sender under a header name of your own. + === camel-elasticsearch-rest-client - the credentials are only sent to the nodes of the cluster The `user` and `password` are now offered only to the nodes the client talks to: the hosts of `hostAddressesList` and,
