diff --git a/core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/scanner/ConfigAnnotationScanner.java b/core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/scanner/ConfigAnnotationScanner.java index 08a06fbe24f3e0..5ae2110b70d557 100644 --- a/core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/scanner/ConfigAnnotationScanner.java +++ b/core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/scanner/ConfigAnnotationScanner.java @@ -259,6 +259,17 @@ private void scanElement(List listeners, DiscoveryRoot if (resolvedType.isEnum()) { handleEnum(listeners, resolvedType.unwrappedTypeElement()); + } else if (resolvedType.isClass()) { + TypeElement unwrappedTypeElement = resolvedType.unwrappedTypeElement(); + if (utils.element().isAnnotationPresent(unwrappedTypeElement, Types.ANNOTATION_CONFIG_GROUP) + && !isConfigGroupAlreadyHandled(unwrappedTypeElement)) { + debug("Detected config group: " + resolvedType + " on field: " + + field, clazz); + + DiscoveryConfigGroup discoveryConfigGroup = applyRootListeners( + l -> l.onConfigGroup(unwrappedTypeElement)); + scanElement(listeners, discoveryConfigGroup, unwrappedTypeElement); + } } debug("Detected enclosed field: " + field, clazz);