Search in sources :

Example 1 with ConfigClassWithPrefix

use of io.smallrye.config.ConfigMappings.ConfigClassWithPrefix in project quarkus by quarkusio.

the class ExtensionLoader method loadStepsFrom.

/**
 * Load all the build steps from the given class loader.
 *
 * @param classLoader the class loader
 * @param buildSystemProps the build system properties to use
 * @param launchMode launch mode
 * @param configCustomizer configuration customizer
 * @return a consumer which adds the steps to the given chain builder
 * @throws IOException if the class loader could not load a resource
 * @throws ClassNotFoundException if a build step class is not found
 */
public static Consumer<BuildChainBuilder> loadStepsFrom(ClassLoader classLoader, Properties buildSystemProps, ApplicationModel appModel, LaunchMode launchMode, DevModeType devModeType) throws IOException, ClassNotFoundException {
    // populate with all known types
    List<Class<?>> roots = new ArrayList<>();
    for (Class<?> clazz : ServiceUtil.classesNamedIn(classLoader, CONFIG_ROOTS_LIST)) {
        final ConfigRoot annotation = clazz.getAnnotation(ConfigRoot.class);
        if (annotation == null) {
            cfgLog.warnf("Ignoring configuration root %s because it has no annotation", clazz);
        } else {
            roots.add(clazz);
        }
    }
    final BuildTimeConfigurationReader reader = new BuildTimeConfigurationReader(roots);
    // now prepare & load the build configuration
    final SmallRyeConfigBuilder builder = ConfigUtils.configBuilder(false, launchMode);
    final DefaultValuesConfigurationSource ds1 = new DefaultValuesConfigurationSource(reader.getBuildTimePatternMap());
    final DefaultValuesConfigurationSource ds2 = new DefaultValuesConfigurationSource(reader.getBuildTimeRunTimePatternMap());
    final PropertiesConfigSource pcs = new PropertiesConfigSource(buildSystemProps, "Build system");
    final Map<String, String> platformProperties = appModel.getPlatformProperties();
    if (platformProperties.isEmpty()) {
        builder.withSources(ds1, ds2, pcs);
    } else {
        final KeyMap<String> props = new KeyMap<>(platformProperties.size());
        for (Map.Entry<String, String> prop : platformProperties.entrySet()) {
            props.findOrAdd(new NameIterator(prop.getKey())).putRootValue(prop.getValue());
        }
        final KeyMapBackedConfigSource platformConfigSource = new KeyMapBackedConfigSource("Quarkus platform", // (see io.quarkus.deployment.configuration.DefaultValuesConfigurationSource)
        Integer.MIN_VALUE + 1000, props);
        builder.withSources(ds1, ds2, platformConfigSource, pcs);
    }
    for (ConfigClassWithPrefix mapping : reader.getBuildTimeVisibleMappings()) {
        builder.withMapping(mapping.getKlass(), mapping.getPrefix());
    }
    final SmallRyeConfig src = builder.build();
    // install globally
    QuarkusConfigFactory.setConfig(src);
    final ConfigProviderResolver cpr = ConfigProviderResolver.instance();
    try {
        cpr.releaseConfig(cpr.getConfig());
    } catch (IllegalStateException ignored) {
    // just means no config was installed, which is fine
    }
    final BuildTimeConfigurationReader.ReadResult readResult = reader.readConfiguration(src);
    final BooleanSupplierFactoryBuildItem bsf = new BooleanSupplierFactoryBuildItem(readResult, launchMode, devModeType);
    Consumer<BuildChainBuilder> result = Functions.discardingConsumer();
    // BooleanSupplier factory
    result = result.andThen(bcb -> bcb.addBuildStep(bc -> {
        bc.produce(bsf);
    }).produces(BooleanSupplierFactoryBuildItem.class).build());
    // the proxy objects used for run time config in the recorders
    Map<Class<?>, Object> proxies = new HashMap<>();
    for (Class<?> clazz : ServiceUtil.classesNamedIn(classLoader, "META-INF/quarkus-build-steps.list")) {
        try {
            result = result.andThen(ExtensionLoader.loadStepsFromClass(clazz, readResult, proxies, bsf));
        } catch (Throwable e) {
            throw new RuntimeException("Failed to load steps from " + clazz, e);
        }
    }
    // this has to be an identity hash map else the recorder will get angry
    Map<Object, FieldDescriptor> rootFields = new IdentityHashMap<>();
    Map<Object, ConfigClassWithPrefix> mappingClasses = new IdentityHashMap<>();
    for (Map.Entry<Class<?>, Object> entry : proxies.entrySet()) {
        // ConfigRoot
        RootDefinition root = readResult.getAllRootsByClass().get(entry.getKey());
        if (root != null) {
            rootFields.put(entry.getValue(), root.getDescriptor());
            continue;
        }
        // ConfigMapping
        ConfigClassWithPrefix mapping = readResult.getAllMappings().get(entry.getKey());
        if (mapping != null) {
            mappingClasses.put(entry.getValue(), mapping);
            continue;
        }
        throw new IllegalStateException("No config found for " + entry.getKey());
    }
    result = result.andThen(bcb -> bcb.addBuildStep(bc -> {
        bc.produce(new ConfigurationBuildItem(readResult));
        bc.produce(new RunTimeConfigurationProxyBuildItem(proxies));
        ObjectLoader rootLoader = new ObjectLoader() {

            public ResultHandle load(final BytecodeCreator body, final Object obj, final boolean staticInit) {
                return body.readStaticField(rootFields.get(obj));
            }

            public boolean canHandleObject(final Object obj, final boolean staticInit) {
                return rootFields.containsKey(obj);
            }
        };
        ObjectLoader mappingLoader = new ObjectLoader() {

            @Override
            public ResultHandle load(final BytecodeCreator body, final Object obj, final boolean staticInit) {
                ConfigClassWithPrefix mapping = mappingClasses.get(obj);
                MethodDescriptor getConfig = MethodDescriptor.ofMethod(ConfigProvider.class, "getConfig", Config.class);
                ResultHandle config = body.invokeStaticMethod(getConfig);
                MethodDescriptor getMapping = MethodDescriptor.ofMethod(SmallRyeConfig.class, "getConfigMapping", Object.class, Class.class, String.class);
                return body.invokeVirtualMethod(getMapping, config, body.loadClass(mapping.getKlass()), body.load(mapping.getPrefix()));
            }

            @Override
            public boolean canHandleObject(final Object obj, final boolean staticInit) {
                return mappingClasses.containsKey(obj);
            }
        };
        bc.produce(new BytecodeRecorderObjectLoaderBuildItem(rootLoader));
        bc.produce(new BytecodeRecorderObjectLoaderBuildItem(mappingLoader));
    }).produces(ConfigurationBuildItem.class).produces(RunTimeConfigurationProxyBuildItem.class).produces(BytecodeRecorderObjectLoaderBuildItem.class).build());
    return result;
}
Also used : RootDefinition(io.quarkus.deployment.configuration.definition.RootDefinition) ReflectUtil.isSupplierOfOptionalOf(io.quarkus.deployment.util.ReflectUtil.isSupplierOfOptionalOf) RecorderContext(io.quarkus.deployment.recording.RecorderContext) BooleanSupplier(java.util.function.BooleanSupplier) Functions(org.wildfly.common.function.Functions) ReflectUtil.isSupplierOf(io.quarkus.deployment.util.ReflectUtil.isSupplierOf) Arrays.asList(java.util.Arrays.asList) Map(java.util.Map) BytecodeCreator(io.quarkus.gizmo.BytecodeCreator) Recorder(io.quarkus.runtime.annotations.Recorder) ConsumeFlags(io.quarkus.builder.ConsumeFlags) RunTimeConfigurationProxyBuildItem(io.quarkus.deployment.builditem.RunTimeConfigurationProxyBuildItem) ReflectUtil.rawTypeIs(io.quarkus.deployment.util.ReflectUtil.rawTypeIs) KeyMap(io.smallrye.config.KeyMap) EnumSet(java.util.EnumSet) Consume(io.quarkus.deployment.annotations.Consume) Member(java.lang.reflect.Member) MainBytecodeRecorderBuildItem(io.quarkus.deployment.builditem.MainBytecodeRecorderBuildItem) StaticBytecodeRecorderBuildItem(io.quarkus.deployment.builditem.StaticBytecodeRecorderBuildItem) ReflectUtil.isBuildProducerOf(io.quarkus.deployment.util.ReflectUtil.isBuildProducerOf) InvocationTargetException(java.lang.reflect.InvocationTargetException) Weak(io.quarkus.deployment.annotations.Weak) ApplicationModel(io.quarkus.bootstrap.model.ApplicationModel) ConfigProvider(org.eclipse.microprofile.config.ConfigProvider) ConsumeFlag(io.quarkus.builder.ConsumeFlag) PropertiesConfigSource(io.smallrye.config.PropertiesConfigSource) ConfigClassWithPrefix(io.smallrye.config.ConfigMappings.ConfigClassWithPrefix) ResultHandle(io.quarkus.gizmo.ResultHandle) AnnotatedElement(java.lang.reflect.AnnotatedElement) Record(io.quarkus.deployment.annotations.Record) ProduceWeak(io.quarkus.deployment.annotations.ProduceWeak) DevModeType(io.quarkus.dev.spi.DevModeType) ReflectUtil.rawTypeOf(io.quarkus.deployment.util.ReflectUtil.rawTypeOf) BuildStepBuilder(io.quarkus.builder.BuildStepBuilder) BuildItem(io.quarkus.builder.item.BuildItem) SimpleBuildItem(io.quarkus.builder.item.SimpleBuildItem) Constructor(java.lang.reflect.Constructor) Supplier(java.util.function.Supplier) ArrayList(java.util.ArrayList) ConfigRoot(io.quarkus.runtime.annotations.ConfigRoot) BuildChainBuilder(io.quarkus.builder.BuildChainBuilder) Parameter(java.lang.reflect.Parameter) BiConsumer(java.util.function.BiConsumer) KeyMapBackedConfigSource(io.smallrye.config.KeyMapBackedConfigSource) Properties(java.util.Properties) Executor(java.util.concurrent.Executor) IOException(java.io.IOException) Field(java.lang.reflect.Field) FieldDescriptor(io.quarkus.gizmo.FieldDescriptor) ParameterizedType(java.lang.reflect.ParameterizedType) SmallRyeConfigBuilder(io.smallrye.config.SmallRyeConfigBuilder) ConfigPhase(io.quarkus.runtime.annotations.ConfigPhase) BiFunction(java.util.function.BiFunction) ProduceFlags(io.quarkus.builder.ProduceFlags) Overridable(io.quarkus.deployment.annotations.Overridable) BuildProducer(io.quarkus.deployment.annotations.BuildProducer) ConfigProviderResolver(org.eclipse.microprofile.config.spi.ConfigProviderResolver) ProduceFlag(io.quarkus.builder.ProduceFlag) ReflectUtil(io.quarkus.deployment.util.ReflectUtil) Method(java.lang.reflect.Method) BootstrapConfigSetupCompleteBuildItem(io.quarkus.deployment.builditem.BootstrapConfigSetupCompleteBuildItem) IdentityHashMap(java.util.IdentityHashMap) ReflectUtil.isOptionalOf(io.quarkus.deployment.util.ReflectUtil.isOptionalOf) ReflectUtil.rawTypeExtends(io.quarkus.deployment.util.ReflectUtil.rawTypeExtends) ExecutionTime(io.quarkus.deployment.annotations.ExecutionTime) Config(org.eclipse.microprofile.config.Config) DefaultValuesConfigurationSource(io.quarkus.deployment.configuration.DefaultValuesConfigurationSource) List(java.util.List) BuildContext(io.quarkus.builder.BuildContext) Type(java.lang.reflect.Type) Modifier(java.lang.reflect.Modifier) Optional(java.util.Optional) ConfigMappingUtils(io.quarkus.deployment.configuration.ConfigMappingUtils) ConfigUtils(io.quarkus.runtime.configuration.ConfigUtils) Logger(org.jboss.logging.Logger) LaunchMode(io.quarkus.runtime.LaunchMode) HashMap(java.util.HashMap) Function(java.util.function.Function) ReflectUtil.isConsumerOf(io.quarkus.deployment.util.ReflectUtil.isConsumerOf) Inject(javax.inject.Inject) ConfigurationBuildItem(io.quarkus.deployment.builditem.ConfigurationBuildItem) BuildStep(io.quarkus.deployment.annotations.BuildStep) ReflectUtil.isListOf(io.quarkus.deployment.util.ReflectUtil.isListOf) RuntimeValue(io.quarkus.runtime.RuntimeValue) RuntimeConfigSetupCompleteBuildItem(io.quarkus.deployment.builditem.RuntimeConfigSetupCompleteBuildItem) ObjectLoader(io.quarkus.deployment.recording.ObjectLoader) QuarkusConfigFactory(io.quarkus.runtime.configuration.QuarkusConfigFactory) BytecodeRecorderObjectLoaderBuildItem(io.quarkus.deployment.builditem.BytecodeRecorderObjectLoaderBuildItem) MethodDescriptor(io.quarkus.gizmo.MethodDescriptor) SmallRyeConfig(io.smallrye.config.SmallRyeConfig) BuildTimeConfigurationReader(io.quarkus.deployment.configuration.BuildTimeConfigurationReader) Produce(io.quarkus.deployment.annotations.Produce) Consumer(java.util.function.Consumer) MultiBuildItem(io.quarkus.builder.item.MultiBuildItem) NameIterator(io.smallrye.config.NameIterator) ReflectUtil.rawTypeOfParameter(io.quarkus.deployment.util.ReflectUtil.rawTypeOfParameter) ServiceUtil(io.quarkus.deployment.util.ServiceUtil) BytecodeRecorderImpl(io.quarkus.deployment.recording.BytecodeRecorderImpl) Collections(java.util.Collections) PropertiesConfigSource(io.smallrye.config.PropertiesConfigSource) ConfigRoot(io.quarkus.runtime.annotations.ConfigRoot) IdentityHashMap(java.util.IdentityHashMap) HashMap(java.util.HashMap) DefaultValuesConfigurationSource(io.quarkus.deployment.configuration.DefaultValuesConfigurationSource) IdentityHashMap(java.util.IdentityHashMap) ArrayList(java.util.ArrayList) BuildTimeConfigurationReader(io.quarkus.deployment.configuration.BuildTimeConfigurationReader) FieldDescriptor(io.quarkus.gizmo.FieldDescriptor) SmallRyeConfigBuilder(io.smallrye.config.SmallRyeConfigBuilder) NameIterator(io.smallrye.config.NameIterator) ResultHandle(io.quarkus.gizmo.ResultHandle) ConfigurationBuildItem(io.quarkus.deployment.builditem.ConfigurationBuildItem) KeyMap(io.smallrye.config.KeyMap) RootDefinition(io.quarkus.deployment.configuration.definition.RootDefinition) ConfigClassWithPrefix(io.smallrye.config.ConfigMappings.ConfigClassWithPrefix) BytecodeCreator(io.quarkus.gizmo.BytecodeCreator) MethodDescriptor(io.quarkus.gizmo.MethodDescriptor) KeyMapBackedConfigSource(io.smallrye.config.KeyMapBackedConfigSource) SmallRyeConfig(io.smallrye.config.SmallRyeConfig) BuildChainBuilder(io.quarkus.builder.BuildChainBuilder) RunTimeConfigurationProxyBuildItem(io.quarkus.deployment.builditem.RunTimeConfigurationProxyBuildItem) ConfigProviderResolver(org.eclipse.microprofile.config.spi.ConfigProviderResolver) BytecodeRecorderObjectLoaderBuildItem(io.quarkus.deployment.builditem.BytecodeRecorderObjectLoaderBuildItem) ObjectLoader(io.quarkus.deployment.recording.ObjectLoader) Map(java.util.Map) KeyMap(io.smallrye.config.KeyMap) IdentityHashMap(java.util.IdentityHashMap) HashMap(java.util.HashMap)

