34 changed files with 363 additions and 187 deletions
0
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java → spring-boot-project/spring-boot-actuator-autoconfigure/src/testFixtures/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java
0
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java → spring-boot-project/spring-boot-actuator-autoconfigure/src/testFixtures/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java
@ -0,0 +1,53 @@
@@ -0,0 +1,53 @@
|
||||
/* |
||||
* Copyright 2012-present the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.jersey.actuate.autoconfigure.endpoint.web; |
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; |
||||
import org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration; |
||||
import org.springframework.boot.actuate.endpoint.EndpointAccessResolver; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; |
||||
import org.springframework.boot.jersey.autoconfigure.JerseyApplicationPath; |
||||
import org.springframework.context.annotation.Bean; |
||||
|
||||
/** |
||||
* {@link ManagementContextConfiguration @ManagementContextConfiguration} for Jetty |
||||
* endpoints. |
||||
* |
||||
* @author Phillip Webb |
||||
* @author Andy Wilkinson |
||||
* @author Madhura Bhave |
||||
* @since 4.0.0 |
||||
*/ |
||||
@ManagementContextConfiguration(proxyBeanMethods = false) |
||||
@ConditionalOnWebApplication(type = Type.SERVLET) |
||||
@ConditionalOnMissingClass("org.springframework.web.servlet.DispatcherServlet") |
||||
public class JerseyEndpointManagementContextConfiguration { |
||||
|
||||
@Bean |
||||
@SuppressWarnings("removal") |
||||
public org.springframework.boot.actuate.endpoint.web.ServletEndpointRegistrar servletEndpointRegistrar( |
||||
WebEndpointProperties properties, |
||||
org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier servletEndpointsSupplier, |
||||
JerseyApplicationPath jerseyApplicationPath, EndpointAccessResolver endpointAccessResolver) { |
||||
return new org.springframework.boot.actuate.endpoint.web.ServletEndpointRegistrar( |
||||
jerseyApplicationPath.getRelativePath(properties.getBasePath()), |
||||
servletEndpointsSupplier.getEndpoints(), endpointAccessResolver); |
||||
} |
||||
|
||||
} |
||||
8
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/jersey/JerseyWebEndpointManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyWebEndpointManagementContextConfiguration.java
8
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/jersey/JerseyWebEndpointManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyWebEndpointManagementContextConfiguration.java
@ -0,0 +1,147 @@
@@ -0,0 +1,147 @@
|
||||
/* |
||||
* Copyright 2012-present the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.jersey.actuate.autoconfigure.health; |
||||
|
||||
import java.util.Collection; |
||||
import java.util.Collections; |
||||
import java.util.HashSet; |
||||
import java.util.Objects; |
||||
|
||||
import org.glassfish.jersey.server.ResourceConfig; |
||||
import org.glassfish.jersey.server.model.Resource; |
||||
import org.glassfish.jersey.servlet.ServletContainer; |
||||
|
||||
import org.springframework.beans.factory.ObjectProvider; |
||||
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; |
||||
import org.springframework.boot.actuate.autoconfigure.endpoint.expose.EndpointExposure; |
||||
import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration; |
||||
import org.springframework.boot.actuate.endpoint.web.EndpointMapping; |
||||
import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint; |
||||
import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier; |
||||
import org.springframework.boot.actuate.endpoint.web.WebServerNamespace; |
||||
import org.springframework.boot.actuate.health.HealthEndpoint; |
||||
import org.springframework.boot.actuate.health.HealthEndpointGroups; |
||||
import org.springframework.boot.autoconfigure.AutoConfiguration; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; |
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties; |
||||
import org.springframework.boot.jersey.actuate.endpoint.web.JerseyHealthEndpointAdditionalPathResourceFactory; |
||||
import org.springframework.boot.jersey.autoconfigure.DefaultJerseyApplicationPath; |
||||
import org.springframework.boot.jersey.autoconfigure.JerseyApplicationPath; |
||||
import org.springframework.boot.jersey.autoconfigure.JerseyProperties; |
||||
import org.springframework.boot.jersey.autoconfigure.ResourceConfigCustomizer; |
||||
import org.springframework.boot.web.servlet.ServletRegistrationBean; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
/** |
||||
* Auto-Configuration for {@link HealthEndpoint} Jersey extension. |
||||
* |
||||
* @author Phillip Webb |
||||
* @author Madhura Bhave |
||||
* @since 4.0.0 |
||||
* @see HealthEndpointAutoConfiguration |
||||
*/ |
||||
@AutoConfiguration |
||||
@ConditionalOnWebApplication(type = Type.SERVLET) |
||||
@ConditionalOnBean(HealthEndpoint.class) |
||||
@ConditionalOnAvailableEndpoint(endpoint = HealthEndpoint.class, exposure = EndpointExposure.WEB) |
||||
@ConditionalOnMissingClass("org.springframework.web.servlet.DispatcherServlet") |
||||
public class HealthEndpointJerseyExtensionAutoConfiguration { |
||||
|
||||
@Bean |
||||
JerseyAdditionalHealthEndpointPathsResourcesRegistrar jerseyAdditionalHealthEndpointPathsResourcesRegistrar( |
||||
WebEndpointsSupplier webEndpointsSupplier, HealthEndpointGroups healthEndpointGroups) { |
||||
ExposableWebEndpoint health = getHealthEndpoint(webEndpointsSupplier); |
||||
return new JerseyAdditionalHealthEndpointPathsResourcesRegistrar(health, healthEndpointGroups); |
||||
} |
||||
|
||||
private static ExposableWebEndpoint getHealthEndpoint(WebEndpointsSupplier webEndpointsSupplier) { |
||||
Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints(); |
||||
return webEndpoints.stream() |
||||
.filter((endpoint) -> endpoint.getEndpointId().equals(HealthEndpoint.ID)) |
||||
.findFirst() |
||||
.orElse(null); |
||||
} |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
@ConditionalOnMissingBean(ResourceConfig.class) |
||||
@EnableConfigurationProperties(JerseyProperties.class) |
||||
static class JerseyInfrastructureConfiguration { |
||||
|
||||
@Bean |
||||
@ConditionalOnMissingBean |
||||
JerseyApplicationPath jerseyApplicationPath(JerseyProperties properties, ResourceConfig config) { |
||||
return new DefaultJerseyApplicationPath(properties.getApplicationPath(), config); |
||||
} |
||||
|
||||
@Bean |
||||
ResourceConfig resourceConfig(ObjectProvider<ResourceConfigCustomizer> resourceConfigCustomizers) { |
||||
ResourceConfig resourceConfig = new ResourceConfig(); |
||||
resourceConfigCustomizers.orderedStream().forEach((customizer) -> customizer.customize(resourceConfig)); |
||||
return resourceConfig; |
||||
} |
||||
|
||||
@Bean |
||||
ServletRegistrationBean<ServletContainer> jerseyServletRegistration(JerseyApplicationPath jerseyApplicationPath, |
||||
ResourceConfig resourceConfig) { |
||||
return new ServletRegistrationBean<>(new ServletContainer(resourceConfig), |
||||
jerseyApplicationPath.getUrlMapping()); |
||||
} |
||||
|
||||
} |
||||
|
||||
static class JerseyAdditionalHealthEndpointPathsResourcesRegistrar implements ResourceConfigCustomizer { |
||||
|
||||
private final ExposableWebEndpoint endpoint; |
||||
|
||||
private final HealthEndpointGroups groups; |
||||
|
||||
JerseyAdditionalHealthEndpointPathsResourcesRegistrar(ExposableWebEndpoint endpoint, |
||||
HealthEndpointGroups groups) { |
||||
this.endpoint = endpoint; |
||||
this.groups = groups; |
||||
} |
||||
|
||||
@Override |
||||
public void customize(ResourceConfig config) { |
||||
register(config); |
||||
} |
||||
|
||||
private void register(ResourceConfig config) { |
||||
EndpointMapping mapping = new EndpointMapping(""); |
||||
JerseyHealthEndpointAdditionalPathResourceFactory resourceFactory = new JerseyHealthEndpointAdditionalPathResourceFactory( |
||||
WebServerNamespace.SERVER, this.groups); |
||||
Collection<Resource> endpointResources = resourceFactory |
||||
.createEndpointResources(mapping, |
||||
(this.endpoint != null) ? Collections.singletonList(this.endpoint) : Collections.emptyList()) |
||||
.stream() |
||||
.filter(Objects::nonNull) |
||||
.toList(); |
||||
register(endpointResources, config); |
||||
} |
||||
|
||||
private void register(Collection<Resource> resources, ResourceConfig config) { |
||||
config.registerResources(new HashSet<>(resources)); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-present the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
/** |
||||
* Auto-configuration for actuator health concerns. |
||||
*/ |
||||
package org.springframework.boot.jersey.actuate.autoconfigure.health; |
||||
2
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/JerseyChildManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/JerseyChildManagementContextConfiguration.java
2
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/JerseyChildManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/JerseyChildManagementContextConfiguration.java
2
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/JerseyManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/JerseyManagementContextConfiguration.java
2
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/JerseyManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/JerseyManagementContextConfiguration.java
2
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/JerseySameManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/JerseySameManagementContextConfiguration.java
2
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/JerseySameManagementContextConfiguration.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/JerseySameManagementContextConfiguration.java
4
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/ManagementContextResourceConfigCustomizer.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/ManagementContextResourceConfigCustomizer.java
4
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/web/jersey/ManagementContextResourceConfigCustomizer.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/autoconfigure/web/ManagementContextResourceConfigCustomizer.java
2
spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/jersey/JerseyHealthEndpointAdditionalPathResourceFactory.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/endpoint/web/JerseyHealthEndpointAdditionalPathResourceFactory.java
2
spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/jersey/JerseyHealthEndpointAdditionalPathResourceFactory.java → spring-boot-project/spring-boot-jersey/src/main/java/org/springframework/boot/jersey/actuate/endpoint/web/JerseyHealthEndpointAdditionalPathResourceFactory.java
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
org.springframework.boot.jersey.actuate.autoconfigure.endpoint.web.JerseyEndpointManagementContextConfiguration |
||||
org.springframework.boot.jersey.actuate.autoconfigure.endpoint.web.JerseyWebEndpointManagementContextConfiguration |
||||
org.springframework.boot.jersey.actuate.autoconfigure.web.JerseySameManagementContextConfiguration |
||||
org.springframework.boot.jersey.actuate.autoconfigure.web.JerseyChildManagementContextConfiguration |
||||
|
||||
@ -1 +1,2 @@
@@ -1 +1,2 @@
|
||||
org.springframework.boot.jersey.actuate.autoconfigure.health.HealthEndpointJerseyExtensionAutoConfiguration |
||||
org.springframework.boot.jersey.autoconfigure.JerseyAutoConfiguration |
||||
|
||||
23
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/ServletEndpointManagementContextConfigurationTests.java → spring-boot-project/spring-boot-jersey/src/test/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyEndpointManagementContextConfigurationTests.java
23
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/ServletEndpointManagementContextConfigurationTests.java → spring-boot-project/spring-boot-jersey/src/test/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyEndpointManagementContextConfigurationTests.java
7
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/jersey/JerseyWebEndpointIntegrationTests.java → spring-boot-project/spring-boot-jersey/src/test/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyWebEndpointIntegrationTests.java
7
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/jersey/JerseyWebEndpointIntegrationTests.java → spring-boot-project/spring-boot-jersey/src/test/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyWebEndpointIntegrationTests.java
6
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/jersey/JerseyWebEndpointManagementContextConfigurationTests.java → spring-boot-project/spring-boot-jersey/src/test/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyWebEndpointManagementContextConfigurationTests.java
6
spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/jersey/JerseyWebEndpointManagementContextConfigurationTests.java → spring-boot-project/spring-boot-jersey/src/test/java/org/springframework/boot/jersey/actuate/autoconfigure/endpoint/web/JerseyWebEndpointManagementContextConfigurationTests.java
@ -0,0 +1,90 @@
@@ -0,0 +1,90 @@
|
||||
/* |
||||
* Copyright 2012-present the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.jersey.actuate.autoconfigure.health; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
import reactor.core.publisher.Mono; |
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration; |
||||
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.WithTestEndpointOutcomeExposureContributor; |
||||
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration; |
||||
import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; |
||||
import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration; |
||||
import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier; |
||||
import org.springframework.boot.actuate.health.Health; |
||||
import org.springframework.boot.actuate.health.HealthEndpoint; |
||||
import org.springframework.boot.actuate.health.HealthEndpointWebExtension; |
||||
import org.springframework.boot.actuate.health.HealthIndicator; |
||||
import org.springframework.boot.actuate.health.ReactiveHealthIndicator; |
||||
import org.springframework.boot.autoconfigure.AutoConfigurations; |
||||
import org.springframework.boot.jersey.actuate.autoconfigure.health.HealthEndpointJerseyExtensionAutoConfiguration.JerseyAdditionalHealthEndpointPathsResourcesRegistrar; |
||||
import org.springframework.boot.test.context.runner.WebApplicationContextRunner; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link HealthEndpointJerseyExtensionAutoConfiguration}. |
||||
* |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
class HealthEndpointJerseyExtensionAutoConfigurationTests { |
||||
|
||||
private final WebApplicationContextRunner contextRunner = new WebApplicationContextRunner() |
||||
.withUserConfiguration(HealthIndicatorsConfiguration.class) |
||||
.withConfiguration(AutoConfigurations.of(HealthContributorAutoConfiguration.class, |
||||
HealthEndpointAutoConfiguration.class, HealthEndpointJerseyExtensionAutoConfiguration.class)); |
||||
|
||||
@Test |
||||
@WithTestEndpointOutcomeExposureContributor |
||||
void additionalJerseyHealthEndpointsPathsTolerateHealthEndpointThatIsNotWebExposed() { |
||||
this.contextRunner |
||||
.withConfiguration( |
||||
AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class)) |
||||
.withPropertyValues("management.endpoints.web.exposure.exclude=*", |
||||
"management.endpoints.test.exposure.include=*") |
||||
.run((context) -> { |
||||
assertThat(context).hasNotFailed(); |
||||
assertThat(context).hasSingleBean(HealthEndpoint.class); |
||||
assertThat(context).hasSingleBean(HealthEndpointWebExtension.class); |
||||
assertThat(context.getBean(WebEndpointsSupplier.class).getEndpoints()).isEmpty(); |
||||
assertThat(context).hasSingleBean(JerseyAdditionalHealthEndpointPathsResourcesRegistrar.class); |
||||
}); |
||||
} |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
static class HealthIndicatorsConfiguration { |
||||
|
||||
@Bean |
||||
HealthIndicator simpleHealthIndicator() { |
||||
return () -> Health.up().withDetail("counter", 42).build(); |
||||
} |
||||
|
||||
@Bean |
||||
HealthIndicator additionalHealthIndicator() { |
||||
return () -> Health.up().build(); |
||||
} |
||||
|
||||
@Bean |
||||
ReactiveHealthIndicator reactiveHealthIndicator() { |
||||
return () -> Mono.just(Health.up().build()); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue