Skip to content

Commit 94abdd4

Browse files
authored
Merge pull request quarkusio#35322 from radcortez/config-builder
Use SmallRyeConfigBuilder Customizer to generate Quarkus configuration
2 parents 39381f9 + 1d65999 commit 94abdd4

File tree

45 files changed

+685
-893
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+685
-893
lines changed

bom/application/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@
5050
<microprofile-jwt.version>2.1</microprofile-jwt.version>
5151
<microprofile-lra.version>2.0</microprofile-lra.version>
5252
<microprofile-openapi.version>3.1.1</microprofile-openapi.version>
53-
<smallrye-common.version>2.1.2</smallrye-common.version>
54-
<smallrye-config.version>3.3.4</smallrye-config.version>
53+
<smallrye-common.version>2.2.0</smallrye-common.version>
54+
<smallrye-config.version>3.4.1</smallrye-config.version>
5555
<smallrye-health.version>4.0.4</smallrye-health.version>
5656
<smallrye-metrics.version>4.0.0</smallrye-metrics.version>
5757
<smallrye-open-api.version>3.6.2</smallrye-open-api.version>

core/deployment/src/main/java/io/quarkus/deployment/ExtensionLoader.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747

4848
import org.eclipse.microprofile.config.Config;
4949
import org.eclipse.microprofile.config.ConfigProvider;
50-
import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
5150
import org.jboss.logging.Logger;
5251
import org.wildfly.common.function.Functions;
5352

