You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/12/20 07:38:06 UTC
[camel] branch main updated: CAMEL-18659: camel-openapi-java - Add support for nullable defined on model classes via @Schema for openapi v3
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 5f3eab353c2 CAMEL-18659: camel-openapi-java - Add support for nullable defined on model classes via @Schema for openapi v3
5f3eab353c2 is described below
commit 5f3eab353c22e7617b7396b3500cb3b64f967886
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Dec 20 08:37:48 2022 +0100
CAMEL-18659: camel-openapi-java - Add support for nullable defined on model classes via @Schema for openapi v3
---
.../java/org/apache/camel/openapi/RestModelConverters.java | 9 +++++++--
.../org/apache/camel/openapi/RestOpenApiReaderModelTest.java | 2 ++
.../src/test/java/org/apache/camel/openapi/User.java | 12 ++++++++++++
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestModelConverters.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestModelConverters.java
index c266a5a1f39..931d0728c33 100644
--- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestModelConverters.java
+++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestModelConverters.java
@@ -33,6 +33,7 @@ import io.apicurio.datamodels.openapi.v2.models.Oas20Schema;
import io.apicurio.datamodels.openapi.v2.models.Oas20SchemaDefinition;
import io.apicurio.datamodels.openapi.v3.models.Oas30Discriminator;
import io.apicurio.datamodels.openapi.v3.models.Oas30Document;
+import io.apicurio.datamodels.openapi.v3.models.Oas30Schema;
import io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30AnyOfSchema;
import io.apicurio.datamodels.openapi.v3.models.Oas30Schema.Oas30OneOfSchema;
import io.apicurio.datamodels.openapi.v3.models.Oas30SchemaDefinition;
@@ -49,8 +50,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * A Camel extended {@link ModelConverters} where we appending vendor extensions to include the java class name of the
- * model classes.
+ * A Camel extended {@link ModelConverters} where we are appending vendor extensions to include the java class name of
+ * the model classes.
*/
@SuppressWarnings("rawtypes")
public class RestModelConverters {
@@ -138,6 +139,10 @@ public class RestModelConverters {
model.$ref = ref;
}
}
+ Boolean nullable = schema.getNullable();
+ if (nullable != null && model instanceof Oas30Schema) {
+ ((Oas30Schema) model).nullable = nullable;
+ }
// xxxOf support
if (model instanceof Oas30SchemaDefinition && schema instanceof ComposedSchema) {
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 1a60448898e..8d8c07f482c 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
@@ -135,6 +135,8 @@ public class RestOpenApiReaderModelTest extends CamelTestSupport {
assertTrue(json.contains("\"format\" : \"org.apache.camel.openapi.User\""));
assertTrue(json.contains("\"type\" : \"string\""));
assertTrue(json.contains("\"format\" : \"date\""));
+ assertTrue(json.contains("\"nullable\" : true"));
+ assertTrue(json.contains("\"example\" : 44"));
assertFalse(json.contains("\"enum\""));
context.stop();
}
diff --git a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/User.java b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/User.java
index 500de639948..5ac5decf935 100644
--- a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/User.java
+++ b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/User.java
@@ -16,11 +16,15 @@
*/
package org.apache.camel.openapi;
+import io.swagger.v3.oas.annotations.media.Schema;
+
public class User {
private int id;
private String name;
private boolean alive;
+ @Schema(example = "44", nullable = true)
+ private Long age;
public User() {
}
@@ -54,4 +58,12 @@ public class User {
public void setAlive(boolean alive) {
this.alive = alive;
}
+
+ public Long getAge() {
+ return age;
+ }
+
+ public void setAge(Long age) {
+ this.age = age;
+ }
}