This is an automated email from the ASF dual-hosted git repository. klease pushed a commit to branch fix-openapi in repository https://gitbox.apache.org/repos/asf/camel.git
commit 5b26d1b182fd0b208133e67ecbf3bb51f52b047e Author: klease <kle...@cegetel.net> AuthorDate: Thu Aug 31 22:49:44 2023 +0200 CAMEL-19818: handle all schema references in response types. (#11262) --- .../java/org/apache/camel/openapi/RestOpenApiReader.java | 14 ++++++++------ .../apache/camel/openapi/RestOpenApiReaderModelTest.java | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java index f5e38ebff75..6c298f46b6b 100644 --- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java +++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java @@ -1066,7 +1066,7 @@ public class RestOpenApiReader { Parameter parameter, Operation operation, ApiDescription api, Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) { if (parameter.getContent() != null) { - processRefsInContent(parameter.getContent()); + processRefsInContent(parameter.getContent(), params, cookies, headers); } return Optional.of(parameter); } @@ -1076,7 +1076,7 @@ public class RestOpenApiReader { RequestBody requestBody, Operation operation, ApiDescription api, Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) { if (requestBody.getContent() != null) { - processRefsInContent(requestBody.getContent()); + processRefsInContent(requestBody.getContent(), params, cookies, headers); } return Optional.of(requestBody); } @@ -1086,7 +1086,7 @@ public class RestOpenApiReader { ApiResponse response, Operation operation, ApiDescription api, Map<String, List<String>> params, Map<String, String> cookies, Map<String, List<String>> headers) { if (response.getContent() != null) { - processRefsInContent(response.getContent()); + processRefsInContent(response.getContent(), params, cookies, headers); } return Optional.of(response); } @@ -1135,10 +1135,12 @@ public class RestOpenApiReader { return Optional.of(schema); } - private void processRefsInContent(Content content) { + private void processRefsInContent( + Content content, Map<String, List<String>> params, + Map<String, String> cookies, Map<String, List<String>> headers) { for (MediaType media : content.values()) { - if (media.getSchema() != null && media.getSchema().get$ref() != null) { - media.getSchema().set$ref(fixSchemaReference(media.getSchema().get$ref(), OAS30_SCHEMA_DEFINITION_PREFIX)); + if (media.getSchema() != null) { + filterSchema(media.getSchema(), params, cookies, headers); } } } diff --git a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java index e343c16bfb5..2d630abb16e 100644 --- a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java +++ b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderModelTest.java @@ -89,6 +89,7 @@ public class RestOpenApiReaderModelTest extends CamelTestSupport { assertTrue(json.contains("\"host\" : \"localhost:8080\"")); assertTrue(json.contains("\"description\" : \"The user returned\"")); assertTrue(json.contains("\"$ref\" : \"#/definitions/User\"")); + assertFalse(json.contains("\"$ref\" : \"#/definitions/org.apache.camel.openapi.User\"")); assertTrue(json.contains("\"x-className\"")); assertTrue(json.contains("\"format\" : \"org.apache.camel.openapi.User\"")); assertTrue(json.contains("\"type\" : \"string\"")); @@ -119,6 +120,7 @@ public class RestOpenApiReaderModelTest extends CamelTestSupport { assertTrue(json.contains("\"url\" : \"http://localhost:8080/api\"")); assertTrue(json.contains("\"description\" : \"The user returned\"")); assertTrue(json.contains("\"$ref\" : \"#/components/schemas/User\"")); + assertFalse(json.contains("\"$ref\" : \"#/components/schemas/org.apache.camel.openapi.User\"")); assertTrue(json.contains("\"format\" : \"org.apache.camel.openapi.User\"")); assertTrue(json.contains("\"type\" : \"string\"")); assertTrue(json.contains("\"format\" : \"date\""));