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