Skip to content

JSTEP 9

Tatu Saloranta edited this page Dec 2, 2024 · 3 revisions

(Back to JSTEP page)

Jackson 3.0 Removal of Deprecated 2.x Modules

Author

Tatu Saloranta (@cowtowncoder)

Version history

  • 2024-12-01: Created first version

Status

Being discussed; some implementation

Overview

During Jackson 2.x, some Modules have become unnecessary either in general, or for future use. For example:

  • jackson-datatype-jdk8 (part of jackson-modules-java8)has been merged into jackson-databind version 3.0.0-SNAPSHOT
    • Functionality now supported directly by jackson-databind so module no longer needed
  • jackson-module-parameter-names (part of jackson-modules-java8)has been merged into jackson-databind version 3.0.0-SNAPSHOT
    • Functionality now supported directly by jackson-databind so module no longer needed
  • jackson-module-paranamer module (part of jackson-modules-base) was useful before Java 8, but it becomes unnecessary with Java 8 when JDK bytecode can contain parameter names.

Other modules have become unsupported/unmaintained:

  • jackson-module-jsonSchema:
    • Has no active maintainer, no one volunteered
    • Only supports older JSON Schema v3 (which is incompatible with newer schema versions, v4 and above)
    • Has become obsolete due to existence of other maintained, external JSON Schema generators (like https://github.com/mbknor/mbknor-jackson-jsonSchema)
  • [jackson-datatype-hibernate]
    • Has no active maintainer, no one volunteered
    • Has received some contributions

In these cases, no work has been done to prepare for Jackson 3.0.0 version of the components, and README.mds have been update to indicate a note of Deprecation.

Proposal

The current plan for following Modules:

  • jackson-datatype-jdk8
  • jackson-module-parameter-names
  • jackson-module-paranamer
  • jackson-module-schema (and variants)
  • jackson-datatype-hibernate5 (and variants)

is to

  • Keep on publishing 2.x versions (deprecated but maintained)
  • Not update repos for 3.0 (master just points to latest 2.x version)
  • Not publish 3.0.0-SNAPSHOT, release candidates or actual 3.0.0 version

Above can be changed for specific modules if (and only if):

  • There is continued need for module AND
  • We can find an active maintainer (in case one is needed; specifically for Hibernate module)
Clone this wiki locally