Skip to content

Commit 05957ce

Browse files
committed
Upgrade swagger-core from version 2.2.43 to 2.2.45 - fixes #3245
1 parent 3e7b337 commit 05957ce

82 files changed

Lines changed: 27211 additions & 26296 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<central-publishing-maven-plugin.version>0.7.0
5656
</central-publishing-maven-plugin.version>
5757
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
58-
<swagger-api.version>2.2.43</swagger-api.version>
58+
<swagger-api.version>2.2.45</swagger-api.version>
5959
<swagger-ui.version>5.32.0</swagger-ui.version>
6060
<gmavenplus-plugin.version>1.13.1</gmavenplus-plugin.version>
6161
<jjwt.version>0.9.1</jjwt.version>

springdoc-openapi-starter-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,9 @@ protected OpenAPI getOpenApi(String serverBaseUrl, Locale locale) {
385385
}
386386
getPaths(mappingsMap, finalLocale, openAPI);
387387

388+
if (OpenApiVersion.OPENAPI_3_1 == springDocConfigProperties.getApiDocs().getVersion())
389+
handleComponentSchemaTypes(openAPI);
390+
388391
if (springDocConfigProperties.isTrimKotlinIndent())
389392
this.trimIndent(openAPI);
390393

@@ -455,6 +458,20 @@ private void trimIndent(OpenAPI openAPI) {
455458
trimPaths(openAPI);
456459
}
457460

461+
/**
462+
* Fix component schemas for OAS 3.1 post-processing.
463+
*
464+
* @param openAPI the open api
465+
*/
466+
private static void handleComponentSchemaTypes(OpenAPI openAPI) {
467+
if (openAPI.getComponents() == null || openAPI.getComponents().getSchemas() == null) {
468+
return;
469+
}
470+
for (Schema<?> schema : openAPI.getComponents().getSchemas().values()) {
471+
SpringDocUtils.fixNullOnlyAdditionalProperties(schema);
472+
}
473+
}
474+
458475
/**
459476
* Trim the indent for descriptions in the 'components' of open api.
460477
*

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocRequiredModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public Boolean hasRequiredMarker(AnnotatedMember annotatedMember) {
5757
if (schemaAnnotation.required() || requiredMode == Schema.RequiredMode.REQUIRED) {
5858
return true;
5959
}
60-
else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || StringUtils.isNotEmpty(schemaAnnotation.defaultValue())) {
60+
else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || (StringUtils.isNotEmpty(schemaAnnotation.defaultValue()) && !Schema.DEFAULT_SENTINEL.equals(schemaAnnotation.defaultValue()))) {
6161
return false;
6262
}
6363
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,8 @@ public String[] allowableValues() {
366366

367367
@Override
368368
public String defaultValue() {
369-
return getDefaultValue(parameterName, pageableDefault, parameterSchema.defaultValue());
369+
String defaultValue = getDefaultValue(parameterName, pageableDefault, parameterSchema.defaultValue());
370+
return defaultValue != null ? defaultValue : io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL;
370371
}
371372

372373
@Override
@@ -757,8 +758,8 @@ public String[] allowableValues() {
757758

758759
@Override
759760
public String defaultValue() {
760-
return getArrayDefaultValue(parameterName, pageableDefault, sortDefault, schema.defaultValue());
761-
761+
String defaultValue = getArrayDefaultValue(parameterName, pageableDefault, sortDefault, schema.defaultValue());
762+
return defaultValue != null ? defaultValue : io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL;
762763
}
763764

764765
@Override

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/schema/Builder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ public class Builder {
197197
/**
198198
* Provides a default value.
199199
*/
200-
private String defaultValue = "";
200+
private String defaultValue = Schema.DEFAULT_SENTINEL;
201201

202202
/**
203203
* Provides a discriminator property value.

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/fn/builders/securityrequirement/Builder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.lang.annotation.Annotation;
3030

3131
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
32+
import io.swagger.v3.oas.annotations.security.SecurityRequirementEntry;
3233

3334
/**
3435
* The type Security requirement builder.
@@ -106,6 +107,11 @@ public String name() {
106107
public String[] scopes() {
107108
return scopes;
108109
}
110+
111+
@Override
112+
public SecurityRequirementEntry[] combine() {
113+
return new SecurityRequirementEntry[0];
114+
}
109115
};
110116
}
111117
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/providers/ObjectMapperProvider.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import io.swagger.v3.core.util.Yaml;
3636
import io.swagger.v3.core.util.Yaml31;
3737
import io.swagger.v3.oas.models.OpenAPI;
38+
import io.swagger.v3.core.util.PrimitiveType;
3839
import io.swagger.v3.oas.models.media.Schema;
3940
import org.springdoc.core.mixins.SortedOpenAPIMixin;
4041
import org.springdoc.core.mixins.SortedOpenAPIMixin31;
@@ -80,10 +81,14 @@ public ObjectMapperProvider(SpringDocConfigProperties springDocConfigProperties)
8081
if (springDocConfigProperties.isExplicitObjectSchema()) {
8182
System.setProperty(Schema.EXPLICIT_OBJECT_SCHEMA_PROPERTY, "true");
8283
}
84+
else {
85+
PrimitiveType.explicitObjectType = false;
86+
}
8387
}
8488
else {
8589
jsonMapper = Json.mapper();
8690
yamlMapper = Yaml.mapper();
91+
PrimitiveType.explicitObjectType = null;
8792
}
8893
}
8994

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/AbstractRequestService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,8 @@ public Parameter buildParam(ParameterInfo parameterInfo, Components components,
647647
primitiveSchema.setDefault(parameterInfo.getDefaultValue());
648648
defaultValue = primitiveSchema.getDefault();
649649
}
650-
schema.setDefault(defaultValue);
650+
if (defaultValue != null)
651+
schema.setDefault(defaultValue);
651652
}
652653
parameter.setSchema(schema);
653654
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/GenericParameterService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,8 @@ private void setSchema(io.swagger.v3.oas.annotations.Parameter parameterDoc, Com
347347
} else {
348348
primitiveSchema.setDefault(schema.getDefault());
349349
}
350-
schema.setDefault(primitiveSchema.getDefault());
350+
if (primitiveSchema.getDefault() != null)
351+
schema.setDefault(primitiveSchema.getDefault());
351352
}
352353
}
353354
}
@@ -359,7 +360,8 @@ private void setSchema(io.swagger.v3.oas.annotations.Parameter parameterDoc, Com
359360
// default value not set by swagger-core for array !
360361
if (schema != null) {
361362
Object defaultValue = SpringDocAnnotationsUtils.resolveDefaultValue(parameterDoc.array().arraySchema().defaultValue(), objectMapperProvider.jsonMapper());
362-
schema.setDefault(defaultValue);
363+
if (defaultValue != null)
364+
schema.setDefault(defaultValue);
363365
}
364366
}
365367
if (isOpenapi31())

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/OpenAPIService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,8 @@ public OpenAPI build(Locale locale) {
247247
calculatedOpenAPI.setPaths(new Paths());
248248
}
249249
else {
250-
calculatedOpenAPI = cloneViaJson(openAPI, OpenAPI.class, new ObjectMapper());
250+
calculatedOpenAPI = cloneViaJson(openAPI, OpenAPI.class, new ObjectMapper()
251+
.setDefaultPropertyInclusion(com.fasterxml.jackson.annotation.JsonInclude.Value.construct(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL, com.fasterxml.jackson.annotation.JsonInclude.Include.ALWAYS)));
251252
}
252253

253254
if (apiDef.isPresent()) {

0 commit comments

Comments
 (0)