question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Update the server to use RESTEasy Reactive

See original GitHub issue

Description

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 sure dynamic JAX-RS resources are working with Resteasy Reactive
  • 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:open
  • Created 2 years ago
  • Reactions:4
  • Comments:11 (11 by maintainers)

github_iconTop GitHub Comments

2reactions
danielFesenmeyercommented, Nov 23, 2022

I have a question regarding the @Context annotation. We currently use it in custom resource implementation, for injecting JAX-RS Request or HttpHeaders via method parameters.

For example:

@Path("customResource")
public CustomDto customGet(@Context Request request, @Context HttpHeaders httpHeaders) {
    // do stuff with request and httpHeaders
    // ...
}

Will this still be supported in the future?

1reaction
pedroigorcommented, Nov 25, 2022

@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.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found