Example 2 with ConfigClassWithPrefix

use of io.smallrye.config.ConfigMappings.ConfigClassWithPrefix in project quarkus by quarkusio.

the class ConfigGenerationBuildStep method extensionMappings.

@BuildStep
void extensionMappings(ConfigurationBuildItem configItem, CombinedIndexBuildItem combinedIndex, BuildProducer<GeneratedClassBuildItem> generatedClasses, BuildProducer<ReflectiveClassBuildItem> reflectiveClasses, BuildProducer<ConfigClassBuildItem> configClasses) {
    List<ConfigClassWithPrefix> buildTimeRunTimeMappings = configItem.getReadResult().getBuildTimeRunTimeMappings();
    for (ConfigClassWithPrefix buildTimeRunTimeMapping : buildTimeRunTimeMappings) {
        processExtensionConfigMapping(buildTimeRunTimeMapping.getKlass(), buildTimeRunTimeMapping.getPrefix(), combinedIndex, generatedClasses, reflectiveClasses, configClasses);
    }
    final List<ConfigClassWithPrefix> runTimeMappings = configItem.getReadResult().getRunTimeMappings();
    for (ConfigClassWithPrefix runTimeMapping : runTimeMappings) {
        processExtensionConfigMapping(runTimeMapping.getKlass(), runTimeMapping.getPrefix(), combinedIndex, generatedClasses, reflectiveClasses, configClasses);
    }
}
Also used : ConfigClassWithPrefix(io.smallrye.config.ConfigMappings.ConfigClassWithPrefix) BuildStep(io.quarkus.deployment.annotations.BuildStep)

