Make HealthMvcEndpoint conditional on missing bean
This commit is contained in:
parent
9e2d54feae
commit
3fe0b844a6
|
@ -158,6 +158,7 @@ public class EndpointWebMvcManagementContextConfiguration {
|
|||
|
||||
@Bean
|
||||
@ConditionalOnBean(HealthEndpoint.class)
|
||||
@ConditionalOnMissingBean
|
||||
@ConditionalOnEnabledEndpoint("health")
|
||||
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate,
|
||||
ManagementServerProperties managementServerProperties) {
|
||||
|
|
|
@ -16,11 +16,15 @@
|
|||
|
||||
package org.springframework.boot.actuate.autoconfigure;
|
||||
|
||||
import java.security.Principal;
|
||||
import java.util.Arrays;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.boot.actuate.endpoint.HealthEndpoint;
|
||||
import org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint;
|
||||
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
|
||||
import org.springframework.boot.actuate.health.Health;
|
||||
|
@ -100,6 +104,18 @@ public class HealthMvcEndpointAutoConfigurationTests {
|
|||
.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
|
||||
@ImportAutoConfiguration({ SecurityAutoConfiguration.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 {
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue