diff --git a/_posts/2025-07-03-legacy-config-classes-sunsetting.adoc b/_posts/2025-07-03-legacy-config-classes-sunsetting.adoc new file mode 100644 index 00000000000..e37ca919d83 --- /dev/null +++ b/_posts/2025-07-03-legacy-config-classes-sunsetting.adoc @@ -0,0 +1,75 @@ +--- +layout: post +title: 'Sunsetting legacy config classes' +date: 2025-07-03 +tags: release +synopsis: 'After having migrated the whole Quarkus code base and Quarkiverse extensions to @ConfigMapping interfaces in Quarkus 3.19, we announce the sunsetting of legacy config classes.' +author: gsmet +--- + +After having migrated the whole Quarkus code base and Quarkiverse extensions to @ConfigMapping interfaces in Quarkus 3.19, +we announce the sunsetting of legacy config classes. + +== Some history + +In 2022, we introduced in Quarkus a new configuration infrastructure for extensions based on interfaces annotated with `@ConfigMapping`. +They were a replacement for the legacy config classes that were used in Quarkus extensions, +which came with several issues and were specific to extensions (you couldn't use them in applications). + +The new `@ConfigMapping` infrastructure unified extension and application configuration on the same infrastructure. + +In Quarkus 3.19k, released late February this year, we moved all the core extensions to this new infrastructure (except for some classes that were kept for compatibility purposes) +and deprecated the legacy config classes support, together with dropping close to all the existing config classes: we kept a few for compatibility reasons. + +The extension annotation processor was also modified to require a specific option `-AlegacyConfigRoot=true`. + +The plan has always been to sunset the legacy config classes so that we could remove all the machinery related to it, +and offer a single unified configuration mechanism. + +== Current state + +The current state of the public Quarkus ecosystem is the following: + +- All the Core extensions are using the new ``@ConfigMapping``-based infrastructure. +- All the Quarkiverse extensions have been updated to use the new ``@ConfigMapping``-based infrastructure (except for `quarkus-logging-json` but we have a https://github.com/quarkiverse/quarkus-logging-json/pull/345[pull request ready]). +- Some other extensions participating to the Ecosystem CI have also been updated such as https://persistence.blazebit.com/[Blaze-Persistence]. + +We know some of you also develop custom extensions so we highly recommend moving your custom extensions to `@ConfigMapping` as soon as possible, if not already done. + +You can find more information about it in https://quarkus.io/guides/writing-extensions#configuration[our documentation] and a ton of examples in the https://github.com/search?q=repo%3Aquarkusio%2Fquarkus%20%40ConfigMapping&type=code[Quarkus Core repository] or the https://github.com/search?q=org%3Aquarkiverse+%40ConfigMapping&type=code[Quarkiverse extensions]. + +If you have any questions while migrating, please ask them in https://github.com/quarkusio/quarkus/discussions/categories/q-a[GitHub Discussions], we will be happy to help. + +== Coming in 3.25 + +In 3.25, we will throw an error when the extension annotation processor is used with `-AlegacyConfigRoot=true`. + +**It won't be possible to build an extension containing legacy config classes with Quarkus 3.25 anymore.** + +== Coming in 3.26 + +In 3.26, we will remove all support for legacy config classes, meaning they won't work anymore. +**If one of the extensions of your application is using any legacy config class, your application won't build.** + +Note that since 3.19.4, you get a warning if any of the extensions in your application is using legacy config classes. + +We will also drop all the compatibility classes we kept until then: + +- `GlobalDevServicesConfig`: use `DevServicesConfig` instead +- `HttpConfiguration`: use `VertxHttpConfig` instead +- `HttpBuildTimeConfig`: use `VertxHttpBuildTimeConfig` instead + +== Feedback and questions + +If you have any feedback or questions regarding this change, please either use https://github.com/quarkusio/quarkus/discussions/categories/q-a[GitHub Discussions] or the https://groups.google.com/g/quarkus-dev[quarkus-dev Google groups]. + +== 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: + + * provide feedback on https://github.com/quarkusio/quarkus/issues[GitHub]; + * craft some code and https://github.com/quarkusio/quarkus/pulls[push a PR]; + * discuss with us on https://quarkusio.zulipchat.com/[Zulip] and on the https://groups.google.com/d/forum/quarkus-dev[mailing list]; + * ask your questions on https://stackoverflow.com/questions/tagged/quarkus[Stack Overflow].