|
28 | 28 | import java.util.Optional;
|
29 | 29 | import java.util.Properties;
|
30 | 30 |
|
31 |
| -import io.swagger.v3.core.converter.ModelConverter; |
32 |
| -import io.swagger.v3.core.converter.ModelConverters; |
33 |
| -import io.swagger.v3.core.filter.SpecFilter; |
34 |
| -import io.swagger.v3.core.jackson.ApiResponsesSerializer; |
35 |
| -import io.swagger.v3.core.jackson.PathsSerializer; |
36 |
| -import io.swagger.v3.core.jackson.mixin.Components31Mixin; |
37 |
| -import io.swagger.v3.core.jackson.mixin.ComponentsMixin; |
38 |
| -import io.swagger.v3.core.jackson.mixin.DateSchemaMixin; |
39 |
| -import io.swagger.v3.core.jackson.mixin.Discriminator31Mixin; |
40 |
| -import io.swagger.v3.core.jackson.mixin.ExampleMixin; |
41 |
| -import io.swagger.v3.core.jackson.mixin.ExtensionsMixin; |
42 |
| -import io.swagger.v3.core.jackson.mixin.MediaTypeMixin; |
43 |
| -import io.swagger.v3.core.jackson.mixin.OpenAPI31Mixin; |
44 |
| -import io.swagger.v3.core.jackson.mixin.OpenAPIMixin; |
45 |
| -import io.swagger.v3.core.jackson.mixin.OperationMixin; |
46 |
| -import io.swagger.v3.core.jackson.mixin.Schema31Mixin; |
47 |
| -import io.swagger.v3.core.jackson.mixin.SchemaMixin; |
48 |
| -import io.swagger.v3.oas.annotations.ExternalDocumentation; |
49 |
| -import io.swagger.v3.oas.annotations.Hidden; |
50 |
| -import io.swagger.v3.oas.annotations.OpenAPIDefinition; |
51 |
| -import io.swagger.v3.oas.annotations.Operation; |
52 |
| -import io.swagger.v3.oas.annotations.Parameter; |
53 |
| -import io.swagger.v3.oas.annotations.callbacks.Callbacks; |
54 |
| -import io.swagger.v3.oas.annotations.enums.SecuritySchemeType; |
55 |
| -import io.swagger.v3.oas.annotations.extensions.Extension; |
56 |
| -import io.swagger.v3.oas.annotations.extensions.ExtensionProperty; |
57 |
| -import io.swagger.v3.oas.annotations.headers.Header; |
58 |
| -import io.swagger.v3.oas.annotations.info.Contact; |
59 |
| -import io.swagger.v3.oas.annotations.info.Info; |
60 |
| -import io.swagger.v3.oas.annotations.info.License; |
61 |
| -import io.swagger.v3.oas.annotations.links.Link; |
62 |
| -import io.swagger.v3.oas.annotations.links.LinkParameter; |
63 |
| -import io.swagger.v3.oas.annotations.media.ArraySchema; |
64 |
| -import io.swagger.v3.oas.annotations.media.Content; |
65 |
| -import io.swagger.v3.oas.annotations.media.DiscriminatorMapping; |
66 |
| -import io.swagger.v3.oas.annotations.media.Encoding; |
67 |
| -import io.swagger.v3.oas.annotations.media.ExampleObject; |
68 |
| -import io.swagger.v3.oas.annotations.media.Schema; |
69 |
| -import io.swagger.v3.oas.annotations.parameters.RequestBody; |
70 |
| -import io.swagger.v3.oas.annotations.responses.ApiResponse; |
71 |
| -import io.swagger.v3.oas.annotations.responses.ApiResponses; |
72 |
| -import io.swagger.v3.oas.annotations.security.OAuthFlow; |
73 |
| -import io.swagger.v3.oas.annotations.security.OAuthFlows; |
74 |
| -import io.swagger.v3.oas.annotations.security.OAuthScope; |
75 |
| -import io.swagger.v3.oas.annotations.security.SecurityRequirement; |
76 |
| -import io.swagger.v3.oas.annotations.security.SecurityRequirements; |
77 |
| -import io.swagger.v3.oas.annotations.security.SecurityScheme; |
78 |
| -import io.swagger.v3.oas.annotations.security.SecuritySchemes; |
79 |
| -import io.swagger.v3.oas.annotations.servers.Server; |
80 |
| -import io.swagger.v3.oas.annotations.servers.ServerVariable; |
81 |
| -import io.swagger.v3.oas.annotations.tags.Tag; |
82 |
| -import io.swagger.v3.oas.models.Components; |
83 |
| -import io.swagger.v3.oas.models.OpenAPI; |
84 |
| -import io.swagger.v3.oas.models.PathItem; |
85 |
| -import io.swagger.v3.oas.models.Paths; |
86 |
| -import io.swagger.v3.oas.models.examples.Example; |
87 |
| -import io.swagger.v3.oas.models.media.BinarySchema; |
88 |
| -import io.swagger.v3.oas.models.media.BooleanSchema; |
89 |
| -import io.swagger.v3.oas.models.media.ByteArraySchema; |
90 |
| -import io.swagger.v3.oas.models.media.ComposedSchema; |
91 |
| -import io.swagger.v3.oas.models.media.DateSchema; |
92 |
| -import io.swagger.v3.oas.models.media.DateTimeSchema; |
93 |
| -import io.swagger.v3.oas.models.media.Discriminator; |
94 |
| -import io.swagger.v3.oas.models.media.EmailSchema; |
95 |
| -import io.swagger.v3.oas.models.media.EncodingProperty; |
96 |
| -import io.swagger.v3.oas.models.media.FileSchema; |
97 |
| -import io.swagger.v3.oas.models.media.IntegerSchema; |
98 |
| -import io.swagger.v3.oas.models.media.MapSchema; |
99 |
| -import io.swagger.v3.oas.models.media.MediaType; |
100 |
| -import io.swagger.v3.oas.models.media.NumberSchema; |
101 |
| -import io.swagger.v3.oas.models.media.ObjectSchema; |
102 |
| -import io.swagger.v3.oas.models.media.PasswordSchema; |
103 |
| -import io.swagger.v3.oas.models.media.StringSchema; |
104 |
| -import io.swagger.v3.oas.models.media.UUIDSchema; |
105 |
| -import io.swagger.v3.oas.models.media.XML; |
106 |
| -import io.swagger.v3.oas.models.parameters.CookieParameter; |
107 |
| -import io.swagger.v3.oas.models.parameters.HeaderParameter; |
108 |
| -import io.swagger.v3.oas.models.parameters.PathParameter; |
109 |
| -import io.swagger.v3.oas.models.parameters.QueryParameter; |
110 |
| -import io.swagger.v3.oas.models.security.Scopes; |
111 |
| -import io.swagger.v3.oas.models.servers.ServerVariables; |
112 | 31 | import org.apache.commons.lang3.StringUtils;
|
113 |
| -import org.springdoc.api.AbstractOpenApiResource; |
114 |
| -import org.springdoc.core.converters.AdditionalModelsConverter; |
115 |
| -import org.springdoc.core.converters.FileSupportConverter; |
116 |
| -import org.springdoc.core.converters.ModelConverterRegistrar; |
117 |
| -import org.springdoc.core.converters.PolymorphicModelConverter; |
118 |
| -import org.springdoc.core.converters.PropertyCustomizingConverter; |
119 |
| -import org.springdoc.core.converters.ResponseSupportConverter; |
120 |
| -import org.springdoc.core.converters.SchemaPropertyDeprecatingConverter; |
121 |
| -import org.springdoc.core.mixins.SortedOpenAPIMixin; |
122 |
| -import org.springdoc.core.mixins.SortedSchemaMixin; |
123 |
| -import org.springdoc.core.models.GroupedOpenApi; |
124 |
| -import org.springdoc.core.parsers.ReturnTypeParser; |
125 |
| -import org.springdoc.core.properties.SpringDocConfigProperties; |
126 |
| -import org.springdoc.core.properties.SwaggerUiConfigParameters; |
| 32 | +import org.springdoc.core.configuration.SpringDocHints.SpringDocRuntimeHints; |
127 | 33 | import org.springdoc.core.properties.SwaggerUiConfigProperties;
|
128 |
| -import org.springdoc.core.properties.SwaggerUiOAuthProperties; |
129 |
| -import org.springdoc.core.providers.WebConversionServiceProvider; |
130 |
| -import org.springdoc.core.service.AbstractRequestService; |
131 |
| -import org.springdoc.core.service.GenericParameterService; |
132 |
| -import org.springdoc.core.service.GenericResponseService; |
133 |
| -import org.springdoc.core.service.OpenAPIService; |
134 |
| -import org.springdoc.core.service.OperationService; |
135 |
| -import org.springdoc.core.service.RequestBodyService; |
136 |
| -import org.springdoc.core.service.SecurityService; |
137 |
| -import org.springdoc.core.utils.Constants; |
138 |
| -import org.springdoc.core.utils.PropertyResolverUtils; |
139 |
| -import org.springdoc.ui.AbstractSwaggerWelcome; |
140 | 34 |
|
| 35 | +import org.springframework.aot.hint.RuntimeHints; |
| 36 | +import org.springframework.aot.hint.RuntimeHintsRegistrar; |
141 | 37 | import org.springframework.beans.factory.InitializingBean;
|
142 | 38 | import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
143 |
| -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; |
144 | 39 | import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
145 | 40 | import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
146 | 41 | import org.springframework.context.annotation.Configuration;
|
| 42 | +import org.springframework.context.annotation.ImportRuntimeHints; |
147 | 43 | import org.springframework.context.annotation.Lazy;
|
148 |
| -import org.springframework.context.annotation.PropertySource; |
149 | 44 | import org.springframework.core.io.ClassPathResource;
|
150 | 45 | import org.springframework.core.io.Resource;
|
151 | 46 | import org.springframework.core.io.support.PropertiesLoaderUtils;
|
152 |
| -import org.springframework.nativex.hint.JdkProxyHint; |
153 |
| -import org.springframework.nativex.hint.ResourceHint; |
154 |
| -import org.springframework.nativex.hint.TypeAccess; |
155 |
| -import org.springframework.nativex.hint.TypeHint; |
156 | 47 | import org.springframework.util.AntPathMatcher;
|
157 | 48 |
|
158 | 49 | /**
|
159 | 50 | * The type Spring doc hints.
|
160 | 51 | * @author bnasslahsen
|
161 | 52 | */
|
162 |
| -@JdkProxyHint(typeNames = "jakarta.servlet.http.HttpServletRequest") |
163 |
| -@JdkProxyHint(typeNames = "org.springframework.web.context.request.NativeWebRequest") |
164 |
| - |
165 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RestController", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
166 |
| -@JdkProxyHint(typeNames = { "org.springframework.stereotype.Controller", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
167 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.SessionAttribute", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
168 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RestControllerAdvice", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
169 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.ResponseStatus", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
170 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.ResponseBody", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
171 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RequestPart", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
172 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RequestPart", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
173 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RequestMapping", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
174 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.GetMapping", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
175 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.PostMapping", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
176 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.PutMapping", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
177 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.PatchMapping", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
178 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.DeleteMapping", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
179 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.ControllerAdvice", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
180 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RequestParam", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
181 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RequestHeader", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
182 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.RequestBody", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
183 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.PathVariable", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
184 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.ModelAttribute", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
185 |
| -@JdkProxyHint(typeNames = { "org.springframework.stereotype.Controller", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
186 |
| -@JdkProxyHint(typeNames = { "org.springframework.web.bind.annotation.ControllerAdvice", "org.springframework.core.annotation.SynthesizedAnnotation" }) |
187 |
| - |
188 |
| -@TypeHint(typeNames = { "org.springdoc.core.conditions.CacheOrGroupedOpenApiCondition$OnCacheDisabled", "io.swagger.v3.oas.models.parameters.Parameter$StyleEnum", |
189 |
| - "io.swagger.v3.oas.models.security.SecurityScheme$In", "io.swagger.v3.oas.models.security.SecurityScheme$Type", |
190 |
| - "org.springdoc.core.conditions.CacheOrGroupedOpenApiCondition$OnMultipleOpenApiSupportCondition", "org.springdoc.core.properties.SpringDocConfigProperties$GroupConfig", |
191 |
| - "org.springdoc.core.properties.SpringDocConfigProperties$Cache", "org.springdoc.core.properties.SpringDocConfigProperties$GroupConfig", |
192 |
| - "org.springdoc.core.properties.AbstractSwaggerUiConfigProperties$SwaggerUrl", "org.springdoc.core.properties.AbstractSwaggerUiConfigProperties$Direction", |
193 |
| - "org.springdoc.core.properties.AbstractSwaggerUiConfigProperties$SyntaxHighlight", "org.springdoc.core.configuration.SpringDocConfiguration$1", |
194 |
| - "org.springdoc.core.configuration.SpringDocConfiguration$OpenApiResourceAdvice", "org.springdoc.core.configuration.SpringDocConfiguration$WebConversionServiceConfiguration", |
195 |
| - "org.springdoc.core.properties.SpringDocConfigProperties$Webjars", "org.springdoc.core.properties.SpringDocConfigProperties$ApiDocs" }, |
196 |
| - access = { TypeAccess.RESOURCE, TypeAccess.PUBLIC_CLASSES, TypeAccess.DECLARED_CLASSES, TypeAccess.DECLARED_CONSTRUCTORS, TypeAccess.PUBLIC_CONSTRUCTORS, TypeAccess.DECLARED_METHODS, TypeAccess.PUBLIC_METHODS |
197 |
| - , TypeAccess.PUBLIC_FIELDS, TypeAccess.DECLARED_FIELDS }) |
198 |
| - |
199 |
| -@TypeHint(types = { Constants.class, ModelConverter.class, ModelConverters.class }, access = { TypeAccess.RESOURCE, TypeAccess.PUBLIC_CLASSES, TypeAccess.DECLARED_CLASSES, TypeAccess.DECLARED_CONSTRUCTORS, TypeAccess.PUBLIC_CONSTRUCTORS, TypeAccess.DECLARED_METHODS, TypeAccess.PUBLIC_METHODS |
200 |
| - , TypeAccess.PUBLIC_FIELDS, TypeAccess.DECLARED_FIELDS }) |
201 |
| -@TypeHint(types = { SecurityRequirements.class, SecurityRequirement.class, ApiResponses.class, Callbacks.class, PropertySource.class, ExternalDocumentation.class, Hidden.class, |
202 |
| - Operation.class, Parameter.class, Callbacks.class, Extension.class, ExtensionProperty.class, Header.class, Link.class, LinkParameter.class, |
203 |
| - ArraySchema.class, Content.class, DiscriminatorMapping.class, Encoding.class, ExampleObject.class, Schema.class, RequestBody.class, ApiResponse.class, |
204 |
| - Info.class, Server.class, ServerVariable.class, OpenAPIDefinition.class, Tag.class, SecuritySchemes.class, SecurityScheme.class, SecuritySchemeType.class, |
205 |
| - OAuthFlow.class, OAuthFlows.class, OAuthScope.class, License.class, Contact.class }) |
206 |
| - |
207 |
| -@TypeHint(types = { |
208 |
| - AbstractSwaggerWelcome.class, |
209 |
| - SchemaPropertyDeprecatingConverter.class, |
210 |
| - ResponseSupportConverter.class, |
211 |
| - PropertyCustomizingConverter.class, |
212 |
| - PolymorphicModelConverter.class, |
213 |
| - ModelConverterRegistrar.class, |
214 |
| - FileSupportConverter.class, |
215 |
| - AdditionalModelsConverter.class, |
216 |
| - WebConversionServiceProvider.class, |
217 |
| - SwaggerUiOAuthProperties.class, |
218 |
| - SwaggerUiConfigProperties.class, |
219 |
| - SwaggerUiConfigParameters.class, |
220 |
| - SpringDocConfigProperties.class, |
221 |
| - AbstractOpenApiResource.class, |
222 |
| - AbstractRequestService.class, |
223 |
| - GenericParameterService.class, |
224 |
| - GenericResponseService.class, |
225 |
| - GroupedOpenApi.class, |
226 |
| - OpenAPIService.class, |
227 |
| - OperationService.class, |
228 |
| - PropertyResolverUtils.class, |
229 |
| - RequestBodyService.class, |
230 |
| - ReturnTypeParser.class, |
231 |
| - SecurityService.class, |
232 |
| - SpringDocConfiguration.class, |
233 |
| - SpecFilter.class, |
234 |
| - MediaType.class, |
235 |
| - ApiResponsesSerializer.class, |
236 |
| - PathsSerializer.class, |
237 |
| - ComponentsMixin.class, |
238 |
| - ExtensionsMixin.class, |
239 |
| - OpenAPIMixin.class, |
240 |
| - OperationMixin.class, |
241 |
| - SchemaMixin.class, |
242 |
| - Schema31Mixin.class, |
243 |
| - Components31Mixin.class, |
244 |
| - OpenAPI31Mixin.class, |
245 |
| - Discriminator31Mixin.class, |
246 |
| - Paths.class, |
247 |
| - XML.class, |
248 |
| - UUIDSchema.class, |
249 |
| - PathItem.class, |
250 |
| - ServerVariables.class, |
251 |
| - OpenAPI.class, |
252 |
| - Components.class, |
253 |
| - StringSchema.class, |
254 |
| - DateTimeSchema.class, |
255 |
| - Discriminator.class, |
256 |
| - BooleanSchema.class, |
257 |
| - FileSchema.class, |
258 |
| - IntegerSchema.class, |
259 |
| - MapSchema.class, |
260 |
| - ObjectSchema.class, |
261 |
| - Scopes.class, |
262 |
| - DateSchema.class, |
263 |
| - ComposedSchema.class, |
264 |
| - BinarySchema.class, |
265 |
| - ByteArraySchema.class, |
266 |
| - EmailSchema.class, |
267 |
| - Example.class, |
268 |
| - EncodingProperty.class, |
269 |
| - NumberSchema.class, |
270 |
| - PasswordSchema.class, |
271 |
| - CookieParameter.class, |
272 |
| - HeaderParameter.class, |
273 |
| - PathParameter.class, |
274 |
| - QueryParameter.class, |
275 |
| - DateSchemaMixin.class, |
276 |
| - ExampleMixin.class, |
277 |
| - MediaTypeMixin.class, |
278 |
| - SortedOpenAPIMixin.class, |
279 |
| - SortedSchemaMixin.class, |
280 |
| - io.swagger.v3.oas.models.security.SecurityScheme.Type.class, |
281 |
| - io.swagger.v3.oas.models.security.SecurityScheme.In.class, |
282 |
| - io.swagger.v3.oas.models.media.Encoding.class, |
283 |
| - io.swagger.v3.oas.models.info.Contact.class, |
284 |
| - io.swagger.v3.oas.models.info.License.class, |
285 |
| - io.swagger.v3.oas.models.security.OAuthFlow.class, io.swagger.v3.oas.models.security.OAuthFlows.class, |
286 |
| - io.swagger.v3.oas.models.security.SecurityScheme.class, |
287 |
| - io.swagger.v3.oas.models.tags.Tag.class, |
288 |
| - io.swagger.v3.oas.models.servers.ServerVariable.class, |
289 |
| - io.swagger.v3.oas.models.servers.Server.class, |
290 |
| - io.swagger.v3.oas.models.security.SecurityRequirement.class, |
291 |
| - io.swagger.v3.oas.models.info.Info.class, |
292 |
| - io.swagger.v3.oas.models.parameters.RequestBody.class, |
293 |
| - io.swagger.v3.oas.models.media.Schema.class, |
294 |
| - io.swagger.v3.oas.models.media.Content.class, |
295 |
| - io.swagger.v3.oas.models.media.ArraySchema.class, |
296 |
| - io.swagger.v3.oas.models.responses.ApiResponse.class, |
297 |
| - io.swagger.v3.oas.models.responses.ApiResponses.class, |
298 |
| - io.swagger.v3.oas.models.ExternalDocumentation.class, |
299 |
| - io.swagger.v3.oas.models.links.LinkParameter.class, |
300 |
| - io.swagger.v3.oas.models.links.Link.class, |
301 |
| - io.swagger.v3.oas.models.parameters.Parameter.class, |
302 |
| - io.swagger.v3.oas.models.Operation.class, |
303 |
| - io.swagger.v3.oas.models.headers.Header.class, |
304 |
| - org.springframework.core.MethodParameter.class |
305 |
| -}, access = { TypeAccess.RESOURCE, TypeAccess.PUBLIC_CLASSES, TypeAccess.DECLARED_CLASSES, TypeAccess.DECLARED_CONSTRUCTORS, TypeAccess.PUBLIC_CONSTRUCTORS, TypeAccess.DECLARED_METHODS, TypeAccess.PUBLIC_METHODS |
306 |
| - , TypeAccess.PUBLIC_FIELDS, TypeAccess.DECLARED_FIELDS }) |
307 |
| - |
308 |
| -@ResourceHint(patterns = "sun.util.resources.LocaleNames", isBundle = true) |
309 |
| - |
310 | 53 | @Lazy(false)
|
311 | 54 | @ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-native-support:true}")
|
312 |
| -@ConditionalOnClass(ResourceHint.class) |
313 | 55 | @ConditionalOnWebApplication
|
314 | 56 | @Configuration(proxyBeanMethods = false)
|
315 |
| -@ResourceHint(patterns = SpringDocHints.SPRINGDOC_CONFIG_PROPERTIES) |
316 | 57 | @ConditionalOnBean(SpringDocConfiguration.class)
|
| 58 | +@ImportRuntimeHints(SpringDocRuntimeHints.class) |
317 | 59 | public class SpringDocHints implements InitializingBean {
|
318 | 60 |
|
| 61 | + static class SpringDocRuntimeHints implements RuntimeHintsRegistrar { |
| 62 | + @Override |
| 63 | + public void registerHints(RuntimeHints hints, ClassLoader classLoader) { |
| 64 | + hints.resources().registerPattern(SpringDocHints.SPRINGDOC_CONFIG_PROPERTIES) |
| 65 | + .registerResourceBundle("sun.util.resources.LocaleNames"); |
| 66 | + } |
| 67 | + } |
| 68 | + |
319 | 69 | /**
|
320 | 70 | * The Swagger ui config properties.
|
321 | 71 | */
|
|
0 commit comments