Skip to content

Commit 264dec8

Browse files
Upgrade swagger-core from version 2.2.43 to 2.2.45
1 parent 963ee22 commit 264dec8

File tree

108 files changed

+1258
-561
lines changed

Some content is hidden

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

108 files changed

+1258
-561
lines changed

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/core/configuration/SpringDocRequiredModule.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
import com.fasterxml.jackson.databind.module.SimpleModule;
3131
import io.swagger.v3.core.jackson.SwaggerAnnotationIntrospector;
3232
import io.swagger.v3.oas.annotations.media.Schema;
33-
import org.apache.commons.lang3.StringUtils;
33+
34+
import static org.springdoc.core.utils.SpringDocAnnotationsUtils.hasADefaultValue;
3435

3536
/**
3637
* The type Spring doc required module.
@@ -57,7 +58,7 @@ public Boolean hasRequiredMarker(AnnotatedMember annotatedMember) {
5758
if (schemaAnnotation.required() || requiredMode == Schema.RequiredMode.REQUIRED) {
5859
return true;
5960
}
60-
else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || StringUtils.isNotEmpty(schemaAnnotation.defaultValue())) {
61+
else if (requiredMode == Schema.RequiredMode.NOT_REQUIRED || hasADefaultValue(schemaAnnotation)) {
6162
return false;
6263
}
6364
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1122,7 +1122,7 @@ private String getDescription(String parameterName, String originalDescription)
11221122
* @return the default value
11231123
*/
11241124
private String getDefaultValue(String parameterName, PageableDefault pageableDefault, String defaultSchemaVal) {
1125-
String defaultValue = null;
1125+
String defaultValue = defaultSchemaVal;
11261126
switch (parameterName) {
11271127
case "size":
11281128
if (pageableDefault != null) {

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: 23 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.
@@ -47,6 +48,12 @@ public class Builder {
4748
*/
4849
private String[] scopes = {};
4950

51+
/**
52+
* If multiple requirements apply at the same time, use this value instead of {@link #name} and {@link #scopes}.
53+
* If any one of multiple security schemes is required, use multiple {@link SecurityRequirement} annotations instead.
54+
* <p>Exactly one of this and {@link #name} must be set.</p>
55+
*/
56+
private SecurityRequirementEntry[] securityRequirementEntries = {};
5057

5158
/**
5259
* Instantiates a new Security requirement builder.
@@ -85,6 +92,17 @@ public Builder scopes(String[] scopes) {
8592
return this;
8693
}
8794

95+
/**
96+
* SecurityRequirementEntries security requirement builder.
97+
*
98+
* @param securityRequirementEntries the securityRequirementEntries
99+
* @return the security requirement builder
100+
*/
101+
public Builder securityRequirementEntries(SecurityRequirementEntry[] securityRequirementEntries) {
102+
this.securityRequirementEntries = securityRequirementEntries;
103+
return this;
104+
}
105+
88106
/**
89107
* Build security requirement.
90108
*
@@ -106,6 +124,11 @@ public String name() {
106124
public String[] scopes() {
107125
return scopes;
108126
}
127+
128+
@Override
129+
public SecurityRequirementEntry[] combine() {
130+
return securityRequirementEntries;
131+
}
109132
};
110133
}
111134
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ private void setSchema(io.swagger.v3.oas.annotations.Parameter parameterDoc, Com
357357
if (schema == null && parameterDoc.array() != null) {
358358
schema = AnnotationsUtils.getSchema(parameterDoc.schema(), parameterDoc.array(), true, parameterDoc.array().schema().implementation(), components, jsonView, propertyResolverUtils.isOpenapi31()).orElse(null);
359359
// default value not set by swagger-core for array !
360-
if (schema != null) {
360+
if (schema != null && SpringDocAnnotationsUtils.hasADefaultValue(parameterDoc.array().arraySchema())) {
361361
Object defaultValue = SpringDocAnnotationsUtils.resolveDefaultValue(parameterDoc.array().arraySchema().defaultValue(), objectMapperProvider.jsonMapper());
362362
schema.setDefault(defaultValue);
363363
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,16 @@
5151
import com.fasterxml.jackson.databind.ObjectMapper;
5252
import io.swagger.v3.core.jackson.TypeNameResolver;
5353
import io.swagger.v3.core.util.AnnotationsUtils;
54+
import io.swagger.v3.core.util.Json;
55+
import io.swagger.v3.core.util.Json31;
5456
import io.swagger.v3.oas.annotations.Hidden;
5557
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
5658
import io.swagger.v3.oas.annotations.Webhook;
5759
import io.swagger.v3.oas.annotations.Webhooks;
5860
import io.swagger.v3.oas.annotations.security.SecuritySchemes;
5961
import io.swagger.v3.oas.annotations.tags.Tag;
6062
import io.swagger.v3.oas.annotations.tags.Tags;
61-
import io.swagger.v3.oas.models.Components;
62-
import io.swagger.v3.oas.models.OpenAPI;
63-
import io.swagger.v3.oas.models.Operation;
64-
import io.swagger.v3.oas.models.Paths;
63+
import io.swagger.v3.oas.models.*;
6564
import io.swagger.v3.oas.models.info.Contact;
6665
import io.swagger.v3.oas.models.info.Info;
6766
import io.swagger.v3.oas.models.info.License;
@@ -76,6 +75,7 @@
7675
import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
7776
import org.springdoc.core.properties.SpringDocConfigProperties;
7877
import org.springdoc.core.providers.JavadocProvider;
78+
import org.springdoc.core.providers.ObjectMapperProvider;
7979
import org.springdoc.core.utils.PropertyResolverUtils;
8080

8181
import org.springframework.beans.BeansException;
@@ -247,7 +247,7 @@ 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, ObjectMapperProvider.createJson(springDocConfigProperties));
251251
}
252252

253253
if (apiDef.isPresent()) {

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocAnnotationsUtils.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,16 @@ private static boolean isArray(io.swagger.v3.oas.annotations.media.Content annot
470470
return isArray;
471471
}
472472

473+
/**
474+
* Whether the schema has defined a default value.
475+
*
476+
* @param schema The schema annotation
477+
* @return Whether the schema annotation has defined a default value
478+
*/
479+
public static boolean hasADefaultValue(io.swagger.v3.oas.annotations.media.Schema schema) {
480+
return schema != null && !schema.defaultValue().equals(io.swagger.v3.oas.annotations.media.Schema.DEFAULT_SENTINEL);
481+
}
482+
473483
/**
474484
* Attempt to cast the default value so that it matches the {@link Schema} type.
475485
* If the value cannot be cast then the provided default value is returned as-is.
@@ -546,7 +556,7 @@ public static Optional<Map<String, Header>> getHeaders(io.swagger.v3.oas.annotat
546556
public static void clearCache(JavadocProvider javadocProvider) {
547557
if (javadocProvider != null)
548558
javadocProvider.clearCache();
549-
MODEL_CONVERTER_CONTEXT_MAP.remove();;
559+
MODEL_CONVERTER_CONTEXT_MAP.remove();
550560
}
551561

552562
/**

springdoc-openapi-starter-webflux-api/src/test/resources/results/3.0.1/app102.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
"in": "query",
2424
"required": false,
2525
"schema": {
26-
"type": "string"
26+
"type": "string",
27+
"nullable": true
2728
}
2829
},
2930
{
@@ -86,7 +87,8 @@
8687
"in": "query",
8788
"required": false,
8889
"schema": {
89-
"type": "string"
90+
"type": "string",
91+
"nullable": true
9092
}
9193
},
9294
{

springdoc-openapi-starter-webflux-api/src/test/resources/results/3.1.0/app102.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"in": "query",
2424
"required": false,
2525
"schema": {
26-
"type": "string"
26+
"type" : [ "string", "null" ]
2727
}
2828
},
2929
{
@@ -86,7 +86,7 @@
8686
"in": "query",
8787
"required": false,
8888
"schema": {
89-
"type": "string"
89+
"type" : [ "string", "null" ]
9090
}
9191
},
9292
{

0 commit comments

Comments
 (0)