Migrate to Jackson 3 as jackson-dataformat-msgpack for 1.0.0; add jackson2-dataformat-msgpack - #1012
Open
xerial wants to merge 8 commits into
Open
Migrate to Jackson 3 as jackson-dataformat-msgpack for 1.0.0; add jackson2-dataformat-msgpack#1012xerial wants to merge 8 commits into
xerial wants to merge 8 commits into
Conversation
Address PR #987 feedback asking for a clear artifact-name mapping between jackson-dataformat-msgpack (Jackson 2) and jackson-dataformat-msgpack-jackson3 (Jackson 3) to reduce upgrade confusion.
# Conflicts: # .github/workflows/CI.yml
main migrated the build to sbt 2 (feb87ef) without sbt-jmh, since sbt-jmh 0.4.7 has no sbt-2-compatible artifact. This branch's msgpack-jackson3 JMH benchmarks depend on sbt-jmh, so after merging main the plugin fails to resolve. 0.4.8 publishes an sbt_2_3 build.
…3 to msgpack-jackson Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014ZZUaHusAjVx6SNu4sA42s
…format-msgpack - msgpack-jackson now hosts the Jackson 3.x integration (artifact jackson-dataformat-msgpack, package org.msgpack.jackson3.dataformat, Java 17+) - msgpack-jackson2 hosts the Jackson 2.x integration in maintenance mode (artifact jackson2-dataformat-msgpack, package org.msgpack.jackson.dataformat unchanged, Java 8+) - Distinct packages and artifactIds let both integrations coexist on one classpath for incremental migration - Add sbt-jupiter-interface so the Jackson 2 module's JUnit 5 tests actually run; they had been silently skipped (0 tests detected) on main - Fix MessagePackDataformatTestBase lifecycle annotations (JUnit 4 @Before/ @after on JUnit 5 tests meant setup never ran) - Restore byte-offset-as-columnNr in Jackson 2 MessagePackParser locations, regressed unnoticed in #903 when the deprecated JsonLocation constructor was replaced Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014ZZUaHusAjVx6SNu4sA42s
0.17+ upgrades to JUnit 6, which requires Java 17; the JDK 8 CI lane failed compiling msgpack-jackson2 tests against junit-jupiter-api 6.0.3 (class file version 61). 0.15.2 stays on JUnit 5.14, and the module's explicit junit-jupiter 5.14.4 dependency wins resolution. Verified by forking the tests onto a real JDK 8. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014ZZUaHusAjVx6SNu4sA42s
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR builds on #987 (thanks @komamitsu — all the Jackson 3 port code here is from that PR) and restructures the modules for a 1.0.0 release, as proposed in #987 (comment):
msgpack-jacksonjackson-dataformat-msgpack(1.x)org.msgpack.jackson3.dataformatmsgpack-jackson2jackson2-dataformat-msgpackorg.msgpack.jackson.dataformat(unchanged)jackson-dataformat-msgpacktargets Jackson 3.x from 1.0.0 onward; 0.9.x remains the Jackson 2.x line for users who stay put.jackson2-dataformat-msgpackunchanged (same package), so migrating from 0.9.x only requires changing the artifactId. The module is maintenance-mode: Jackson 2.x bumps and bug fixes only.msgpack-core+msgpack-jackson2only; JDK 17+ lanes test everything. Release publishes core/jackson2 with JDK 8 and the Jackson 3 module with JDK 17.Pre-existing test issues found and fixed along the way
./sbt msgpack-jackson/testdetects 0 tests and CI passes vacuously. Addedsbt-jupiter-interfaceso they actually run (77 tests).MessagePackDataformatTestBaseused JUnit 4@Before/@Afteron JUnit 5 tests, so setup never ran → converted to@BeforeEach/@AfterEach.JsonLocationconstructor inMessagePackParserand silently dropped the byte offset reported viagetColumnNr(). Restored using the non-deprecated 5-arg constructor, matching the Jackson 3 port's behavior (byte offset ascolumnNr).Test results
Closes #933. Supersedes #987 (includes all of its commits).
🤖 Generated with Claude Code
https://claude.ai/code/session_014ZZUaHusAjVx6SNu4sA42s