Example 3 with ConfigClassWithPrefix

use of io.smallrye.config.ConfigMappings.ConfigClassWithPrefix in project quarkus by quarkusio.

the class ConfigDescriptionBuildStep method processMappings.

private void processMappings(List<ConfigClassWithPrefix> mappings, List<ConfigDescriptionBuildItem> descriptionBuildItems, Properties javaDocProperties, ConfigPhase configPhase) {
    for (ConfigClassWithPrefix mapping : mappings) {
        Map<String, Property> properties = ConfigMappings.getProperties(mapping);
        for (Map.Entry<String, Property> entry : properties.entrySet()) {
            String propertyName = entry.getKey();
            Property property = entry.getValue();
            Method method = property.getMethod();
            String defaultValue = null;
            if (property instanceof PrimitiveProperty) {
                PrimitiveProperty primitiveProperty = (PrimitiveProperty) property;
                if (primitiveProperty.hasDefaultValue()) {
                    defaultValue = primitiveProperty.getDefaultValue();
                } else if (primitiveProperty.getPrimitiveType() == boolean.class) {
                    defaultValue = "false";
                } else if (primitiveProperty.getPrimitiveType() != char.class) {
                    defaultValue = "0";
                }
            } else if (property instanceof LeafProperty) {
                LeafProperty leafProperty = (LeafProperty) property;
                if (leafProperty.hasDefaultValue()) {
                    defaultValue = leafProperty.getDefaultValue();
                }
            }
            String javadocKey = method.getDeclaringClass().getName().replace('$', '.') + '.' + method.getName();
            // TODO - radcortez - Fix nulls
            descriptionBuildItems.add(new ConfigDescriptionBuildItem(propertyName, defaultValue, javaDocProperties.getProperty(javadocKey), null, null, configPhase));
        }
    }
}
Also used : LeafProperty(io.smallrye.config.ConfigMappingInterface.LeafProperty) ConfigDescriptionBuildItem(io.quarkus.deployment.builditem.ConfigDescriptionBuildItem) ConfigClassWithPrefix(io.smallrye.config.ConfigMappings.ConfigClassWithPrefix) Method(java.lang.reflect.Method) PrimitiveProperty(io.smallrye.config.ConfigMappingInterface.PrimitiveProperty) LeafProperty(io.smallrye.config.ConfigMappingInterface.LeafProperty) Property(io.smallrye.config.ConfigMappingInterface.Property) ConfigProperty(org.eclipse.microprofile.config.inject.ConfigProperty) Map(java.util.Map) ConfigPatternMap(io.quarkus.deployment.configuration.matching.ConfigPatternMap) PrimitiveProperty(io.smallrye.config.ConfigMappingInterface.PrimitiveProperty)

