Skip to content

Lombok @Jacksonized compatibility with Jackson 3 #31

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions