davsclaus opened a new issue, #9459:
URL: https://github.com/apache/camel-quarkus/issues/9459

   ### Describe the feature here
   
   Camel 4.24 adds the new `camel-chaos` module (CAMEL-26330, [chaos 
page](https://github.com/apache/camel/blob/main/components/camel-chaos/src/main/docs/chaos.adoc)).
 It is a development tool that turns on faults in a running Camel application, 
live, and reports how the routes cope. The faults are errors, delays, drops, 
duplicates and corrupted messages, on endpoints, routes and EIPs. The rules can 
be added and removed while the app runs, via `camel cmd chaos-*` and the TUI 
over the CLI connector, or loaded from a scenario file.
   
   A matching `camel-quarkus-chaos` extension would make it available to Camel 
Quarkus users. It can be JVM-only at first: chaos is for development, and it 
never switches on with profile `prod`.
   
   What the module ships and needs:
   - **The plugin.** `ChaosContextServicePlugin` is a `ContextServicePlugin`, 
registered in `META-INF/services/org.apache.camel.spi.ContextServicePlugin` and 
found with `ServiceLoader` by `DefaultContextServiceLoaderPlugin`. In native 
mode that class has a substitution 
(`DefaultContextServiceLoaderPluginSubstitutions`), so native support would 
need the plugin registered at build time.
   - **The dev console.** The `chaos` dev console is found from 
`META-INF/services/org/apache/camel/dev-console/chaos`. The CLI connector 
resolves it by id for `camel get chaos`.
   - **Switching on.** Chaos is on with Camel profile `dev` or 
`camel.chaos.enabled=true`, and never with `prod`. Camel Quarkus already sets 
profile `dev` under `quarkus:dev` 
(`CamelMainRecorder.customizeDevModeCamelMain`), so dev mode should switch it 
on with no extra configuration.
   - **Configuration.** The options are read from the properties component: 
`camel.chaos.enabled`, `rules`, `scenario`, `reportFile`, `seed` and 
`maxDuration`. They are camel-main options (`ChaosConfigurationProperties`). 
`camel.chaos.rules` and `camel.chaos.scenario` are marked `insecure:dev`. A 
scenario can be a `classpath:` resource, which native mode would need to 
include.
   
   On the Camel side, `camel run --chaos` works with the JBang, Camel Main and 
Spring Boot runtimes. With `--runtime=quarkus` it is refused for now 
(CAMEL-26479, https://github.com/apache/camel/pull/29411). The export would put 
`camel-chaos` 4.24 next to the older `camel-core` of the current Camel Quarkus 
release. Once Camel Quarkus is on Camel 4.24 and has this extension, `camel run 
--runtime=quarkus --chaos` can add it to the exported project, the same way as 
Spring Boot.
   
   _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