Skip to content

Replace jackson with kotlinx-schema #578

Description

@michalharakal

SKaiNET already uses kotlinx.serialization for JSON export in skainet-compile-json.
However, the project still keeps Jackson / JSON Schema validator dependencies in the Gradle version catalog.

We should check whether the remaining Jackson-based schema handling can be replaced with a Kotlin-native solution, preferably [kotlinx-schema](https://github.com/Kotlin/kotlinx-schema), using the existing @Serializable models.

Scope

  • Start with the main SKaiNET repository.
  • Focus on skainet-compile-json.
  • Check the existing JSON export models and tests.
  • Add a small proof of concept for generating schema from an existing @Serializable model.
  • Keep current JSON export behavior unchanged.
  • Note any similar dependency usage in other public SKaiNET repositories, especially SKaiNET-transformers, as follow-up work.

Acceptance criteria

  • A Kotlin-native schema generation path exists for at least one existing JSON export model.
  • Existing JSON export tests still pass.
  • The PR clearly explains whether any Jackson / JSON Schema dependency can be removed now or should remain as follow-up.
  • No large refactor or repo-wide migration is required.

Suggested files to check

  • gradle/libs.versions.toml
  • skainet-compile/skainet-compile-json/build.gradle.kts
  • Serialization.kt
  • SkJsonModel.kt
  • GoldenJsonTest.kt

Notes

kotlinx-schema is still experimental, so the goal is to validate the approach first.
If the migration looks good, we can create follow-up issues for other SKaiNET ecosystem repositories.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions