davsclaus opened a new pull request, #26640:
URL: https://github.com/apache/camel/pull/26640
## Description
Three findings of the stepwise half of the round-2 local-model benchmark
(ten camel-jbang-examples built step by step through the camel-jbang-mcp
server, five runs each). Together they were the cause of most systematic
failures of the series: the model wrote something the validator accepted, the
runtime rejected it on the reload, and the write tool had already said
"written".
**CAMEL-24857, a `${...}` placeholder where `{{...}}` is meant.** `period:
"${welcome.period}"`, `period: ${properties:welcome.period}` on an endpoint,
`start: ${order.first-number}` on a bean property: Simple syntax for a property
key. The endpoint checks and a new bean property check report it with the form
to write:
```
Line 6: timer: period=${welcome.period} is a Simple expression, which an
endpoint option is not evaluated as: a property placeholder is written {{key}},
so period: "{{welcome.period}}"
```
Only a property key in Simple syntax is reported (`${welcome.period}`,
`${properties:x}`): a value whose first segment is a Simple root (`${body.id}`,
`${header.x}`, `${date:...}`, `${exception.message}`) is a Simple expression
and is left alone, as is the uri of `toD`, `wireTap`, `enrich`, `pollEnrich`,
`recipientList`, `routingSlip` and `dynamicRouter`, which evaluate it as
Simple. Seven of eight failures of two steps in the series were this shape.
**CAMEL-24858, a required path option missing.** `uri: cron` with only a
schedule under parameters passed `camel validate`; `camel run` fails with
"Option name is required when creating endpoint uri with syntax cron:name", and
in dev mode the reload fails with a WARN. A `from:` or `to:` with a bare
scheme, no path and no `//`, whose component has a required path option that is
not among the parameters either, is reported with both places it can go. An
explicit empty authority (`infinispan://` with a custom listener) is a choice
and is left alone, as are the intercept patterns (`jms*`).
**CAMEL-24859, the reload outcome in the write tool.** When an integration
of the project is selected and runs in dev mode, `camel_write_file` remembers
the newest reload record before the write, waits up to eight seconds for a
newer one, and answers with it: `reload.status` reloaded, `properties`,
`failed` with the cause (the first lines, no stack frames) and the validator's
report the runtime logs next to a load failure (CAMEL-24851), or `unknown` when
nothing came. The message says "FAILED to reload the file, the route is not
running; fix the content and write again" for a failure. A write with no
selected integration answers as before.
Two documentation examples had the placeholder slip (mongodb,
mongodb-gridfs: `database=${mongodb.database}`) and one had a nameless direct
endpoint in all three forms (spring-cloud-config, `from("direct")`): fixed,
with their catalog copies. Upgrade guide note for the tool.
## Tests
- `SourceValidatorPlaceholderTest`: the endpoint option and bean property
cases with the form to write, the dynamic EIP and `{{...}}` left alone, the
missing `name` on cron reported and not reported when given in the uri or under
parameters.
- `ReloadOutcomeTest` on synthetic log records: the baseline before the
write, a failed reload with the cause and the validator's report and no stack
frames, a later successful reload.
- All 228 tests of the ai package of camel-jbang-core green, including the
documentation examples test that runs every YAML example of the docs through
the checks (which is how the three doc slips surfaced).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj
--
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]