@@ -136,16 +135,8 @@ public static Consumer<BuildChainBuilder> loadStepsFrom(ClassLoader classLoader,
136135

137136
final BuildTimeConfigurationReader reader = new BuildTimeConfigurationReader(classLoader);
138137
final SmallRyeConfig src = reader.initConfiguration(launchMode, buildSystemProps, appModel.getPlatformProperties());
139-
140138
// install globally
141139
QuarkusConfigFactory.setConfig(src);
142-
final ConfigProviderResolver cpr = ConfigProviderResolver.instance();
143-
try {
144-
cpr.releaseConfig(cpr.getConfig());
145-
} catch (IllegalStateException ignored) {
146-
// just means no config was installed, which is fine
147-
}
148-
149140
final BuildTimeConfigurationReader.ReadResult readResult = reader.readConfiguration(src);
150141
final BooleanSupplierFactoryBuildItem bsf = new BooleanSupplierFactoryBuildItem(readResult, launchMode, devModeType);
151142

core/deployment/src/main/java/io/quarkus/deployment/builditem/ConfigMappingBuildItem.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import io.quarkus.builder.item.MultiBuildItem;
66
import io.quarkus.runtime.annotations.StaticInitSafe;
7+
import io.smallrye.config.ConfigMappings.ConfigClassWithPrefix;
78

89
public final class ConfigMappingBuildItem extends MultiBuildItem {
910
private final Class<?> configClass;
@@ -26,6 +27,10 @@ public boolean isStaticInitSafe() {
2627
return configClass.isAnnotationPresent(StaticInitSafe.class);
2728
}
2829

30+
public ConfigClassWithPrefix toConfigClassWithPrefix() {
31+
return new ConfigClassWithPrefix(configClass, prefix);
32+
}
33+
2934
@Override
3035
public boolean equals(final Object o) {
3136
if (this == o) {

core/deployment/src/main/java/io/quarkus/deployment/configuration/BuildTimeConfigurationReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,6 @@ final class ReadOperation {
470470
final SmallRyeConfig config;
471471
final ConfigTrackingInterceptor buildConfigTracker;
472472
final Set<String> processedNames = new HashSet<>();
473-
474473
final Map<Class<?>, Object> objectsByClass = new HashMap<>();
475474
final Map<String, String> allBuildTimeValues = new TreeMap<>();
476475
final Map<String, String> buildTimeRunTimeValues = new TreeMap<>();
@@ -510,6 +509,7 @@ ReadResult run() {
510509

511510
allBuildTimeValues.putAll(getDefaults(buildTimePatternMap));
512511
buildTimeRunTimeValues.putAll(getDefaults(buildTimeRunTimePatternMap));
512+
runTimeDefaultValues.putAll(getDefaults(runTimePatternMap));
513513

514514
SmallRyeConfig runtimeDefaultsConfig = getConfigForRuntimeDefaults();
515515
Set<String> registeredRoots = allRoots.stream().map(RootDefinition::getName).collect(toSet());

core/deployment/src/main/java/io/quarkus/deployment/configuration/ConfigMappingUtils.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.quarkus.deployment.configuration;
22

3+
import static io.smallrye.config.ConfigMappings.ConfigClassWithPrefix.configClassWithPrefix;
34
import static org.jboss.jandex.AnnotationTarget.Kind.CLASS;
45

56
import java.util.ArrayList;
@@ -32,6 +33,7 @@
3233
import io.smallrye.config.ConfigMappingInterface.Property;
3334
import io.smallrye.config.ConfigMappingLoader;
3435
import io.smallrye.config.ConfigMappingMetadata;
36+
import io.smallrye.config.ConfigMappings.ConfigClassWithPrefix;
3537

3638
public class ConfigMappingUtils {
3739

@@ -58,33 +60,42 @@ public static void processConfigClasses(
5860
Class<?> configClass = toClass(target.asClass().name());
5961
String prefix = Optional.ofNullable(annotationPrefix).map(AnnotationValue::asString).orElse("");
6062
Kind configClassKind = getConfigClassType(instance);
61-
processConfigClass(configClass, configClassKind, prefix, true, combinedIndex, generatedClasses, reflectiveClasses,
62-
configClasses);
63+
processConfigClass(configClassWithPrefix(configClass, prefix), configClassKind, true, combinedIndex,
64+
generatedClasses, reflectiveClasses, configClasses);
6365
}
6466
}
6567

68+
public static void processConfigMapping(
69+
CombinedIndexBuildItem combinedIndex,
70+
BuildProducer<GeneratedClassBuildItem> generatedClasses,
71+
BuildProducer<ReflectiveClassBuildItem> reflectiveClasses,
72+
BuildProducer<ConfigClassBuildItem> configClasses) {
73+
processConfigClasses(combinedIndex, generatedClasses, reflectiveClasses, configClasses, CONFIG_MAPPING_NAME);
74+
}
75+
6676
public static void processExtensionConfigMapping(
67-
Class<?> configClass,
68-
String prefix,
77+
ConfigClassWithPrefix configClass,
6978
CombinedIndexBuildItem combinedIndex,
7079
BuildProducer<GeneratedClassBuildItem> generatedClasses,
7180
BuildProducer<ReflectiveClassBuildItem> reflectiveClasses,
7281
BuildProducer<ConfigClassBuildItem> configClasses) {
7382

74-
processConfigClass(configClass, Kind.MAPPING, prefix, false, combinedIndex, generatedClasses, reflectiveClasses,
83+
processConfigClass(configClass, Kind.MAPPING, false, combinedIndex, generatedClasses, reflectiveClasses,
7584
configClasses);
7685
}
7786

7887
private static void processConfigClass(
79-
Class<?> configClass,
88+
ConfigClassWithPrefix configClassWithPrefix,
8089
Kind configClassKind,
81-
String prefix,
8290
boolean isApplicationClass,
8391
CombinedIndexBuildItem combinedIndex,
8492
BuildProducer<GeneratedClassBuildItem> generatedClasses,
8593
BuildProducer<ReflectiveClassBuildItem> reflectiveClasses,
8694
BuildProducer<ConfigClassBuildItem> configClasses) {
8795

96+
Class<?> configClass = configClassWithPrefix.getKlass();
97+
String prefix = configClassWithPrefix.getPrefix();
98+
8899
List<ConfigMappingMetadata> configMappingsMetadata = ConfigMappingLoader.getConfigMappingsMetadata(configClass);
89100
Set<String> generatedClassesNames = new HashSet<>();
90101
configMappingsMetadata.forEach(mappingMetadata -> {

0 commit comments

Comments
 (0)