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]

Reply via email to