Example 4 with ConfigClassWithPrefix

use of io.smallrye.config.ConfigMappings.ConfigClassWithPrefix in project smallrye-config by smallrye.

the class ConfigExtension method validate.

protected void validate(@Observes AfterDeploymentValidation adv) {
    Config config = ConfigProvider.getConfig(getContextClassLoader());
    Set<String> configNames = StreamSupport.stream(config.getPropertyNames().spliterator(), false).collect(toSet());
    for (InjectionPoint injectionPoint : getConfigPropertyInjectionPoints()) {
        Type type = injectionPoint.getType();
        // We don't validate the Optional / Provider / Supplier / ConfigValue for defaultValue.
        if (type instanceof Class && org.eclipse.microprofile.config.ConfigValue.class.isAssignableFrom((Class<?>) type) || type instanceof Class && OptionalInt.class.isAssignableFrom((Class<?>) type) || type instanceof Class && OptionalLong.class.isAssignableFrom((Class<?>) type) || type instanceof Class && OptionalDouble.class.isAssignableFrom((Class<?>) type) || type instanceof ParameterizedType && (Optional.class.isAssignableFrom((Class<?>) ((ParameterizedType) type).getRawType()) || Provider.class.isAssignableFrom((Class<?>) ((ParameterizedType) type).getRawType()) || Supplier.class.isAssignableFrom((Class<?>) ((ParameterizedType) type).getRawType()))) {
            continue;
        }
        ConfigProperty configProperty = injectionPoint.getAnnotated().getAnnotation(ConfigProperty.class);
        String name;
        try {
            name = ConfigProducerUtil.getConfigKey(injectionPoint, configProperty);
        } catch (IllegalStateException e) {
            adv.addDeploymentProblem(InjectionMessages.msg.retrieveConfigFailure(null, formatInjectionPoint(injectionPoint), e.getLocalizedMessage(), e));
            continue;
        }
        // Finally also check if the property is indexed (might be a Collection with indexed properties).
        if ((!configNames.contains(name) && ConfigProducerUtil.getRawValue(name, config) == null) && !isMap(type) && !isIndexed(type, name, config)) {
            if (configProperty.defaultValue().equals(ConfigProperty.UNCONFIGURED_VALUE)) {
                adv.addDeploymentProblem(InjectionMessages.msg.noConfigValue(name, formatInjectionPoint(injectionPoint)));
                continue;
            }
        }
        try {
            // Check if the value can be injected. This may cause duplicated config reads (to validate and to inject).
            ConfigProducerUtil.getValue(injectionPoint, config);
        } catch (Exception e) {
            adv.addDeploymentProblem(InjectionMessages.msg.retrieveConfigFailure(name, formatInjectionPoint(injectionPoint), e.getLocalizedMessage(), e));
        }
    }
    Set<ConfigClassWithPrefix> configMappingsWithPrefix = mapToConfigObjectWithPrefix(configMappings, configMappingInjectionPoints);
    Set<ConfigClassWithPrefix> configPropertiesWithPrefix = mapToConfigObjectWithPrefix(configProperties, configPropertiesInjectionPoints);
    try {
        registerConfigMappings(config.unwrap(SmallRyeConfig.class), configMappingsWithPrefix);
        registerConfigProperties(config.unwrap(SmallRyeConfig.class), configPropertiesWithPrefix);
    } catch (ConfigValidationException e) {
        adv.addDeploymentProblem(e);
    }
}
Also used : Optional(java.util.Optional) ProcessInjectionPoint(javax.enterprise.inject.spi.ProcessInjectionPoint) ConfigMappingInjectionBean.getPrefixFromInjectionPoint(io.smallrye.config.inject.ConfigMappingInjectionBean.getPrefixFromInjectionPoint) InjectionMessages.formatInjectionPoint(io.smallrye.config.inject.InjectionMessages.formatInjectionPoint) InjectionPoint(javax.enterprise.inject.spi.InjectionPoint) Config(org.eclipse.microprofile.config.Config) SmallRyeConfig(io.smallrye.config.SmallRyeConfig) ConfigClassWithPrefix(io.smallrye.config.ConfigMappings.ConfigClassWithPrefix) OptionalInt(java.util.OptionalInt) ConfigValidationException(io.smallrye.config.ConfigValidationException) OptionalDouble(java.util.OptionalDouble) ConfigValidationException(io.smallrye.config.ConfigValidationException) Provider(javax.inject.Provider) ConfigProvider(org.eclipse.microprofile.config.ConfigProvider) ParameterizedType(java.lang.reflect.ParameterizedType) AnnotatedType(javax.enterprise.inject.spi.AnnotatedType) ConfigMappingInjectionBean.getPrefixFromType(io.smallrye.config.inject.ConfigMappingInjectionBean.getPrefixFromType) ProcessAnnotatedType(javax.enterprise.inject.spi.ProcessAnnotatedType) ParameterizedType(java.lang.reflect.ParameterizedType) Type(java.lang.reflect.Type) SmallRyeConfig(io.smallrye.config.SmallRyeConfig) ConfigProperty(org.eclipse.microprofile.config.inject.ConfigProperty)

