Skip to content

Upstream tracking status: java.util.json moved to jdk.incubator.json #144

@simbo1905

Description

@simbo1905

Upstream Tracking Status — May 2026

What We Were Tracking

What Happened

On 2026-02-05, commit b956ae0 ("preview -> incubator") moved the entire JSON API from java.base/java.util.json to a new incubator module jdk.incubator.json with package jdk.incubator.json. The internal impl moved from jdk.internal.util.json to jdk.incubator.json.impl.

The Transition Was Purely Structural

Diff between c1a4f80 (last pre-incubator) and b956ae0 (incubator move) shows:

  • 37 files changed — all renames + package/import updates
  • Zero logic changes — only package names, import paths, and @PreviewFeature removal
  • The API method names stayed the same at the transition point

Subsequent Incubator Changes (after the move)

The incubator branch then evolved with significant API changes:

  • Method renames: bool()asBoolean(), toLong()asLong(), string()asString(), elements()asList(), members()asMap(), element(int)get(int), getOrAbsent()tryGet(), valueOrNull()tryValue()
  • New method: asInt() on JsonValue/JsonNumber
  • Removed: equals()/hashCode() on all JsonValue subtypes
  • Renamed: JsonAssertionExceptionJsonValueException
  • JsonParseException made final, added input validation

Our Current State

  • Our backport tracks the pre-toInt() era (based on 2025-09-04 sync)
  • The toInt() prototype was added in commit 682d268 (2026-02-03)
  • Two more commits followed before the incubator move: c1a4f80 and 6640eb3 (2026-02-05)

Plan

  1. Update to the last java.util.json state (commit c1a4f80) — this is the "final sandbox release"
  2. Tag and release that milestone
  3. Create a jdk.incubator.json branch from main for the full incubator upgrade

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions