Skip to content

Commit e5779bf

Browse files
committed
Schemas for subclasses not rendered in GraalVM native image builds. Fixes #1252.
1 parent b2805ae commit e5779bf

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/core/SpringDocHints.java

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66
import io.swagger.v3.core.jackson.ApiResponsesSerializer;
77
import io.swagger.v3.core.jackson.PathsSerializer;
88
import io.swagger.v3.core.jackson.mixin.ComponentsMixin;
9+
import io.swagger.v3.core.jackson.mixin.DateSchemaMixin;
10+
import io.swagger.v3.core.jackson.mixin.ExampleMixin;
911
import io.swagger.v3.core.jackson.mixin.ExtensionsMixin;
12+
import io.swagger.v3.core.jackson.mixin.MediaTypeMixin;
1013
import io.swagger.v3.core.jackson.mixin.OpenAPIMixin;
1114
import io.swagger.v3.core.jackson.mixin.OperationMixin;
1215
import io.swagger.v3.core.jackson.mixin.SchemaMixin;
@@ -20,7 +23,9 @@
2023
import io.swagger.v3.oas.annotations.extensions.Extension;
2124
import io.swagger.v3.oas.annotations.extensions.ExtensionProperty;
2225
import io.swagger.v3.oas.annotations.headers.Header;
26+
import io.swagger.v3.oas.annotations.info.Contact;
2327
import io.swagger.v3.oas.annotations.info.Info;
28+
import io.swagger.v3.oas.annotations.info.License;
2429
import io.swagger.v3.oas.annotations.links.Link;
2530
import io.swagger.v3.oas.annotations.links.LinkParameter;
2631
import io.swagger.v3.oas.annotations.media.ArraySchema;
@@ -46,19 +51,34 @@
4651
import io.swagger.v3.oas.models.OpenAPI;
4752
import io.swagger.v3.oas.models.PathItem;
4853
import io.swagger.v3.oas.models.Paths;
54+
import io.swagger.v3.oas.models.examples.Example;
55+
import io.swagger.v3.oas.models.media.BinarySchema;
4956
import io.swagger.v3.oas.models.media.BooleanSchema;
57+
import io.swagger.v3.oas.models.media.ByteArraySchema;
58+
import io.swagger.v3.oas.models.media.ComposedSchema;
59+
import io.swagger.v3.oas.models.media.DateSchema;
5060
import io.swagger.v3.oas.models.media.DateTimeSchema;
5161
import io.swagger.v3.oas.models.media.Discriminator;
62+
import io.swagger.v3.oas.models.media.EmailSchema;
63+
import io.swagger.v3.oas.models.media.EncodingProperty;
5264
import io.swagger.v3.oas.models.media.FileSchema;
5365
import io.swagger.v3.oas.models.media.IntegerSchema;
5466
import io.swagger.v3.oas.models.media.MapSchema;
5567
import io.swagger.v3.oas.models.media.MediaType;
68+
import io.swagger.v3.oas.models.media.NumberSchema;
5669
import io.swagger.v3.oas.models.media.ObjectSchema;
70+
import io.swagger.v3.oas.models.media.PasswordSchema;
5771
import io.swagger.v3.oas.models.media.StringSchema;
5872
import io.swagger.v3.oas.models.media.UUIDSchema;
5973
import io.swagger.v3.oas.models.media.XML;
74+
import io.swagger.v3.oas.models.parameters.CookieParameter;
75+
import io.swagger.v3.oas.models.parameters.HeaderParameter;
76+
import io.swagger.v3.oas.models.parameters.PathParameter;
77+
import io.swagger.v3.oas.models.parameters.QueryParameter;
6078
import io.swagger.v3.oas.models.security.Scopes;
6179
import io.swagger.v3.oas.models.servers.ServerVariables;
80+
import org.springdoc.api.mixins.SortedOpenAPIMixin;
81+
import org.springdoc.api.mixins.SortedSchemaMixin;
6282

6383
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
6484
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -111,7 +131,7 @@
111131
Operation.class, Parameter.class, Callbacks.class, Extension.class, ExtensionProperty.class, Header.class, Link.class, LinkParameter.class,
112132
ArraySchema.class, Content.class, DiscriminatorMapping.class, Encoding.class, ExampleObject.class, Schema.class, RequestBody.class, ApiResponse.class,
113133
Info.class, Server.class, ServerVariable.class, OpenAPIDefinition.class, Tag.class, SecuritySchemes.class, SecurityScheme.class, SecuritySchemeType.class,
114-
OAuthFlow.class, OAuthFlows.class, OAuthScope.class })
134+
OAuthFlow.class, OAuthFlows.class, OAuthScope.class, License.class, Contact.class })
115135

116136
@TypeHint(types = {
117137
SpecFilter.class,
@@ -139,6 +159,29 @@
139159
MapSchema.class,
140160
ObjectSchema.class,
141161
Scopes.class,
162+
DateSchema.class,
163+
ComposedSchema.class,
164+
BinarySchema.class,
165+
ByteArraySchema.class,
166+
EmailSchema.class,
167+
Example.class,
168+
EncodingProperty.class,
169+
NumberSchema.class,
170+
PasswordSchema.class,
171+
CookieParameter.class,
172+
HeaderParameter.class,
173+
PathParameter.class,
174+
QueryParameter.class,
175+
DateSchemaMixin.class,
176+
ExampleMixin.class,
177+
MediaTypeMixin.class,
178+
SortedOpenAPIMixin.class,
179+
SortedSchemaMixin.class,
180+
io.swagger.v3.oas.models.security.SecurityScheme.Type.class,
181+
io.swagger.v3.oas.models.security.SecurityScheme.In.class,
182+
io.swagger.v3.oas.models.media.Encoding.class,
183+
io.swagger.v3.oas.models.info.Contact.class,
184+
io.swagger.v3.oas.models.info.License.class,
142185
io.swagger.v3.oas.models.security.OAuthFlow.class, io.swagger.v3.oas.models.security.OAuthFlows.class,
143186
io.swagger.v3.oas.models.security.SecurityScheme.class,
144187
io.swagger.v3.oas.models.tags.Tag.class,
@@ -157,6 +200,7 @@
157200
io.swagger.v3.oas.models.links.Link.class,
158201
io.swagger.v3.oas.models.parameters.Parameter.class,
159202
io.swagger.v3.oas.models.Operation.class,
203+
io.swagger.v3.oas.models.headers.Header.class
160204
})
161205

162206
@ResourceHint(patterns = "springdoc.swagger-ui.config")

0 commit comments

Comments
 (0)