|
50 | 50 | import com.fasterxml.jackson.annotation.JsonView;
|
51 | 51 | import com.fasterxml.jackson.core.JsonProcessingException;
|
52 | 52 | import com.fasterxml.jackson.core.type.TypeReference;
|
53 |
| -import com.fasterxml.jackson.databind.MapperFeature; |
54 | 53 | import com.fasterxml.jackson.databind.ObjectMapper;
|
55 |
| -import com.fasterxml.jackson.databind.SerializationFeature; |
56 | 54 | import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
57 | 55 | import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator.Feature;
|
58 | 56 | import io.swagger.v3.core.filter.SpecFilter;
|
|
66 | 64 | import io.swagger.v3.oas.models.PathItem;
|
67 | 65 | import io.swagger.v3.oas.models.PathItem.HttpMethod;
|
68 | 66 | import io.swagger.v3.oas.models.Paths;
|
69 |
| -import io.swagger.v3.oas.models.media.Schema; |
70 | 67 | import io.swagger.v3.oas.models.media.StringSchema;
|
71 | 68 | import io.swagger.v3.oas.models.parameters.Parameter;
|
72 | 69 | import io.swagger.v3.oas.models.responses.ApiResponses;
|
|
83 | 80 | import org.springdoc.core.fn.AbstractRouterFunctionVisitor;
|
84 | 81 | import org.springdoc.core.fn.RouterFunctionData;
|
85 | 82 | import org.springdoc.core.fn.RouterOperation;
|
86 |
| -import org.springdoc.core.mixins.SortedOpenAPIMixin; |
87 |
| -import org.springdoc.core.mixins.SortedOpenAPIMixin31; |
88 |
| -import org.springdoc.core.mixins.SortedSchemaMixin; |
89 |
| -import org.springdoc.core.mixins.SortedSchemaMixin31; |
90 | 83 | import org.springdoc.core.models.MethodAttributes;
|
91 | 84 | import org.springdoc.core.properties.SpringDocConfigProperties;
|
92 | 85 | import org.springdoc.core.properties.SpringDocConfigProperties.ApiDocs.OpenApiVersion;
|
93 | 86 | import org.springdoc.core.properties.SpringDocConfigProperties.GroupConfig;
|
94 | 87 | import org.springdoc.core.providers.ActuatorProvider;
|
95 | 88 | import org.springdoc.core.providers.CloudFunctionProvider;
|
96 | 89 | import org.springdoc.core.providers.JavadocProvider;
|
| 90 | +import org.springdoc.core.providers.ObjectMapperProvider; |
97 | 91 | import org.springdoc.core.providers.SpringDocProviders;
|
98 | 92 | import org.springdoc.core.service.AbstractRequestService;
|
99 | 93 | import org.springdoc.core.service.GenericParameterService;
|
@@ -1185,7 +1179,7 @@ protected String writeYamlValue(OpenAPI openAPI) throws JsonProcessingException
|
1185 | 1179 | String result;
|
1186 | 1180 | ObjectMapper objectMapper = springDocProviders.yamlMapper();
|
1187 | 1181 | if (springDocConfigProperties.isWriterWithOrderByKeys())
|
1188 |
| - sortOutput(objectMapper); |
| 1182 | + ObjectMapperProvider.sortOutput(objectMapper, springDocConfigProperties); |
1189 | 1183 | YAMLFactory factory = (YAMLFactory) objectMapper.getFactory();
|
1190 | 1184 | factory.configure(Feature.USE_NATIVE_TYPE_ID, false);
|
1191 | 1185 | if (!springDocConfigProperties.isWriterWithDefaultPrettyPrinter())
|
@@ -1256,7 +1250,7 @@ protected String writeJsonValue(OpenAPI openAPI) throws JsonProcessingException
|
1256 | 1250 | String result;
|
1257 | 1251 | ObjectMapper objectMapper = springDocProviders.jsonMapper();
|
1258 | 1252 | if (springDocConfigProperties.isWriterWithOrderByKeys())
|
1259 |
| - sortOutput(objectMapper); |
| 1253 | + ObjectMapperProvider.sortOutput(objectMapper, springDocConfigProperties); |
1260 | 1254 | if (!springDocConfigProperties.isWriterWithDefaultPrettyPrinter())
|
1261 | 1255 | result = objectMapper.writerFor(OpenAPI.class).writeValueAsString(openAPI);
|
1262 | 1256 | else
|
@@ -1325,23 +1319,6 @@ enum ConditionType {
|
1325 | 1319 | HEADERS
|
1326 | 1320 | }
|
1327 | 1321 |
|
1328 |
| - /** |
1329 |
| - * Sort output. |
1330 |
| - * |
1331 |
| - * @param objectMapper the object mapper |
1332 |
| - */ |
1333 |
| - private void sortOutput(ObjectMapper objectMapper) { |
1334 |
| - objectMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true); |
1335 |
| - objectMapper.configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, true); |
1336 |
| - if (OpenApiVersion.OPENAPI_3_1 == springDocConfigProperties.getApiDocs().getVersion()){ |
1337 |
| - objectMapper.addMixIn(OpenAPI.class, SortedOpenAPIMixin31.class); |
1338 |
| - objectMapper.addMixIn(Schema.class, SortedSchemaMixin31.class); |
1339 |
| - } else { |
1340 |
| - objectMapper.addMixIn(OpenAPI.class, SortedOpenAPIMixin.class); |
1341 |
| - objectMapper.addMixIn(Schema.class, SortedSchemaMixin.class); |
1342 |
| - } |
1343 |
| - } |
1344 |
| - |
1345 | 1322 | /**
|
1346 | 1323 | * Sets model and view class.
|
1347 | 1324 | *
|
|
0 commit comments