This is an automated email from the ASF dual-hosted git repository.

oscerd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 2f3acdce8b6e CAMEL-23577: doc-sync 4.18.x/4.14.x header-rename 
upgrade-guide entries to main (#23615)
2f3acdce8b6e is described below

commit 2f3acdce8b6ed2c8fe7d92681d80b7fe8ba03d89
Author: Andrea Cosentino <[email protected]>
AuthorDate: Mon Jun 8 10:11:48 2026 +0200

    CAMEL-23577: doc-sync 4.18.x/4.14.x header-rename upgrade-guide entries to 
main (#23615)
---
 .../ROOT/pages/camel-4x-upgrade-guide-4_14.adoc    | 541 +++++++++++++++++++
 .../ROOT/pages/camel-4x-upgrade-guide-4_18.adoc    | 600 +++++++++++++++++++++
 2 files changed, 1141 insertions(+)

diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
index 5ae207b4d33d..5b4f8914b72d 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
@@ -262,6 +262,547 @@ As a consequence, the generated Endpoint DSL header 
accessors on
 * `linkType()` -> `jiraLinkType()`
 * `minutesSpent()` -> `jiraMinutesSpent()`
 
+=== camel-arangodb - potential breaking change
+
+Two Exchange header constants in `ArangoDbConstants` that were not in the
+`Camel` namespace (and therefore not filtered by the default
+`HeaderFilterStrategy`) have been renamed to follow the Camel naming
+convention. The Java field names are unchanged; only the header string values
+have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `ArangoDbConstants.ARANGO_KEY` | `key` | `CamelArangoDbKey`
+| `ArangoDbConstants.RESULT_CLASS_TYPE` | `ResultClassType` | 
`CamelArangoDbResultClassType`
+|===
+
+The remaining constants (`MULTI_UPDATE`, `MULTI_INSERT`, `MULTI_DELETE`,
+`AQL_QUERY`, `AQL_QUERY_BIND_PARAMETERS`, `AQL_QUERY_OPTIONS`) were already
+`Camel`-prefixed and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(ArangoDbConstants.ARANGO_KEY, ...)`) continue to work without
+changes. Routes that set the header by its literal string value (for example
+`setHeader("key", ...)`) must be updated to use the new value
+(`setHeader("CamelArangoDbKey", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`ArangoDbHeaderNameBuilder` have been renamed: `key()` -> `arangoDbKey()` and
+`resultClassType()` -> `arangoDbResultClassType()`.
+
+=== camel-shiro - potential breaking change
+
+The three Exchange header constants in `ShiroSecurityConstants` that drive
+Shiro authentication used header values outside the `Camel` namespace
+(`SHIRO_SECURITY_TOKEN`, `SHIRO_SECURITY_USERNAME`, `SHIRO_SECURITY_PASSWORD`)
+and were therefore not filtered by the default `HeaderFilterStrategy`. They
+have been renamed to follow the Camel naming convention. The Java field names
+are unchanged; only the header string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `ShiroSecurityConstants.SHIRO_SECURITY_TOKEN` | `SHIRO_SECURITY_TOKEN` | 
`CamelShiroSecurityToken`
+| `ShiroSecurityConstants.SHIRO_SECURITY_USERNAME` | `SHIRO_SECURITY_USERNAME` 
| `CamelShiroSecurityUsername`
+| `ShiroSecurityConstants.SHIRO_SECURITY_PASSWORD` | `SHIRO_SECURITY_PASSWORD` 
| `CamelShiroSecurityPassword`
+|===
+
+These headers carry credentials and a serialized authentication token, so
+filtering them at transport boundaries by default is particularly important.
+
+Routes that reference the constants symbolically (for example
+`setHeader(ShiroSecurityConstants.SHIRO_SECURITY_USERNAME, ...)`) continue to
+work without changes. Routes that set the header by its literal string value
+(for example `setHeader("SHIRO_SECURITY_USERNAME", ...)`) must be updated to
+use the new value (`setHeader("CamelShiroSecurityUsername", ...)`).
+
+Because the three header values are now in the `Camel*` namespace, transports
+that filter Camel-internal headers by default (JMS, CXF, HTTP, etc.) will
+strip the serialized Shiro authentication token before publishing. This is
+the intended behavior for untrusted producers. Trusted Shiro-over-transport
+routes that previously relied on the token surviving the boundary must opt
+those three headers back in via a custom `HeaderFilterStrategy`, for example:
+
+[source,java]
+----
+public class ShiroFriendlyJmsHeaderFilterStrategy extends 
JmsHeaderFilterStrategy {
+    @Override
+    public boolean applyFilterToCamelHeaders(String name, Object value, 
Exchange ex) {
+        if (isShiroSecurityHeader(name)) {
+            return false;
+        }
+        return super.applyFilterToCamelHeaders(name, value, ex);
+    }
+
+    @Override
+    public boolean applyFilterToExternalHeaders(String name, Object value, 
Exchange ex) {
+        if (isShiroSecurityHeader(name)) {
+            return false;
+        }
+        return super.applyFilterToExternalHeaders(name, value, ex);
+    }
+
+    private static boolean isShiroSecurityHeader(String name) {
+        return 
ShiroSecurityConstants.SHIRO_SECURITY_TOKEN.equalsIgnoreCase(name)
+                || 
ShiroSecurityConstants.SHIRO_SECURITY_USERNAME.equalsIgnoreCase(name)
+                || 
ShiroSecurityConstants.SHIRO_SECURITY_PASSWORD.equalsIgnoreCase(name);
+    }
+}
+
+jmsComponent.setHeaderFilterStrategy(new 
ShiroFriendlyJmsHeaderFilterStrategy());
+----
+
+A worked example is in `ShiroOverJmsTest` in the `camel-itest` module.
+
+=== camel-pdf - potential breaking change
+
+The Exchange header constants in `PdfHeaderConstants` have been renamed to
+follow the Camel naming convention used across the rest of the component
+catalog. The Java field names are unchanged; only the header string values
+have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `PdfHeaderConstants.PROTECTION_POLICY_HEADER_NAME` | `protection-policy` | 
`CamelPdfProtectionPolicy`
+| `PdfHeaderConstants.PDF_DOCUMENT_HEADER_NAME` | `pdf-document` | 
`CamelPdfDocument`
+| `PdfHeaderConstants.DECRYPTION_MATERIAL_HEADER_NAME` | `decryption-material` 
| `CamelPdfDecryptionMaterial`
+| `PdfHeaderConstants.FILES_TO_MERGE_HEADER_NAME` | `files-to-merge` | 
`CamelPdfFilesToMerge`
+|===
+
+Routes that reference the constants symbolically (for example
+`setHeader(PdfHeaderConstants.PDF_DOCUMENT_HEADER_NAME, ...)`) continue to
+work without changes. Routes that set the header by its literal string value
+(for example `setHeader("pdf-document", ...)`) must be updated to use the
+new value (`setHeader("CamelPdfDocument", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`PdfHeaderNameBuilder` have been renamed accordingly:
+
+* `protectionPolicy()` -> `pdfProtectionPolicy()`
+* `pdfDocument()` -> `pdfDocument()` (unchanged in name, returns the new value)
+* `decryptionMaterial()` -> `pdfDecryptionMaterial()`
+* `filesToMerge()` -> `pdfFilesToMerge()`
+
+=== camel-jt400 - potential breaking change
+
+The two Exchange header constants in `Jt400Constants` that were not in the
+`Camel` namespace (and therefore not filtered by the default
+`HeaderFilterStrategy`) have been renamed to follow the Camel naming
+convention. The Java field names are unchanged; only the header string values
+have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `Jt400Constants.KEY` | `KEY` | `CamelJt400Key`
+| `Jt400Constants.SENDER_INFORMATION` | `SENDER_INFORMATION` | 
`CamelJt400SenderInformation`
+|===
+
+`Jt400Constants.KEY` is the data-queue key used for keyed-data-queue read and
+write operations. The remaining constants (`MESSAGE`, `MESSAGE_ID`,
+`MESSAGE_FILE`, `MESSAGE_TYPE`, `MESSAGE_SEVERITY`, `MESSAGE_DFT_RPY`,
+`MESSAGE_REPLYTO_KEY`) were already `Camel`-prefixed and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(Jt400Constants.KEY, ...)`) continue to work without changes. Routes
+that set the header by its literal string value (for example
+`setHeader("KEY", ...)`) must be updated to use the new value
+(`setHeader("CamelJt400Key", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`Jt400HeaderNameBuilder` have been renamed: `kEY()` -> `jt400Key()` and
+`senderInformation()` -> `jt400SenderInformation()`.
+
+=== camel-mail - potential breaking change
+
+The consumer-side dispatch header constants in `MailConstants` that control
+post-processing of a consumed mail message used header values outside the
+`Camel` namespace (`copyTo`, `moveTo`, `delete`) and were therefore not
+filtered by the default `HeaderFilterStrategy`. They have been renamed to
+follow the Camel naming convention (companion to the CAMEL-23522
+`mail.smtp.*` hardening). The Java field names are unchanged; only the header
+string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `MailConstants.MAIL_COPY_TO` | `copyTo` | `CamelMailCopyTo`
+| `MailConstants.MAIL_MOVE_TO` | `moveTo` | `CamelMailMoveTo`
+| `MailConstants.MAIL_DELETE` | `delete` | `CamelMailDelete`
+|===
+
+The standard RFC 5322 message header constants (`MAIL_SUBJECT` = `Subject`,
+`MAIL_FROM` = `From`, `MAIL_TO` = `To`, `MAIL_CC` = `Cc`, `MAIL_BCC` = `Bcc`,
+`MAIL_REPLY_TO` = `Reply-To`, `MAIL_CONTENT_TYPE` = `contentType`) are
+**unchanged**, as they map directly to the corresponding email fields and
+renaming them would break mail interoperability.
+
+The equally-named `copyTo` and `moveTo` *endpoint URI options* on the mail
+consumer are also unchanged; only the Exchange header values are affected.
+
+Routes that reference the constants symbolically (for example
+`setHeader(MailConstants.MAIL_DELETE, ...)`) continue to work without changes.
+Routes that set the header by its literal string value (for example
+`setHeader("delete", true)`) must be updated to use the new value
+(`setHeader("CamelMailDelete", true)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`MailHeaderNameBuilder` have been renamed: `copyTo()` -> `mailCopyTo()`,
+`moveTo()` -> `mailMoveTo()`, and `delete()` -> `mailDelete()`.
+
+=== camel-web3j - potential breaking change
+
+The Exchange header constants in `Web3jConstants` have been renamed to follow 
the
+Camel naming convention used across the rest of the component catalog. The Java
+field names are unchanged; only the header string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `Web3jConstants.ID` | `ID` | `CamelWeb3jId`
+| `Web3jConstants.OPERATION` | `OPERATION` | `CamelWeb3jOperation`
+| `Web3jConstants.AT_BLOCK` | `AT_BLOCK` | `CamelWeb3jAtBlock`
+| `Web3jConstants.ADDRESS` | `ADDRESS` | `CamelWeb3jAddress`
+| `Web3jConstants.ADDRESSES` | `ADDRESSES` | `CamelWeb3jAddresses`
+| `Web3jConstants.FROM_ADDRESS` | `FROM_ADDRESS` | `CamelWeb3jFromAddress`
+| `Web3jConstants.TO_ADDRESS` | `TO_ADDRESS` | `CamelWeb3jToAddress`
+| `Web3jConstants.POSITION` | `POSITION` | `CamelWeb3jPosition`
+| `Web3jConstants.BLOCK_HASH` | `BLOCK_HASH` | `CamelWeb3jBlockHash`
+| `Web3jConstants.TRANSACTION_HASH` | `TRANSACTION_HASH` | 
`CamelWeb3jTransactionHash`
+| `Web3jConstants.SHA3_HASH_OF_DATA_TO_SIGN` | `SHA3_HASH_OF_DATA_TO_SIGN` | 
`CamelWeb3jSha3HashOfDataToSign`
+| `Web3jConstants.SIGNED_TRANSACTION_DATA` | `SIGNED_TRANSACTION_DATA` | 
`CamelWeb3jSignedTransactionData`
+| `Web3jConstants.FULL_TRANSACTION_OBJECTS` | `FULL_TRANSACTION_OBJECTS` | 
`CamelWeb3jFullTransactionObjects`
+| `Web3jConstants.INDEX` | `INDEX` | `CamelWeb3jIndex`
+| `Web3jConstants.SOURCE_CODE` | `SOURCE_CODE` | `CamelWeb3jSourceCode`
+| `Web3jConstants.FILTER_ID` | `FILTER_ID` | `CamelWeb3jFilterId`
+| `Web3jConstants.DATABASE_NAME` | `DATABASE_NAME` | `CamelWeb3jDatabaseName`
+| `Web3jConstants.KEY_NAME` | `KEY_NAME` | `CamelWeb3jKeyName`
+| `Web3jConstants.NONCE` | `NONCE` | `CamelWeb3jNonce`
+| `Web3jConstants.HEADER_POW_HASH` | `HEADER_POW_HASH` | 
`CamelWeb3jHeaderPowHash`
+| `Web3jConstants.MIX_DIGEST` | `MIX_DIGEST` | `CamelWeb3jMixDigest`
+| `Web3jConstants.CLIENT_ID` | `CLIENT_ID` | `CamelWeb3jClientId`
+| `Web3jConstants.GAS_PRICE` | `GAS_PRICE` | `CamelWeb3jGasPrice`
+| `Web3jConstants.GAS_LIMIT` | `GAS_LIMIT` | `CamelWeb3jGasLimit`
+| `Web3jConstants.VALUE` | `VALUE` | `CamelWeb3jValue`
+| `Web3jConstants.DATA` | `DATA` | `CamelWeb3jData`
+| `Web3jConstants.FROM_BLOCK` | `FROM_BLOCK` | `CamelWeb3jFromBlock`
+| `Web3jConstants.TO_BLOCK` | `TO_BLOCK` | `CamelWeb3jToBlock`
+| `Web3jConstants.TOPICS` | `TOPICS` | `CamelWeb3jTopics`
+| `Web3jConstants.PRIORITY` | `PRIORITY` | `CamelWeb3jPriority`
+| `Web3jConstants.TTL` | `TTL` | `CamelWeb3jTtl`
+| `Web3jConstants.PRIVATE_FOR` | `PRIVATE_FOR` | `CamelWeb3jPrivateFor`
+| `Web3jConstants.PRIVATE_FROM` | `PRIVATE_FROM` | `CamelWeb3jPrivateFrom`
+| `Web3jConstants.ERROR_CODE` | `ERROR_CODE` | `CamelWeb3jErrorCode`
+| `Web3jConstants.ERROR_DATA` | `ERROR_DATA` | `CamelWeb3jErrorData`
+| `Web3jConstants.ERROR_MESSAGE` | `ERROR_MESSAGE` | `CamelWeb3jErrorMessage`
+| `Web3jConstants.HEADER_STATUS` | `status` | `CamelWeb3jStatus`
+| `Web3jConstants.HEADER_OPERATION` | `operation` | `CamelWeb3jHeaderOperation`
+| `Web3jConstants.ETH_HASHRATE` | `ETH_HASHRATE` | `CamelWeb3jEthHashrate`
+|===
+
+Routes that reference the constants symbolically (for example
+`setHeader(Web3jConstants.FROM_ADDRESS, ...)`) continue to work without 
changes.
+Routes that set the header by its literal string value (for example
+`setHeader("FROM_ADDRESS", ...)`) must be updated to use the new value
+(`setHeader("CamelWeb3jFromAddress", ...)`).
+
+The `Web3jConstants.ETH_HASHRATE` constant is dual-purpose: it is both the
+`CamelWeb3jOperation` value that dispatches the `ethHashrate` RPC and the 
header
+name read by the `ETH_SUBMIT_HASHRATE` operation. Routes that referenced the
+literal string `"ETH_HASHRATE"` (in either role) must be updated to
+`"CamelWeb3jEthHashrate"`. Routes using the symbolic constant reference are
+unaffected. The other producer-dispatch operation identifiers 
(`WEB3_CLIENT_VERSION`,
+`ETH_GAS_PRICE`, `ETH_SEND_TRANSACTION`, ...) keep their previous string values
+because they are operation enum values rather than Exchange header names.
+
+As a consequence, the generated Endpoint DSL header accessors on
+`Web3jHeaderNameBuilder` have been renamed accordingly:
+
+* `iD()` -> `web3jId()`
+* `atBlock()` -> `web3jAtBlock()`
+* `aDDRESS()` -> `web3jAddress()`
+* `aDDRESSES()` -> `web3jAddresses()`
+* `fromAddress()` -> `web3jFromAddress()`
+* `toAddress()` -> `web3jToAddress()`
+* `pOSITION()` -> `web3jPosition()`
+* `blockHash()` -> `web3jBlockHash()`
+* `transactionHash()` -> `web3jTransactionHash()`
+* `sha3HashOfDataToSign()` -> `web3jSha3HashOfDataToSign()`
+* `signedTransactionData()` -> `web3jSignedTransactionData()`
+* `fullTransactionObjects()` -> `web3jFullTransactionObjects()`
+* `iNDEX()` -> `web3jIndex()`
+* `sourceCode()` -> `web3jSourceCode()`
+* `filterId()` -> `web3jFilterId()`
+* `databaseName()` -> `web3jDatabaseName()`
+* `keyName()` -> `web3jKeyName()`
+* `nONCE()` -> `web3jNonce()`
+* `headerPowHash()` -> `web3jHeaderPowHash()`
+* `mixDigest()` -> `web3jMixDigest()`
+* `clientId()` -> `web3jClientId()`
+* `gasPrice()` -> `web3jGasPrice()`
+* `gasLimit()` -> `web3jGasLimit()`
+* `vALUE()` -> `web3jValue()`
+* `dATA()` -> `web3jData()`
+* `fromBlock()` -> `web3jFromBlock()`
+* `toBlock()` -> `web3jToBlock()`
+* `tOPICS()` -> `web3jTopics()`
+* `pRIORITY()` -> `web3jPriority()`
+* `tTL()` -> `web3jTtl()`
+* `privateFor()` -> `web3jPrivateFor()`
+* `privateFrom()` -> `web3jPrivateFrom()`
+* `errorCode()` -> `web3jErrorCode()`
+* `errorData()` -> `web3jErrorData()`
+* `errorMessage()` -> `web3jErrorMessage()`
+* `status()` -> `web3jStatus()`
+* `operation()` -> `web3jHeaderOperation()`
+* `ethHashrate()` -> `web3jEthHashrate()`
+
+A new accessor `web3jOperation()` is also generated for 
`Web3jConstants.OPERATION`
+(the producer dispatch header). This constant did not appear in the catalog
+previously, so no DSL accessor renaming applies to it.
+
+=== camel-elasticsearch / camel-opensearch - potential breaking change
+
+The Exchange header constants in `ElasticsearchConstants` and
+`OpensearchConstants` have been renamed to follow the Camel naming convention
+used across the rest of the component catalog. The Java field names are
+unchanged; only the header string values have changed.
+
+`ElasticsearchConstants`:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `ElasticsearchConstants.PARAM_OPERATION` | `operation` | 
`CamelElasticsearchOperation`
+| `ElasticsearchConstants.PARAM_INDEX_ID` | `indexId` | 
`CamelElasticsearchIndexId`
+| `ElasticsearchConstants.PARAM_INDEX_NAME` | `indexName` | 
`CamelElasticsearchIndexName`
+| `ElasticsearchConstants.PARAM_DOCUMENT_CLASS` | `documentClass` | 
`CamelElasticsearchDocumentClass`
+| `ElasticsearchConstants.PARAM_WAIT_FOR_ACTIVE_SHARDS` | 
`waitForActiveShards` | `CamelElasticsearchWaitForActiveShards`
+| `ElasticsearchConstants.PARAM_SCROLL_KEEP_ALIVE_MS` | `scrollKeepAliveMs` | 
`CamelElasticsearchScrollKeepAliveMs`
+| `ElasticsearchConstants.PARAM_SCROLL` | `useScroll` | 
`CamelElasticsearchUseScroll`
+| `ElasticsearchConstants.PARAM_SIZE` | `size` | `CamelElasticsearchSize`
+| `ElasticsearchConstants.PARAM_FROM` | `from` | `CamelElasticsearchFrom`
+| `ElasticsearchConstants.PARAM_DOCUMENT_MODE` | `enableDocumentOnlyMode` | 
`CamelElasticsearchEnableDocumentOnlyMode`
+|===
+
+`OpensearchConstants`:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `OpensearchConstants.PARAM_OPERATION` | `operation` | 
`CamelOpensearchOperation`
+| `OpensearchConstants.PARAM_INDEX_ID` | `indexId` | `CamelOpensearchIndexId`
+| `OpensearchConstants.PARAM_INDEX_NAME` | `indexName` | 
`CamelOpensearchIndexName`
+| `OpensearchConstants.PARAM_DOCUMENT_CLASS` | `documentClass` | 
`CamelOpensearchDocumentClass`
+| `OpensearchConstants.PARAM_WAIT_FOR_ACTIVE_SHARDS` | `waitForActiveShards` | 
`CamelOpensearchWaitForActiveShards`
+| `OpensearchConstants.PARAM_SCROLL_KEEP_ALIVE_MS` | `scrollKeepAliveMs` | 
`CamelOpensearchScrollKeepAliveMs`
+| `OpensearchConstants.PARAM_SCROLL` | `useScroll` | `CamelOpensearchUseScroll`
+| `OpensearchConstants.PARAM_SIZE` | `size` | `CamelOpensearchSize`
+| `OpensearchConstants.PARAM_FROM` | `from` | `CamelOpensearchFrom`
+|===
+
+`ElasticsearchConstants.PROPERTY_SCROLL_ES_QUERY_COUNT` and
+`OpensearchConstants.PROPERTY_SCROLL_OPENSEARCH_QUERY_COUNT` were already
+`Camel`-prefixed (`CamelElasticsearchScrollQueryCount` /
+`CamelOpenSearchScrollQueryCount`) and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(ElasticsearchConstants.PARAM_INDEX_NAME, ...)`) continue to work
+without changes. Routes that set the header by its literal string value
+(for example `setHeader("indexName", ...)`) must be updated to use the
+new value (`setHeader("CamelElasticsearchIndexName", ...)`).
+
+The generated Endpoint DSL header accessors on
+`ElasticsearchHeaderNameBuilder` and `OpensearchHeaderNameBuilder` have
+been renamed accordingly (`operation()` -> `elasticsearchOperation()` /
+`opensearchOperation()`, `indexId()` -> `elasticsearchIndexId()` /
+`opensearchIndexId()`, etc.).
+
+=== camel-google-functions / camel-google-secret-manager - potential breaking 
change
+
+The Exchange header constants in these Google Cloud components carried a
+`GoogleCloud<Service>` / `GoogleSecretManager` prefix that is not in the
+`Camel` namespace, so the default `HeaderFilterStrategy` did not filter them
+at transport boundaries. They have been renamed to add the `Camel` prefix.
+The Java field names are unchanged; only the header string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `GoogleCloudFunctionsConstants.OPERATION` | `GoogleCloudFunctionsOperation` 
| `CamelGoogleCloudFunctionsOperation`
+| `GoogleCloudFunctionsConstants.ENTRY_POINT` | 
`GoogleCloudFunctionsEntryPoint` | `CamelGoogleCloudFunctionsEntryPoint`
+| `GoogleCloudFunctionsConstants.RUNTIME` | `GoogleCloudFunctionsRuntime` | 
`CamelGoogleCloudFunctionsRuntime`
+| `GoogleCloudFunctionsConstants.SOURCE_ARCHIVE_URL` | 
`GoogleCloudFunctionsSourceArchiveUrl` | 
`CamelGoogleCloudFunctionsSourceArchiveUrl`
+| `GoogleCloudFunctionsConstants.RESPONSE_OBJECT` | 
`GoogleCloudFunctionsResponseObject` | `CamelGoogleCloudFunctionsResponseObject`
+| `GoogleSecretManagerConstants.OPERATION` | `GoogleSecretManagerOperation` | 
`CamelGoogleSecretManagerOperation`
+| `GoogleCloudVisionConstants.OPERATION` | `GoogleCloudVisionOperation` | 
`CamelGoogleCloudVisionOperation`
+| `GoogleCloudVisionConstants.RESPONSE_OBJECT` | 
`GoogleCloudVisionResponseObject` | `CamelGoogleCloudVisionResponseObject`
+| `GoogleCloudTextToSpeechConstants.OPERATION` | 
`GoogleCloudTextToSpeechOperation` | `CamelGoogleCloudTextToSpeechOperation`
+| `GoogleCloudTextToSpeechConstants.RESPONSE_OBJECT` | 
`GoogleCloudTextToSpeechResponseObject` | 
`CamelGoogleCloudTextToSpeechResponseObject`
+| `GoogleCloudSpeechToTextConstants.OPERATION` | 
`GoogleCloudSpeechToTextOperation` | `CamelGoogleCloudSpeechToTextOperation`
+| `GoogleCloudSpeechToTextConstants.RESPONSE_OBJECT` | 
`GoogleCloudSpeechToTextResponseObject` | 
`CamelGoogleCloudSpeechToTextResponseObject`
+|===
+
+The `GoogleSecretManagerConstants.SECRET_ID`, `VERSION_ID` and `REPLICATION`
+constants were already `Camel`-prefixed (`CamelGoogleSecretManagerSecretId`,
+etc.) and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(GoogleCloudFunctionsConstants.OPERATION, ...)`) continue to work
+without changes. Routes that set the header by its literal string value (for
+example `setHeader("GoogleCloudFunctionsOperation", ...)`) must be updated to
+use the new value (`setHeader("CamelGoogleCloudFunctionsOperation", ...)`).
+
+The generated Endpoint DSL header accessor names are unchanged (for example
+`googleCloudFunctionsOperation()`), since the `Camel` prefix is stripped when
+deriving the accessor name; the accessors now return the new `Camel`-prefixed
+values.
+
+
+NOTE: The companion rename for `camel-google-vision`, 
`camel-google-text-to-speech` and `camel-google-speech-to-text` from the same 
main-branch PR (#23467) is NOT backported to 4.14.x because those components 
were added after the 4.14.x branch point and do not exist on this maintenance 
branch.
+
+=== camel-openstack - potential breaking change
+
+The Exchange header constants in `OpenstackConstants`, `KeystoneConstants`,
+`NovaConstants`, `CinderConstants`, `GlanceConstants`, `NeutronConstants`,
+and `SwiftConstants` have been renamed to follow the Camel naming convention
+used across the rest of the component catalog. The Java field names are
+unchanged; only the header string values have changed.
+
+Common constants (in `OpenstackConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `OpenstackConstants.OPERATION` | `operation` | `CamelOpenstackOperation`
+| `OpenstackConstants.ID` | `ID` | `CamelOpenstackId`
+| `OpenstackConstants.NAME` | `name` | `CamelOpenstackName`
+| `OpenstackConstants.DESCRIPTION` | `description` | 
`CamelOpenstackDescription`
+| `OpenstackConstants.PROPERTIES` | `properties` | `CamelOpenstackProperties`
+|===
+
+Keystone (`KeystoneConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `KeystoneConstants.DESCRIPTION` | `description` | 
`CamelOpenstackKeystoneDescription`
+| `KeystoneConstants.DOMAIN_ID` | `domainId` | `CamelOpenstackKeystoneDomainId`
+| `KeystoneConstants.PARENT_ID` | `parentId` | `CamelOpenstackKeystoneParentId`
+| `KeystoneConstants.PASSWORD` | `password` | `CamelOpenstackKeystonePassword`
+| `KeystoneConstants.EMAIL` | `email` | `CamelOpenstackKeystoneEmail`
+| `KeystoneConstants.USER_ID` | `userId` | `CamelOpenstackKeystoneUserId`
+| `KeystoneConstants.GROUP_ID` | `groupId` | `CamelOpenstackKeystoneGroupId`
+|===
+
+Nova (`NovaConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `NovaConstants.FLAVOR_ID` | `FlavorId` | `CamelOpenstackNovaFlavorId`
+| `NovaConstants.RAM` | `RAM` | `CamelOpenstackNovaRam`
+| `NovaConstants.VCPU` | `VCPU` | `CamelOpenstackNovaVcpu`
+| `NovaConstants.DISK` | `disk` | `CamelOpenstackNovaDisk`
+| `NovaConstants.SWAP` | `swap` | `CamelOpenstackNovaSwap`
+| `NovaConstants.RXTXFACTOR` | `rxtxFactor` | `CamelOpenstackNovaRxtxFactor`
+| `NovaConstants.ADMIN_PASSWORD` | `AdminPassword` | 
`CamelOpenstackNovaAdminPassword`
+| `NovaConstants.IMAGE_ID` | `ImageId` | `CamelOpenstackNovaImageId`
+| `NovaConstants.KEYPAIR_NAME` | `KeypairName` | 
`CamelOpenstackNovaKeypairName`
+| `NovaConstants.NETWORK` | `NetworkId` | `CamelOpenstackNovaNetworkId`
+| `NovaConstants.ACTION` | `action` | `CamelOpenstackNovaAction`
+|===
+
+Cinder (`CinderConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `CinderConstants.SIZE` | `size` | `CamelOpenstackCinderSize`
+| `CinderConstants.VOLUME_TYPE` | `volumeType` | 
`CamelOpenstackCinderVolumeType`
+| `CinderConstants.IMAGE_REF` | `imageRef` | `CamelOpenstackCinderImageRef`
+| `CinderConstants.SNAPSHOT_ID` | `snapshotId` | 
`CamelOpenstackCinderSnapshotId`
+| `CinderConstants.IS_BOOTABLE` | `isBootable` | 
`CamelOpenstackCinderIsBootable`
+| `CinderConstants.VOLUME_ID` | `volumeId` | `CamelOpenstackCinderVolumeId`
+| `CinderConstants.FORCE` | `force` | `CamelOpenstackCinderForce`
+|===
+
+Glance (`GlanceConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `GlanceConstants.DISK_FORMAT` | `diskFormat` | 
`CamelOpenstackGlanceDiskFormat`
+| `GlanceConstants.CONTAINER_FORMAT` | `containerFormat` | 
`CamelOpenstackGlanceContainerFormat`
+| `GlanceConstants.OWNER` | `owner` | `CamelOpenstackGlanceOwner`
+| `GlanceConstants.IS_PUBLIC` | `isPublic` | `CamelOpenstackGlanceIsPublic`
+| `GlanceConstants.MIN_RAM` | `minRam` | `CamelOpenstackGlanceMinRam`
+| `GlanceConstants.MIN_DISK` | `minDisk` | `CamelOpenstackGlanceMinDisk`
+| `GlanceConstants.SIZE` | `size` | `CamelOpenstackGlanceSize`
+| `GlanceConstants.CHECKSUM` | `checksum` | `CamelOpenstackGlanceChecksum`
+|===
+
+Neutron (`NeutronConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `NeutronConstants.TENANT_ID` | `tenantId` | `CamelOpenstackNeutronTenantId`
+| `NeutronConstants.NETWORK_ID` | `networkId` | 
`CamelOpenstackNeutronNetworkId`
+| `NeutronConstants.ADMIN_STATE_UP` | `adminStateUp` | 
`CamelOpenstackNeutronAdminStateUp`
+| `NeutronConstants.NETWORK_TYPE` | `networkType` | 
`CamelOpenstackNeutronNetworkType`
+| `NeutronConstants.PHYSICAL_NETWORK` | `physicalNetwork` | 
`CamelOpenstackNeutronPhysicalNetwork`
+| `NeutronConstants.SEGMENT_ID` | `segmentId` | 
`CamelOpenstackNeutronSegmentId`
+| `NeutronConstants.IS_SHARED` | `isShared` | `CamelOpenstackNeutronIsShared`
+| `NeutronConstants.IS_ROUTER_EXTERNAL` | `isRouterExternal` | 
`CamelOpenstackNeutronIsRouterExternal`
+| `NeutronConstants.ENABLE_DHCP` | `enableDHCP` | 
`CamelOpenstackNeutronEnableDhcp`
+| `NeutronConstants.GATEWAY` | `gateway` | `CamelOpenstackNeutronGateway`
+| `NeutronConstants.IP_VERSION` | `ipVersion` | 
`CamelOpenstackNeutronIpVersion`
+| `NeutronConstants.CIDR` | `cidr` | `CamelOpenstackNeutronCidr`
+| `NeutronConstants.SUBNET_POOL` | `subnetPools` | 
`CamelOpenstackNeutronSubnetPools`
+| `NeutronConstants.DEVICE_ID` | `deviceId` | `CamelOpenstackNeutronDeviceId`
+| `NeutronConstants.MAC_ADDRESS` | `macAddress` | 
`CamelOpenstackNeutronMacAddress`
+| `NeutronConstants.ROUTER_ID` | `routerId` | `CamelOpenstackNeutronRouterId`
+| `NeutronConstants.SUBNET_ID` | `subnetId` | `CamelOpenstackNeutronSubnetId`
+| `NeutronConstants.PORT_ID` | `portId` | `CamelOpenstackNeutronPortId`
+| `NeutronConstants.ITERFACE_TYPE` | `interfaceType` | 
`CamelOpenstackNeutronInterfaceType`
+|===
+
+Swift (`SwiftConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `SwiftConstants.CONTAINER_NAME` | `containerName` | 
`CamelOpenstackSwiftContainerName`
+| `SwiftConstants.OBJECT_NAME` | `objectName` | `CamelOpenstackSwiftObjectName`
+| `SwiftConstants.LIMIT` | `limit` | `CamelOpenstackSwiftLimit`
+| `SwiftConstants.MARKER` | `marker` | `CamelOpenstackSwiftMarker`
+| `SwiftConstants.END_MARKER` | `end_marker` | `CamelOpenstackSwiftEndMarker`
+| `SwiftConstants.DELIMITER` | `delimiter` | `CamelOpenstackSwiftDelimiter`
+| `SwiftConstants.PATH` | `path` | `CamelOpenstackSwiftPath`
+|===
+
+`SwiftConstants.CONTAINER_METADATA_PREFIX`, `SwiftConstants.VERSIONS_LOCATION`,
+`SwiftConstants.CONTAINER_READ`, and `SwiftConstants.CONTAINER_WRITE`
+intentionally keep their previous values (`X-Container-Meta-`,
+`X-Versions-Location`, `X-Container-Read`, `X-Container-Write`) because they
+are part of the Swift HTTP protocol contract used by openstack4j to forward
+container metadata and ACLs to the Swift backend. Renaming them would break
+interoperability with the Swift API.
+
+Routes that reference the constants symbolically (for example
+`setHeader(OpenstackConstants.OPERATION, ...)`) continue to work without
+changes. Routes that set the header by its literal string value (for example
+`setHeader("operation", ...)`) must be updated to use the new value
+(`setHeader("CamelOpenstackOperation", ...)`).
+
+The generated Endpoint DSL header accessors on each component's
+`HeaderNameBuilder` are renamed accordingly (`operation()` ->
+`openstackOperation()`, `password()` -> `openstackKeystonePassword()`,
+`adminPassword()` -> `openstackNovaAdminPassword()`, etc.).
+
 === camel-mongodb-gridfs - potential breaking change
 
 The Exchange header values exposed by `GridFsConstants` have been renamed to 
follow the standard
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 0ffa575728cb..797769972bc1 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
@@ -294,6 +294,606 @@ As a consequence, the generated Endpoint DSL header 
accessors on
 * `linkType()` -> `jiraLinkType()`
 * `minutesSpent()` -> `jiraMinutesSpent()`
 
+=== camel-pdf - potential breaking change
+
+The Exchange header constants in `PdfHeaderConstants` have been renamed to
+follow the Camel naming convention used across the rest of the component
+catalog. The Java field names are unchanged; only the header string values
+have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `PdfHeaderConstants.PROTECTION_POLICY_HEADER_NAME` | `protection-policy` | 
`CamelPdfProtectionPolicy`
+| `PdfHeaderConstants.PDF_DOCUMENT_HEADER_NAME` | `pdf-document` | 
`CamelPdfDocument`
+| `PdfHeaderConstants.DECRYPTION_MATERIAL_HEADER_NAME` | `decryption-material` 
| `CamelPdfDecryptionMaterial`
+| `PdfHeaderConstants.FILES_TO_MERGE_HEADER_NAME` | `files-to-merge` | 
`CamelPdfFilesToMerge`
+|===
+
+Routes that reference the constants symbolically (for example
+`setHeader(PdfHeaderConstants.PDF_DOCUMENT_HEADER_NAME, ...)`) continue to
+work without changes. Routes that set the header by its literal string value
+(for example `setHeader("pdf-document", ...)`) must be updated to use the
+new value (`setHeader("CamelPdfDocument", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`PdfHeaderNameBuilder` have been renamed accordingly:
+
+* `protectionPolicy()` -> `pdfProtectionPolicy()`
+* `pdfDocument()` -> `pdfDocument()` (unchanged in name, returns the new value)
+* `decryptionMaterial()` -> `pdfDecryptionMaterial()`
+* `filesToMerge()` -> `pdfFilesToMerge()`
+
+=== camel-arangodb - potential breaking change
+
+Two Exchange header constants in `ArangoDbConstants` that were not in the
+`Camel` namespace (and therefore not filtered by the default
+`HeaderFilterStrategy`) have been renamed to follow the Camel naming
+convention. The Java field names are unchanged; only the header string values
+have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `ArangoDbConstants.ARANGO_KEY` | `key` | `CamelArangoDbKey`
+| `ArangoDbConstants.RESULT_CLASS_TYPE` | `ResultClassType` | 
`CamelArangoDbResultClassType`
+|===
+
+The remaining constants (`MULTI_UPDATE`, `MULTI_INSERT`, `MULTI_DELETE`,
+`AQL_QUERY`, `AQL_QUERY_BIND_PARAMETERS`, `AQL_QUERY_OPTIONS`) were already
+`Camel`-prefixed and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(ArangoDbConstants.ARANGO_KEY, ...)`) continue to work without
+changes. Routes that set the header by its literal string value (for example
+`setHeader("key", ...)`) must be updated to use the new value
+(`setHeader("CamelArangoDbKey", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`ArangoDbHeaderNameBuilder` have been renamed: `key()` -> `arangoDbKey()` and
+`resultClassType()` -> `arangoDbResultClassType()`.
+
+=== camel-jt400 - potential breaking change
+
+The two Exchange header constants in `Jt400Constants` that were not in the
+`Camel` namespace (and therefore not filtered by the default
+`HeaderFilterStrategy`) have been renamed to follow the Camel naming
+convention. The Java field names are unchanged; only the header string values
+have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `Jt400Constants.KEY` | `KEY` | `CamelJt400Key`
+| `Jt400Constants.SENDER_INFORMATION` | `SENDER_INFORMATION` | 
`CamelJt400SenderInformation`
+|===
+
+`Jt400Constants.KEY` is the data-queue key used for keyed-data-queue read and
+write operations. The remaining constants (`MESSAGE`, `MESSAGE_ID`,
+`MESSAGE_FILE`, `MESSAGE_TYPE`, `MESSAGE_SEVERITY`, `MESSAGE_DFT_RPY`,
+`MESSAGE_REPLYTO_KEY`) were already `Camel`-prefixed and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(Jt400Constants.KEY, ...)`) continue to work without changes. Routes
+that set the header by its literal string value (for example
+`setHeader("KEY", ...)`) must be updated to use the new value
+(`setHeader("CamelJt400Key", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`Jt400HeaderNameBuilder` have been renamed: `kEY()` -> `jt400Key()` and
+`senderInformation()` -> `jt400SenderInformation()`.
+
+=== camel-mail - potential breaking change
+
+The consumer-side dispatch header constants in `MailConstants` that control
+post-processing of a consumed mail message used header values outside the
+`Camel` namespace (`copyTo`, `moveTo`, `delete`) and were therefore not
+filtered by the default `HeaderFilterStrategy`. They have been renamed to
+follow the Camel naming convention (companion to the CAMEL-23522
+`mail.smtp.*` hardening). The Java field names are unchanged; only the header
+string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `MailConstants.MAIL_COPY_TO` | `copyTo` | `CamelMailCopyTo`
+| `MailConstants.MAIL_MOVE_TO` | `moveTo` | `CamelMailMoveTo`
+| `MailConstants.MAIL_DELETE` | `delete` | `CamelMailDelete`
+|===
+
+The standard RFC 5322 message header constants (`MAIL_SUBJECT` = `Subject`,
+`MAIL_FROM` = `From`, `MAIL_TO` = `To`, `MAIL_CC` = `Cc`, `MAIL_BCC` = `Bcc`,
+`MAIL_REPLY_TO` = `Reply-To`, `MAIL_CONTENT_TYPE` = `contentType`) are
+**unchanged**, as they map directly to the corresponding email fields and
+renaming them would break mail interoperability.
+
+The equally-named `copyTo` and `moveTo` *endpoint URI options* on the mail
+consumer are also unchanged; only the Exchange header values are affected.
+
+Routes that reference the constants symbolically (for example
+`setHeader(MailConstants.MAIL_DELETE, ...)`) continue to work without changes.
+Routes that set the header by its literal string value (for example
+`setHeader("delete", true)`) must be updated to use the new value
+(`setHeader("CamelMailDelete", true)`).
+
+As a consequence, the generated Endpoint DSL header accessors on
+`MailHeaderNameBuilder` have been renamed: `copyTo()` -> `mailCopyTo()`,
+`moveTo()` -> `mailMoveTo()`, and `delete()` -> `mailDelete()`.
+
+=== camel-github2 - potential breaking change
+
+The producer-side Exchange header constants in `GitHub2Constants` have been
+renamed to follow the Camel naming convention used across the rest of the
+component catalog. The Java field names are unchanged; only the header string
+values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `GitHub2Constants.GITHUB_PULLREQUEST` | `GitHubPullRequest` | 
`CamelGitHubPullRequest`
+| `GitHub2Constants.GITHUB_INRESPONSETO` | `GitHubInResponseTo` | 
`CamelGitHubInResponseTo`
+| `GitHub2Constants.GITHUB_PULLREQUEST_HEAD_COMMIT_SHA` | 
`GitHubPullRequestHeadCommitSHA` | `CamelGitHubPullRequestHeadCommitSha`
+| `GitHub2Constants.GITHUB_ISSUE_TITLE` | `GitHubIssueTitle` | 
`CamelGitHubIssueTitle`
+|===
+
+The consumer-side constants (`GITHUB_COMMIT_AUTHOR`, `GITHUB_COMMIT_COMMITTER`,
+`GITHUB_COMMIT_SHA`, `GITHUB_COMMIT_URL`, `GITHUB_EVENT_PAYLOAD`) were already
+`Camel`-prefixed (`CamelGitHubCommitAuthor`, etc.) and are unchanged, as is the
+`GITHUB_CLIENT` registry-lookup key (`github2Client`).
+
+Routes that reference the constants symbolically (for example
+`setHeader(GitHub2Constants.GITHUB_PULLREQUEST, ...)`) continue to work without
+changes. Routes that set the header by its literal string value (for example
+`setHeader("GitHubPullRequest", ...)`) must be updated to use the new value
+(`setHeader("CamelGitHubPullRequest", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessor
+`gitHubPullRequestHeadCommitSHA()` on `GitHub2HeaderNameBuilder` has been
+renamed to `gitHubPullRequestHeadCommitSha()`. The remaining accessors
+(`gitHubPullRequest()`, `gitHubInResponseTo()`, `gitHubIssueTitle()`) keep
+their names but now return the new `Camel`-prefixed values.
+
+NOTE: The deprecated `camel-github` component (predecessor of `camel-github2`)
+is not affected by this change on the 4.18.x line; it remains present in
+4.18.x as deprecated and was only removed on the 4.21 development branch.
+
+=== camel-elasticsearch / camel-opensearch - potential breaking change
+
+The Exchange header constants in `ElasticsearchConstants` and
+`OpensearchConstants` have been renamed to follow the Camel naming convention
+used across the rest of the component catalog. The Java field names are
+unchanged; only the header string values have changed.
+
+`ElasticsearchConstants`:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `ElasticsearchConstants.PARAM_OPERATION` | `operation` | 
`CamelElasticsearchOperation`
+| `ElasticsearchConstants.PARAM_INDEX_ID` | `indexId` | 
`CamelElasticsearchIndexId`
+| `ElasticsearchConstants.PARAM_INDEX_NAME` | `indexName` | 
`CamelElasticsearchIndexName`
+| `ElasticsearchConstants.PARAM_DOCUMENT_CLASS` | `documentClass` | 
`CamelElasticsearchDocumentClass`
+| `ElasticsearchConstants.PARAM_WAIT_FOR_ACTIVE_SHARDS` | 
`waitForActiveShards` | `CamelElasticsearchWaitForActiveShards`
+| `ElasticsearchConstants.PARAM_SCROLL_KEEP_ALIVE_MS` | `scrollKeepAliveMs` | 
`CamelElasticsearchScrollKeepAliveMs`
+| `ElasticsearchConstants.PARAM_SCROLL` | `useScroll` | 
`CamelElasticsearchUseScroll`
+| `ElasticsearchConstants.PARAM_SIZE` | `size` | `CamelElasticsearchSize`
+| `ElasticsearchConstants.PARAM_FROM` | `from` | `CamelElasticsearchFrom`
+| `ElasticsearchConstants.PARAM_DOCUMENT_MODE` | `enableDocumentOnlyMode` | 
`CamelElasticsearchEnableDocumentOnlyMode`
+|===
+
+`OpensearchConstants`:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `OpensearchConstants.PARAM_OPERATION` | `operation` | 
`CamelOpensearchOperation`
+| `OpensearchConstants.PARAM_INDEX_ID` | `indexId` | `CamelOpensearchIndexId`
+| `OpensearchConstants.PARAM_INDEX_NAME` | `indexName` | 
`CamelOpensearchIndexName`
+| `OpensearchConstants.PARAM_DOCUMENT_CLASS` | `documentClass` | 
`CamelOpensearchDocumentClass`
+| `OpensearchConstants.PARAM_WAIT_FOR_ACTIVE_SHARDS` | `waitForActiveShards` | 
`CamelOpensearchWaitForActiveShards`
+| `OpensearchConstants.PARAM_SCROLL_KEEP_ALIVE_MS` | `scrollKeepAliveMs` | 
`CamelOpensearchScrollKeepAliveMs`
+| `OpensearchConstants.PARAM_SCROLL` | `useScroll` | `CamelOpensearchUseScroll`
+| `OpensearchConstants.PARAM_SIZE` | `size` | `CamelOpensearchSize`
+| `OpensearchConstants.PARAM_FROM` | `from` | `CamelOpensearchFrom`
+|===
+
+`ElasticsearchConstants.PROPERTY_SCROLL_ES_QUERY_COUNT` and
+`OpensearchConstants.PROPERTY_SCROLL_OPENSEARCH_QUERY_COUNT` were already
+`Camel`-prefixed (`CamelElasticsearchScrollQueryCount` /
+`CamelOpenSearchScrollQueryCount`) and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(ElasticsearchConstants.PARAM_INDEX_NAME, ...)`) continue to work
+without changes. Routes that set the header by its literal string value
+(for example `setHeader("indexName", ...)`) must be updated to use the
+new value (`setHeader("CamelElasticsearchIndexName", ...)`).
+
+The generated Endpoint DSL header accessors on
+`ElasticsearchHeaderNameBuilder` and `OpensearchHeaderNameBuilder` have
+been renamed accordingly (`operation()` -> `elasticsearchOperation()` /
+`opensearchOperation()`, `indexId()` -> `elasticsearchIndexId()` /
+`opensearchIndexId()`, etc.).
+
+=== camel-google-functions / camel-google-secret-manager - potential breaking 
change
+
+The Exchange header constants in `GoogleCloudFunctionsConstants` and
+`GoogleSecretManagerConstants` that carried a `GoogleCloudFunctions` /
+`GoogleSecretManager` prefix are not in the `Camel` namespace and were
+therefore not filtered by the default `HeaderFilterStrategy`. They have been
+renamed to add the `Camel` prefix. The Java field names are unchanged; only
+the header string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `GoogleCloudFunctionsConstants.OPERATION` | `GoogleCloudFunctionsOperation` 
| `CamelGoogleCloudFunctionsOperation`
+| `GoogleCloudFunctionsConstants.ENTRY_POINT` | 
`GoogleCloudFunctionsEntryPoint` | `CamelGoogleCloudFunctionsEntryPoint`
+| `GoogleCloudFunctionsConstants.RUNTIME` | `GoogleCloudFunctionsRuntime` | 
`CamelGoogleCloudFunctionsRuntime`
+| `GoogleCloudFunctionsConstants.SOURCE_ARCHIVE_URL` | 
`GoogleCloudFunctionsSourceArchiveUrl` | 
`CamelGoogleCloudFunctionsSourceArchiveUrl`
+| `GoogleCloudFunctionsConstants.RESPONSE_OBJECT` | 
`GoogleCloudFunctionsResponseObject` | `CamelGoogleCloudFunctionsResponseObject`
+| `GoogleSecretManagerConstants.OPERATION` | `GoogleSecretManagerOperation` | 
`CamelGoogleSecretManagerOperation`
+|===
+
+The `GoogleSecretManagerConstants.SECRET_ID`, `VERSION_ID` and `REPLICATION`
+constants were already `Camel`-prefixed and are unchanged.
+
+Routes that reference the constants symbolically (for example
+`setHeader(GoogleCloudFunctionsConstants.OPERATION, ...)`) continue to work
+without changes. Routes that set the header by its literal string value (for
+example `setHeader("GoogleCloudFunctionsOperation", ...)`) must be updated to
+use the new value (`setHeader("CamelGoogleCloudFunctionsOperation", ...)`).
+
+The generated Endpoint DSL header accessor names are unchanged (for example
+`googleCloudFunctionsOperation()`), since the `Camel` prefix is stripped when
+deriving the accessor name; the accessors now return the new `Camel`-prefixed
+values.
+
+NOTE: The companion rename for `camel-google-vision`, 
`camel-google-text-to-speech`
+and `camel-google-speech-to-text` from the same main-branch PR (#23467) is
+**not** backported to 4.18.x because those components were added after the
+4.18.x branch point and do not exist on this maintenance branch.
+
+=== camel-openstack - potential breaking change
+
+The Exchange header constants in `OpenstackConstants`, `KeystoneConstants`,
+`NovaConstants`, `CinderConstants`, `GlanceConstants`, `NeutronConstants`,
+and `SwiftConstants` have been renamed to follow the Camel naming convention
+used across the rest of the component catalog. The Java field names are
+unchanged; only the header string values have changed.
+
+Common constants (in `OpenstackConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `OpenstackConstants.OPERATION` | `operation` | `CamelOpenstackOperation`
+| `OpenstackConstants.ID` | `ID` | `CamelOpenstackId`
+| `OpenstackConstants.NAME` | `name` | `CamelOpenstackName`
+| `OpenstackConstants.DESCRIPTION` | `description` | 
`CamelOpenstackDescription`
+| `OpenstackConstants.PROPERTIES` | `properties` | `CamelOpenstackProperties`
+|===
+
+Keystone (`KeystoneConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `KeystoneConstants.DESCRIPTION` | `description` | 
`CamelOpenstackKeystoneDescription`
+| `KeystoneConstants.DOMAIN_ID` | `domainId` | `CamelOpenstackKeystoneDomainId`
+| `KeystoneConstants.PARENT_ID` | `parentId` | `CamelOpenstackKeystoneParentId`
+| `KeystoneConstants.PASSWORD` | `password` | `CamelOpenstackKeystonePassword`
+| `KeystoneConstants.EMAIL` | `email` | `CamelOpenstackKeystoneEmail`
+| `KeystoneConstants.USER_ID` | `userId` | `CamelOpenstackKeystoneUserId`
+| `KeystoneConstants.GROUP_ID` | `groupId` | `CamelOpenstackKeystoneGroupId`
+|===
+
+Nova (`NovaConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `NovaConstants.FLAVOR_ID` | `FlavorId` | `CamelOpenstackNovaFlavorId`
+| `NovaConstants.RAM` | `RAM` | `CamelOpenstackNovaRam`
+| `NovaConstants.VCPU` | `VCPU` | `CamelOpenstackNovaVcpu`
+| `NovaConstants.DISK` | `disk` | `CamelOpenstackNovaDisk`
+| `NovaConstants.SWAP` | `swap` | `CamelOpenstackNovaSwap`
+| `NovaConstants.RXTXFACTOR` | `rxtxFactor` | `CamelOpenstackNovaRxtxFactor`
+| `NovaConstants.ADMIN_PASSWORD` | `AdminPassword` | 
`CamelOpenstackNovaAdminPassword`
+| `NovaConstants.IMAGE_ID` | `ImageId` | `CamelOpenstackNovaImageId`
+| `NovaConstants.KEYPAIR_NAME` | `KeypairName` | 
`CamelOpenstackNovaKeypairName`
+| `NovaConstants.NETWORK` | `NetworkId` | `CamelOpenstackNovaNetworkId`
+| `NovaConstants.ACTION` | `action` | `CamelOpenstackNovaAction`
+|===
+
+Cinder (`CinderConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `CinderConstants.SIZE` | `size` | `CamelOpenstackCinderSize`
+| `CinderConstants.VOLUME_TYPE` | `volumeType` | 
`CamelOpenstackCinderVolumeType`
+| `CinderConstants.IMAGE_REF` | `imageRef` | `CamelOpenstackCinderImageRef`
+| `CinderConstants.SNAPSHOT_ID` | `snapshotId` | 
`CamelOpenstackCinderSnapshotId`
+| `CinderConstants.IS_BOOTABLE` | `isBootable` | 
`CamelOpenstackCinderIsBootable`
+| `CinderConstants.VOLUME_ID` | `volumeId` | `CamelOpenstackCinderVolumeId`
+| `CinderConstants.FORCE` | `force` | `CamelOpenstackCinderForce`
+|===
+
+Glance (`GlanceConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `GlanceConstants.DISK_FORMAT` | `diskFormat` | 
`CamelOpenstackGlanceDiskFormat`
+| `GlanceConstants.CONTAINER_FORMAT` | `containerFormat` | 
`CamelOpenstackGlanceContainerFormat`
+| `GlanceConstants.OWNER` | `owner` | `CamelOpenstackGlanceOwner`
+| `GlanceConstants.IS_PUBLIC` | `isPublic` | `CamelOpenstackGlanceIsPublic`
+| `GlanceConstants.MIN_RAM` | `minRam` | `CamelOpenstackGlanceMinRam`
+| `GlanceConstants.MIN_DISK` | `minDisk` | `CamelOpenstackGlanceMinDisk`
+| `GlanceConstants.SIZE` | `size` | `CamelOpenstackGlanceSize`
+| `GlanceConstants.CHECKSUM` | `checksum` | `CamelOpenstackGlanceChecksum`
+|===
+
+Neutron (`NeutronConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `NeutronConstants.TENANT_ID` | `tenantId` | `CamelOpenstackNeutronTenantId`
+| `NeutronConstants.NETWORK_ID` | `networkId` | 
`CamelOpenstackNeutronNetworkId`
+| `NeutronConstants.ADMIN_STATE_UP` | `adminStateUp` | 
`CamelOpenstackNeutronAdminStateUp`
+| `NeutronConstants.NETWORK_TYPE` | `networkType` | 
`CamelOpenstackNeutronNetworkType`
+| `NeutronConstants.PHYSICAL_NETWORK` | `physicalNetwork` | 
`CamelOpenstackNeutronPhysicalNetwork`
+| `NeutronConstants.SEGMENT_ID` | `segmentId` | 
`CamelOpenstackNeutronSegmentId`
+| `NeutronConstants.IS_SHARED` | `isShared` | `CamelOpenstackNeutronIsShared`
+| `NeutronConstants.IS_ROUTER_EXTERNAL` | `isRouterExternal` | 
`CamelOpenstackNeutronIsRouterExternal`
+| `NeutronConstants.ENABLE_DHCP` | `enableDHCP` | 
`CamelOpenstackNeutronEnableDhcp`
+| `NeutronConstants.GATEWAY` | `gateway` | `CamelOpenstackNeutronGateway`
+| `NeutronConstants.IP_VERSION` | `ipVersion` | 
`CamelOpenstackNeutronIpVersion`
+| `NeutronConstants.CIDR` | `cidr` | `CamelOpenstackNeutronCidr`
+| `NeutronConstants.SUBNET_POOL` | `subnetPools` | 
`CamelOpenstackNeutronSubnetPools`
+| `NeutronConstants.DEVICE_ID` | `deviceId` | `CamelOpenstackNeutronDeviceId`
+| `NeutronConstants.MAC_ADDRESS` | `macAddress` | 
`CamelOpenstackNeutronMacAddress`
+| `NeutronConstants.ROUTER_ID` | `routerId` | `CamelOpenstackNeutronRouterId`
+| `NeutronConstants.SUBNET_ID` | `subnetId` | `CamelOpenstackNeutronSubnetId`
+| `NeutronConstants.PORT_ID` | `portId` | `CamelOpenstackNeutronPortId`
+| `NeutronConstants.ITERFACE_TYPE` | `interfaceType` | 
`CamelOpenstackNeutronInterfaceType`
+|===
+
+Swift (`SwiftConstants`):
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `SwiftConstants.CONTAINER_NAME` | `containerName` | 
`CamelOpenstackSwiftContainerName`
+| `SwiftConstants.OBJECT_NAME` | `objectName` | `CamelOpenstackSwiftObjectName`
+| `SwiftConstants.LIMIT` | `limit` | `CamelOpenstackSwiftLimit`
+| `SwiftConstants.MARKER` | `marker` | `CamelOpenstackSwiftMarker`
+| `SwiftConstants.END_MARKER` | `end_marker` | `CamelOpenstackSwiftEndMarker`
+| `SwiftConstants.DELIMITER` | `delimiter` | `CamelOpenstackSwiftDelimiter`
+| `SwiftConstants.PATH` | `path` | `CamelOpenstackSwiftPath`
+|===
+
+`SwiftConstants.CONTAINER_METADATA_PREFIX`, `SwiftConstants.VERSIONS_LOCATION`,
+`SwiftConstants.CONTAINER_READ`, and `SwiftConstants.CONTAINER_WRITE`
+intentionally keep their previous values (`X-Container-Meta-`,
+`X-Versions-Location`, `X-Container-Read`, `X-Container-Write`) because they
+are part of the Swift HTTP protocol contract used by openstack4j to forward
+container metadata and ACLs to the Swift backend. Renaming them would break
+interoperability with the Swift API.
+
+Routes that reference the constants symbolically (for example
+`setHeader(OpenstackConstants.OPERATION, ...)`) continue to work without
+changes. Routes that set the header by its literal string value (for example
+`setHeader("operation", ...)`) must be updated to use the new value
+(`setHeader("CamelOpenstackOperation", ...)`).
+
+The generated Endpoint DSL header accessors on each component's
+`HeaderNameBuilder` are renamed accordingly (`operation()` ->
+`openstackOperation()`, `password()` -> `openstackKeystonePassword()`,
+`adminPassword()` -> `openstackNovaAdminPassword()`, etc.).
+
+=== camel-shiro - potential breaking change
+
+The three Exchange header constants in `ShiroSecurityConstants` that drive
+Shiro authentication used header values outside the `Camel` namespace
+(`SHIRO_SECURITY_TOKEN`, `SHIRO_SECURITY_USERNAME`, `SHIRO_SECURITY_PASSWORD`)
+and were therefore not filtered by the default `HeaderFilterStrategy`. They
+have been renamed to follow the Camel naming convention. The Java field names
+are unchanged; only the header string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `ShiroSecurityConstants.SHIRO_SECURITY_TOKEN` | `SHIRO_SECURITY_TOKEN` | 
`CamelShiroSecurityToken`
+| `ShiroSecurityConstants.SHIRO_SECURITY_USERNAME` | `SHIRO_SECURITY_USERNAME` 
| `CamelShiroSecurityUsername`
+| `ShiroSecurityConstants.SHIRO_SECURITY_PASSWORD` | `SHIRO_SECURITY_PASSWORD` 
| `CamelShiroSecurityPassword`
+|===
+
+These headers carry credentials and a serialized authentication token, so
+filtering them at transport boundaries by default is particularly important.
+
+Routes that reference the constants symbolically (for example
+`setHeader(ShiroSecurityConstants.SHIRO_SECURITY_USERNAME, ...)`) continue to
+work without changes. Routes that set the header by its literal string value
+(for example `setHeader("SHIRO_SECURITY_USERNAME", ...)`) must be updated to
+use the new value (`setHeader("CamelShiroSecurityUsername", ...)`).
+
+Because the three header values are now in the `Camel*` namespace, transports
+that filter Camel-internal headers by default (JMS, CXF, HTTP, etc.) will
+strip the serialized Shiro authentication token before publishing. This is
+the intended behavior for untrusted producers. Trusted Shiro-over-transport
+routes that previously relied on the token surviving the boundary must opt
+those three headers back in via a custom `HeaderFilterStrategy`, for example:
+
+[source,java]
+----
+public class ShiroFriendlyJmsHeaderFilterStrategy extends 
JmsHeaderFilterStrategy {
+    @Override
+    public boolean applyFilterToCamelHeaders(String name, Object value, 
Exchange ex) {
+        if (isShiroSecurityHeader(name)) {
+            return false;
+        }
+        return super.applyFilterToCamelHeaders(name, value, ex);
+    }
+
+    @Override
+    public boolean applyFilterToExternalHeaders(String name, Object value, 
Exchange ex) {
+        if (isShiroSecurityHeader(name)) {
+            return false;
+        }
+        return super.applyFilterToExternalHeaders(name, value, ex);
+    }
+
+    private static boolean isShiroSecurityHeader(String name) {
+        return 
ShiroSecurityConstants.SHIRO_SECURITY_TOKEN.equalsIgnoreCase(name)
+                || 
ShiroSecurityConstants.SHIRO_SECURITY_USERNAME.equalsIgnoreCase(name)
+                || 
ShiroSecurityConstants.SHIRO_SECURITY_PASSWORD.equalsIgnoreCase(name);
+    }
+}
+
+jmsComponent.setHeaderFilterStrategy(new 
ShiroFriendlyJmsHeaderFilterStrategy());
+----
+
+A worked example is in `ShiroOverJmsTest` in the `camel-itest` module.
+
+=== camel-web3j - potential breaking change
+
+The Exchange header constants in `Web3jConstants` have been renamed to follow 
the
+Camel naming convention used across the rest of the component catalog. The Java
+field names are unchanged; only the header string values have changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `Web3jConstants.ID` | `ID` | `CamelWeb3jId`
+| `Web3jConstants.OPERATION` | `OPERATION` | `CamelWeb3jOperation`
+| `Web3jConstants.AT_BLOCK` | `AT_BLOCK` | `CamelWeb3jAtBlock`
+| `Web3jConstants.ADDRESS` | `ADDRESS` | `CamelWeb3jAddress`
+| `Web3jConstants.ADDRESSES` | `ADDRESSES` | `CamelWeb3jAddresses`
+| `Web3jConstants.FROM_ADDRESS` | `FROM_ADDRESS` | `CamelWeb3jFromAddress`
+| `Web3jConstants.TO_ADDRESS` | `TO_ADDRESS` | `CamelWeb3jToAddress`
+| `Web3jConstants.POSITION` | `POSITION` | `CamelWeb3jPosition`
+| `Web3jConstants.BLOCK_HASH` | `BLOCK_HASH` | `CamelWeb3jBlockHash`
+| `Web3jConstants.TRANSACTION_HASH` | `TRANSACTION_HASH` | 
`CamelWeb3jTransactionHash`
+| `Web3jConstants.SHA3_HASH_OF_DATA_TO_SIGN` | `SHA3_HASH_OF_DATA_TO_SIGN` | 
`CamelWeb3jSha3HashOfDataToSign`
+| `Web3jConstants.SIGNED_TRANSACTION_DATA` | `SIGNED_TRANSACTION_DATA` | 
`CamelWeb3jSignedTransactionData`
+| `Web3jConstants.FULL_TRANSACTION_OBJECTS` | `FULL_TRANSACTION_OBJECTS` | 
`CamelWeb3jFullTransactionObjects`
+| `Web3jConstants.INDEX` | `INDEX` | `CamelWeb3jIndex`
+| `Web3jConstants.SOURCE_CODE` | `SOURCE_CODE` | `CamelWeb3jSourceCode`
+| `Web3jConstants.FILTER_ID` | `FILTER_ID` | `CamelWeb3jFilterId`
+| `Web3jConstants.DATABASE_NAME` | `DATABASE_NAME` | `CamelWeb3jDatabaseName`
+| `Web3jConstants.KEY_NAME` | `KEY_NAME` | `CamelWeb3jKeyName`
+| `Web3jConstants.NONCE` | `NONCE` | `CamelWeb3jNonce`
+| `Web3jConstants.HEADER_POW_HASH` | `HEADER_POW_HASH` | 
`CamelWeb3jHeaderPowHash`
+| `Web3jConstants.MIX_DIGEST` | `MIX_DIGEST` | `CamelWeb3jMixDigest`
+| `Web3jConstants.CLIENT_ID` | `CLIENT_ID` | `CamelWeb3jClientId`
+| `Web3jConstants.GAS_PRICE` | `GAS_PRICE` | `CamelWeb3jGasPrice`
+| `Web3jConstants.GAS_LIMIT` | `GAS_LIMIT` | `CamelWeb3jGasLimit`
+| `Web3jConstants.VALUE` | `VALUE` | `CamelWeb3jValue`
+| `Web3jConstants.DATA` | `DATA` | `CamelWeb3jData`
+| `Web3jConstants.FROM_BLOCK` | `FROM_BLOCK` | `CamelWeb3jFromBlock`
+| `Web3jConstants.TO_BLOCK` | `TO_BLOCK` | `CamelWeb3jToBlock`
+| `Web3jConstants.TOPICS` | `TOPICS` | `CamelWeb3jTopics`
+| `Web3jConstants.PRIORITY` | `PRIORITY` | `CamelWeb3jPriority`
+| `Web3jConstants.TTL` | `TTL` | `CamelWeb3jTtl`
+| `Web3jConstants.PRIVATE_FOR` | `PRIVATE_FOR` | `CamelWeb3jPrivateFor`
+| `Web3jConstants.PRIVATE_FROM` | `PRIVATE_FROM` | `CamelWeb3jPrivateFrom`
+| `Web3jConstants.ERROR_CODE` | `ERROR_CODE` | `CamelWeb3jErrorCode`
+| `Web3jConstants.ERROR_DATA` | `ERROR_DATA` | `CamelWeb3jErrorData`
+| `Web3jConstants.ERROR_MESSAGE` | `ERROR_MESSAGE` | `CamelWeb3jErrorMessage`
+| `Web3jConstants.HEADER_STATUS` | `status` | `CamelWeb3jStatus`
+| `Web3jConstants.HEADER_OPERATION` | `operation` | `CamelWeb3jHeaderOperation`
+| `Web3jConstants.ETH_HASHRATE` | `ETH_HASHRATE` | `CamelWeb3jEthHashrate`
+|===
+
+Routes that reference the constants symbolically (for example
+`setHeader(Web3jConstants.FROM_ADDRESS, ...)`) continue to work without 
changes.
+Routes that set the header by its literal string value (for example
+`setHeader("FROM_ADDRESS", ...)`) must be updated to use the new value
+(`setHeader("CamelWeb3jFromAddress", ...)`).
+
+The `Web3jConstants.ETH_HASHRATE` constant is dual-purpose: it is both the
+`CamelWeb3jOperation` value that dispatches the `ethHashrate` RPC and the 
header
+name read by the `ETH_SUBMIT_HASHRATE` operation. Routes that referenced the
+literal string `"ETH_HASHRATE"` (in either role) must be updated to
+`"CamelWeb3jEthHashrate"`. Routes using the symbolic constant reference are
+unaffected. The other producer-dispatch operation identifiers 
(`WEB3_CLIENT_VERSION`,
+`ETH_GAS_PRICE`, `ETH_SEND_TRANSACTION`, ...) keep their previous string values
+because they are operation enum values rather than Exchange header names.
+
+As a consequence, the generated Endpoint DSL header accessors on
+`Web3jHeaderNameBuilder` have been renamed accordingly:
+
+* `iD()` -> `web3jId()`
+* `atBlock()` -> `web3jAtBlock()`
+* `aDDRESS()` -> `web3jAddress()`
+* `aDDRESSES()` -> `web3jAddresses()`
+* `fromAddress()` -> `web3jFromAddress()`
+* `toAddress()` -> `web3jToAddress()`
+* `pOSITION()` -> `web3jPosition()`
+* `blockHash()` -> `web3jBlockHash()`
+* `transactionHash()` -> `web3jTransactionHash()`
+* `sha3HashOfDataToSign()` -> `web3jSha3HashOfDataToSign()`
+* `signedTransactionData()` -> `web3jSignedTransactionData()`
+* `fullTransactionObjects()` -> `web3jFullTransactionObjects()`
+* `iNDEX()` -> `web3jIndex()`
+* `sourceCode()` -> `web3jSourceCode()`
+* `filterId()` -> `web3jFilterId()`
+* `databaseName()` -> `web3jDatabaseName()`
+* `keyName()` -> `web3jKeyName()`
+* `nONCE()` -> `web3jNonce()`
+* `headerPowHash()` -> `web3jHeaderPowHash()`
+* `mixDigest()` -> `web3jMixDigest()`
+* `clientId()` -> `web3jClientId()`
+* `gasPrice()` -> `web3jGasPrice()`
+* `gasLimit()` -> `web3jGasLimit()`
+* `vALUE()` -> `web3jValue()`
+* `dATA()` -> `web3jData()`
+* `fromBlock()` -> `web3jFromBlock()`
+* `toBlock()` -> `web3jToBlock()`
+* `tOPICS()` -> `web3jTopics()`
+* `pRIORITY()` -> `web3jPriority()`
+* `tTL()` -> `web3jTtl()`
+* `privateFor()` -> `web3jPrivateFor()`
+* `privateFrom()` -> `web3jPrivateFrom()`
+* `errorCode()` -> `web3jErrorCode()`
+* `errorData()` -> `web3jErrorData()`
+* `errorMessage()` -> `web3jErrorMessage()`
+* `status()` -> `web3jStatus()`
+* `operation()` -> `web3jHeaderOperation()`
+* `ethHashrate()` -> `web3jEthHashrate()`
+
+A new accessor `web3jOperation()` is also generated for 
`Web3jConstants.OPERATION`
+(the producer dispatch header). This constant did not appear in the catalog
+previously, so no DSL accessor renaming applies to it.
+
+=== camel-milo - potential breaking change
+
+The `MiloConstants.HEADER_AWAIT` constant, which controls whether milo-client
+writes are awaited, used the header value `await` — outside the `Camel`
+namespace and therefore not filtered by the default `HeaderFilterStrategy`. It
+has been renamed to follow the Camel naming convention. The Java field name is
+unchanged; only the header string value has changed:
+
+[options="header"]
+|===
+| Constant | Previous value | New value
+| `MiloConstants.HEADER_AWAIT` | `await` | `CamelMiloAwait`
+|===
+
+`MiloConstants.HEADER_NODE_IDS` was already `Camel`-prefixed
+(`CamelMiloNodeIds`) and is unchanged.
+
+Routes that reference the constant symbolically (for example
+`setHeader(MiloConstants.HEADER_AWAIT, ...)`) continue to work without changes.
+Routes that set the header by its literal string value (for example
+`setHeader("await", ...)`) must be updated to use the new value
+(`setHeader("CamelMiloAwait", ...)`).
+
+As a consequence, the generated Endpoint DSL header accessor `await()` on
+`MiloClientHeaderNameBuilder` has been renamed to `miloAwait()`.
+
 === camel-mongodb-gridfs
 
 The Exchange header values exposed by `GridFsConstants` have been renamed to 
follow the standard

Reply via email to