Skip to content

Lombok @Jacksonized compatibility with Jackson 3 #31

@rammrain

Description

@rammrain

Summary

Investigate restoring Lombok @Jacksonized support now that Jackson 3 has moved @JsonDeserialize to tools.jackson.databind.annotation.

Context

During #14 implementation, we discovered that Lombok's @Jacksonized annotation generates @com.fasterxml.jackson.databind.annotation.JsonDeserialize, which is the Jackson 2 package. Jackson 3 moved this to tools.jackson.databind.annotation, so @Jacksonized has no effect.

As a workaround, all DTOs use explicit @JsonCreator constructors. This works but adds boilerplate, especially for classes with many fields (e.g., Address with 15 parameters).

Options

  1. Wait for Lombok update — future Lombok versions may add Jackson 3 support for @Jacksonized
  2. Custom annotation processor — generate the correct @JsonDeserialize annotations
  3. Keep @JsonCreator — accept the boilerplate as the cost of Jackson 3 migration

Action

Monitor Lombok releases for Jackson 3 compatibility. If a newer Lombok version supports it, refactor DTOs to use @Jacksonized and remove explicit constructors where validation is not needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions