Quarkus 2.0.0.Final released - Vert.x 4, MicroProfile 4, Continuous Testing and much more

The Quarkus team is proud to announce the availability of the Final release of Quarkus 2.0.

This version has been a gigantic effort to bring Quarkus to a whole new level, while keeping its roots: fast boot, low memory usage and developer joy.

A big thank you to everyone involved in the community, contributors, testers…​ This version is a team effort and wouldn’t be as great without all of you.

Migration Guide

The good news is that upgrading to Quarkus 2.0 will be very low effort and, as usual, we have a migration guide to help you.

If you encounter any issue upgrading to this new version, please report it so that we can either fix it or add the information to the guide.

What’s new?

We already presented the novelties of this version in the Alphas/CRs announcements but here is a summary of what’s new in this version.

You can also have a look at this week’s Quarkus Insights Quarkus 2.0 Launch Party, with several Quarkus contributors talking about the new features.

JDK 11 as minimal version

JDK 11 is the minimal version to use Quarkus 2.0.

JDK 8 is not supported anymore (but you can keep using 1.13.x if you are stuck with it!).

GraalVM 21.1

GraalVM 21.1 is the recommended version for Quarkus 2.0.

Vert.x 4

Vert.x is at the core of Quarkus.

Quarkus 2.0 brings Vert.x 4. You can learn more about it in the announcement and the What’s new blog post.

Eclipse MicroProfile 4

MicroProfile 4 is the latest evolution of the MicroProfile specifications.

All the SmallRye components in Quarkus have been updated to the latest and greatest and, apart from implementing MicroProfile 4, they also come with additional new features.

Continuous Testing

I’ll let the stage to Stuart Douglas for that one as he’s the author of this amazing new feature.

This release contains a brand new feature improving developer productivity: Continuous Testing. This allows tests to be run automatically in development mode, and can be enabled by pressing r in the console (or through the Dev UI). If you enable testing, your test suite will be run once at the start, and then continuous testing will run your tests as you are coding, and tell you if your changes will break any tests. This will give you instant feedback on your changes, without having to switch to a browser. As much as possible we only run tests that are relevant to the code that has been changed.

This feature has also introduced some changes that may affect your application:

  • The Class Loading model for testing is now the same as development mode (as tests need to be hot reloaded), if this causes issues for your application you can set quarkus.test.flat-class-path=true to revert to the old model, but it will disable continuous testing.

  • If a compatible terminal is detected Quarkus will display status messages at the bottom of the console window, and react to input without the need to press enter. If this interferes with your application it can be disabled via quarkus.test.basic-console=true (note that gradle will always use the basic console at this time).

  • If you don’t want any test output in the console and just want to interact through the Dev UI you can set quarkus.test.console=false.

Continuous Testing is part of a long tradition of developer-targeted innovation in Quarkus. As such, we are eager to hear about your feedback on it and how we can make it even better.

Here is a video presenting Continuous Testing in motion:

Quarkus CLI

Historically, you interacted with your Quarkus projects using Maven or Gradle commands. This will soon be over as Quarkus 2.0 introduces a brand new and improved Quarkus CLI.

We are still working on publishing it everywhere for easy consumption on all systems but you can already use JBang to run it.

More details in the dedicated CLI guide.

Other notable features

  • Quarkus now offers a GraphQL client in the form of the SmallRye GraphQL Client extension.

  • Hibernate ORM has been upgraded to 5.5 and the Hibernate ORM extension now has support for metadata contributors.

  • ArC, our CDI implementation, supports CDI decorators.

  • MongoDB with Panache now comes with transaction support.

  • Our Kotlin story got some nice additions: the RESTEasy Reactive, REST Client and Reactive Messaging extensions now support coroutines.

  • An extension for Amazon SSM has been added.

Full Changelog

You can get the full changelogs of the various intermediary versions that lead to this Final on GitHub:

Contributors

The Quarkus community is growing and has now 496 contributors. Many many thanks to each and everyone of them.

In particular for the 2.0 release, thanks to 0SkillAllLuck, Adrian, adrianfiedler, Alexandre Dutra, Alexey Loubyansky, Amos Feng, Andy Damevin, Andy Fedotov, Anoop Krishnakumar, antoniodvr, Arjan van Balken, bcournaud, Bernhard Lutzmann, Bill Burke, Bruno Leonardo Gonçalves, Bryan Varner, Cem Nura, Chris Laprun, Christopher Chianelli, Clement Escoffier, Cristian Morales Alvarez, Daniel Schmidt, David Andlinger, David M. Lloyd, Davide, Davide D’Alto, Dominika Vagnerova, Duncan Doyle, Elshad Kasumov, Elvys Soares, Emmanuel Bourg, Eric Deandrea, Erik Mattheis, Erin Schnabel, essobedo, Ethan J. Gallant, Falko Modler, Felix Seifert, Foivos Zakkak, Fred Bricon, Gabriel Landais, George Gastaldi, Georgios Andrianakis, Gerald Venzl, Guillaume Le Floch, Guillaume Smet, Gwenneg Lepage, Gytis Trikleris, Ioannis Canellos, Ismail BASKIN, Jaikiran Pai, Jan Martiška, Jason Lee, Jason T. Greene, jjaferson, Johan Westerlund, Jorge Solórzano, Jose, Joshua Roys, Juan Zuriaga, Julien Ponge, Justin Lee, Karsten Wintermann, Katia Aresti, Ken Finnigan, Kevin VIET, Kevin Wooten, Knut Wannheden, Kyrylo Shpak, Ladislav Thon, Leonardo, Loïc Mathieu, Luca Masini, luneo7, Maciej Swiderski, manusa, Manyanda Chitimbo, Marco Bungart, Markus Kowalkowski, Markus Thömmes, markusdlugi, Martin Kouba, Matej Novotny, Matej Vasek, Matt Welke, Mattia Forcellese, Max Rydahl Andersen, Mayank Kunwar, Michael Simons, Michał Szynkiewicz, Mikhail Fedorov, Mingyuan Wu, NetoDevel, Nuno Caro, Ondra Chaloupka, Paul Carter-Brown, Pedro Igor, Peter Palaga, Petr Hála, Phillip Krüger, Rafael T. C. Soares, Ramesh Devaraj, Renato Pereira Back, René Grob, Rhuan Rocha, Richard Thomas, Roberto Cortez, Ron Sigal, Rostislav Svoboda, ruromero, Sanne Grinovero, SaumyaSingh1, Sergey Beryozkin, Severin Gehwolf, Stuart Douglas, Stéphane Épardaud, Sven Kattelans, Thomas Segismont, Tomas Hofman, Vadzim Hushchanskou, Vincent Sevel, Vinod Anandan, Frank Wippermueller, xstefank, Yoann Rodière, Yoshikazu Nojima and Youri Bonnaffe.

Come Join Us

We value your feedback a lot so please report bugs, ask for improvements…​ Let’s build something great together!

If you are a Quarkus user or just curious, don’t be shy and join our welcoming community: