Skip to content

Migration Guide 3.26

Guillaume Smet edited this page Jul 29, 2025 · 17 revisions
Note

We highly recommend the use of quarkus update to update to a new version of Quarkus.

Items marked below with ⚙️ ✅ are automatically handled by quarkus update.

Legacy config classes support is gone

As announced previously, we retired the legacy config classes support in 3.26. They were deprecated since 3.19.

This change is all about extension development BUT…​ you need all the extensions of your applications to be in line with this change.

For your application

We already fixed all the Quarkiverse extensions: you need to upgrade to their latest versions.

You also need to fix your custom extensions and get them released and updated. See the next paragraph for more details.

For your extensions

Your extensions need to be in compliance with this change:

  • @ConfigRoot should exclusively be used on interfaces in conjunction with @ConfigMapping - the deprecated attributes have also been removed

  • @ConfigItem has been dropped as it was only used for legacy config classes

The extension annotation processor will also complain with an error if it encounters a legacy config class.

The compatibility legacy config classes we kept in 3.19-3.25 are also gone:

  • GlobalDevServicesConfig: use DevServicesConfig instead

  • HttpConfiguration: use VertxHttpConfig instead

  • HttpBuildTimeConfig: use VertxHttpBuildTimeConfig instead

We recommend you base your extensions on 3.20 LTS from now on, and start a specific maintenance branch for 3.15 LTS if you think it’s required for your extension.

Hibernate ORM

JSON mapper

The default value of quarkus.hibernate-orm.mapping.format.global has changed to fail.

If the application relies on persisting JSON/XML in the database via Hibernate ORM/Reactive the users should review their serialization/deserialization configuration. If there is no customization to the Quarkus' JSON/XML formatting, it is possible to set quarkus.hibernate-orm.mapping.format.global=ignore, this will result in bypassing these formatting facilities and relying on Hibernate ORM to configure the default serialization. Otherwise, implement the custom FormatMapper bean as described here.

Migration guides

Current version


LTS versions


Next version in main


Clone this wiki locally