Skip to content

Commit c43e0dc

Browse files
committed
Add validation for runtime within deployment modules
1 parent 4221467 commit c43e0dc

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/scanner/AbstractConfigListener.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import io.quarkus.annotation.processor.documentation.config.discovery.EnumDefinition;
1515
import io.quarkus.annotation.processor.documentation.config.discovery.EnumDefinition.EnumConstant;
1616
import io.quarkus.annotation.processor.documentation.config.discovery.ResolvedType;
17+
import io.quarkus.annotation.processor.documentation.config.model.ConfigPhase;
18+
import io.quarkus.annotation.processor.documentation.config.model.ExtensionModule;
1719
import io.quarkus.annotation.processor.documentation.config.util.Types;
1820
import io.quarkus.annotation.processor.util.Config;
1921
import io.quarkus.annotation.processor.util.Utils;
@@ -66,6 +68,18 @@ public void onResolvedEnum(TypeElement enumTypeElement) {
6668
configCollector.addResolvedEnum(enumDefinition);
6769
}
6870

71+
protected void validateRuntimeConfigOnDeploymentModules(ConfigPhase configPhase, TypeElement configRoot) {
72+
if (configPhase.equals(ConfigPhase.RUN_TIME) || configPhase.equals(ConfigPhase.BUILD_AND_RUN_TIME_FIXED)) {
73+
ExtensionModule.ExtensionModuleType type = config.getExtensionModule().type();
74+
if (type.equals(ExtensionModule.ExtensionModuleType.DEPLOYMENT)) {
75+
throw new IllegalStateException(String.format(
76+
"Error on %s: Configuration classes with ConfigPhase.RUN_TIME or " +
77+
"ConfigPhase.BUILD_AND_RUNTIME_FIXED phases, must reside in the respective module.",
78+
configRoot.getSimpleName().toString()));
79+
}
80+
}
81+
}
82+
6983
protected void handleCommonPropertyAnnotations(DiscoveryConfigProperty.Builder builder,
7084
Map<String, AnnotationMirror> propertyAnnotations, ResolvedType resolvedType, String sourceElementName) {
7185

core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/scanner/ConfigMappingListener.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public Optional<DiscoveryConfigRoot> onConfigRoot(TypeElement configRoot) {
7575
}
7676
}
7777

78+
validateRuntimeConfigOnDeploymentModules(configPhase, configRoot);
79+
7880
for (Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : configMappingAnnotion.getElementValues()
7981
.entrySet()) {
8082
if ("prefix()".equals(entry.getKey().toString())) {

core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/scanner/LegacyConfigRootListener.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ public Optional<DiscoveryConfigRoot> onConfigRoot(TypeElement configRoot) {
7979
}
8080
}
8181

82+
validateRuntimeConfigOnDeploymentModules(configPhase, configRoot);
83+
8284
String overriddenDocPrefix = null;
8385
if (configDocPrefixAnnotation != null) {
8486
for (Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : configDocPrefixAnnotation

0 commit comments

Comments
 (0)