Aggregations

ConfigClassWithPrefix (io.smallrye.config.ConfigMappings.ConfigClassWithPrefix)4 BuildStep (io.quarkus.deployment.annotations.BuildStep)2 Method (java.lang.reflect.Method)2 Map (java.util.Map)2 ApplicationModel (io.quarkus.bootstrap.model.ApplicationModel)1 BuildChainBuilder (io.quarkus.builder.BuildChainBuilder)1 BuildContext (io.quarkus.builder.BuildContext)1 BuildStepBuilder (io.quarkus.builder.BuildStepBuilder)1 ConsumeFlag (io.quarkus.builder.ConsumeFlag)1 ConsumeFlags (io.quarkus.builder.ConsumeFlags)1 ProduceFlag (io.quarkus.builder.ProduceFlag)1 ProduceFlags (io.quarkus.builder.ProduceFlags)1 BuildItem (io.quarkus.builder.item.BuildItem)1 MultiBuildItem (io.quarkus.builder.item.MultiBuildItem)1 SimpleBuildItem (io.quarkus.builder.item.SimpleBuildItem)1 BuildProducer (io.quarkus.deployment.annotations.BuildProducer)1 Consume (io.quarkus.deployment.annotations.Consume)1 ExecutionTime (io.quarkus.deployment.annotations.ExecutionTime)1 Overridable (io.quarkus.deployment.annotations.Overridable)1 Produce (io.quarkus.deployment.annotations.Produce)1