Make HealthMvcEndpoint conditional on missing bean
This commit is contained in:
parent
9e2d54feae
commit
3fe0b844a6
|
@ -158,6 +158,7 @@ public class EndpointWebMvcManagementContextConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean(HealthEndpoint.class)
|
@ConditionalOnBean(HealthEndpoint.class)
|
||||||
|
@ConditionalOnMissingBean
|
||||||
@ConditionalOnEnabledEndpoint("health")
|
@ConditionalOnEnabledEndpoint("health")
|
||||||
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate,
|
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate,
|
||||||
ManagementServerProperties managementServerProperties) {
|
ManagementServerProperties managementServerProperties) {
|
||||||
|
|
|
@ -16,11 +16,15 @@
|
||||||
|
|
||||||
package org.springframework.boot.actuate.autoconfigure;
|
package org.springframework.boot.actuate.autoconfigure;
|
||||||
|
|
||||||
|
import java.security.Principal;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.springframework.boot.actuate.endpoint.HealthEndpoint;
|
||||||
import org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint;
|
import org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint;
|
||||||
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
|
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
|
||||||
import org.springframework.boot.actuate.health.Health;
|
import org.springframework.boot.actuate.health.Health;
|
||||||
|
@ -100,6 +104,18 @@ public class HealthMvcEndpointAutoConfigurationTests {
|
||||||
.isEqualTo(Arrays.asList("super"));
|
.isEqualTo(Arrays.asList("super"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void endpointConditionalOnMissingBean() throws Exception {
|
||||||
|
this.context = new AnnotationConfigWebApplicationContext();
|
||||||
|
this.context.setServletContext(new MockServletContext());
|
||||||
|
this.context.register(TestConfiguration.class, TestHealthMvcEndpointConfiguration.class);
|
||||||
|
this.context.refresh();
|
||||||
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||||
|
Health health = (Health) this.context.getBean(HealthMvcEndpoint.class)
|
||||||
|
.invoke(request, null);
|
||||||
|
assertThat(health.getDetails()).isNotEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ImportAutoConfiguration({ SecurityAutoConfiguration.class,
|
@ImportAutoConfiguration({ SecurityAutoConfiguration.class,
|
||||||
JacksonAutoConfiguration.class, WebMvcAutoConfiguration.class,
|
JacksonAutoConfiguration.class, WebMvcAutoConfiguration.class,
|
||||||
|
@ -115,6 +131,31 @@ public class HealthMvcEndpointAutoConfigurationTests {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@ImportAutoConfiguration({ SecurityAutoConfiguration.class,
|
||||||
|
JacksonAutoConfiguration.class, WebMvcAutoConfiguration.class,
|
||||||
|
HttpMessageConvertersAutoConfiguration.class, AuditAutoConfiguration.class,
|
||||||
|
EndpointAutoConfiguration.class, EndpointWebMvcAutoConfiguration.class })
|
||||||
|
static class TestHealthMvcEndpointConfiguration {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HealthMvcEndpoint endpoint(HealthEndpoint endpoint) {
|
||||||
|
return new TestHealthMvcEndpoint(endpoint);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class TestHealthMvcEndpoint extends HealthMvcEndpoint {
|
||||||
|
|
||||||
|
TestHealthMvcEndpoint(HealthEndpoint delegate) {
|
||||||
|
super(delegate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean exposeHealthDetails(HttpServletRequest request, Principal principal) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static class TestHealthIndicator extends AbstractHealthIndicator {
|
static class TestHealthIndicator extends AbstractHealthIndicator {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue