Skip to content

Conversation

@justin-tay
Copy link
Collaborator

Closes #1207

These are the changes for Jackson 3 for when it is reasonable to merge.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades the project from Jackson 2.x to Jackson 3.x and increases the minimum Java version from 8 to 17. This is a major breaking change that requires systematic updates across the entire codebase to accommodate Jackson 3's API changes.

Key Changes:

  • Upgrade from Java 8 to Java 17
  • Upgrade from Jackson 2.18.3 to Jackson 3.0.3
  • Update all Jackson imports from com.fasterxml.jackson to tools.jackson
  • Migrate Jackson API calls to Jackson 3 equivalents (e.g., asText()asString(), TextNodeStringNode)
  • Update build configuration and dependency versions

Reviewed changes

Copilot reviewed 203 out of 203 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pom.xml Updates Java version to 17, Jackson to 3.0.3, changes dependency group IDs, and updates plugin versions
.github/workflows/ci.yml Updates CI matrix to test Java 17, 21, and 25 (removes Java 8 and 11)
All main/java files Migrates Jackson imports and API calls to Jackson 3 equivalents
All test/java files Updates test code with Jackson 3 API changes and removes unnecessary exception declarations
Documentation files Updates code examples to use Jackson 3 API (asString() instead of asText())
Test resource files Adds description fields to test data

The migration appears comprehensive and follows a consistent pattern throughout the codebase. The changes are aligned with Jackson 3's breaking changes and the upgrade is well-documented in the upgrading.md file.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


// Skip the type validation when the schema is an enum object schema. Since the current type
// of node itself can be used for type validation.
if (!config.isStrict("type", Boolean.TRUE) && isEnumObjectSchema(parentSchema, executionContext)) {
Copy link

Copilot AI Dec 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Variable config may be null at this access as suggested by this null guard.

Copilot uses AI. Check for mistakes.
@stevehu stevehu merged commit c485230 into networknt:master Dec 14, 2025
9 checks passed
@stevehu
Copy link
Contributor

stevehu commented Dec 14, 2025

I have created a new 2.x branch for the Jackson 2 release line and released version 3.0.0 from the master branch. Here is the updated Readme for both versions. Please review and let us know if you see any potential issues. Thanks.

https://github.com/networknt/json-schema-validator?tab=readme-ov-file#adding-the-dependency

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support of Jackson 3

2 participants