RESTEasy 6.2.9.Final and 7.0.0.Alpha2 Releases
By James R. Perkins | May 21, 2024
Today we’d like to announce the release of RESTEasy 6.2.9.Final and RESTEasy 7.0.0.Alpha2.
Introduction of Channels
A notable enhancement is the introduction of WildFly Channels. The WildFly Channels project adds ability to create channels
defining component versions used to provision WildFly that can be maintained separately from WildFly’s feature packs.
This ability has been used for a while now in component testing and by provisioning projects like the
wildfly-maven-plugin
and Prospero. RESTEasy has now begun publishing
channel manifests as part of each release to make such use easier. To learn more about Prospero and WildFly Channels,
have a look at the following articles.
What you can gain from this is always using the latest version of RESTEasy with the latest version of WildFly if you using WildFly Provisioning. Note that in the examples below no version is defined. However, you can specify the versions if desired for the channel and/or the feature pack. The suggestion would be to use a known version of WildFly with an unspecified version of RESTEasy to always get the latest version.
The new channels are available for both 6.2.9.Final and 7.0.0.Alpha2. Below is an example of using the channel with the
wildfly-maven-plugin
.
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<executions>
<execution>
<id>server-provisioning</id>
<phase>generate-test-resources</phase>
<goals>
<goal>provision</goal>
</goals>
<configuration>
<feature-packs>
<feature-pack>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-ee-galleon-pack</artifactId>
</feature-pack>
</feature-packs>
<channels>
<channel>
<manifest>
<groupId>org.wildfly.channels</groupId>
<artifactId>wildfly-ee</artifactId>
</manifest>
</channel>
<channel>
<manifest>
<groupId>dev.resteasy.channels</groupId>
<artifactId>resteasy-6.2</artifactId>
</manifest>
</channel>
</channels>
</configuration>
</execution>
</executions>
</plugin>
With the above, the latest version of WildFly and RESTEasy 6.2 will be used. If you’d like to experiment with RESTEasy 7.0 and Jakarta REST 4.0 use the following:
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<executions>
<execution>
<id>server-provisioning</id>
<phase>generate-test-resources</phase>
<goals>
<goal>provision</goal>
</goals>
<configuration>
<feature-packs>
<feature-pack>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-preview-galleon-pack</artifactId>
</feature-pack>
</feature-packs>
<channels>
<channel>
<manifest>
<groupId>org.wildfly.channels</groupId>
<artifactId>wildfly-preview</artifactId>
</manifest>
</channel>
<channel>
<manifest>
<groupId>dev.resteasy.channels</groupId>
<artifactId>resteasy-7.0</artifactId>
</manifest>
</channel>
</channels>
</configuration>
</execution>
</executions>
</plugin>
NOTE: For Jakarta EE 11/Jakarta REST 4.0 you should use WildFly Preview.
As you can see in the examples above the artifactId
is resteasy-${version}
. This is what is referred to as a
release stream and any new dependencies within this release stream should be backward compatible.
7.0.0.Alpha2
We are very excited about the release of RESTEasy 7.0.0.Alpha2. This is the first announced released of RESTEasy that is Jakarta RESTful Web Services 4.0 compliant. RESTEasy was a ratifying implementation of this specification. We are currently only in an alpha phase to ensure no other changes will need to be made for Jakarta EE 11.
Jakarta RESTful Web Services 4.0
While in general there is not much to say about Jakarta RESTful Web Services 4.0, there are a few changes worth mentioning.
The first is Java SE 17 or higher will be required. RESTEasy currently tests with Java SE 17 and Java SE 21 and is passing the Jakarta RESTful Web Services TCK on both Java SE versions. We do suggest using Java SE 21 as it is the latest LTS release, but if needed Java SE 17 will work as well.
For details more details on the specification, please see the specification documentation.
New features, enhancements or additions
- Convenience method for checking header value lists
- Add
getMatchedResourceTemplate
method toUriInfo
- Add JSON Merge Patch was added to the
MediaType
constants.
Removals, deprecations or backwards incompatible changes
Perhaps more important than the enhancements, is the removal of the follow two items.
- The JAXB dependency was removed from the specification as was the
jakarta.ws.rs.core.Link.JaxbLink
andjakarta.ws.rs.core.Link.JaxbAdapter
. - Removed support for
@ManagedBean
in the specification. This did not remove anything from RESTEasy. The Jakarta EE 11 Platform has removed support for the managed beans in favor of CDI. This will likely not affect many users, but is worth mentioning.
Bugs and Enhancements
The same bugs and enhancements listed below for 6.2.9.Final are included in 7.0.0.Alpha2. There were no more enhancements or bug fixes in the unannounced 7.0.0.Alpha1 that were not in 6.2.x as well.
6.2.9.Final
This is primarily a bug fix release. One exception, other than the channel mentioned above, worth noting is RESTEASY-3496 which was a feature that was missed being ported from RESTEasy 3.x.
Bugs:
- RESTEASY=2952: SSE processing should trigger onUnrecoverableError when an incorrect RetryAfter value is used.
- RESTEASY-3484: The new EntityPartFilter doesn’t account for parameters from super types or interfaces
- RESTEASY-3486: The DefaultConfiguration implementation does not always check all configuration options
- RESTEASY-3498: For the SseEventSource.register() ensure the onComplete runnables are only ran when expected
- RESTEASY-3501: The SynchronousDispatcher may send an empty response if a MessageBodyWriter for the exception cannot be found
Enhancements:
- RESTEASY-3490: Allow default methods to be invoked for proxy clients
Documentation
We have migrated the old Docbook documentation to asciidoc for both 6.2.9.Final and 7.0.0.Alpha2. If you notice any issues please feel free to reach out and let us know. We plan to continue further updating documentation to better help our community.
Finally
As always, feedback is welcome. Stay safe, and, depending on where you are, stay warm or be cool.
Useful Links
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