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 to UriInfo
  • 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 and jakarta.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.

         

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