From 8122dcdf8bcaffb43556027309c962394741273f Mon Sep 17 00:00:00 2001 From: Krzysztof Folwarczny Date: Fri, 10 Apr 2026 12:58:00 +0200 Subject: [PATCH 1/4] chore: Using Jackons3 with BigDecimalCustomSerializer. --- boat-engine/pom.xml | 2 +- boat-maven-plugin/pom.xml | 2 +- boat-quay/boat-quay-lint/pom.xml | 2 +- boat-quay/boat-quay-rules/pom.xml | 2 +- boat-quay/pom.xml | 2 +- boat-scaffold/pom.xml | 2 +- .../backbase/oss/codegen/java/BoatSpringCodeGen.java | 11 ++++++++--- .../boat-spring/BigDecimalCustomSerializer.mustache | 7 ++++++- boat-trail-resources/pom.xml | 2 +- pom.xml | 2 +- 10 files changed, 22 insertions(+), 12 deletions(-) diff --git a/boat-engine/pom.xml b/boat-engine/pom.xml index 776bed88a..89746680a 100644 --- a/boat-engine/pom.xml +++ b/boat-engine/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss backbase-openapi-tools - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT boat-engine jar diff --git a/boat-maven-plugin/pom.xml b/boat-maven-plugin/pom.xml index 3c8e8aae0..00069a4aa 100644 --- a/boat-maven-plugin/pom.xml +++ b/boat-maven-plugin/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss backbase-openapi-tools - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT boat-maven-plugin diff --git a/boat-quay/boat-quay-lint/pom.xml b/boat-quay/boat-quay-lint/pom.xml index 14df40cd7..db9b4ebf6 100644 --- a/boat-quay/boat-quay-lint/pom.xml +++ b/boat-quay/boat-quay-lint/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss boat-quay - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT boat-quay-lint diff --git a/boat-quay/boat-quay-rules/pom.xml b/boat-quay/boat-quay-rules/pom.xml index 0f48c13c5..609a524fd 100644 --- a/boat-quay/boat-quay-rules/pom.xml +++ b/boat-quay/boat-quay-rules/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss boat-quay - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT boat-quay-rules diff --git a/boat-quay/pom.xml b/boat-quay/pom.xml index 7a2d7f695..277df7c25 100644 --- a/boat-quay/pom.xml +++ b/boat-quay/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss backbase-openapi-tools - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT diff --git a/boat-scaffold/pom.xml b/boat-scaffold/pom.xml index 479e70c16..cabe92f34 100644 --- a/boat-scaffold/pom.xml +++ b/boat-scaffold/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss backbase-openapi-tools - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT boat-scaffold diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java index 633651516..66add1bf0 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java @@ -206,8 +206,8 @@ public CodegenProperty fromProperty(String name, Schema p, boolean required, boo } /** - * "overridden" to fix invalid code when the data type is a collection of a fully qualified classname. - * eg. Set<@Valid com.backbase.dbs.arrangement.commons.model.TranslationItemDto> + * "overridden" to fix invalid code when the data type is a collection of a fully qualified classname. eg. Set<@Valid + * com.backbase.dbs.arrangement.commons.model.TranslationItemDto> * * @param itemsProperty * @param dataType @@ -314,7 +314,12 @@ public void processOpts() { serializerTemplate + ".java" )); this.importMapping.put(serializerTemplate, modelPackage + "." + serializerTemplate); - this.importMapping.put("JsonSerialize", "com.fasterxml.jackson.databind.annotation.JsonSerialize"); + + if (this.additionalProperties.containsKey(USE_JACKSON_3)) { + this.importMapping.put("JsonSerialize", "tools.jackson.databind.annotation.JsonSerialize"); + } else { + this.importMapping.put("JsonSerialize", "com.fasterxml.jackson.databind.annotation.JsonSerialize"); + } if (this.additionalProperties.containsKey(ADD_SERVLET_REQUEST)) { this.addServletRequest = convertPropertyToBoolean(ADD_SERVLET_REQUEST); diff --git a/boat-scaffold/src/main/templates/boat-spring/BigDecimalCustomSerializer.mustache b/boat-scaffold/src/main/templates/boat-spring/BigDecimalCustomSerializer.mustache index a6dc40f30..33ec788b4 100644 --- a/boat-scaffold/src/main/templates/boat-spring/BigDecimalCustomSerializer.mustache +++ b/boat-scaffold/src/main/templates/boat-spring/BigDecimalCustomSerializer.mustache @@ -1,6 +1,11 @@ package {{modelPackage}}; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase; +{{#useJackson3}} + import tools.jackson.databind.ser.std.ToStringSerializerBase; +{{/useJackson3}} +{{^useJackson3}} + import com.fasterxml.jackson.databind.ser.std.ToStringSerializerBase; +{{/useJackson3}} import java.math.BigDecimal; public class BigDecimalCustomSerializer extends ToStringSerializerBase { diff --git a/boat-trail-resources/pom.xml b/boat-trail-resources/pom.xml index b3e0c7f8f..082a6947e 100644 --- a/boat-trail-resources/pom.xml +++ b/boat-trail-resources/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss backbase-openapi-tools - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT boat-trail-resources diff --git a/pom.xml b/pom.xml index bce873435..b140018c7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.backbase.oss backbase-openapi-tools - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT pom Backbase Open Api Tools is a collection of tools to work with Open API From d3b9a7b5f5c8defd6e3d3d6c29232bb240946665 Mon Sep 17 00:00:00 2001 From: Krzysztof Folwarczny Date: Fri, 10 Apr 2026 13:11:25 +0200 Subject: [PATCH 2/4] chore: Update pom version --- boat-scaffold/pom.xml | 2 +- tests/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boat-scaffold/pom.xml b/boat-scaffold/pom.xml index cabe92f34..6186671b7 100644 --- a/boat-scaffold/pom.xml +++ b/boat-scaffold/pom.xml @@ -102,7 +102,7 @@ com.backbase.oss boat-trail-resources - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT test diff --git a/tests/pom.xml b/tests/pom.xml index 90eee5d9c..116bc34b9 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -5,7 +5,7 @@ com.backbase.oss backbase-openapi-tools - 0.18.0-SNAPSHOT + 0.18.1-SNAPSHOT tests From a2300f4f263239c3918f3019cb767ee870880ec3 Mon Sep 17 00:00:00 2001 From: Krzysztof Folwarczny Date: Fri, 10 Apr 2026 13:37:27 +0200 Subject: [PATCH 3/4] chore: Update README release notes --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d466e37ac..8088051bd 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,9 @@ It currently consists of # Release Notes BOAT is still under development and subject to change. +## 0.18.1 +* Use Jackson3 imports in `BigDecimalCustomSerializer.class` when using `useJackson3` set to `true` + ## 0.18.0 * openapi-generator `7.20.0` baseline (Spring Boot 4, Jackson 3) * moved Java and JavaSpring templates to `7.20.0` adding remaing custom features From 48bacf4d3a4783a13ff82c6a027cdede56833f0f Mon Sep 17 00:00:00 2001 From: Krzysztof Folwarczny Date: Fri, 10 Apr 2026 13:45:26 +0200 Subject: [PATCH 4/4] chore: Defined constant for `JsonSerialize` --- .../com/backbase/oss/codegen/java/BoatSpringCodeGen.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java b/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java index 66add1bf0..9fa741474 100644 --- a/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java +++ b/boat-scaffold/src/main/java/com/backbase/oss/codegen/java/BoatSpringCodeGen.java @@ -50,6 +50,7 @@ public class BoatSpringCodeGen extends SpringCodegen { public static final String ADD_BINDING_RESULT = "addBindingResult"; private static final String VENDOR_EXTENSION_NOT_NULL = "x-not-null"; + private static final String JSON_SERIALIZE = "JsonSerialize"; static class NewLineIndent implements Mustache.Lambda { @@ -316,9 +317,9 @@ public void processOpts() { this.importMapping.put(serializerTemplate, modelPackage + "." + serializerTemplate); if (this.additionalProperties.containsKey(USE_JACKSON_3)) { - this.importMapping.put("JsonSerialize", "tools.jackson.databind.annotation.JsonSerialize"); + this.importMapping.put(JSON_SERIALIZE, "tools.jackson.databind.annotation.JsonSerialize"); } else { - this.importMapping.put("JsonSerialize", "com.fasterxml.jackson.databind.annotation.JsonSerialize"); + this.importMapping.put(JSON_SERIALIZE, "com.fasterxml.jackson.databind.annotation.JsonSerialize"); } if (this.additionalProperties.containsKey(ADD_SERVLET_REQUEST)) { @@ -391,7 +392,7 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert if (shouldSerializeBigDecimalAsString(property)) { property.vendorExtensions.put("x-extra-annotation", "@JsonSerialize(using = BigDecimalCustomSerializer.class)"); model.imports.add("BigDecimalCustomSerializer"); - model.imports.add("JsonSerialize"); + model.imports.add(JSON_SERIALIZE); } }