Hi Santiago,
This is very nice! I really like the integration with CDI and being able to reduce redundant code (like @Suspended AsyncResponse, removing @Context for Sse, etc.). I also like the idea of supporting 0 or >1 Application subclasses.
The injection of @*Param into constructors will only work with @RequestScoped resources (especially in cases like slide 4 where the param is a String - which is final, so cannot be proxied), so we will need some language (and probably test cases) that prevent that with @ApplicationScoped resources.
In general, I'm +1 for supporting the Flow APIs for SSEs. We did something similar for MP Rest Client (using Reactive Streams since we had to support Java 8). I think this will simplify the process of sending asynchronous events.
Some other thoughts for 4.0 (mostly half-baked at best...):
* Is there anything we can do with HTTP/2?
* Pull in the MP Rest Client?
* Utilize Jakarta Config for runtime properties? Perhaps make Jakarta Config properties available in Application#getProperties()?
Our roadmap page[1] also mentions a 3.2 release. Are we still thinking of doing that? I think I'd prefer to skip 3.2 and go straight to 4.0 after we complete 3.1.
Thanks for putting this together!
Andy