Skip to content

Track the upstream move to the jdk.incubator.json module #145

Closed

Description

@simbo1905

What

The upstream OpenJDK jdk-sandbox json branch has moved the JSON API out of java.base into a dedicated incubator module:

  • Public API: src/jdk.incubator.json/share/classes/jdk/incubator/json/
  • Implementation: src/jdk.incubator.json/share/classes/jdk/incubator/json/impl/

The old locations (java/util/json, jdk/internal/util/json under src/java.base/) no longer exist upstream — every fetch against them returns 404. Context: JEP 540 "Simple JSON API (Incubator)" is targeted at JDK 28 (https://openjdk.org/jeps/540).

Why

  • This backport tracks the upstream API; the daily API tracker still fetches the dead paths, so drift detection is blind.
  • The local code is pinned at upstream commit c1a4f80 (2026-02-05); upstream HEAD is 43325738c (2026-08-27).

Needed

  1. Track the new location: point the API tracker (and the sync process documented in json-java21/AGENTS.md) at the src/jdk.incubator.json module paths.
  2. Run the mechanical sync cycle: take upstream HEAD as the new frontier, diff only the files in the JSON package against the last recorded frontier, and align this backport with whatever changed — added, modified, or removed files.
  3. While syncing, review any changes to the upstream implementation classes that suggest bugs or fixes, and backport those fixes to our copy as well (documented in the README "Upstream Bug Fixes" section, as with previous syncs).

The approach is the established one: grab the upstream files and check them; no commit-counting or revision-guessing machinery.

Activity

  1. simbo1905 commented on Aug 29, 2026

    @simbo1905
    OwnerAuthor

    Verified upstream state as of 2026-08-29 (direct API/raw fetches, not cached):

    • Upstream HEAD on json branch: 43325738c (2026-08-27). Last local sync: c1a4f80 (2026-02-05). Gap: ~2572 commits (inflated by routine mainline-jdk merges; recent JSON commits Aug 25-27 are API doc/wording refinements).
    • Same repo (openjdk/jdk-sandbox), same branch (json) — no repo/branch move. The code was restructured within the branch:
      • src/java.base/share/classes/jdk/internal/util/json/ and java/util/json/ are gone (404)
      • Now a proper incubator module: src/jdk.incubator.json/share/classes/jdk/incubator/json/ with nested impl/ subpackage. Verified package jdk.incubator.json; in fetched sources.
    • New upstream classes not in this issue's list: JsonValueException (public API), and in impl: JsonGenerator, JsonValueSupport.
    • Context: this is JEP 540 "Simple JSON API (Incubator)", Targeted for JDK 28 (https://openjdk.org/jeps/540). Sandbox integration into mainline is via normal Skara push when the JEP lands — the API change list in this issue remains accurate against live upstream sources.

    Tracker tooling note: daily-api-tracker.yml currently fetches the dead java.util.json paths, so the daily drift check 404s. Infrastructure work from this issue (tracker URL updates + a pinned UPSTREAM_COMMIT file + an upstream-commits check mode) is now in progress.

  2. changed the title [-]Upgrade to track jdk.incubator.json[/-] [+]Track the upstream move to the jdk.incubator.json module[/+] on Aug 29, 2026
  3. added 5 commits that reference this issue on Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions