Merge branch '2.5.x' into 2.6.x

Closes gh-30581
pull/30839/head
Andy Wilkinson 3 years ago
commit a2c08f9f99

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2022 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -143,8 +143,12 @@ public final class ConfigurationPropertiesBean {
return getAll((ConfigurableApplicationContext) applicationContext); return getAll((ConfigurableApplicationContext) applicationContext);
} }
Map<String, ConfigurationPropertiesBean> propertiesBeans = new LinkedHashMap<>(); Map<String, ConfigurationPropertiesBean> propertiesBeans = new LinkedHashMap<>();
applicationContext.getBeansWithAnnotation(ConfigurationProperties.class) applicationContext.getBeansWithAnnotation(ConfigurationProperties.class).forEach((beanName, bean) -> {
.forEach((beanName, bean) -> propertiesBeans.put(beanName, get(applicationContext, bean, beanName))); ConfigurationPropertiesBean propertiesBean = get(applicationContext, bean, beanName);
if (propertiesBean != null) {
propertiesBeans.put(beanName, propertiesBean);
}
});
return propertiesBeans; return propertiesBeans;
} }
@ -158,7 +162,9 @@ public final class ConfigurationPropertiesBean {
try { try {
Object bean = beanFactory.getBean(beanName); Object bean = beanFactory.getBean(beanName);
ConfigurationPropertiesBean propertiesBean = get(applicationContext, bean, beanName); ConfigurationPropertiesBean propertiesBean = get(applicationContext, bean, beanName);
propertiesBeans.put(beanName, propertiesBean); if (propertiesBean != null) {
propertiesBeans.put(beanName, propertiesBean);
}
} }
catch (Exception ex) { catch (Exception ex) {
} }

@ -78,6 +78,15 @@ class ConfigurationPropertiesBeanTests {
} }
} }
@Test
void getAllDoesNotFindABeanDeclaredInAStaticBeanMethodOnAConfigurationAndConfigurationPropertiesAnnotatedClass() {
try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
StaticBeanMethodConfiguration.class)) {
Map<String, ConfigurationPropertiesBean> all = ConfigurationPropertiesBean.getAll(context);
assertThat(all).containsOnlyKeys("configurationPropertiesBeanTests.StaticBeanMethodConfiguration");
}
}
@Test @Test
void getAllWhenHasBadBeanDoesNotFail() { void getAllWhenHasBadBeanDoesNotFail() {
try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
@ -546,4 +555,15 @@ class ConfigurationPropertiesBeanTests {
} }
@Configuration(proxyBeanMethods = false)
@ConfigurationProperties
static class StaticBeanMethodConfiguration {
@Bean
static String stringBean() {
return "example";
}
}
} }

Loading…
Cancel
Save