From 8bef0a1e603c77e203aa8fa88a6db180b3c6287d Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 16 Jan 2017 11:23:35 +0100 Subject: [PATCH] Polish contribution Closes gh-7905 --- .../actuate/health/LdapHealthIndicator.java | 22 ++++++++++++++----- ...HealthIndicatorAutoConfigurationTests.java | 3 +-- .../health/LdapHealthIndicatorTests.java | 12 ++++++---- .../appendix-application-properties.adoc | 1 + 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/LdapHealthIndicator.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/LdapHealthIndicator.java index 5e0befbd4e..3456b4703b 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/LdapHealthIndicator.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/LdapHealthIndicator.java @@ -27,10 +27,13 @@ import org.springframework.util.Assert; * {@link HealthIndicator} for configured LDAP server(s). * * @author EddĂș MelĂ©ndez + * @author Stephane Nicoll * @version 1.5.0 */ public class LdapHealthIndicator extends AbstractHealthIndicator { + private static final ContextExecutor versionContextExecutor = new VersionContextExecutor(); + private final LdapOperations ldapOperations; public LdapHealthIndicator(LdapOperations ldapOperations) { @@ -40,13 +43,20 @@ public class LdapHealthIndicator extends AbstractHealthIndicator { @Override protected void doHealthCheck(Health.Builder builder) throws Exception { - String version = (String) this.ldapOperations.executeReadOnly(new ContextExecutor() { - @Override - public Object executeWithContext(DirContext ctx) throws NamingException { - return ctx.getEnvironment().get("java.naming.ldap.version"); - } - }); + String version = this.ldapOperations.executeReadOnly(versionContextExecutor); builder.up().withDetail("version", version); } + private static class VersionContextExecutor implements ContextExecutor { + + @Override + public String executeWithContext(DirContext ctx) throws NamingException { + Object version = ctx.getEnvironment().get("java.naming.ldap.version"); + if (version != null) { + return (String) version; + } + return null; + } + } + } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java index 307d39c2d6..9b3a33831d 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfigurationTests.java @@ -641,8 +641,7 @@ public class HealthIndicatorAutoConfigurationTests { @Bean public LdapOperations ldapOperations() { - LdapOperations operations = mock(LdapOperations.class); - return operations; + return mock(LdapOperations.class); } } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/LdapHealthIndicatorTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/LdapHealthIndicatorTests.java index 3ff7de4dd8..5a03f2b003 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/LdapHealthIndicatorTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/LdapHealthIndicatorTests.java @@ -59,13 +59,16 @@ public class LdapHealthIndicatorTests { @Test public void indicatorExist() { - this.context.register(LdapAutoConfiguration.class, LdapDataAutoConfiguration.class, - PropertyPlaceholderAutoConfiguration.class, EndpointAutoConfiguration.class, + this.context.register(LdapAutoConfiguration.class, + LdapDataAutoConfiguration.class, + PropertyPlaceholderAutoConfiguration.class, + EndpointAutoConfiguration.class, HealthIndicatorAutoConfiguration.class); this.context.refresh(); LdapTemplate ldapTemplate = this.context.getBean(LdapTemplate.class); assertThat(ldapTemplate).isNotNull(); - LdapHealthIndicator healthIndicator = this.context.getBean(LdapHealthIndicator.class); + LdapHealthIndicator healthIndicator = this.context.getBean( + LdapHealthIndicator.class); assertThat(healthIndicator).isNotNull(); } @@ -84,7 +87,8 @@ public class LdapHealthIndicatorTests { public void ldapIsDown() { LdapTemplate ldapTemplate = mock(LdapTemplate.class); given(ldapTemplate.executeReadOnly(any(ContextExecutor.class))) - .willThrow(new CommunicationException(new javax.naming.CommunicationException("Connection failed"))); + .willThrow(new CommunicationException( + new javax.naming.CommunicationException("Connection failed"))); LdapHealthIndicator healthIndicator = new LdapHealthIndicator(ldapTemplate); Health health = healthIndicator.health(); assertThat(health.getStatus()).isEqualTo(Status.DOWN); diff --git a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index 38c4a77945..fb0af799b2 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -1114,6 +1114,7 @@ content into your application; rather pick only the properties that you need. management.health.elasticsearch.indices= # Comma-separated index names. management.health.elasticsearch.response-timeout=100 # The time, in milliseconds, to wait for a response from the cluster. management.health.jms.enabled=true # Enable JMS health check. + management.health.ldap.enabled=true # Enable LDAP health check. management.health.mail.enabled=true # Enable Mail health check. management.health.mongo.enabled=true # Enable MongoDB health check. management.health.rabbit.enabled=true # Enable RabbitMQ health check.