diff --git a/implementation/src/main/java/io/smallrye/config/ConfigMappingLoader.java b/implementation/src/main/java/io/smallrye/config/ConfigMappingLoader.java index da2cd1425..57b3b52b5 100644 --- a/implementation/src/main/java/io/smallrye/config/ConfigMappingLoader.java +++ b/implementation/src/main/java/io/smallrye/config/ConfigMappingLoader.java @@ -53,8 +53,6 @@ public static ConfigMappingInterface getConfigMapping(final Class type) { } static Class getConfigMappingClass(final Class type) { - validateAnnotations(type); - ConfigMappingClass configMappingClass = ConfigMappingClass.getConfigurationClass(type); if (configMappingClass == null) { return type; @@ -170,16 +168,6 @@ static Class loadClass(final Class parent, final ConfigMappingMetadata con } } - static void validateAnnotations(Class type) { - if (!type.isInterface() && type.isAnnotationPresent(ConfigMapping.class)) { - throw ConfigMessages.msg.mappingAnnotationNotSupportedInClass(type); - } - - if (type.isInterface() && type.isAnnotationPresent(ConfigProperties.class)) { - throw ConfigMessages.msg.propertiesAnnotationNotSupportedInInterface(type); - } - } - /** * Do not remove this method or inline it. It is keep separate on purpose, so it is easier to substitute it with * the GraalVM API for native image compilation. diff --git a/implementation/src/main/java/io/smallrye/config/SmallRyeConfigBuilder.java b/implementation/src/main/java/io/smallrye/config/SmallRyeConfigBuilder.java index c0f912527..c8f2a3c9d 100644 --- a/implementation/src/main/java/io/smallrye/config/SmallRyeConfigBuilder.java +++ b/implementation/src/main/java/io/smallrye/config/SmallRyeConfigBuilder.java @@ -50,6 +50,7 @@ import jakarta.annotation.Priority; import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.inject.ConfigProperties; import org.eclipse.microprofile.config.spi.ConfigBuilder; import org.eclipse.microprofile.config.spi.ConfigSource; import org.eclipse.microprofile.config.spi.ConfigSourceProvider; @@ -541,10 +542,6 @@ public SmallRyeConfigBuilder withMapping(ConfigClass configClass) { return this; } - /** - * @deprecated Use {@link SmallRyeConfigBuilder#withMapping(ConfigClass)} instead. - */ - @Deprecated(forRemoval = true) public SmallRyeConfigBuilder withMapping(Class klass, String prefix) { mappingsBuilder.mapping(klass, prefix); return this; @@ -777,6 +774,7 @@ public final class MappingBuilder { private final StringBuilder sb = new StringBuilder(); public void mapping(ConfigClass configClass) { + validateAnnotations(configClass.getKlass()); mapping(configClass.getKlass(), configClass.getPrefix()); } @@ -823,6 +821,16 @@ public Map, Set> getMappings() { public List getIgnoredPaths() { return ignoredPaths; } + + private void validateAnnotations(Class type) { + if (!type.isInterface() && type.isAnnotationPresent(ConfigMapping.class)) { + throw ConfigMessages.msg.mappingAnnotationNotSupportedInClass(type); + } + + if (type.isInterface() && type.isAnnotationPresent(ConfigProperties.class)) { + throw ConfigMessages.msg.propertiesAnnotationNotSupportedInInterface(type); + } + } } static class ConverterWithPriority {