RFR: [lworld] Switch JLink to not use ImageReader API

David Beaumont duke at openjdk.org
Tue Nov 4 23:41:50 UTC 2025


Creates a new, narrowed API explicitly for use by jlink, which view the resource entries in a jimage file without the re-mapping of names and invention of synthetic entries inherent in ImageReader.

Another good reason to express this new API as something other than ImageReader is that, to fix issues such as [JDK-8357249](https://bugs.openjdk.org/browse/JDK-8357249), we don't want to have the (System)ImageReader class used directly in jlink code. It's just the wrong abstraction and will make it harder to refactor jlink to use a non-singleton API with a controlled lifetime later. 

I've not added unit tests for the new API (yet), but the fact the PackagedModulesVsRuntimeImageLinkTest passes with preview content in the jimage file means that it's working as expected.

-------------

Depends on: https://git.openjdk.org/valhalla/pull/1718

Commit messages:
 - Make jlink use a new narrow API for raw jimage access

Changes: https://git.openjdk.org/valhalla/pull/1721/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1721&range=00
  Stats: 439 lines in 7 files changed: 273 ins; 86 del; 80 mod
  Patch: https://git.openjdk.org/valhalla/pull/1721.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1721/head:pull/1721

PR: https://git.openjdk.org/valhalla/pull/1721


More information about the valhalla-dev mailing list