JSTEP 10 - FasterXML/jackson-future-ideas GitHub Wiki
(Back to JSTEP page)
JSTEP-10: Unify testing structure/tools
Main discussion : https://github.com/FasterXML/jackson/discussions/249
Author
Joo Hyuk Kim (@joohyukkim)
Version History
- 2025-02-28 : (tatu) Update with Hibernate module
- 2025-01-30 : (tatu) Updates; only 2 providers (JAX-RS, Jakarta-RS) missing!
- 2025-01-22 : (tatu) Update wrt completed
jackson-datatypes-collectionsconversion - 2024-12-28 : Initial set-up --skeletal, contents, issues etc...
Status
This JSTEP is considered complete as of February 6, 2025.
Background
Currently in Jackson 2.x (up to 2.18), most of modules including core and extensions have test suite shaped in following way.
- Co-existence of
JUnit 4andJUnit 5 - Exclude
/failingtests usingmaven-surefire-pluginexceptjackson-databindmodule where we have "New failing test management using Jupiter extension" since 2.18 version.
Scope
Scope: changes to make
To keep up with Jackson 3 changes such as baseline version of JDK 17, it would be effective for consistency to implement following in order ....
- Change 1 : Replace
JUnit 4withJUnit 5usage- also, make use of something like DatabindTestUtil where needed (name to use maybe
JacksonTestUtilorModuleTestUtil
- also, make use of something like DatabindTestUtil where needed (name to use maybe
- Change 2 : Replace use of
src/test/java/.../failingpackage with Jackson's new failing test management and moving tests to newsrc/test/java/.../tofixpackage
Scope: target modules to apply
Note that modules to remove --or merge to other modules-- starting Jackson 3 will not be included.
Work status
Completed modules
Completed, core
- jackson-annotations
- Change 1 : https://github.com/FasterXML/jackson-annotations/issues/247
- Change 2 : There are no failing tests
- jackson-core
- jackson-databind
- Change 1 : https://github.com/FasterXML/jackson-databind/pulls?q=is:pr+migrate+junit+ search query), unfortunately didn't make umbrella issue
- Change 2 : https://github.com/FasterXML/jackson-databind/pull/4696
Completed, data format modules
jackson-dataformats-binary: https://github.com/FasterXML/jackson-dataformats-binary/issues/547jackson-dataformats-text: https://github.com/FasterXML/jackson-dataformats-text/issues/523jackson-dataformat-xml: https://github.com/FasterXML/jackson-dataformat-xml/issues/700
Completed, base modules
jackson-modules-base: https://github.com/FasterXML/jackson-modules-base/issues/268jackson-modules-java8: https://github.com/FasterXML/jackson-modules-java8/issues/339
Completed, data type modules
jackson-datatypes-collections: https://github.com/FasterXML/jackson-datatypes-collections/issues/174jackson-datatypes-misc: https://github.com/FasterXML/jackson-datatypes-misc/issues/51jackson-datatype-hibernate: https://github.com/FasterXML/jackson-datatype-hibernate/issues/180jackson-datatype-joda: https://github.com/FasterXML/jackson-datatype-joda/issues/152
Completed, Providers
jackson-jaxrs-providers: https://github.com/FasterXML/jackson-jaxrs-providers/issues/208jackson-jakarta-rs-providers: https://github.com/FasterXML/jackson-jakarta-rs-providers/issues/45
Completed, JVM Languages
jackson-module-kotlin: converted earlierjackson-module-scalauses different testing framework, not applicable.
Completed, misc other
jackson-jr: https://github.com/FasterXML/jackson-jr/pull/186jackson-integration-tests: https://github.com/FasterXML/jackson-integration-tests/pull/22