Back at the end of July I mentioned that the team would have focussed on JSR-370... and here I am few months later, happy to announce that the first Beta release of RESTEasy 4 has been tagged over the weekend and it features JAX-RS 2.1 implementation.
However this beta comes with more additions... besides for the implementation of the latest specification for RESTful webservices in Java, here is a brief list of what's new:
Spring Boot is Spring "convention-over-configuration" solution for creating stand-alone, production-grade Spring-based Applications, usually contained in a single and executable jar. It is also an opinionated framework, allowing Spring platform and third-party libraries to be auto-configured, minimizing the need for boilerplate code.
One of the most important concepts in Spring Boot is the notion of "starter". According to Spring Boot reference guide, "starters are a set of convenient dependency descriptors that you can include in your application". Another way to see starters is as "the building blocks that leverage auto-configuration when extending your application with Spring or other third-party components".
Because of all features Spring Boot offers, it ends up being a very convenient platform to build Java microservices applications, especially considering that Spring Boot has also starters for embedded Servlet containers, such as Tomcat and Jetty.
RESTEasy and Spring Boot
When it comes to JAX-RS applications, Spring Boot applications can also be RESTEasy applications, and that is possible by using RESTEasy Spring Boot starter, which is an open source project initially developed by PayPal, and endorsed by RESTEasy team.
Using RESTEasy in a Spring Boot application
Using RESTEasy in a Spring Boot application is very simple, just follow the steps below.
Add dependency com.paypal.springboot:resteasy-spring-boot-starter to your Spring Boot application (it is recommended to use the latest version).
Optionally, register one or more JAX-RS Application classes. To do so, just define it as a Spring bean, and it will be automatically registered.
Finally, to register JAX-RS resources and providers, just define them as Spring beans, and they will be automatically registered.
Notice that JAX-RS resources can be singleton or request scoped, while JAX-RS providers must be singletons.
Yesterday we pushed a new couple of releases (3.1.2.Final and 3.0.22.Final) out of the door, so have a look at the release notes and try them :-)
The new versions are mainly bug fix ones. Something interesting is that we started testing against JDK 9. RESTEasy 3.1.2.Final contains some changes / fixes and workarounds to allow building the project with the current latest early access version of JDK 9. The testsuite is also mostly passing.
As usual, any feedback or issue... just let us know!
Here we are a couple of months later with the first bug fix release of RESTEasy 3.1.x series. Oh, well, the release actually includes a bunch of enhancements and component upgrades too, so be sure to check the release notes for details :-)
Those monitoring the website and/or the development on GithHub might have noticed that during the past weeks we've also continued merging fixes into the 3.0 branch. The result of that effort is in the 3.0.20.Final and 3.0.21.Final releases which are also available for users that still need some time before switching to 3.1. We are likely going on actively working on 3.0 for some more time, but we really encourage you to migrate to 3.1 as soon as possible.
Just in time before everybody goes and take some rest for Christmas... here we are with the long-awaited final release of our rest project ;-)
Seriously, RESTEasy 3.1.0.Final is out; we've gone through ~20 additional bug fixes and misc tasks on top of the latest candidate release, but finally it's available on the download page, on the Maven repository and together with current WildFly master.
Here is a brief high-level summary of what's coming in 3.1.0:
major project cleanup
most of the deprecated API moved to an optional resteasy-legacy module
lots of dependencies upgrades
new Vert.X adapter
many bug fixes
A detailed list of the changes is available on JIRA.
I really invite everybody to take a look at the documentation, especially the sections concerning the migration from older versions, try the new release and let us know if anything needs changes.
Last month I was writing about RESTEasy 3.1.0.CR2 and telling you we would have gone Final soon... actually we had to work on a major refactoring on the project that led to creating another candidate release. It turned out that the old API cleanup that went into 3.1.0.Beta2 as part of RESTEASY-1363 would have effectively prevented us from bundling RESTEasy in any JBoss EAP 7.x series future release. Here I'm not going through the details of the container rules regarding backward compatibility; what really matters is that we decided to go with a slightly milder solution, restoring the previously removed stuff into an optional and deprecated module of the project, resteasy-legacy. Besides granting us a way to comply with EAP 7.x requirements, the dependency to the new module is going to offer a chance of running on RESTEasy 3.1 to those who didn't fully move on from RESTEasy 2 APIs and the other old deprecated functionalities. An updated version of the migration guides is being prepared and will be available hopefully soon; in the mean time you can start playing with RESTEasy 3.1.0.CR3 bits. The Nexus Maven repository already has the 3.1.0.CR3 artifacts, which are also already pulled by latest WildFly master.
The actual release notes are here; any feedback, just let us know :-)
Just few days after CR1, here we are again with another candidate release version of RESTEasy 3.1.0. A couple of regressions (actually compared to 3.1.0.Beta1) have been spotted and fixed and we've gone through a bunch of dependencies upgrades. Full release notes available here.
The new artifacts are available on the Maven repository as usual; please keep on trying the latest bits and report any issue you find, thanks a lot! Final release is coming soon :-)
As you might have noticed on github, the team has been quite active on master during last months; after almost twenty 3.0.x bug fix releases, we're eventually working on a new minor, 3.1.0.
Among the most relevant changes that are coming in the new minor there are default Java 8 target, revisited project structure / testsuite and a major cleanup of old and deprecated APIs. On the last topic, Ron has been preparing a very good document you might want to read for easy migration of old (RESTEasy 2.3 style) code.
Clearly, bug fixes and new features are coming too in 3.1.0! We're trying to deal with as much pull requests as possible (keep sending them, thanks!) and one that I'd like to mention here is from Julien Viet who contributed a new server adapter for Vert.xintegration.
We've tagged two 3.1.0 Beta releases so far, both available as artifacts on Maven repository. I'm currently waiting for the last one to be merged into WildFly master (PR here).
If you have some time, consider early checking your projects with the new 3.1.0 and feel free to report back any issue (btw, as a reminder, note we have new mailing lists since some months!). We plan to go CR soon and hopefully release at before the end of October.