Claus Ibsen created CAMEL-25336:
-----------------------------------

             Summary: camel-yaml-dsl-validator - report ${...} in a constant, 
which is used as written and never evaluated
                 Key: CAMEL-25336
                 URL: https://issues.apache.org/jira/browse/CAMEL-25336
             Project: Camel
          Issue Type: Improvement
          Components: camel-yaml-dsl
            Reporter: Claus Ibsen
             Fix For: 4.23.0


A constant is used as written, so a simple function inside it is not evaluated:

{code:yaml}
- setBody:
    expression:
      constant: '{"error": "unknown sku ${header.sku}"}'
{code}

answers the literal text {{unknown sku $\{header.sku\}}}. The route runs and 
nothing reports it. In the local-model benchmark this was written 20 times 
across the contracts-openapi-server, contracts-openapi-client and 
connect-stock-api rungs ({{$\{header.sku\}}}, 
{{$\{exchangeProperty.orderId\}}}, {{$\{body[qty]\}}}).

Proposal: the YAML validator reports a simple function in a constant and shows 
the simple form:

{noformat}Line 10: constant: ${header.sku} is not evaluated, a constant is used 
as written: use simple: {expression: "{'error': 'unknown sku ${header.sku}'}"} 
for a value with expressions{noformat}

Not reported: a constant set to a template header (CamelVelocityTemplate, 
CamelThymeleafTemplate, ...), whose $\{...\} the template engine evaluates; 
{{$\{HOME\}}}-style text; property placeholders; resource: constants.

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to