Andrea Cosentino created CAMEL-24414:
----------------------------------------
Summary: camel-core - resolve dynamic-URI property placeholders at
build time for recipientList, routingSlip, dynamicRouter and pollEnrich
Key: CAMEL-24414
URL: https://issues.apache.org/jira/browse/CAMEL-24414
Project: Camel
Issue Type: Improvement
Components: camel-core
Reporter: Andrea Cosentino
Assignee: Andrea Cosentino
Fix For: 4.23.0
CAMEL-24282 changed toD and enrich so that {{...}} property placeholders are
resolved once at build time instead of being re-expanded per message on the
evaluated recipient, matching the documented contract that placeholder
resolution operates on route and configuration text. That change explicitly
left the other dynamic-URI EIPs alone - its commit message states
"recipientList/routingSlip/dynamicRouter/pollEnrich are unchanged".
Those EIPs still call ProcessorHelper.prepareRecipient():
* RecipientListProcessor.java:260
* RoutingSlip.java:265 (synchronous path) and RoutingSlip.java:469
(asynchronous continuation path - both need the change)
* PollEnricher.java:305
ProcessorHelper.prepareRecipient() ends in
ecc.getCamelContextExtension().normalizeUri(uri), and
DefaultCamelContextExtension.normalizeUri() calls
EndpointHelper.resolveEndpointUriPropertyPlaceholders() - so a {{...}} token
that only appears in the per-message recipient value is still expanded.
SendDynamicProcessor already carries its own overridden prepareRecipient() with
the build-time behaviour (the CAMEL-24282 fix). This issue is to give the
remaining four EIPs the same treatment so the whole dynamic-URI family behaves
consistently.
Note the allowedSchemes allow-list added in CAMEL-24298 is opt-in and
orthogonal - it constrains the scheme, not placeholder expansion.
Behaviour change, so main only, with an upgrade-guide entry mirroring the
CAMEL-24282 one.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)