Skip to content

Commit 1cbd619

Browse files
committed
refactor import mappings for Jackson 3.x support and improve clarity
1 parent 9f9463b commit 1cbd619

1 file changed

Lines changed: 8 additions & 13 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -550,19 +550,14 @@ public void processOpts() {
550550
// used later in recursive import in postProcessingModels
551551
importMapping.put("com.fasterxml.jackson.annotation.JsonProperty", "com.fasterxml.jackson.annotation.JsonCreator");
552552

553-
if (isUseJackson3()) {
554-
// Override databind imports for Jackson 3
555-
importMapping.put("JsonDeserialize", "tools.jackson.databind.annotation.JsonDeserialize");
556-
importMapping.put("JsonSetter", "com.fasterxml.jackson.annotation.JsonSetter");
557-
importMapping.put("Nulls", "com.fasterxml.jackson.annotation.Nulls");
558-
// jackson-databind-nullable >= 0.2.10 supports both Jackson 2 and 3;
559-
// the JsonNullable class lives in the same package regardless of Jackson version.
560-
importMapping.put("JsonNullable", "org.openapitools.jackson.nullable.JsonNullable");
561-
} else {
562-
importMapping.put("JsonSetter", "com.fasterxml.jackson.annotation.JsonSetter");
563-
importMapping.put("Nulls", "com.fasterxml.jackson.annotation.Nulls");
564-
importMapping.put("JsonNullable", "org.openapitools.jackson.nullable.JsonNullable");
565-
}
553+
// Jackson 3.x intentionally kept jackson-annotations at 2.x (com.fasterxml.jackson.annotation).
554+
// Only jackson-databind moved to tools.jackson.databind in Jackson 3.x.
555+
importMapping.put("JsonSetter", "com.fasterxml.jackson.annotation.JsonSetter");
556+
importMapping.put("Nulls", "com.fasterxml.jackson.annotation.Nulls");
557+
// jackson-databind-nullable >= 0.2.10 supports both Jackson 2 and 3.
558+
importMapping.put("JsonNullable", "org.openapitools.jackson.nullable.JsonNullable");
559+
// JsonDeserialize lives in jackson-databind which moved packages in Jackson 3.x.
560+
importMapping.put("JsonDeserialize", (isUseJackson3() ? JACKSON3_PACKAGE : JACKSON2_PACKAGE) + ".databind.annotation.JsonDeserialize");
566561

567562
// Spring-specific import mappings for x-spring-paginated support
568563
importMapping.put("ParameterObject", "org.springdoc.api.annotations.ParameterObject");

0 commit comments

Comments
 (0)