Polish
This commit is contained in:
parent
7d53c54364
commit
dd3bcc5691
|
@ -47,7 +47,7 @@ import org.springframework.beans.BeansException;
|
|||
import org.springframework.boot.actuate.endpoint.Sanitizer;
|
||||
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
|
||||
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
|
||||
import org.springframework.boot.context.properties.ConfigurationBeanFactoryMetaData;
|
||||
import org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
|
@ -107,15 +107,15 @@ public class ConfigurationPropertiesReportEndpoint implements ApplicationContext
|
|||
|
||||
private ContextConfigurationProperties describeConfigurationProperties(
|
||||
ApplicationContext context, ObjectMapper mapper) {
|
||||
ConfigurationBeanFactoryMetaData beanFactoryMetaData = getBeanFactoryMetaData(
|
||||
ConfigurationBeanFactoryMetadata beanFactoryMetadata = getBeanFactoryMetadata(
|
||||
context);
|
||||
Map<String, Object> beans = getConfigurationPropertiesBeans(context,
|
||||
beanFactoryMetaData);
|
||||
beanFactoryMetadata);
|
||||
Map<String, ConfigurationPropertiesBeanDescriptor> beanDescriptors = new HashMap<>();
|
||||
for (Map.Entry<String, Object> entry : beans.entrySet()) {
|
||||
String beanName = entry.getKey();
|
||||
Object bean = entry.getValue();
|
||||
String prefix = extractPrefix(context, beanFactoryMetaData, beanName);
|
||||
String prefix = extractPrefix(context, beanFactoryMetadata, beanName);
|
||||
beanDescriptors.put(beanName, new ConfigurationPropertiesBeanDescriptor(
|
||||
prefix, sanitize(prefix, safeSerialize(mapper, bean, prefix))));
|
||||
}
|
||||
|
@ -123,10 +123,10 @@ public class ConfigurationPropertiesReportEndpoint implements ApplicationContext
|
|||
context.getParent() == null ? null : context.getParent().getId());
|
||||
}
|
||||
|
||||
private ConfigurationBeanFactoryMetaData getBeanFactoryMetaData(
|
||||
private ConfigurationBeanFactoryMetadata getBeanFactoryMetadata(
|
||||
ApplicationContext context) {
|
||||
Map<String, ConfigurationBeanFactoryMetaData> beans = context
|
||||
.getBeansOfType(ConfigurationBeanFactoryMetaData.class);
|
||||
Map<String, ConfigurationBeanFactoryMetadata> beans = context
|
||||
.getBeansOfType(ConfigurationBeanFactoryMetadata.class);
|
||||
if (beans.size() == 1) {
|
||||
return beans.values().iterator().next();
|
||||
}
|
||||
|
@ -135,11 +135,11 @@ public class ConfigurationPropertiesReportEndpoint implements ApplicationContext
|
|||
|
||||
private Map<String, Object> getConfigurationPropertiesBeans(
|
||||
ApplicationContext context,
|
||||
ConfigurationBeanFactoryMetaData beanFactoryMetaData) {
|
||||
ConfigurationBeanFactoryMetadata beanFactoryMetadata) {
|
||||
Map<String, Object> beans = new HashMap<>();
|
||||
beans.putAll(context.getBeansWithAnnotation(ConfigurationProperties.class));
|
||||
if (beanFactoryMetaData != null) {
|
||||
beans.putAll(beanFactoryMetaData
|
||||
if (beanFactoryMetadata != null) {
|
||||
beans.putAll(beanFactoryMetadata
|
||||
.getBeansWithFactoryAnnotation(ConfigurationProperties.class));
|
||||
}
|
||||
return beans;
|
||||
|
@ -204,7 +204,7 @@ public class ConfigurationPropertiesReportEndpoint implements ApplicationContext
|
|||
* @return the prefix
|
||||
*/
|
||||
private String extractPrefix(ApplicationContext context,
|
||||
ConfigurationBeanFactoryMetaData beanFactoryMetaData, String beanName) {
|
||||
ConfigurationBeanFactoryMetadata beanFactoryMetaData, String beanName) {
|
||||
ConfigurationProperties annotation = context.findAnnotationOnBean(beanName,
|
||||
ConfigurationProperties.class);
|
||||
if (beanFactoryMetaData != null) {
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.springframework.beans.factory.config.BeanDefinition;
|
|||
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
|
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||
import org.springframework.core.annotation.AnnotationUtils;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
/**
|
||||
|
@ -36,11 +37,11 @@ import org.springframework.util.ReflectionUtils;
|
|||
* @author Dave Syer
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public class ConfigurationBeanFactoryMetaData implements BeanFactoryPostProcessor {
|
||||
public class ConfigurationBeanFactoryMetadata implements BeanFactoryPostProcessor {
|
||||
|
||||
private ConfigurableListableBeanFactory beanFactory;
|
||||
|
||||
private final Map<String, MetaData> beans = new HashMap<>();
|
||||
private final Map<String, FactoryMetadata> beansFactoryMetadata = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
|
||||
|
@ -51,7 +52,7 @@ public class ConfigurationBeanFactoryMetaData implements BeanFactoryPostProcesso
|
|||
String method = definition.getFactoryMethodName();
|
||||
String bean = definition.getFactoryBeanName();
|
||||
if (method != null && bean != null) {
|
||||
this.beans.put(name, new MetaData(bean, method));
|
||||
this.beansFactoryMetadata.put(name, new FactoryMetadata(bean, method));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +60,7 @@ public class ConfigurationBeanFactoryMetaData implements BeanFactoryPostProcesso
|
|||
public <A extends Annotation> Map<String, Object> getBeansWithFactoryAnnotation(
|
||||
Class<A> type) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
for (String name : this.beans.keySet()) {
|
||||
for (String name : this.beansFactoryMetadata.keySet()) {
|
||||
if (findFactoryAnnotation(name, type) != null) {
|
||||
result.put(name, this.beanFactory.getBean(name));
|
||||
}
|
||||
|
@ -73,29 +74,29 @@ public class ConfigurationBeanFactoryMetaData implements BeanFactoryPostProcesso
|
|||
return (method == null ? null : AnnotationUtils.findAnnotation(method, type));
|
||||
}
|
||||
|
||||
private Method findFactoryMethod(String beanName) {
|
||||
if (!this.beans.containsKey(beanName)) {
|
||||
public Method findFactoryMethod(String beanName) {
|
||||
if (!this.beansFactoryMetadata.containsKey(beanName)) {
|
||||
return null;
|
||||
}
|
||||
final AtomicReference<Method> found = new AtomicReference<>(null);
|
||||
MetaData meta = this.beans.get(beanName);
|
||||
final String factory = meta.getMethod();
|
||||
Class<?> type = this.beanFactory.getType(meta.getBean());
|
||||
ReflectionUtils.doWithMethods(type, (method) -> {
|
||||
if (method.getName().equals(factory)) {
|
||||
AtomicReference<Method> found = new AtomicReference<>(null);
|
||||
FactoryMetadata metadata = this.beansFactoryMetadata.get(beanName);
|
||||
Class<?> factoryType = this.beanFactory.getType(metadata.getBean());
|
||||
String factoryMethod = metadata.getMethod();
|
||||
ReflectionUtils.doWithMethods(factoryType, (method) -> {
|
||||
if (method.getName().equals(factoryMethod)) {
|
||||
found.compareAndSet(null, method);
|
||||
}
|
||||
});
|
||||
return found.get();
|
||||
}
|
||||
|
||||
private static class MetaData {
|
||||
private static class FactoryMetadata {
|
||||
|
||||
private final String bean;
|
||||
|
||||
private final String method;
|
||||
|
||||
MetaData(String bean, String method) {
|
||||
FactoryMetadata(String bean, String method) {
|
||||
this.bean = bean;
|
||||
this.method = method;
|
||||
}
|
|
@ -63,7 +63,7 @@ public class ConfigurationPropertiesBindingPostProcessor
|
|||
private static final Log logger = LogFactory
|
||||
.getLog(ConfigurationPropertiesBindingPostProcessor.class);
|
||||
|
||||
private ConfigurationBeanFactoryMetaData beans = new ConfigurationBeanFactoryMetaData();
|
||||
private ConfigurationBeanFactoryMetadata beans = new ConfigurationBeanFactoryMetadata();
|
||||
|
||||
private BeanFactory beanFactory;
|
||||
|
||||
|
@ -88,7 +88,7 @@ public class ConfigurationPropertiesBindingPostProcessor
|
|||
* Set the bean meta-data store.
|
||||
* @param beans the bean meta data store
|
||||
*/
|
||||
public void setBeanMetaDataStore(ConfigurationBeanFactoryMetaData beans) {
|
||||
public void setBeanMetadataStore(ConfigurationBeanFactoryMetadata beans) {
|
||||
this.beans = beans;
|
||||
}
|
||||
|
||||
|
|
|
@ -44,10 +44,10 @@ public class ConfigurationPropertiesBindingPostProcessorRegistrar
|
|||
BeanDefinitionRegistry registry) {
|
||||
if (!registry.containsBeanDefinition(BINDER_BEAN_NAME)) {
|
||||
BeanDefinitionBuilder meta = BeanDefinitionBuilder
|
||||
.genericBeanDefinition(ConfigurationBeanFactoryMetaData.class);
|
||||
.genericBeanDefinition(ConfigurationBeanFactoryMetadata.class);
|
||||
BeanDefinitionBuilder bean = BeanDefinitionBuilder.genericBeanDefinition(
|
||||
ConfigurationPropertiesBindingPostProcessor.class);
|
||||
bean.addPropertyReference("beanMetaDataStore", METADATA_BEAN_NAME);
|
||||
bean.addPropertyReference("beanMetadataStore", METADATA_BEAN_NAME);
|
||||
registry.registerBeanDefinition(BINDER_BEAN_NAME, bean.getBeanDefinition());
|
||||
registry.registerBeanDefinition(METADATA_BEAN_NAME, meta.getBeanDefinition());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue