This is an automated email from the ASF dual-hosted git repository. klease pushed a commit to branch camel-4.0.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.0.x by this push: new 955270a1d76 CAMEL-19818: handle all schema references in response types. (#11262) (#11263) 955270a1d76 is described below commit 955270a1d76740ba9e9cb340abaa1931423308c7 Author: klease <38634989+kle...@users.noreply.github.com> AuthorDate: Thu Aug 31 22:52:40 2023 +0200 CAMEL-19818: handle all schema references in response types. (#11262) (#11263) --- .../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\""));