> Implementation of preview-mode support for jimage modules file, migrated from 
> Valhalla related work (see JDK-8352750).
> 
> This PR (the first of several) migrates work from Valhalla (lworld) to the 
> JDK mainline repository in relation to "preview mode" support. It affects the 
> creation and reading of the jimage file, both in Java 
> (BasicImageReader/ImageReader) and C++ (imageFile.xpp/jimage.xpp).
> 
> Preview mode is a mechanism by which alternate version of JDK class files and 
> resources can be made available for class loading and reflection when the 
> '--enable-preview' flag is passed to the runtime.
> 
> Alternate classes/resource appear in each module under the:
> 
> /<module>/META-INF/preview/<path-to>/<resource-or-class>
> 
> and replace the original:
> 
> /<module>/<path-to>/<resource-or-class>
> 
> files when preview mode is enabled.
> 
> While initially useful for Valhalla work, this mechanism will be used for 
> other cases where preview features (in the JEP 12 sense) require alternate 
> classes/resources to be provided. None of the changes in this (or the 
> follow-up PRs) are Valhalla specific.
> 
> In this PR:
> * the writing of jimage files is modified to recognize and handle preview 
> mode paths
> * flags in the jimage file are added or modified to support preview mode 
> efficiently
> * (C++) the class loader is modified to permit reading preview versions of 
> classes
> * (Java) the image reader and associated JRT file-system classes are modified 
> to permit reading preview files
> * unit tests are added to ensure preview mode works as expected when enabled
> * (temporary) any code calling into the affected API (other than tests) 
> specifies that preview mode is disabled
> 
> Future PRs will add the plumbing to enable preview mode correctly, but with 
> the PR there should be no observable change in behaviour (especially since no 
> preview classes or resources are being supplied at this point).

David Beaumont has updated the pull request incrementally with one additional 
commit since the last revision:

  More feedback tweaks

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/29414/files
  - new: https://git.openjdk.org/jdk/pull/29414/files/b49960b3..c906b3f2

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=29414&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29414&range=02-03

  Stats: 15 lines in 1 file changed: 1 ins; 0 del; 14 mod
  Patch: https://git.openjdk.org/jdk/pull/29414.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29414/head:pull/29414

PR: https://git.openjdk.org/jdk/pull/29414

Reply via email to