Commit 8e042ed3 authored by Stephane Nicoll's avatar Stephane Nicoll

Merge pull request #13923 from izeye:polish-no-such-bean-definition-failure-analyzer

* pr/13923:
  Polish NoSuchBeanDefinitionFailureAnalyzer
parents 54a6ee7a 8a9224b7
...@@ -17,11 +17,13 @@ ...@@ -17,11 +17,13 @@
package org.springframework.boot.autoconfigure.diagnostics.analyzer; package org.springframework.boot.autoconfigure.diagnostics.analyzer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
...@@ -87,15 +89,11 @@ class NoSuchBeanDefinitionFailureAnalyzer ...@@ -87,15 +89,11 @@ class NoSuchBeanDefinitionFailureAnalyzer
message.append(String.format("%s required %s that could not be found.%n", message.append(String.format("%s required %s that could not be found.%n",
(description != null ? description : "A component"), (description != null ? description : "A component"),
getBeanDescription(cause))); getBeanDescription(cause)));
if (!autoConfigurationResults.isEmpty()) { for (AutoConfigurationResult result : autoConfigurationResults) {
for (AutoConfigurationResult result : autoConfigurationResults) { message.append(String.format("\t- %s%n", result));
message.append(String.format("\t- %s%n", result));
}
} }
if (!userConfigurationResults.isEmpty()) { for (UserConfigurationResult result : userConfigurationResults) {
for (UserConfigurationResult result : userConfigurationResults) { message.append(String.format("\t- %s%n", result));
message.append(String.format("\t- %s%n", result));
}
} }
String action = String.format("Consider %s %s in your configuration.", String action = String.format("Consider %s %s in your configuration.",
(!autoConfigurationResults.isEmpty() (!autoConfigurationResults.isEmpty()
...@@ -136,18 +134,17 @@ class NoSuchBeanDefinitionFailureAnalyzer ...@@ -136,18 +134,17 @@ class NoSuchBeanDefinitionFailureAnalyzer
private List<UserConfigurationResult> getUserConfigurationResults( private List<UserConfigurationResult> getUserConfigurationResults(
NoSuchBeanDefinitionException cause) { NoSuchBeanDefinitionException cause) {
List<UserConfigurationResult> results = new ArrayList<>();
ResolvableType type = cause.getResolvableType(); ResolvableType type = cause.getResolvableType();
if (type != null) { if (type == null) {
for (String beanName : BeanFactoryUtils.beanNamesForTypeIncludingAncestors( return Collections.emptyList();
this.beanFactory, cause.getResolvableType())) {
boolean nullBean = this.beanFactory.getBean(beanName).equals(null);
results.add(new UserConfigurationResult(
getFactoryMethodMetadata(beanName), nullBean));
}
} }
return results; String[] beanNames = BeanFactoryUtils
.beanNamesForTypeIncludingAncestors(this.beanFactory, type);
return Arrays.stream(beanNames)
.map((beanName) -> new UserConfigurationResult(
getFactoryMethodMetadata(beanName),
this.beanFactory.getBean(beanName).equals(null)))
.collect(Collectors.toList());
} }
private MethodMetadata getFactoryMethodMetadata(String beanName) { private MethodMetadata getFactoryMethodMetadata(String beanName) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment