davsclaus commented on PR #29554:
URL: https://github.com/apache/camel/pull/29554#issuecomment-6780185299
Thanks for the review. All nine findings are addressed in 21ee43036c91:
- **F1 `receiver` in the vocabulary table:** it is now a sub-condition of
`sends` in the conditions table, linked to its field table.
- **F2 and F5, the placeholders:** the open-ended list is now a table of
every placeholder and what it expands to: `${route}`, `${input}`,
`${input.scheme}`, `${input.keptBy}`, `${input.keptByOption}`, `${input.doc}`,
`${send}`, `${send.scheme}`, `${send.option}`, `${send.doc}`, `${deadLetter}`,
`${receiver}`.
- `${send.option}` is the `name=value` of the option that decided the fact
of the send: the `byOption` that matched, or the option of the `option`
sub-condition.
- The same placeholders work in `impact`, `choices`, `outcome` and
`seeAlso`.
- A placeholder of a condition the rule does not have is a validation
error.
- **F3 `deadLetter.canFail` across routes:** the conditions intro now names
the two conditions that follow a send into the route it reaches,
`deadLetter.canFail` and `receiver`. The cost is a lookup of the consuming
route, since the routes are already read. From there it follows `direct` only,
and stops at a route it has seen.
- **F4, several rules with the same outcome:** all rules that match are
given, in order. For a chaos experiment, the rule whose `tryChaos` ran comes
first; then group order and `rank`. With more than one, the explanation says it
is one of these.
- **F6, transient or permanent errors:** HTTP statuses and the common JDK
and Camel exceptions go in an `errors` table of the rule file. A component's
own exceptions go on a new `errors` side of `@Facts` (`@Fact.Error`), which the
plugin writes and checks. The lookup walks the exception, its causes and their
superclasses, the most specific class first. An exception that is not
classified is said to be so, not guessed.
- **F7, the `choices` schema:** at least two objects, each with `text`
(required, with the rule's placeholders) and an optional `seeAlso`, and no
other field. The Validation section checks this, as well as the `errors`
entries.
- **F8 `getComponentParameterJsonSchema`:** a Compatibility entry says that
no API change is needed. This method and the EIP, data format and language
variants return the JAR's JSON file as it is, so the `facts` section comes with
it, and camel-chaos parses it as `ChaosStubs` does today.
- **F9, version skew:** added to Risks. The tools read the catalog of the
project's Camel version where they can. The explanation of a failure uses the
facts the running integration reads from its JARs, and says which version it
used when the two differ.
_Claude Code on behalf of davsclaus_
--
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]