Quarkus 2.11.1.Final and 2.10.4.Final released - Fixing CVE-2022-2466, new Redis Client API, more customization for some core extensions and more

Today, we released both Quarkus 2.11.1.Final and Quarkus 2.10.4.Final. Quarkus 2.11.1.Final is, despite its name, the first 2.11 release.

Both versions are fixing CVE-2022-2466 in the SmallRye GraphQL server extension (for real this time). Unfortunately, the previous fix introduced in 2.10.3.Final and the non-released 2.11.0.Final was incomplete and the issue was still present in another form.

  • New Redis Client API

  • Default to Java 17-based builder images for native executable generation

  • Bump to Vert.x 4.3.2 and Netty 4.1.78

  • Allow passing unsupported properties to Hibernate ORM

  • Change GraphQL endpoints to be Singleton by default

  • Introduce @SearchExtension to configure Hibernate Search through annotated beans

  • Hibernate Validator - Allow customization of the ValidatorFactory

  • Allow to provide custom configuration for JAXB context

  • Various improvements to the Dev Experience

Migration Guide

To migrate from 2.10, please refer to our migration guide.

What’s new?

New Redis Client API

Quarkus 2.11 introduces a modernized Redis Client API.

The previous one is still available and has been marked as deprecated. It will be removed in a few versions.

Have a look at the updated Redis getting started guide and the Redis reference guide for more information.

Java 17-based builder-images by default

Quarkus supports both Java 11 and Java 17 for a long while but we kept Java 11-based builder images for native executable generation…​ until now.

Starting with Quarkus 2.11, the images use Java 17 by default. You can go back to the Java 11 images by using the quarkus.native.builder-image configuration property.

Note that, even if your source code targets Java 11, we recommend to use the Java 17 images.

Vert.x 4.3.2, Netty 4.1.78

Vert.x and Netty are both at the core of Quarkus and have been upgraded respectively to 4.3.2 and 4.1.78.

Allow passing unsupported properties to Hibernate ORM

This particular feature was requested by a lot of users. With Quarkus, we tried to curate a validated list of Hibernate ORM that we want to expose and support in both JVM and native modes.

From time to time, we had users complaining about the unavailability of a particular property (and the workaround was to push this property to a persistence.xml but it was not ideal). Then, there were two options: either we decided to expose them in a future version of Quarkus or we decided we didn’t want to expose them - at least not for now - and that might have been impractical in some use cases.

It is now possible to declare any properties supported by Hibernate ORM with the quarkus.hibernate-orm.unsupported-properties configuration property (which is configurable per persistence unit).

You will have a big warning when doing so and we still encourage you to create issues about the properties you would like to see added and fully supported as that will impact future developments of Hibernate ORM and the Hibernate ORM extension in Quarkus.

Customization

We improved the customization abilities of several extensions:

  • Hibernate Search now has a @SearchExtension annotation to be configured through annotated beans.

  • It is now possible to customize the Hibernate Validator ValidatorFactory with beans implementing HibernateValidatorFactoryCustomizer.

  • The JAXB context can also be customized through JaxbContextCustomizer beans.

GraphQL endpoints singleton

The GraphQL endpoints used to have the @Dependent CDI scope by default, which was suboptimal. They are now @Singleton by default.

You can go back to the previous behavior by adding the @Dependent annotation to your GraphQL endpoints.

Dev Experience

  • When using the Hibernate Search and Elasticsearch devservices, the Elasticsearch schema is now re-created on startup in tests and dev mode.

  • The ArC Dev UI now presents a bean dependency graph.

  • Dev Services datatabase, username and password are now unified across all supported databases and can be configured.

Full changelog

You can get the full changelog of 2.11.0.CR1, 2.11.0.Final and 2.11.1.Final on GitHub.

Contributors

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

In particular for the 2.11 release, thanks to Alexander Schwartz, Alexey Loubyansky, Andre Fucs de Miranda, Andy Damevin, Baiju Muthukadan, Bill Burke, brunobat, Cameron Gregor, Chris Laprun, Clement Escoffier, Davide D’Alto, Emile de Weerd, Eric Deandrea, Erin Schnabel, Falko Modler, Florian Beutel, Foivos Zakkak, Fouad Almalki, Francois Steyn, Frank Eichfelder, Galder Zamarreño, Gavin Ray, George Gastaldi, Georgios Andrianakis, Guillaume Le Floch, Guillaume Smet, Harald Albers, Heiko W. Rupp, Holly Cummins, Huba Peter, Ian De Bie, Jakob, Jan Martiska, Jay, Jens Zettelmeyer, Joe Siponen, joern19, Johurul Hassan Mazumder, Jose, Julien Ponge, Justin Lee, Kevin Wooten, Knut Wannheden, Ladislav Thon, Loïc Mathieu, luneo7, Marc Wrobel, Martin Kouba, Mathias Holzer, mauroal, Max Rydahl Andersen, Maximilian Zellhofer, Michael Edgar, Michal Karm Babacek, Michal Maléř, Michal Vavřík, Michał Szynkiewicz, Naoki Kishi, Neon, newur, number23, Pavol Liška, Peter Palaga, Phillip Kruger, Rinaldo Pitzer Júnior, Roberto Cortez, Romain Quinio, Rostislav Svoboda, Sanne Grinovero, Sergey Beryozkin, Sombra González, Stephane Epardaud, Stuart Douglas, Theodor Mihalache, Thomas Segismont, xstefank, Yoann Rodière, Yoshikazu Nojima.

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: