Skip to content

Commit 1a9a1d4

Browse files
committed
improving actuator docs
1 parent 1f128e8 commit 1a9a1d4

File tree

46 files changed

+1033
-1086
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1033
-1086
lines changed

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java

+26-7
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
import java.util.concurrent.Executors;
5050
import java.util.concurrent.locks.Lock;
5151
import java.util.concurrent.locks.ReentrantLock;
52+
import java.util.regex.Matcher;
53+
import java.util.regex.Pattern;
5254
import java.util.stream.Collectors;
5355

5456
import com.fasterxml.jackson.annotation.JsonView;
@@ -213,6 +215,12 @@ public abstract class AbstractOpenApiResource extends SpecFilter {
213215
*/
214216
private final Lock reentrantLock = new ReentrantLock();
215217

218+
/**
219+
* The Path pattern.
220+
*/
221+
private final Pattern pathPattern = Pattern.compile("\\{(.*?)}");
222+
223+
216224
/**
217225
* Instantiates a new Abstract open api resource.
218226
*
@@ -626,7 +634,18 @@ protected void calculatePath(HandlerMethod handlerMethod, RouterOperation router
626634
operation = customizeOperation(operation, handlerMethod);
627635

628636
PathItem pathItemObject = buildPathItem(requestMethod, operation, operationPath, paths);
629-
paths.addPathItem(operationPath, pathItemObject);
637+
638+
if (!StringUtils.contains(operationPath, "**")) {
639+
if(StringUtils.contains(operationPath,"*")){
640+
Matcher matcher = pathPattern.matcher(operationPath);
641+
while (matcher.find()) {
642+
String pathParam = matcher.group(1);
643+
String newPathParam = pathParam.replace("*", "");
644+
operationPath = operationPath.replace("{" + pathParam + "}", "{" + newPathParam + "}");
645+
}
646+
}
647+
paths.addPathItem(operationPath, pathItemObject);
648+
}
630649
}
631650
}
632651

@@ -751,9 +770,9 @@ protected void calculatePath(RouterOperation routerOperation, Locale locale, Ope
751770
* @return the router operation
752771
*/
753772
private RouterOperation customizeDataRestRouterOperation(RouterOperation routerOperation) {
754-
Optional<List<DataRestRouterOperationCustomizer>> optionalDataRestRouterOperationCustomizers = springDocCustomizers.getDataRestRouterOperationCustomizers();
773+
Optional<Set<DataRestRouterOperationCustomizer>> optionalDataRestRouterOperationCustomizers = springDocCustomizers.getDataRestRouterOperationCustomizers();
755774
if (optionalDataRestRouterOperationCustomizers.isPresent()) {
756-
List<DataRestRouterOperationCustomizer> dataRestRouterOperationCustomizerList = optionalDataRestRouterOperationCustomizers.get();
775+
Set<DataRestRouterOperationCustomizer> dataRestRouterOperationCustomizerList = optionalDataRestRouterOperationCustomizers.get();
757776
for (DataRestRouterOperationCustomizer dataRestRouterOperationCustomizer : dataRestRouterOperationCustomizerList) {
758777
routerOperation = dataRestRouterOperationCustomizer.customize(routerOperation);
759778
}
@@ -977,9 +996,9 @@ protected Set<RequestMethod> getDefaultAllowedHttpMethods() {
977996
* @return the operation
978997
*/
979998
protected Operation customizeOperation(Operation operation, HandlerMethod handlerMethod) {
980-
Optional<List<OperationCustomizer>> optionalOperationCustomizers = springDocCustomizers.getOperationCustomizers();
999+
Optional<Set<OperationCustomizer>> optionalOperationCustomizers = springDocCustomizers.getOperationCustomizers();
9811000
if (optionalOperationCustomizers.isPresent()) {
982-
List<OperationCustomizer> operationCustomizerList = optionalOperationCustomizers.get();
1001+
Set<OperationCustomizer> operationCustomizerList = optionalOperationCustomizers.get();
9831002
for (OperationCustomizer operationCustomizer : operationCustomizerList)
9841003
operation = operationCustomizer.customize(operation, handlerMethod);
9851004
}
@@ -994,9 +1013,9 @@ protected Operation customizeOperation(Operation operation, HandlerMethod handle
9941013
* @return the router operation
9951014
*/
9961015
protected RouterOperation customizeRouterOperation(RouterOperation routerOperation, HandlerMethod handlerMethod) {
997-
Optional<List<RouterOperationCustomizer>> optionalRouterOperationCustomizers = springDocCustomizers.getRouterOperationCustomizers();
1016+
Optional<Set<RouterOperationCustomizer>> optionalRouterOperationCustomizers = springDocCustomizers.getRouterOperationCustomizers();
9981017
if (optionalRouterOperationCustomizers.isPresent()) {
999-
List<RouterOperationCustomizer> routerOperationCustomizerList = optionalRouterOperationCustomizers.get();
1018+
Set<RouterOperationCustomizer> routerOperationCustomizerList = optionalRouterOperationCustomizers.get();
10001019
for (RouterOperationCustomizer routerOperationCustomizer : routerOperationCustomizerList) {
10011020
routerOperation = routerOperationCustomizer.customize(routerOperation, handlerMethod);
10021021
}

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocConfiguration.java

+8-20
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.Locale;
3232
import java.util.Map;
3333
import java.util.Optional;
34+
import java.util.Set;
3435

3536
import com.fasterxml.jackson.databind.node.ObjectNode;
3637
import com.querydsl.core.types.Predicate;
@@ -54,7 +55,6 @@
5455
import org.springdoc.core.converters.ResponseSupportConverter;
5556
import org.springdoc.core.converters.SchemaPropertyDeprecatingConverter;
5657
import org.springdoc.core.converters.WebFluxSupportConverter;
57-
import org.springdoc.core.customizers.ActuatorOpenApiCustomizer;
5858
import org.springdoc.core.customizers.ActuatorOperationCustomizer;
5959
import org.springdoc.core.customizers.DataRestRouterOperationCustomizer;
6060
import org.springdoc.core.customizers.DelegatingMethodParameterCustomizer;
@@ -483,19 +483,6 @@ GlobalOperationCustomizer actuatorCustomizer(SpringDocConfigProperties springDoc
483483
return new ActuatorOperationCustomizer(springDocConfigProperties);
484484
}
485485

486-
/**
487-
* Actuator customizer OpenAPI customiser.
488-
*
489-
* @param webEndpointProperties the web endpoint properties
490-
* @return the OpenAPI customiser
491-
*/
492-
@Bean
493-
@Lazy(false)
494-
@ConditionalOnManagementPort(ManagementPortType.SAME)
495-
GlobalOpenApiCustomizer actuatorOpenApiCustomizer(WebEndpointProperties webEndpointProperties) {
496-
return new ActuatorOpenApiCustomizer(webEndpointProperties);
497-
}
498-
499486
}
500487

501488
/**
@@ -612,12 +599,13 @@ public ResponseEntity<ErrorMessage> handleNoHandlerFound(OpenApiResourceNotFound
612599
@Bean
613600
@ConditionalOnMissingBean
614601
@Lazy(false)
615-
public SpringDocCustomizers springDocCustomizers(Optional<List<OpenApiCustomizer>> openApiCustomizers,
616-
Optional<List<OperationCustomizer>> operationCustomizers,
617-
Optional<List<RouterOperationCustomizer>> routerOperationCustomizers,
618-
Optional<List<DataRestRouterOperationCustomizer>> dataRestRouterOperationCustomizers,
619-
Optional<List<OpenApiMethodFilter>> methodFilters, Optional<List<GlobalOpenApiCustomizer>> globalOpenApiCustomizers, Optional<List<GlobalOperationCustomizer>> globalOperationCustomizers,
620-
Optional<List<GlobalOpenApiMethodFilter>> globalOpenApiMethodFilters){
602+
public SpringDocCustomizers springDocCustomizers(Optional<Set<OpenApiCustomizer>> openApiCustomizers,
603+
Optional<Set<OperationCustomizer>> operationCustomizers,
604+
Optional<Set<RouterOperationCustomizer>> routerOperationCustomizers,
605+
Optional<Set<DataRestRouterOperationCustomizer>> dataRestRouterOperationCustomizers,
606+
Optional<Set<OpenApiMethodFilter>> methodFilters, Optional<Set<GlobalOpenApiCustomizer>> globalOpenApiCustomizers,
607+
Optional<Set<GlobalOperationCustomizer>> globalOperationCustomizers,
608+
Optional<Set<GlobalOpenApiMethodFilter>> globalOpenApiMethodFilters){
621609
return new SpringDocCustomizers(openApiCustomizers,
622610
operationCustomizers,
623611
routerOperationCustomizers,

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinConfiguration.kt

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.springdoc.core.configuration
22

33
import io.swagger.v3.oas.annotations.Parameter
4-
import io.swagger.v3.oas.models.media.ByteArraySchema
54
import org.springdoc.core.customizers.ParameterCustomizer
65
import org.springdoc.core.parsers.KotlinCoroutinesReturnTypeParser
76
import org.springdoc.core.utils.Constants

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springdoc.core.converters.PageOpenAPIConverter;
3030
import org.springdoc.core.converters.PageableOpenAPIConverter;
3131
import org.springdoc.core.customizers.DataRestDelegatingMethodParameterCustomizer;
32-
import org.springdoc.core.customizers.DelegatingMethodParameterCustomizer;
3332
import org.springdoc.core.providers.ObjectMapperProvider;
3433
import org.springdoc.core.providers.RepositoryRestConfigurationProvider;
3534
import org.springdoc.core.providers.SpringDataWebPropertiesProvider;

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocSecurityOAuth2Customizer.java

-6
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
import io.swagger.v3.core.util.AnnotationsUtils;
66
import io.swagger.v3.oas.annotations.enums.ParameterIn;
7-
import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
8-
import io.swagger.v3.oas.annotations.security.SecurityRequirements;
97
import io.swagger.v3.oas.models.OpenAPI;
108
import io.swagger.v3.oas.models.Operation;
119
import io.swagger.v3.oas.models.PathItem;
@@ -24,10 +22,6 @@
2422
import io.swagger.v3.oas.models.parameters.RequestBody;
2523
import io.swagger.v3.oas.models.responses.ApiResponse;
2624
import io.swagger.v3.oas.models.responses.ApiResponses;
27-
import io.swagger.v3.oas.models.security.SecurityRequirement;
28-
import io.swagger.v3.oas.models.security.SecurityScheme;
29-
import io.swagger.v3.oas.models.security.SecurityScheme.In;
30-
import io.swagger.v3.oas.models.security.SecurityScheme.Type;
3125
import org.apache.commons.lang3.reflect.FieldUtils;
3226
import org.slf4j.Logger;
3327
import org.slf4j.LoggerFactory;

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocSortConfiguration.java

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.springdoc.core.converters.SortOpenAPIConverter;
3030
import org.springdoc.core.converters.models.SortObject;
3131
import org.springdoc.core.customizers.DataRestDelegatingMethodParameterCustomizer;
32-
import org.springdoc.core.customizers.DelegatingMethodParameterCustomizer;
3332
import org.springdoc.core.providers.ObjectMapperProvider;
3433
import org.springdoc.core.providers.RepositoryRestConfigurationProvider;
3534
import org.springdoc.core.providers.SpringDataWebPropertiesProvider;

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configurer/SpringdocActuatorBeanFactoryConfigurer.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.util.ArrayList;
2828
import java.util.List;
2929

30-
import org.springdoc.core.customizers.ActuatorOpenApiCustomizer;
3130
import org.springdoc.core.customizers.ActuatorOperationCustomizer;
3231
import org.springdoc.core.models.GroupedOpenApi;
3332
import org.springdoc.core.properties.SpringDocConfigProperties;
@@ -76,9 +75,7 @@ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
7675
WebEndpointProperties webEndpointProperties = result.get();
7776
SpringDocConfigProperties springDocConfigProperties = springDocConfigPropertiesBindResult.get();
7877
List<GroupedOpenApi> newGroups = new ArrayList<>();
79-
80-
ActuatorOpenApiCustomizer actuatorOpenApiCustomizer = new ActuatorOpenApiCustomizer(webEndpointProperties);
81-
beanFactory.registerSingleton("actuatorOpenApiCustomizer", actuatorOpenApiCustomizer);
78+
8279
ActuatorOperationCustomizer actuatorCustomizer = new ActuatorOperationCustomizer(springDocConfigProperties);
8380
beanFactory.registerSingleton("actuatorCustomizer", actuatorCustomizer);
8481

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/ActuatorOpenApiCustomizer.java

-124
This file was deleted.

0 commit comments

Comments
 (0)