30
30
import java .util .stream .Collectors ;
31
31
32
32
import org .springdoc .api .OpenApiResourceNotFoundException ;
33
- import org .springdoc .core .customizers .GlobalOpenApiCustomizer ;
34
- import org .springdoc .core .customizers .GlobalOperationCustomizer ;
35
33
import org .springdoc .core .customizers .SpringDocCustomizers ;
36
- import org .springdoc .core .filters .GlobalOpenApiMethodFilter ;
37
34
import org .springdoc .core .models .GroupedOpenApi ;
38
35
import org .springdoc .core .properties .SpringDocConfigProperties ;
39
36
import org .springdoc .core .properties .SpringDocConfigProperties .GroupConfig ;
43
40
import org .springdoc .core .service .OpenAPIService ;
44
41
import org .springdoc .core .service .OperationService ;
45
42
46
- import org .springframework .beans .BeansException ;
47
43
import org .springframework .beans .factory .InitializingBean ;
48
44
import org .springframework .beans .factory .ObjectFactory ;
49
- import org .springframework .context .ApplicationContext ;
50
- import org .springframework .context .ApplicationContextAware ;
51
45
52
46
import static org .springdoc .core .utils .Constants .ACTUATOR_DEFAULT_GROUP ;
53
47
54
48
/**
55
49
* The type Multiple open api resource.
50
+ *
56
51
* @author bnasslahsen
57
52
*/
58
- public abstract class MultipleOpenApiResource implements InitializingBean , ApplicationContextAware {
53
+ public abstract class MultipleOpenApiResource implements InitializingBean {
59
54
60
55
/**
61
56
* The Grouped open apis.
@@ -93,14 +88,15 @@ public abstract class MultipleOpenApiResource implements InitializingBean, Appli
93
88
private final SpringDocProviders springDocProviders ;
94
89
95
90
/**
96
- * The Application context .
91
+ * The Grouped open api resources .
97
92
*/
98
- protected ApplicationContext applicationContext ;
93
+ private Map <String , OpenApiResource > groupedOpenApiResources ;
94
+
99
95
100
96
/**
101
- * The Grouped open api resources .
97
+ * The Spring doc customizers .
102
98
*/
103
- private Map < String , OpenApiResource > groupedOpenApiResources ;
99
+ private final SpringDocCustomizers springDocCustomizers ;
104
100
105
101
/**
106
102
* Instantiates a new Multiple open api resource.
@@ -111,11 +107,13 @@ public abstract class MultipleOpenApiResource implements InitializingBean, Appli
111
107
* @param responseBuilder the response builder
112
108
* @param operationParser the operation parser
113
109
* @param springDocConfigProperties the spring doc config properties
110
+ * @param springDocProviders the spring doc providers
111
+ * @param springDocCustomizers the spring doc customizers
114
112
*/
115
113
protected MultipleOpenApiResource (List <GroupedOpenApi > groupedOpenApis ,
116
114
ObjectFactory <OpenAPIService > defaultOpenAPIBuilder , AbstractRequestService requestBuilder ,
117
115
GenericResponseService responseBuilder , OperationService operationParser ,
118
- SpringDocConfigProperties springDocConfigProperties , SpringDocProviders springDocProviders ) {
116
+ SpringDocConfigProperties springDocConfigProperties , SpringDocProviders springDocProviders , SpringDocCustomizers springDocCustomizers ) {
119
117
120
118
this .groupedOpenApis = groupedOpenApis ;
121
119
this .defaultOpenAPIBuilder = defaultOpenAPIBuilder ;
@@ -124,18 +122,16 @@ protected MultipleOpenApiResource(List<GroupedOpenApi> groupedOpenApis,
124
122
this .operationParser = operationParser ;
125
123
this .springDocConfigProperties = springDocConfigProperties ;
126
124
this .springDocProviders = springDocProviders ;
125
+ this .springDocCustomizers = springDocCustomizers ;
127
126
}
128
127
129
128
@ Override
130
129
public void afterPropertiesSet () {
131
- Map <String , GlobalOpenApiCustomizer > globalOpenApiCustomizerMap = applicationContext .getBeansOfType (GlobalOpenApiCustomizer .class );
132
- Map <String , GlobalOperationCustomizer > globalOperationCustomizerMap = applicationContext .getBeansOfType (GlobalOperationCustomizer .class );
133
- Map <String , GlobalOpenApiMethodFilter > globalOpenApiMethodFilterMap = applicationContext .getBeansOfType (GlobalOpenApiMethodFilter .class );
134
-
135
- this .groupedOpenApis .forEach (groupedOpenApi -> groupedOpenApi
136
- .addAllOpenApiCustomizer (globalOpenApiCustomizerMap .values ())
137
- .addAllOperationCustomizer (globalOperationCustomizerMap .values ())
138
- .addAllOpenApiMethodFilter (globalOpenApiMethodFilterMap .values ())
130
+ this .groupedOpenApis .forEach (groupedOpenApi -> {
131
+ springDocCustomizers .getGlobalOpenApiCustomizers ().ifPresent (groupedOpenApi ::addAllOpenApiCustomizer );
132
+ springDocCustomizers .getGlobalOperationCustomizers ().ifPresent (groupedOpenApi ::addAllOperationCustomizer );
133
+ springDocCustomizers .getGlobalOpenApiMethodFilters ().ifPresent (groupedOpenApi ::addAllOpenApiMethodFilter );
134
+ }
139
135
);
140
136
141
137
this .groupedOpenApiResources = groupedOpenApis .stream ()
@@ -189,9 +185,4 @@ protected OpenApiResource getOpenApiResourceOrThrow(String group) {
189
185
}
190
186
return openApiResource ;
191
187
}
192
-
193
- @ Override
194
- public void setApplicationContext (ApplicationContext applicationContext ) throws BeansException {
195
- this .applicationContext = applicationContext ;
196
- }
197
188
}
0 commit comments