Claus Ibsen created CAMEL-26632:
-----------------------------------
Summary: camel-jbang - AI tools and messages: resource: in a
ternary, a header copied to itself, a condition under otherwise:,
variableReceive under parameters:, a Groovy class without its import, and text
after a Simple function
Key: CAMEL-26632
URL: https://issues.apache.org/jira/browse/CAMEL-26632
Project: Camel
Issue Type: Improvement
Components: camel-jbang, camel-yaml-dsl, camel-groovy,
camel-jbang-mcp, camel-core
Reporter: Claus Ibsen
Fix For: 4.24.0
Follow-ups from the r27 run of the local-model benchmark (qwen3.6, 7 rounds):
* The Simple ternary hint built its suggestion from the model's text and kept a
quoted 'resource:file:order.json' inside the function. A function's result is
never loaded as a resource, so the body became the text
resource:file:order.json. The hint now writes resource:file: before the
function, and a resource: that a function gives is refused at write time (it
was accepted 5 times in r25 to r27 and failed every time when the route ran).
* A header copied to itself that no step sets (setHeader sku with ${header.sku}
in a split) copies null: the HTTP call then had no SKU (98 errors). It is now
reported at write time, with what to read instead (${body[sku]}).
* otherwise: written as a list that holds a second condition got a repair and
the note "The YAML shape needs no change from you", while the block still had
errors; the model sent the same edit 16 times. The schema hint now says that a
second condition is another item of when: and that otherwise: holds only
steps:, and the note is not given while the repaired lines still have errors.
* variableReceive (or pattern) under parameters: of a to: got "jms: Unknown
option 'variableReceive'". The message now says that it is a key of the to:,
next to uri:.
* camel-groovy: a class that is on the classpath but not imported (new
JsonSlurper() without import groovy.json.JsonSlurper) got "it is not on the
classpath. Add the library that provides it as a dependency". It now says which
import to add. A class that is really missing keeps the old message.
* camel-core: Simple text after the closing brace of a function
(${body.lines}.size() > 0) got "operators and values must be separated by a
space". The parser hint now says that the method goes inside the braces:
${body.lines.size()}. At write time, a filter written right after a function
(${body}?.?[...]) and an unknown function with a nested one (${size:${body}},
which only failed when the route ran) are now caught.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)