From 51d4e885371dbc80b969b2f13a56d0114864b770 Mon Sep 17 00:00:00 2001 From: Rocky Shang Date: Fri, 12 May 2017 17:30:04 +0800 Subject: [PATCH 1/2] Display unconditional classes in auto-config endpoint Closes gh-9227 --- .../endpoint/AutoConfigurationReportEndpoint.java | 10 +++++++++- .../endpoint/AutoConfigurationReportEndpointTests.java | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpoint.java index c4f8c8542f2..8f3a918ef40 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpoint.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; @@ -64,7 +65,7 @@ public class AutoConfigurationReportEndpoint extends AbstractEndpoint { /** * Adapts {@link ConditionEvaluationReport} to a JSON friendly structure. */ - @JsonPropertyOrder({ "positiveMatches", "negativeMatches", "exclusions" }) + @JsonPropertyOrder({ "positiveMatches", "negativeMatches", "exclusions", "unconditionalClasses" }) @JsonInclude(Include.NON_EMPTY) public static class Report { @@ -74,12 +75,15 @@ public class AutoConfigurationReportEndpoint extends AbstractEndpoint { private final List exclusions; + private final Set unconditionalClasses; + private final Report parent; public Report(ConditionEvaluationReport report) { this.positiveMatches = new LinkedMultiValueMap<>(); this.negativeMatches = new LinkedHashMap<>(); this.exclusions = report.getExclusions(); + this.unconditionalClasses = report.getUnconditionalClasses(); for (Map.Entry entry : report .getConditionAndOutcomesBySource().entrySet()) { if (entry.getValue().isFullMatch()) { @@ -119,6 +123,10 @@ public class AutoConfigurationReportEndpoint extends AbstractEndpoint { return this.exclusions; } + public Set getUnconditionalClasses() { + return this.unconditionalClasses; + } + public Report getParent() { return this.parent; } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java index 71221802e28..f4a7c31f64c 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java @@ -58,6 +58,7 @@ public class AutoConfigurationReportEndpointTests Report report = getEndpointBean().invoke(); assertThat(report.getPositiveMatches()).isEmpty(); assertThat(report.getNegativeMatches()).containsKey("a"); + assertThat(report.getUnconditionalClasses()).contains("b"); assertThat(report.getExclusions()).contains("com.foo.Bar"); } @@ -75,6 +76,7 @@ public class AutoConfigurationReportEndpointTests public void setupAutoConfigurationReport() { ConditionEvaluationReport report = ConditionEvaluationReport .get(this.context.getBeanFactory()); + report.recordEvaluationCandidates(Arrays.asList("a", "b")); report.recordConditionEvaluation("a", mock(Condition.class), mock(ConditionOutcome.class)); report.recordExclusions(Arrays.asList("com.foo.Bar")); From 895f06fdfa4e2ce75cc8479bd0a69c4a31f6c64a Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 23 May 2017 15:23:38 +0200 Subject: [PATCH 2/2] Polish --- .../actuate/endpoint/AutoConfigurationReportEndpointTests.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java index f4a7c31f64c..839fe417eee 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/AutoConfigurationReportEndpointTests.java @@ -17,6 +17,7 @@ package org.springframework.boot.actuate.endpoint; import java.util.Arrays; +import java.util.Collections; import javax.annotation.PostConstruct; @@ -79,7 +80,7 @@ public class AutoConfigurationReportEndpointTests report.recordEvaluationCandidates(Arrays.asList("a", "b")); report.recordConditionEvaluation("a", mock(Condition.class), mock(ConditionOutcome.class)); - report.recordExclusions(Arrays.asList("com.foo.Bar")); + report.recordExclusions(Collections.singletonList("com.foo.Bar")); } @Bean