Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jakarta - EE 10 - Support JAX-RS 3.1.0 in RESTEasy Reactive #27570

Closed
gsmet opened this issue Aug 29, 2022 · 8 comments · Fixed by #27732
Closed

Jakarta - EE 10 - Support JAX-RS 3.1.0 in RESTEasy Reactive #27570

gsmet opened this issue Aug 29, 2022 · 8 comments · Fixed by #27732

Comments

@gsmet
Copy link
Member

gsmet commented Aug 29, 2022

JAX-RS 3.1.0 introduces some new methods and classes and we will need to implement them in RESTEasy Reactive.

How to reproduce:

  • get the jakarta-rewrite branch from the upstream repository (this branch is already transformed to Jakarta) - it is rewritten daily (but these parts are not moving parts so it shouldn't be a problem)
  • mvn -Dquickly
  • cd independent-projects/resteasy-reactive
  • change jakarta.ws.rs-api.version to 3.1.0 in pom.xml
  • mvn clean install

First failure will be:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project resteasy-reactive-common: Compilation failure
[ERROR] /data/home/gsmet/git/quarkus-jakarta/independent-projects/resteasy-reactive/common/runtime/src/main/java/org/jboss/resteasy/reactive/common/jaxrs/RuntimeDelegateImpl.java:[30,8] org.jboss.resteasy.reactive.common.jaxrs.RuntimeDelegateImpl is not abstract and does not override abstract method createEntityPartBuilder(java.lang.String) in jakarta.ws.rs.ext.RuntimeDelegate
[ERROR]

Once this is done, I know there is another one related to the bootstrap and I think that's pretty much it - but I wasn't able to experiment fully.

Note: the tree won't function fully if you fix that because RESTEasy Classic is pointing to the EE 9 version for now but the idea is to have a compilable RESTEasy Reactive in independent-projects so that I can upgrade RESTEasy Classic and JAX-RS in the main bom (I will handle that part).

I think the easiest way to work on that would be to create a branch in one's fork and push a commit on top of the jakarta-rewrite branch.

Then I would get it and apply it on top of the transformation each night. And we would have an error if the patch doesn't apply cleanly but I don't think these areas change a lot. (I will handle that part)

These methods/classes have already been implemented in RESTEasy Classic 6.1.0.Final so that could be a source of inspiration.

Ideally, the jakarta.ws.rs-api.version upgrade will be done in a separate first commit as I think I will rely on OpenRewrite to change the version so that everything is centralized.

/cc @geoand

@quarkus-bot
Copy link

quarkus-bot bot commented Aug 29, 2022

/cc @FroMage, @geoand, @stuartwdouglas

@geoand
Copy link
Contributor

geoand commented Aug 30, 2022

Thanks for the thorough description of the current state @gsmet.

I'll have a look soon

@geoand geoand self-assigned this Sep 1, 2022
@gsmet
Copy link
Member Author

gsmet commented Sep 1, 2022

Best is to do the same as for CDI: let's make the outcome a branch named jakarta-10-jaxrs in the main repo with:

  • one commit to upgrade the JAX-RS version in independent-projects/resteasy-reactive (I won't take that one as I will include the pom upgrades in OpenRewrite)
  • one commit that actually adjust the APIs, I will apply this one on top of the other changes

My guess is that you only need to care about getting independent-projects/resteasy-reactive to compile and for the tests to run there, no real need to go further. For the rest, I will adjust the RESTEasy Classic version too, push to CI and we will see how things go.

@geoand
Copy link
Contributor

geoand commented Sep 1, 2022

Sounds good! I might do this tomorrow

@geoand
Copy link
Contributor

geoand commented Sep 1, 2022

@gsmet pushed to jakarta-10-jaxrs on the main repo

@geoand
Copy link
Contributor

geoand commented Sep 2, 2022

Should I close this or do we keep it open?

@gsmet
Copy link
Member Author

gsmet commented Sep 2, 2022

I will close it when I incorporate the commit into the Jakarta work. Probably on Monday.

@geoand
Copy link
Contributor

geoand commented Sep 2, 2022

🆗

gsmet added a commit to gsmet/quarkus that referenced this issue Sep 5, 2022
@quarkus-bot quarkus-bot bot added this to the 2.13 - main milestone Sep 5, 2022
evanchooly pushed a commit to nenros/quarkus that referenced this issue Sep 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants