Update the server to use RESTEasy Reactive
See original GitHub issueDescription
Accordingly, to @geoand, applications using quarkus-resteasy-reactive
should still benefit from a better startup time, runtime performance, and memory footprint, even though not using reactive style/semantics. Most importantly, applications using RESTEasy Classic should be able to move to quarkus-resteasy-reactive
without any changes to code if they are relying on JAX-RS API.
We should evaluate how much it would take to change the server to use quarkus-resteasy-reactive
.
Based on an initial investigation, we should be working on these tasks:
- Change dependencies to
quarkus-reactive-resteasy
and successfully build the distribution - Refactor JAX-RS (sub)resources
-
-
- Make it possible to manipulate the request and the response from the
KeycloakContext
or just leverage our Resteasy SPI.
- Make it possible to manipulate the request and the response from the
-
-
- Review injection points for JAX-RS contextual objects
-
-
- Remove
Realm
fields from endpoints and obtain it viaKeycloakContext
- Remove
-
-
-
- Make the
KeycloakContext
the single source of truth for any contextual data
- Make the
-
-
- Review JAX-RS sub-resources so that they don’t rely on context injection or change how they are created
-
- Make sure dynamic JAX-RS resources are working with Resteasy Reactive
- Make sure all tests are passing
- https://github.com/keycloak/keycloak/issues/15454
- #15389
- Create a SPI for JAX-RS Resources
- Remove adding JAX-RS resources from JAX-RS Application
- Making JAX-RS resources as providers would benefit from our features capabilities
- Making JAX-RS resources as providers would make it easier to extends ou SPI
- Making JAX-RS resources as providers would make unit test easier
- Abstract how we integrated with the underlying runtime when creating JAX-RS (sub)resources. For instance, resolve JAX-RS resources as CDI beans.
Discussion
No response
Motivation
Benefit from the improvements brought by quarkus-resteasy-reactive
and keep the server aligned with Quarkus goals.
Details
No response
Issue Analytics
- State:
- Created 2 years ago
- Reactions:4
- Comments:11 (11 by maintainers)
Top Results From Across the Web
Writing REST Services with RESTEasy Reactive - Quarkus
RESTEasy Reactive is a new JAX-RS implementation written from the ground up to work on our common Vert.x layer and is thus fully...
Read more >Chapter 27. JAX-RS 2.1 Additions - JBoss.org
JAX-RS 2.1 adds more asynchronous processing support in both the Client and the Server API. The specification adds a Reactive programming style to...
Read more >RestEasyReactive http response returns caught exception
I have a simple quarkus reactive resteasy server
Read more >RESTEasy Reactive in Quarkus - YouTube
RESTEasy Reactive in Quarkus by Georgios Andrianakis. ... Quarkus Insights #8: Mutiny - the reactive library. Quarkusio. Quarkusio.
Read more >Developing Web Services Applications Red Hat JBoss ...
For instance, a thread that issued a request may also update a user ... Extending RESTEasy Support for Asynchronous Request Processing and Reactive...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I have a question regarding the
@Context
annotation. We currently use it in custom resource implementation, for injecting JAX-RSRequest
orHttpHeaders
via method parameters.For example:
Will this still be supported in the future?
@vmuzikar @danielFesenmeyer It should be lot simpler now as you already have access to the
KeycloakSession
. See https://github.com/keycloak/keycloak-documentation/pull/1721/files#diff-274488d8bdebf79497daf95b0b287e9e720c816f2d52e2cda9a0255b03639936.The changes above are still a WIP and are subject to change. For instance, you should get those instances like this https://github.com/keycloak/keycloak/pull/15659.