Skip to content

Commit 5073f0a

Browse files
committed
Sunsetting legacy config classes
1 parent d899d8b commit 5073f0a

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
layout: post
3+
title: 'Sunsetting legacy config classes'
4+
date: 2025-07-03
5+
tags: release
6+
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.'
7+
author: gsmet
8+
---
9+
10+
After having migrated the whole Quarkus code base and Quarkiverse extensions to @ConfigMapping interfaces in Quarkus 3.19,
11+
we announce the sunsetting of legacy config classes.
12+
13+
== Some history
14+
15+
In 2022, we introduced in Quarkus a new configuration infrastructure for extensions based on interfaces annotated with `@ConfigMapping`.
16+
They were a replacement for the legacy config classes that were used in Quarkus extensions,
17+
which came with several issues and were specific to extensions (you couldn't use them in applications).
18+
19+
The new `@ConfigMapping` infrastructure unified extension and application configuration on the same infrastructure.
20+
21+
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)
22+
and deprecated the legacy config classes support, together with dropping close to all the existing config classes: we kept a few for compatibility reasons.
23+
24+
The extension annotation processor was also modified to require a specific option `-AlegacyConfigRoot=true`.
25+
26+
The plan has always been to sunset the legacy config classes so that we could remove all the machinery related to it,
27+
and offer a single unified configuration mechanism.
28+
29+
== Current state
30+
31+
The current state of the public Quarkus ecosystem is the following:
32+
33+
- All the Core extensions are using the new ``@ConfigMapping``-based infrastructure.
34+
- 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]).
35+
- Some other extensions participating to the Ecosystem CI have also been updated such as https://persistence.blazebit.com/[Blaze-Persistence].
36+
37+
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.
38+
39+
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].
40+
41+
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.
42+
43+
== Coming in 3.25
44+
45+
In 3.25, we will throw an error when the extension annotation processor is used with `-AlegacyConfigRoot=true`.
46+
47+
**It won't be possible to build an extension containing legacy config classes with Quarkus 3.25 anymore.**
48+
49+
== Coming in 3.26
50+
51+
In 3.26, we will remove all support for legacy config classes, meaning they won't work anymore.
52+
**If one of the extensions of your application is using any legacy config class, your application won't build.**
53+
54+
Note that since 3.19.4, you get a warning if any of the extensions in your application is using legacy config classes.
55+
56+
We will also drop all the compatibility classes we kept until then:
57+
58+
- `GlobalDevServicesConfig`: use `DevServicesConfig` instead
59+
- `HttpConfiguration`: use `VertxHttpConfig` instead
60+
- `HttpBuildTimeConfig`: use `VertxHttpBuildTimeConfig` instead
61+
62+
== Feedback and questions
63+
64+
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].
65+
66+
== Come Join Us
67+
68+
We value your feedback a lot so please report bugs, ask for improvements... Let's build something great together!
69+
70+
If you are a Quarkus user or just curious, don't be shy and join our welcoming community:
71+
72+
* provide feedback on https://github.com/quarkusio/quarkus/issues[GitHub];
73+
* craft some code and https://github.com/quarkusio/quarkus/pulls[push a PR];
74+
* discuss with us on https://quarkusio.zulipchat.com/[Zulip] and on the https://groups.google.com/d/forum/quarkus-dev[mailing list];
75+
* ask your questions on https://stackoverflow.com/questions/tagged/quarkus[Stack Overflow].

0 commit comments

Comments
 (0)