Customizer#
A SmallRyeConfigBuilderCustomizer allows to customize a SmallRyeConfigBuilder, used to create the SmallRyeConfig
instance.
Registration of a SmallRyeConfigBuilderCustomizer is done via the ServiceLoader mechanism by providing the
implementation classes in a META-INF/services/io.smallrye.config.SmallRyeConfigBuilderCustomizer file. Alternatively,
customizers may be registered via the Programmatic API in SmallRyeConfigBuilder#withCustomizers.
The SmallRyeConfigBuilderCustomizer may also
assign a priority by overriding the default method int priority(). Customizers are sorted by ascending priority and
executed in that order, meaning that higher numeric priorities will execute last, possible overriding values set by
previous customizers.
package org.acme.config;
import io.smallrye.config.SmallRyeConfigBuilder;
import io.smallrye.config.SmallRyeConfigBuilderCustomizer;
public class CustomConfigBuilder implements SmallRyeConfigBuilderCustomizer {
@Override
public void configBuilder(final SmallRyeConfigBuilder builder) {
builder.withDefaultValue("my.default", "1234");
}
}
And registration in:
org.acme.config.CustomConfigBuilder
The CustomConfigBuilder will be executed when creating a new SmallRyeConfig from a SmallRyeConfigBuilder:
SmallRyeConfig config = new SmallRyeConfigBuilder().build();
config.getValue("my.default", int.class);
A look up to my.default returns the value 1234, registered by the CustomConfigBuilder.