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

David Beaumont duke at openjdk.org
Wed Nov 12 14:58:36 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.

David Beaumont has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 16 commits:

 - Use byte array not stream for simplicity
 - Merge branch 'lworld' into jdk_8371292_jlink/squashed
 - Merge commit '72539b57d088940bc18185d1658db6c89f4033fc' into jdk_8371292_jlink/squashed
 - comment adjustment
 - Feedback changes.
   
   * copyright update
   * feedback changes
 - Merge branch 'jdk_8368467_reader/squashed' into jdk_8371292_jlink/squashed
 - Rename ModuleReference methods back.
 - fixing jlink issue
 - Feedback and test fix
 - Minor feedback changes
 - ... and 6 more: https://git.openjdk.org/valhalla/compare/4eb04ffa...a27a2883

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

Changes: https://git.openjdk.org/valhalla/pull/1721/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1721&range=08
  Stats: 438 lines in 8 files changed: 267 ins; 87 del; 84 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