RESTEasy Overview and Roadmap

By James R. Perkins | December 6, 2023

UPDATE 2024-02-19: Jakarta REST is in the process of possibly doing a Jakarta REST 3.2 version instead of a 4.0 version for Jakarta EE 11. What a 3.2 version would include is adding the @Deprecated annotation to the @Context and @Suspended annotations instead of simply removing them. We find this to be a good plan so users are aware of these changes and migration can be done in a more incremental approach.

The current plan for RESTEasy is to implement whichever version of the specification the Jakarta REST Specification Committee decides on. In all likelihood this will result in RESTEasy switch back to a requirement of Java SE 17 instead of Java SE 21.

Once further details are known, this post will be updated with the new plans.


As we look to 2024 I’d like to give an overview of the current RESTEasy Roadmap. Please note at this time there are not specific timeframes for some of these tasks. We are reliant on the Jakarta REST 4.0 going final before we can do any final releases.

Jakarta REST 4.0

The current target for Jakarta REST 4.0 is Q1 of 2024. Jakarta REST 4.0 will bring some significant and breaking changes to the API and implementation. The biggest change will be the removal of the @Context injection and jakarta.ws.rs.ext.ContextResolver. These were deprecated for removal in Jakarta REST 3.1. RESTEasy 7.0 will implement the Jakarta REST 4.0 specification.

Given Jakarta REST 4.0 will hava a minimum require of Java SE 21, the main branch has been changed to require Java SE 21.

While RESTEasy 6.2 has seen better integration with CDI, Jakarta REST 4.0 will require even deeper integration. Some of this is due to the @Context removal, but we like to have better CDI support in general.

Testing Changes

While it’s still a work in progress, we plan on migrating testing to use JUnit 5. This will not affect consumers of RESTEasy, but we feel this will bring RESTEasy testing forward.

As an ongoing task is we’d like to introduce some performance testing. Generally we rely on WildFly performance testing to know where RESTEasy stands. However, it would be good to be able to test RESTEasy, likely inside WildFly, on its own.

In RESTEASY-3386 we introduce some testing in Kubernetes. The current test is very basic and runs on the WildFly image. We would like to add more tests, including some for the SeBootstrap in Kubernetes.

New HTTP Client

We will be introducing a new default backing HTTP Client with http/2 support. The backing client will be the JDK HTTP Client. This will have some minor caveats. One will be support for the ClientBuilder.hostnameVerifier(). There is currently no support for setting a javax.net.ssl.HostnameVerifier in the HTTP Client.

Removal or Deprecations

Removing the JavaScript API for RESTEasy is being considered. This does not seem to be a popular dependency and is becoming out of date. A decision needs to be made to remove support for this or update the JavaScript used.

The org.jboss.resteasy:galleon-feature-pack is likely to be deprecated and removed. The replacement will be a WildFly Channel manifest. This makes maintaining modules in WildFly much easier.

Summary

Below are the highlights of the road map in no specific order:

         

YourKit
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor