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

davsclaus pushed a commit to branch var-headers
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ae180c6195ba97739d0248b8dc425b1f25ebf817
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Jan 31 06:20:30 2024 +0100

    CAMEL-19749: variables - Should also copy message headers into variable 
when using EIP variables
---
 docs/user-manual/modules/ROOT/pages/variables.adoc | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/variables.adoc 
b/docs/user-manual/modules/ROOT/pages/variables.adoc
index c277a9b37ec..e392cd26fcc 100644
--- a/docs/user-manual/modules/ROOT/pages/variables.adoc
+++ b/docs/user-manual/modules/ROOT/pages/variables.adoc
@@ -190,7 +190,7 @@ or with the xref:components:eips:claimCheck-eip.adoc[Claim 
Check] EIP.
 
 === Important concept when using variables and EIPs
 
-It is **important** to understand that the variables focuses the use of the 
message **body** only, and makes using **headers** optional.
+It is **important** to understand that the variables focuses the use of the 
message **body** only.
 This is on purpose to keep it simpler and primary work with the message body 
as the user data.
 
 The following table summarises what the EIP supports with variables:
@@ -210,7 +210,23 @@ The following table summarises what the EIP supports with 
variables:
 The EIPs listed above have support for using variables when sending and 
receiving data. This is done by using the `variableSend` and `variableReceive` 
options
 to specify the name of the variable.
 
-When the EIP is using variables, then the `Message` on the `Exchange` is not 
in use, but the body and headers will be from the variable.
+The EIPs works in two modes where *variableSend* and *variableReceive* is a 
little bit different, so pay attention to the following table:
+
+|===
+| *VariableSend*       | *VariableReceive*
+| *Headers:* Message   | *Headers:* Variable
+| *Body:* Variable     | *Body:* Variable
+|===
+
+The *VariableSend* is intended for sending as regular Camel where the headers 
are from the current `Message` and the body is
+the variable. In other words it's only the message body that is taken from the 
variable instead of the current `Message` body.
+
+The *VariableReceive* works in a different mode. The idea is that all the 
received data is stored as variables. This means the current `Message`
+is not changed at all. The body is stored in the variable, and the received 
headers (transport headers etc.) are stored as read-only
+headers as variables as well. The names of the variable is 
`header:variableName.headerName`. For example if the variable is `myVar` and 
the header is `Content-Type`
+then the header is stored as `header:myVar.Content-Type`.
+
+When the EIP is using *VariableReceive*, then the `Message` on the `Exchange` 
is not in use, but the body and headers will be from the variable.
 For example given the following `Message` containing:
 
 [source,properties]

Reply via email to