RFR: 8308753: Class-File API transition to Preview [v24]

Konrad Windszus duke at openjdk.org
Wed Nov 8 13:40:21 UTC 2023


On Fri, 3 Nov 2023 08:39:37 GMT, Adam Sotona <asotona at openjdk.org> wrote:

>> 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: 
>> https://cr.openjdk.org/~asotona/JDK-8308753-preview/api/java.base/java/lang/classfile/package-summary.html
>> 
>> 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.
>> 
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 358 commits:
> 
>  - Merge branch 'master' into JDK-8308753-preview
>    
>    # Conflicts:
>    #	test/jdk/tools/lib/tests/JImageValidator.java
>  - fixed jdk.jfr
>  - Merge branch 'master' into JDK-8308753-preview
>    
>    # Conflicts:
>    #	src/java.base/share/classes/module-info.java
>  - applied javadoc fix suggestions
>  - fixed new benchmark
>  - Merge branch 'master' into JDK-8308753-preview
>    
>    # Conflicts:
>    #	src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java
>  - removed trailing space
>  - Merge branch 'master' into JDK-8308753-preview
>    
>    # Conflicts:
>    #	src/java.base/share/classes/module-info.java
>  - package info javadoc improvements
>  - removed obsolete exports from BuildMicrobenchmark.gmk
>  - ... and 348 more: https://git.openjdk.org/jdk/compare/ec79ab4b...5f4f47c4

I would appreciate a hint in the javadocs why `Classfile.of` requires a byte array and cannot deal with inputstreams (iiuc this is due to the lazy reading which requires adjusting the offset back and forth potentially)

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

PR Comment: https://git.openjdk.org/jdk/pull/15706#issuecomment-1801897871


More information about the compiler-dev mailing list