Hey Thomas,
Yeah, that is the branch I'm using to PoC some ideas.
The approach I'm using there is still under testing due to the fact that I'm leveraging a specific behavior of Quarkus classloading to make it possible to reload classes after re-augmentation. All that within the same JVM.
In regards to your suggestions:
* I think the message when automatic re-augmentation is pretty much aligned with your proposal.
* Whenever a static property changes the re-augmentation will happen
One of the limitations there is the fact that it does not consider deployment of providers.
One of the main cons of this first approach is the fact that we are using an unsupported API and behavior from Quarkus. As you know, Quarkus favors immutability and what I'm doing there is somewhat breaking this aspect even though there is an API that does exactly what we need. I had a chat with the Quarkus team about it and the behavior I want is not really supported and subject to break as I'm using some internal constructs (they are public but not supposed to be used by regular applications).
I really like the approach from that PR and I don't think it breaks immutability due to the fact that it exists only to improve developer and getting started experience. For production, you would always rely on running the `config` command prior to starting the server or creating container images.
There are other approaches we could consider, but they rely on updating `kc.sh`. IMO, the main drawback of using scripts is that we would need to run two JVMs (one for checking/running re-augmentation and another for starting the server). And that could affect our time to start. Plus the fact that we need to support scripts for linux and windows.
Perhaps we could only run automatic re-aug when starting in dev mode so that this behavior is specific for developing and testing the server. I don't know. This should at least pass a message like:
* Do whatever you want in dev mode, but don't complain about start-up time and footprint. Do not use it for benchmarking.
* Consider using the config command for optimized images and deploying the server into production.
Regards.
Pedro Igor