use of org.springframework.boot.actuate.endpoint.web.WebOperation in project spring-boot by spring-projects.
the class ReactiveCloudFoundryActuatorAutoConfigurationTests method endpointPathCustomizationIsNotApplied.
@Test
void endpointPathCustomizationIsNotApplied() {
this.contextRunner.withBean(TestEndpoint.class, TestEndpoint::new).withPropertyValues("VCAP_APPLICATION:---", "vcap.application.application_id:my-app-id", "vcap.application.cf_api:https://my-cloud-controller.com").run((context) -> {
CloudFoundryWebFluxEndpointHandlerMapping handlerMapping = getHandlerMapping(context);
Collection<ExposableWebEndpoint> endpoints = handlerMapping.getEndpoints();
ExposableWebEndpoint endpoint = endpoints.stream().filter((candidate) -> EndpointId.of("test").equals(candidate.getEndpointId())).findFirst().get();
assertThat(endpoint.getOperations()).hasSize(1);
WebOperation operation = endpoint.getOperations().iterator().next();
assertThat(operation.getRequestPredicate().getPath()).isEqualTo("test");
});
}
use of org.springframework.boot.actuate.endpoint.web.WebOperation in project spring-boot by spring-projects.
the class CloudFoundryActuatorAutoConfigurationTests method healthEndpointInvokerShouldBeCloudFoundryWebExtension.
@Test
void healthEndpointInvokerShouldBeCloudFoundryWebExtension() {
this.contextRunner.withPropertyValues("VCAP_APPLICATION:---", "vcap.application.application_id:my-app-id", "vcap.application.cf_api:https://my-cloud-controller.com").withConfiguration(AutoConfigurations.of(HealthContributorAutoConfiguration.class, HealthEndpointAutoConfiguration.class)).run((context) -> {
Collection<ExposableWebEndpoint> endpoints = context.getBean("cloudFoundryWebEndpointServletHandlerMapping", CloudFoundryWebEndpointServletHandlerMapping.class).getEndpoints();
ExposableWebEndpoint endpoint = endpoints.iterator().next();
assertThat(endpoint.getOperations()).hasSize(2);
WebOperation webOperation = findOperationWithRequestPath(endpoint, "health");
assertThat(webOperation).extracting("invoker.target").isInstanceOf(CloudFoundryHealthEndpointWebExtension.class);
});
}
use of org.springframework.boot.actuate.endpoint.web.WebOperation in project spring-boot by spring-projects.
the class AdditionalHealthEndpointPathsWebFluxHandlerMapping method initHandlerMethods.
@Override
protected void initHandlerMethods() {
for (WebOperation operation : this.endpoint.getOperations()) {
WebOperationRequestPredicate predicate = operation.getRequestPredicate();
String matchAllRemainingPathSegmentsVariable = predicate.getMatchAllRemainingPathSegmentsVariable();
if (matchAllRemainingPathSegmentsVariable != null) {
for (HealthEndpointGroup group : this.groups) {
AdditionalHealthEndpointPath additionalPath = group.getAdditionalPath();
if (additionalPath != null) {
RequestMappingInfo requestMappingInfo = getRequestMappingInfo(operation, additionalPath.getValue());
registerReadMapping(requestMappingInfo, this.endpoint, operation);
}
}
}
}
}
Aggregations