Skip to content

Change JDK baseline for Jackson 3.0 from Java 8 to Java 17 #4820

Closed

Description

@cowtowncoder

Describe your Issue

As per title, Jackson 3.0 need not (and should not) keep JDK baseline as Java 8.
We should pick a support LTS version to use as the new base.

We have a choice to make; currently likeliest choices are:

  • Java 17 (for maximal support for existing user base)
  • Java 21 latest and greatest

We can decide on this via separate discussion; this issue is for tracking actual change.

EDIT: Discussion here: FasterXML/jackson-future-ideas#73

Activity

  1. added
    3.0Issue planned for initial 3.0 release
    on Dec 1, 2024
  2. pjfanning commented on Dec 1, 2024

    @pjfanning
    Member

    My opinion is that libs ideally support the max number of Java versions. Multi-Release jar support is there to help us optimise support for different Java versions.

  3. JooHyukKim commented on Dec 1, 2024

    @JooHyukKim
    Member

    Found dup issue #3946

  4. JooHyukKim commented on Dec 1, 2024

    @JooHyukKim
    Member

    Which JDK version do you have in mind, with multi-release jar strategy @pjfanning?

  5. cowtowncoder commented on Dec 1, 2024

    @cowtowncoder
    MemberAuthor

    I would prefer not having to use MR for anything, personally. But if we must for something I guess we can try figuring it out.

    But even if we do, we need to set up minimum baseline and I think Java 8 should be left for Jackson 2.x. So the question remains.
    But let's have discussion/vote on

    FasterXML/jackson-future-ideas#73

  6. changed the title [-]Change JDK baseline for Jackson 3.0 from Java 8 to Java 21 (?)[/-] [+]Change JDK baseline for Jackson 3.0 from Java 8 to Java 17 or 21 (?)[/+] on Dec 1, 2024
  7. cowtowncoder commented on Dec 1, 2024

    @cowtowncoder
    MemberAuthor

    Quick suggestion: unless anyone objects, I could work on increasing baseline first to JDK 17 (wrt CI). And then if (but only if) decision is made to go to JDK 21 make further changes. This allows finding possible issues wrt change of baseline and tackling most of complexity, regardless of the ultimate decision on exact baseline JDK to use.

  8. cowtowncoder commented on Dec 2, 2024

    @cowtowncoder
    MemberAuthor

    Note on work for initial JDK 17 update (which may or may not be the last change, depending on discussions)

    Core

    Jackson-jr

    Data formats

    Data types

    Other modules

    JVM langs:

    Providers

  9. maxandersen commented on Dec 2, 2024

    @maxandersen

    Go for 17 please otherwise Quarkus, spring and lots of others will be stuck on older Jackson and we'll be all stuck maintaining old code.

    Unless you know of some specific feature in java 21 that Jackson just can't function without and not support from Java 17 then please go for 17.

  10. JooHyukKim commented on Dec 2, 2024

    @JooHyukKim
    Member

    Your vote + opinion on FasterXML/jackson-future-ideas#73 would be great @maxandersen !

  11. changed the title [-]Change JDK baseline for Jackson 3.0 from Java 8 to Java 17 or 21 (?)[/-] [+]Change JDK baseline for Jackson 3.0 from Java 8 to Java 17[/+] on Dec 3, 2024
  12. added a commit that references this issue on Dec 3, 2024
    bde5a16
  13. JooHyukKim commented on Dec 3, 2024

    @JooHyukKim
    Member
  14. added a commit that references this issue on Dec 4, 2024
    f9db6b8
  15. cowtowncoder commented on Dec 5, 2024

    @cowtowncoder
    MemberAuthor

    Completed.

  16. cowtowncoder commented on Jan 3, 2025

    @cowtowncoder
    MemberAuthor

    Note: discussion FasterXML/jackson-future-ideas#73 is now closed and JDK 17 was chosen as the baseline (over JDK 21). So changes under this issue are sufficient as-is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.0Issue planned for initial 3.0 release3.0-release-notesIssues relevant for 3.0 release notes.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions