Skip to content

Commit fd61120

Browse files
committed
fix oas 3.1 extensions naming resolving
1 parent 7294019 commit fd61120

File tree

5 files changed

+15
-11
lines changed

5 files changed

+15
-11
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,7 +2152,7 @@ protected Map<String, Object> resolveExtensions(Annotated a, Annotation[] annota
21522152
if (schema != null &&
21532153
schema.extensions() != null &&
21542154
schema.extensions().length > 0) {
2155-
return AnnotationsUtils.getExtensions(schema.extensions());
2155+
return AnnotationsUtils.getExtensions(openapi31, schema.extensions());
21562156
}
21572157
return null;
21582158
}
@@ -2346,7 +2346,7 @@ protected Map<String, Object> resolveExtensions(AnnotatedType a, io.swagger.v3.o
23462346
if (arraySchema != null &&
23472347
arraySchema.extensions() != null &&
23482348
arraySchema.extensions().length > 0) {
2349-
return AnnotationsUtils.getExtensions(arraySchema.extensions());
2349+
return AnnotationsUtils.getExtensions(openapi31, arraySchema.extensions());
23502350
}
23512351
return null;
23522352
}

modules/swagger-core/src/main/java/io/swagger/v3/core/util/AnnotationsUtils.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ public static Optional<Schema> getSchemaFromAnnotation(
802802
}
803803

804804
if (schema.extensions().length > 0) {
805-
Map<String, Object> extensions = AnnotationsUtils.getExtensions(schema.extensions());
805+
Map<String, Object> extensions = AnnotationsUtils.getExtensions(openapi31, schema.extensions());
806806
if (extensions != null) {
807807
extensions.forEach(schemaObject::addExtension);
808808
}
@@ -1739,7 +1739,8 @@ public static Map<String, Object> getExtensions(boolean openapi31, Extension...
17391739
final Map<String, Object> map = new HashMap<>();
17401740
for (Extension extension : extensions) {
17411741
final String name = extension.name();
1742-
final String key = name.length() > 0 ? StringUtils.prependIfMissing(name, "x-") : name;
1742+
String decoratedName = openapi31 ? name : StringUtils.prependIfMissing(name, "x-");
1743+
final String key = name.length() > 0 ? decoratedName : name;
17431744

17441745
for (ExtensionProperty property : extension.properties()) {
17451746
final String propertyName = property.name();
@@ -1755,12 +1756,15 @@ public static Map<String, Object> getExtensions(boolean openapi31, Extension...
17551756
} else {
17561757
processedValue = Json.mapper().readTree(propertyValue);
17571758
}
1758-
map.put(StringUtils.prependIfMissing(propertyName, "x-"), processedValue);
1759+
decoratedName = openapi31 ? propertyName : StringUtils.prependIfMissing(propertyName, "x-");
1760+
map.put(decoratedName, processedValue);
17591761
} catch (Exception e) {
1760-
map.put(StringUtils.prependIfMissing(propertyName, "x-"), propertyValue);
1762+
decoratedName = openapi31 ? propertyName : StringUtils.prependIfMissing(propertyName, "x-");
1763+
map.put(decoratedName, propertyValue);
17611764
}
17621765
} else {
1763-
map.put(StringUtils.prependIfMissing(propertyName, "x-"), propertyValue);
1766+
decoratedName = openapi31 ? propertyName : StringUtils.prependIfMissing(propertyName, "x-");
1767+
map.put(decoratedName, propertyValue);
17641768
}
17651769
} else {
17661770
Object value = map.get(key);

modules/swagger-core/src/main/java/io/swagger/v3/core/util/ParameterProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public static Parameter applyAnnotations(
154154
}
155155

156156
if (p.extensions().length > 0) {
157-
Map<String, Object> extensionMap = AnnotationsUtils.getExtensions(p.extensions());
157+
Map<String, Object> extensionMap = AnnotationsUtils.getExtensions(openapi31, p.extensions());
158158
if (extensionMap != null && ! extensionMap.isEmpty()) {
159159
extensionMap.forEach(parameter::addExtension);
160160
}

modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/OperationParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static Optional<RequestBody> getRequestBody(io.swagger.v3.oas.annotations
4242
isEmpty = false;
4343
}
4444
if (requestBody.extensions().length > 0) {
45-
Map<String, Object> extensions = AnnotationsUtils.getExtensions(requestBody.extensions());
45+
Map<String, Object> extensions = AnnotationsUtils.getExtensions(openapi31, requestBody.extensions());
4646
if (extensions != null) {
4747
extensions.forEach(requestBodyObject::addExtension);
4848
}
@@ -85,7 +85,7 @@ public static Optional<ApiResponses> getApiResponses(final io.swagger.v3.oas.ann
8585
apiResponseObject.setDescription(response.description());
8686
}
8787
if (response.extensions().length > 0) {
88-
Map<String, Object> extensions = AnnotationsUtils.getExtensions(response.extensions());
88+
Map<String, Object> extensions = AnnotationsUtils.getExtensions(openapi31, response.extensions());
8989
if (extensions != null) {
9090
extensions.forEach(apiResponseObject::addExtension);
9191
}

modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/Reader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ public OpenAPI read(Class<?> cls,
335335
// OpenApiDefinition extensions
336336
if (openAPIDefinition.extensions().length > 0) {
337337
openAPI.setExtensions(AnnotationsUtils
338-
.getExtensions(openAPIDefinition.extensions()));
338+
.getExtensions(config.isOpenAPI31(), openAPIDefinition.extensions()));
339339
}
340340

341341
}

0 commit comments

Comments
 (0)