From f42ed3f6e3cfc0e711cf8e0182f145af886013c2 Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Wed, 16 Nov 2022 10:35:59 +0000 Subject: [PATCH] [crd-generator] Fix float support --- .../crd/generator/AbstractJsonSchema.java | 4 ++++ .../fabric8/crd/example/basic/BasicSpec.java | 20 +++++++++++++++++++ .../crd/generator/v1/JsonSchemaTest.java | 2 ++ 3 files changed, 26 insertions(+) diff --git a/crd-generator/api/src/main/java/io/fabric8/crd/generator/AbstractJsonSchema.java b/crd-generator/api/src/main/java/io/fabric8/crd/generator/AbstractJsonSchema.java index f3af4550d3c..abbbe3404ac 100644 --- a/crd-generator/api/src/main/java/io/fabric8/crd/generator/AbstractJsonSchema.java +++ b/crd-generator/api/src/main/java/io/fabric8/crd/generator/AbstractJsonSchema.java @@ -32,6 +32,7 @@ import static io.sundr.model.utils.Types.BOOLEAN_REF; import static io.sundr.model.utils.Types.DOUBLE_REF; +import static io.sundr.model.utils.Types.FLOAT_REF; import static io.sundr.model.utils.Types.INT_REF; import static io.sundr.model.utils.Types.LONG_REF; import static io.sundr.model.utils.Types.STRING_REF; @@ -70,6 +71,7 @@ public abstract class AbstractJsonSchema { protected static final TypeRef P_INT_REF = new PrimitiveRefBuilder().withName("int").build(); protected static final TypeRef P_LONG_REF = new PrimitiveRefBuilder().withName("long").build(); + protected static final TypeRef P_FLOAT_REF = new PrimitiveRefBuilder().withName("float").build(); protected static final TypeRef P_DOUBLE_REF = new PrimitiveRefBuilder().withName("double").build(); protected static final TypeRef P_BOOLEAN_REF = new PrimitiveRefBuilder().withName(BOOLEAN_MARKER) .build(); @@ -101,6 +103,8 @@ public abstract class AbstractJsonSchema { COMMON_MAPPINGS.put(P_INT_REF, INTEGER_MARKER); COMMON_MAPPINGS.put(LONG_REF, INTEGER_MARKER); COMMON_MAPPINGS.put(P_LONG_REF, INTEGER_MARKER); + COMMON_MAPPINGS.put(FLOAT_REF, NUMBER_MARKER); + COMMON_MAPPINGS.put(P_FLOAT_REF, NUMBER_MARKER); COMMON_MAPPINGS.put(DOUBLE_REF, NUMBER_MARKER); COMMON_MAPPINGS.put(P_DOUBLE_REF, NUMBER_MARKER); COMMON_MAPPINGS.put(BOOLEAN_REF, BOOLEAN_MARKER); diff --git a/crd-generator/api/src/test/java/io/fabric8/crd/example/basic/BasicSpec.java b/crd-generator/api/src/test/java/io/fabric8/crd/example/basic/BasicSpec.java index 1384df9072f..fa47087e18f 100644 --- a/crd-generator/api/src/test/java/io/fabric8/crd/example/basic/BasicSpec.java +++ b/crd-generator/api/src/test/java/io/fabric8/crd/example/basic/BasicSpec.java @@ -38,6 +38,26 @@ public void setMyLong(long myLong) { this.myLong = myLong; } + private double myDouble; + + public double getMyDouble() { + return myDouble; + } + + public void setMyDouble(long myDouble) { + this.myDouble = myDouble; + } + + private float myFloat; + + public float getMyFloat() { + return myFloat; + } + + public void setMyFloat(long myFloat) { + this.myFloat = myFloat; + } + @JsonIgnore public Class clazz; } diff --git a/crd-generator/api/src/test/java/io/fabric8/crd/generator/v1/JsonSchemaTest.java b/crd-generator/api/src/test/java/io/fabric8/crd/generator/v1/JsonSchemaTest.java index 4f82d02f2a2..26d05c96cec 100644 --- a/crd-generator/api/src/test/java/io/fabric8/crd/generator/v1/JsonSchemaTest.java +++ b/crd-generator/api/src/test/java/io/fabric8/crd/generator/v1/JsonSchemaTest.java @@ -69,6 +69,8 @@ void shouldCreateJsonSchemaFromClass() { Map spec = properties.get("spec").getProperties(); assertEquals("integer", spec.get("myInt").getType()); assertEquals("integer", spec.get("myLong").getType()); + assertEquals("number", spec.get("myDouble").getType()); + assertEquals("number", spec.get("myFloat").getType()); Map status = properties.get("status").getProperties(); assertEquals("string", status.get("message").getType()); }