This is about:
- Improving Resteasy boot time by reducing copying within ResteasyProviderFactoryImpl, Client/ServerHelper, and MediaTypeMap: a ton of copy-on-write structures and patterns are used. Even with improvements last summer (
RESTEASY-2302), WebTargets still do a ton of copying of their underlying ResteasyProviderFactories. Code has to be changed so that at boot time copy-on-write is turned off and after boot is complete, a flag is set to turn ON copy-on-write.
- Next big change is needed for Quarkus on boot. New fine-grain registration methods to ResteasyProviderFactoryImpl are needed to allow Quarkus to do a lot of boot processing at build time.
- Finally, in the current codebase, if there is no async injection, a huge CompletionStage chain is created that encompasses: resource object construction, property injection, method argument injection, and method invocation. The huge CompletionStage stack that is created for each HTTP invocation has to be unwound.