From 993ec4b03686b8b5ddc920932f98960ab227ef56 Mon Sep 17 00:00:00 2001 From: Mattias-Sehlstedt <60173714+Mattias-Sehlstedt@users.noreply.github.com> Date: Mon, 13 Apr 2026 17:06:41 +0200 Subject: [PATCH 1/2] Upgrade swagger-core from version 2.2.47 to 2.2.48 --- pom.xml | 2 +- .../core/configuration/SpringDocRequiredModule.java | 2 +- .../DataRestDelegatingMethodParameterCustomizer.java | 6 ++---- .../java/org/springdoc/core/fn/builders/schema/Builder.java | 2 +- .../org/springdoc/core/utils/SpringDocAnnotationsUtils.java | 2 +- springdoc-openapi-tests/pom.xml | 2 +- .../springdoc-openapi-actuator-webflux-tests/pom.xml | 2 +- .../springdoc-openapi-actuator-webmvc-tests/pom.xml | 2 +- .../springdoc-openapi-data-rest-tests/pom.xml | 2 +- .../springdoc-openapi-function-webflux-tests/pom.xml | 2 +- .../springdoc-openapi-function-webmvc-tests/pom.xml | 2 +- .../springdoc-openapi-groovy-tests/pom.xml | 2 +- .../springdoc-openapi-hateoas-tests/pom.xml | 2 +- .../springdoc-openapi-javadoc-tests/pom.xml | 2 +- .../springdoc-openapi-kotlin-webflux-tests/pom.xml | 2 +- .../springdoc-openapi-kotlin-webmvc-tests/pom.xml | 2 +- .../springdoc-openapi-security-tests/pom.xml | 2 +- 17 files changed, 18 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 2238c8ef3..a93c9a51f 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ 0.7.0 1.5.0 - 2.2.47 + 2.2.48 5.32.2 1.13.1 0.9.1 diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java index bdcc9f17b..60379850d 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java @@ -57,7 +57,7 @@ public Boolean hasRequiredMarker(AnnotatedMember annotatedMember) { if (schemaAnnotation.required() || requiredMode == Schema.RequiredMode.REQUIRED) { return true; } - else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || (StringUtils.isNotEmpty(schemaAnnotation.defaultValue()) && !Schema.DEFAULT_SENTINEL.equals(schemaAnnotation.defaultValue()))) { + else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || StringUtils.isNotEmpty(schemaAnnotation.defaultValue())) { return false; } } diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java index 2ae21e5f9..5d681ec08 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java @@ -366,8 +366,7 @@ public String[] allowableValues() { @Override public String defaultValue() { - String defaultValue = getDefaultValue(parameterName, pageableDefault, parameterSchema.defaultValue()); - return defaultValue != null ? defaultValue : io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL; + return getDefaultValue(parameterName, pageableDefault, parameterSchema.defaultValue()); } @Override @@ -758,8 +757,7 @@ public String[] allowableValues() { @Override public String defaultValue() { - String defaultValue = getArrayDefaultValue(parameterName, pageableDefault, sortDefault, schema.defaultValue()); - return defaultValue != null ? defaultValue : io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL; + return getArrayDefaultValue(parameterName, pageableDefault, sortDefault, schema.defaultValue()); } @Override diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java index 3115083e3..5ea175794 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java @@ -197,7 +197,7 @@ public class Builder { /** * Provides a default value. */ - private String defaultValue = Schema.DEFAULT_SENTINEL; + private String defaultValue = ""; /** * Provides a discriminator property value. diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java index 43fc85739..4648f3933 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java @@ -504,7 +504,7 @@ public static Object castDefaultValue(Schema schema, Object defaultValue) { */ public static Object resolveDefaultValue(String defaultValueStr, ObjectMapper objectMapper) { Object defaultValue = null; - if (StringUtils.isNotEmpty(defaultValueStr) && !io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL.equals(defaultValueStr)) { + if (StringUtils.isNotEmpty(defaultValueStr)) { try { defaultValue = objectMapper.readTree(defaultValueStr); } diff --git a/springdoc-openapi-tests/pom.xml b/springdoc-openapi-tests/pom.xml index f66c71499..df7f4e9fe 100644 --- a/springdoc-openapi-tests/pom.xml +++ b/springdoc-openapi-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT pom 4.0.0 diff --git a/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml index 1133fc3d0..aacb3825f 100644 --- a/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-actuator-webflux-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 diff --git a/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml index 0a06452e9..95d18e53f 100644 --- a/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-actuator-webmvc-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 diff --git a/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml index 531c8a2ca..a31f0ac97 100644 --- a/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-data-rest-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 springdoc-openapi-data-rest-tests diff --git a/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml index 3eec491a9..93479ab01 100644 --- a/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-function-webflux-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 diff --git a/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml index 75c04e299..1a22650e8 100644 --- a/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-function-webmvc-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 diff --git a/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml index 303752232..f15ba3a31 100644 --- a/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-groovy-tests/pom.xml @@ -3,7 +3,7 @@ org.springdoc springdoc-openapi-tests - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT springdoc-openapi-groovy-tests ${project.artifactId} diff --git a/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml index ef2ceff5f..1a98d43b3 100644 --- a/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-hateoas-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 springdoc-openapi-hateoas-tests diff --git a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml index 66b2a5cf1..e7be050d6 100644 --- a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/pom.xml @@ -2,7 +2,7 @@ org.springdoc springdoc-openapi-tests - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 diff --git a/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml index e5c8e955c..7f09cf189 100644 --- a/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-kotlin-webflux-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 springdoc-openapi-kotlin-webflux-tests diff --git a/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml index 0da030bfe..c4028baa6 100644 --- a/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-kotlin-webmvc-tests/pom.xml @@ -2,7 +2,7 @@ springdoc-openapi-tests org.springdoc - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT 4.0.0 springdoc-openapi-kotlin-webmvc-tests diff --git a/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml b/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml index 8418dcace..bf84ee17c 100644 --- a/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml +++ b/springdoc-openapi-tests/springdoc-openapi-security-tests/pom.xml @@ -3,7 +3,7 @@ org.springdoc springdoc-openapi-tests - 2.8.17-SNAPSHOT + 2.8.18-SNAPSHOT springdoc-openapi-security-tests ${project.artifactId} From dda7ba0b0909867f0fe754a9e4128990a92d6643 Mon Sep 17 00:00:00 2001 From: Mattias-Sehlstedt <60173714+Mattias-Sehlstedt@users.noreply.github.com> Date: Mon, 4 May 2026 17:20:58 +0200 Subject: [PATCH 2/2] Upgrade swagger-core from version 2.2.48 to 2.2.49 --- pom.xml | 2 +- .../springdoc/api/AbstractOpenApiResource.java | 17 ----------------- .../core/providers/ObjectMapperProvider.java | 5 ----- .../springdoc/core/utils/SpringDocUtils.java | 2 ++ .../src/test/resources/results/3.1.0/app18.json | 3 ++- 5 files changed, 5 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index a93c9a51f..a7a094031 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ 0.7.0 1.5.0 - 2.2.48 + 2.2.49 5.32.2 1.13.1 0.9.1 diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java index 9b6d5ffa5..f9cddd859 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java @@ -385,9 +385,6 @@ protected OpenAPI getOpenApi(String serverBaseUrl, Locale locale) { } getPaths(mappingsMap, finalLocale, openAPI); - if (OpenApiVersion.OPENAPI_3_1 == springDocConfigProperties.getApiDocs().getVersion()) - handleComponentSchemaTypes(openAPI); - if (springDocConfigProperties.isTrimKotlinIndent()) this.trimIndent(openAPI); @@ -458,20 +455,6 @@ private void trimIndent(OpenAPI openAPI) { trimPaths(openAPI); } - /** - * Fix component schemas for OAS 3.1 post-processing. - * - * @param openAPI the open api - */ - private static void handleComponentSchemaTypes(OpenAPI openAPI) { - if (openAPI.getComponents() == null || openAPI.getComponents().getSchemas() == null) { - return; - } - for (Schema schema : openAPI.getComponents().getSchemas().values()) { - SpringDocUtils.fixNullOnlyAdditionalProperties(schema); - } - } - /** * Trim the indent for descriptions in the 'components' of open api. * diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java index 9b5962438..11124f58e 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java @@ -35,7 +35,6 @@ import io.swagger.v3.core.util.Yaml; import io.swagger.v3.core.util.Yaml31; import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.core.util.PrimitiveType; import io.swagger.v3.oas.models.media.Schema; import org.springdoc.core.mixins.SortedOpenAPIMixin; import org.springdoc.core.mixins.SortedOpenAPIMixin31; @@ -81,14 +80,10 @@ public ObjectMapperProvider(SpringDocConfigProperties springDocConfigProperties) if (springDocConfigProperties.isExplicitObjectSchema()) { System.setProperty(Schema.EXPLICIT_OBJECT_SCHEMA_PROPERTY, "true"); } - else { - PrimitiveType.explicitObjectType = false; - } } else { jsonMapper = Json.mapper(); yamlMapper = Yaml.mapper(); - PrimitiveType.explicitObjectType = null; } } diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java index e705d1b09..7441f5a51 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocUtils.java @@ -187,6 +187,8 @@ else if (schema.getItems() != null && schema.getItems().getType() != null /** * Fix additionalProperties incorrectly set to {"type": "null"} when @Nullable * propagates from a Map field to its Object value type (resolved as "any type" = {}). + *

+ * Tracked under swagger-core#5115. * * @param schema the schema to fix */ diff --git a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json index 414562e3a..fe57b40c4 100644 --- a/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json +++ b/springdoc-openapi-tests/springdoc-openapi-javadoc-tests/src/test/resources/results/3.1.0/app18.json @@ -68,7 +68,8 @@ "schema": { "type": "integer", "format": "int32", - "exclusiveMinimum": 0 + "exclusiveMinimum": 0, + "minimum": 0 } } ],