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


Reply via email to