You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by CASAUX Nicolas <ni...@soprasteria.com> on 2020/11/05 01:17:35 UTC
enricher and dynamic endpoint
Hello,
I found something which seems unexpected with the enrich processor and Camel 3.6.0.
If you consider those 2 routes:
from(timer("foo"))
.setBody(constant("1"))
.enrich("seda://test-${body}");
from(timer("bar"))
.setBody(constant("2"))
.enrich(seda("test-${body}"));
In the log, it says:
[mel-1) thread #6 - timer://bar] SedaEndpoint INFO Endpoint seda://test-2 is using shared queue: seda://test-2 with size: 1000
[mel-1) thread #5 - timer://foo] SedaEndpoint INFO Endpoint seda://test-$%7Bbody%7D is using shared queue: seda://test-$%7Bbody%7D with size: 1000
So the route using the enrich with "EndpointRouteBuilder style" seems to consider the endpoint URI as a "simple" expression (and resolves it), and the other one like a "constant" expression (which is what I expected). In the first case, it means that the endpoint is resolved for every exchange processed.
It's possible to "force" the constant expression using this though:
from(timer("biz"))
.setBody(constant("3"))
.enrich().constant(seda("test-${body}"));
Is that something which is expected?
Thanks!
Regards,
Nicolas
Re: enricher and dynamic endpoint
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
Ah yeah we need to add special support for this. Can you create a JIRA ticket
On Thu, Nov 5, 2020 at 2:17 AM CASAUX Nicolas
<ni...@soprasteria.com> wrote:
>
> Hello,
>
> I found something which seems unexpected with the enrich processor and Camel 3.6.0.
>
> If you consider those 2 routes:
>
> from(timer("foo"))
> .setBody(constant("1"))
> .enrich("seda://test-${body}");
>
> from(timer("bar"))
> .setBody(constant("2"))
> .enrich(seda("test-${body}"));
>
> In the log, it says:
>
> [mel-1) thread #6 - timer://bar] SedaEndpoint INFO Endpoint seda://test-2 is using shared queue: seda://test-2 with size: 1000
> [mel-1) thread #5 - timer://foo] SedaEndpoint INFO Endpoint seda://test-$%7Bbody%7D is using shared queue: seda://test-$%7Bbody%7D with size: 1000
>
> So the route using the enrich with "EndpointRouteBuilder style" seems to consider the endpoint URI as a "simple" expression (and resolves it), and the other one like a "constant" expression (which is what I expected). In the first case, it means that the endpoint is resolved for every exchange processed.
>
> It's possible to "force" the constant expression using this though:
>
> from(timer("biz"))
> .setBody(constant("3"))
> .enrich().constant(seda("test-${body}"));
>
> Is that something which is expected?
>
> Thanks!
>
> Regards,
> Nicolas
>
>
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2