Skip to content

Commit

Permalink
Fix order of defaults recording
Browse files Browse the repository at this point in the history
  • Loading branch information
radcortez committed Oct 27, 2023
1 parent 817ee41 commit 8682456
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -199,11 +199,11 @@ void generateBuilders(
BuildProducer<GeneratedClassBuildItem> generatedClass,
BuildProducer<ReflectiveClassBuildItem> reflectiveClass) throws Exception {

// Default Values collected from mappings / roots and build item
Map<String, String> defaultValues = new HashMap<>(configItem.getReadResult().getRunTimeDefaultValues());
Map<String, String> defaultValues = new HashMap<>();
for (RunTimeConfigurationDefaultBuildItem e : runTimeDefaults) {
defaultValues.put(e.getKey(), e.getValue());
}
defaultValues.putAll(configItem.getReadResult().getRunTimeDefaultValues());

Set<String> converters = discoverService(Converter.class, reflectiveClass);
Set<String> interceptors = discoverService(ConfigSourceInterceptor.class, reflectiveClass);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
public class BuildTimeCustomConfigBuilder implements SmallRyeConfigBuilderCustomizer {
@Override
public void configBuilder(final SmallRyeConfigBuilder builder) {
// for ConfigBuilderTest
builder.withSources(
new PropertiesConfigSource(Map.of("prop.recorded.from.btconfigsource", "1234"), "BuildTimeConfigSource", 100));
// for RecorderRuntimeConfigTest
builder.withSources(
new PropertiesConfigSource(Map.of("recorded.property", "from-application"), "BuildTimeConfigSource", 250));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import io.quarkus.deployment.builditem.LogHandlerBuildItem;
import io.quarkus.deployment.builditem.ObjectSubstitutionBuildItem;
import io.quarkus.deployment.builditem.RunTimeConfigBuilderBuildItem;
import io.quarkus.deployment.builditem.RunTimeConfigurationDefaultBuildItem;
import io.quarkus.deployment.builditem.ServiceStartBuildItem;
import io.quarkus.deployment.builditem.ShutdownContextBuildItem;
import io.quarkus.deployment.builditem.StaticInitConfigBuilderBuildItem;
Expand Down Expand Up @@ -486,6 +487,11 @@ void neverRunThisOne() {
throw new IllegalStateException("Not supposed to run!");
}

@BuildStep
void recordProperty(BuildProducer<RunTimeConfigurationDefaultBuildItem> runTimeConfigurationDefault) {
runTimeConfigurationDefault.produce(new RunTimeConfigurationDefaultBuildItem("recorded.property", "from-build-step"));
}

public static final class Never implements BooleanSupplier {
TestBuildTimeConfig config;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.quarkus.config;

import static org.junit.jupiter.api.Assertions.assertEquals;

import jakarta.inject.Inject;

import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.test.QuarkusUnitTest;
import io.smallrye.config.SmallRyeConfig;

public class RecorderRuntimeConfigTest {
@RegisterExtension
static final QuarkusUnitTest TEST = new QuarkusUnitTest()
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class));

@Inject
SmallRyeConfig config;

@Test
void runtimeConfig() {
assertEquals("from-application", config.getRawValue("recorded.property"));
}
}

0 comments on commit 8682456

Please sign in to comment.