RFR: 8308753: Class-File API transition to Preview

Adam Sotona asotona at openjdk.org
Tue Sep 26 09:40:26 UTC 2023

Classfile API is an internal library under package `jdk.internal.classfile` in JDK 21.
This pull request turns the Classfile API into a preview feature and moves it into `java.lang.classfile`.
It repackages all uses across JDK and tests and adds lots of missing Javadoc.

This PR goes in sync with [JDK-8308754](https://bugs.openjdk.org/browse/JDK-8308754): Class-File API (Preview) (CSR)
and [JDK-8280389](https://bugs.openjdk.org/browse/JDK-8280389): Class-File API (Preview) (JEP).

Online javadoc is available at: 

In addition to the primary transition to preview, this pull request also includes:
- All Classfile* classes ranamed to ClassFile* (based on JEP discussion).
- A new preview feature, `CLASSFILE_API`, has been added.
- Buildsystem tool required a little patch to support annotated modules.
- All JDK modules using the Classfile API are newly participating in the preview.
- All tests that use the Classfile API now have preview enabled.
- A few Javac tests not allowing preview have been partially reverted; their conversion can be re-applied when the Classfile API leaves preview mode.

Despite the number of affected files, this pull request is relatively straight-forward. The preview version of the Classfile API is based on the internal version of the library from the JDK master branch, and there are no API features added.

Please review this pull request to help the Classfile API turn into a preview.

Any comments are welcome.



Commit messages:
 - fixed tests
 - rename of Classfile* to ClassFile*
 - fixed javac tests
 - temporary reverted conversion of tests to Classfile API due incompatibility with enabled preview
 - build and tests fixes
 - Merge branch 'master' into JDK-8308753-preview
 - added jvms link to DynamicConstantPoolEntry
 - fixed EnclosingMethodAttribute javadoc
 - documented constraints of builder and factory methods
 - added package info paragraph "Consistency checks, syntax checks and verification"
 - ... and 310 more: https://git.openjdk.org/jdk/compare/913e43fe...6594ee74

Changes: https://git.openjdk.org/jdk/pull/15706/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15706&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8308753
  Stats: 28985 lines in 760 files changed: 12993 ins; 12505 del; 3487 mod
  Patch: https://git.openjdk.org/jdk/pull/15706.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15706/head:pull/15706

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

More information about the compiler-dev mailing list