Add Jackson 3 migration plan: remove Confluent dependencies, retain Everit, migrate Spring Boot to Jackson 3#247
Conversation
…source JSON Schema functionality Co-authored-by: jwijgerd <914840+jwijgerd@users.noreply.github.com>
|
@copilot looks good so far, can you also specifically mention to update all Spring (Boot) classes to use Jackson 3 (which is the default option now for Spring Boot 4 and Spring Framework 7). Also it should be find to keep using the Everit JSON Schema library since it doesn't depend on Jackson at all |
…son 3 migration Co-authored-by: jwijgerd <914840+jwijgerd@users.noreply.github.com>
Updated in 365a3dd:
|
Confluent's
kafka-json-schema-serializerand related libraries are pinned to Jackson 2, blocking migration to Jackson 3. This PR adds a detailed migration plan to remove allio.confluentdependencies, in-source the small API surface actually used, and migrate Spring Boot classes to Jackson 3.Analysis
Audited the full codebase — 23 files import from
io.confluent, 3 fromorg.everit. The actual API surface used is narrow:JsonSchema:validate(JsonNode),rawSchema(),toJsonNode(),deepEquals(),version(),toString()SchemaDiff:compare(Schema, Schema),COMPATIBLE_CHANGES_STRICT(56 types, extracted from bytecode)Difference.Type: 114 enum values, only 2 directly referenced (PROPERTY_REMOVED_FROM_CLOSED_CONTENT_MODEL,REQUIRED_PROPERTY_ADDED_TO_UNOPEN_CONTENT_MODEL)com.github.erosb:everit-json-schema): Depends onorg.json:json, not on Jackson — safe to retain as explicit dependency after Confluent removalspring-boot-jackson2, 4 auto-config classes useJackson2ObjectMapperBuilderCustomizer, 10+ test files useJackson2ObjectMapperBuilderPlan (
plans/jackson3-migration.md)jackson-dataformat-protobufJackson 3 availability,kafka-protobuf-serializerruntime usage, and Everit as explicit dependencyJsonSchema(wrapping Everit internally),SchemaDiff(operating on Everit Schema objects), andDifferenceinorg.elasticsoftware.akces.schemasorg.everit.json.schema.ValidationExceptionas-iseverit-json-schemaas explicit dependencycom.fasterxml.jackson→tools.jacksonacross 64 files)spring-boot-jackson2→spring-boot-jackson,Jackson2ObjectMapperBuilderCustomizer→JsonMapperBuilderCustomizerin 4 auto-config classes and 10+ test filesIncludes
COMPATIBLE_CHANGES_STRICTreference extracted from Confluent bytecode, file-by-file change matrix, Spring Boot Jackson 2→3 class mapping table, and risk mitigations.💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.