You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2024/01/19 09:24:00 UTC

[jira] [Comment Edited] (CAMEL-19749) camel-core - Allow users to use variables in route to store data instead of headers

    [ https://issues.apache.org/jira/browse/CAMEL-19749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17808317#comment-17808317 ] 

Claus Ibsen edited comment on CAMEL-19749 at 1/19/24 9:23 AM:
--------------------------------------------------------------

TODO: get variable should auto reset stream cached so its easy to use *DONE*


was (Author: davsclaus):
TODO: get variable should auto reset stream cached so its easy to use

> camel-core - Allow users to use variables in route to store data instead of headers
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-19749
>                 URL: https://issues.apache.org/jira/browse/CAMEL-19749
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-core, eip
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 4.4.0
>
>
> Users that need to do message transformation in Camel routes may find themselves having to store data in headers / claim-check / exchange properties from multiple sources before they have all data needed to build a response message.
> Today users are doing this in different ways.
> However we may want to introduce variables that users can name and store the data, then they can do this more intuitive, like they would do in a programming language.
> {code}
> from(kafka("topic1").setVar("customer"))
>    .to("sql:get-order-by-cust?id=${var.customer.id}").setVar("order")
>     .transform().simple( ' Thank you ${var.customer.name} for ordering ${var.order.item}'))
> {code}
> Then you have 2 variables
> - customer
> - order
> Then the variable customer can be used anywhere in Camel like it was a header with ${header.xxx} but with ${var.customer} in the simple language etc.
> This proposal needs some more though and design/prototype.
> But this should be done in a way that does not affect regular Camel DSL as it is, but with variables then results during routing that usually will be override current message body / headers, are stored in variables, that the user assign a name and therefore better can understand what the data the variable contains are.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)