commit
1efac09913
|
|
@ -72,6 +72,15 @@ public class NoUnboundElementsBindHandler extends AbstractBindHandler {
|
||||||
return super.onSuccess(name, target, context, result);
|
return super.onSuccess(name, target, context, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object onFailure(ConfigurationPropertyName name, Bindable<?> target, BindContext context, Exception error)
|
||||||
|
throws Exception {
|
||||||
|
if (error instanceof UnboundConfigurationPropertiesException) {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
return super.onFailure(name, target, context, error);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFinish(ConfigurationPropertyName name, Bindable<?> target, BindContext context, Object result)
|
public void onFinish(ConfigurationPropertyName name, Bindable<?> target, BindContext context, Object result)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,14 @@ class ConfigurationPropertiesTests {
|
||||||
.withCauseInstanceOf(BindException.class);
|
.withCauseInstanceOf(BindException.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenIgnoreUnknownFieldsFalseAndIgnoreInvalidFieldsTrueWhenThereAreUnknownFieldsThenBindingShouldFail() {
|
||||||
|
removeSystemProperties();
|
||||||
|
assertThatExceptionOfType(ConfigurationPropertiesBindException.class).isThrownBy(
|
||||||
|
() -> load(IgnoreUnknownFieldsFalseIgnoreInvalidFieldsTrueConfiguration.class, "name=foo", "bar=baz"))
|
||||||
|
.withCauseInstanceOf(BindException.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void loadWhenHasIgnoreInvalidFieldsTrueAndInvalidFieldsShouldBind() {
|
void loadWhenHasIgnoreInvalidFieldsTrueAndInvalidFieldsShouldBind() {
|
||||||
load(IgnoreInvalidFieldsFalseProperties.class, "com.example.bar=spam");
|
load(IgnoreInvalidFieldsFalseProperties.class, "com.example.bar=spam");
|
||||||
|
|
@ -1000,6 +1008,12 @@ class ConfigurationPropertiesTests {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Configuration(proxyBeanMethods = false)
|
||||||
|
@EnableConfigurationProperties(IgnoreUnknownFieldsFalseIgnoreInvalidFieldsTrueProperties.class)
|
||||||
|
static class IgnoreUnknownFieldsFalseIgnoreInvalidFieldsTrueConfiguration {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Configuration(proxyBeanMethods = false)
|
@Configuration(proxyBeanMethods = false)
|
||||||
@EnableConfigurationProperties(PrefixProperties.class)
|
@EnableConfigurationProperties(PrefixProperties.class)
|
||||||
static class PrefixConfiguration {
|
static class PrefixConfiguration {
|
||||||
|
|
@ -1447,6 +1461,11 @@ class ConfigurationPropertiesTests {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ConfigurationProperties(ignoreUnknownFields = false, ignoreInvalidFields = true)
|
||||||
|
static class IgnoreUnknownFieldsFalseIgnoreInvalidFieldsTrueProperties extends BasicProperties {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@EnableConfigurationProperties
|
@EnableConfigurationProperties
|
||||||
@ConfigurationProperties(prefix = "com.example", ignoreInvalidFields = true)
|
@ConfigurationProperties(prefix = "com.example", ignoreInvalidFields = true)
|
||||||
static class IgnoreInvalidFieldsFalseProperties {
|
static class IgnoreInvalidFieldsFalseProperties {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue