Croway commented on PR #26309: URL: https://github.com/apache/camel/pull/26309#issuecomment-5632408582
Follow-up noted while reviewing this PR: with the `camel` facade, camel-quickjs becomes the only language that exposes the exchange through a named, whitelisted set of operations. The others use one of two models: live Java objects with no boundary (groovy, mvel, ognl, jexl, jOOR, camel-javascript) or data-only bindings with an all-or-nothing switch to live objects (`createWithHostAccess()` in camel-jactl and camel-python3). There is also no shared definition of the binding names: `header`/`headers`, `exchangeProperty`/`properties`, `variable`/`variables`, `request`/`in`/`message` vary per language, and `ExchangeHelper.populateVariableMap` is used by groovy and thymeleaf only. A shared definition would be a good separate change: one place in camel-support that lists the binding names and the facade operations (`getBody/setBody`, `get/set/removeHeader`, `get/set/removeProperty`, `get/set/removeVariable`, `log`) so that jactl and python3 can offer mutation without trusted mode, and the docs of every scripting language can point to the same table. CAMEL-24467 already covers the bindings side; the facade side can join it or get its own ticket. _Claude Code on behalf of Croway_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
