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]

Reply via email to