Classfile Processing API - AccessFlag aligned with JDK

Adam Sotona adam.sotona at oracle.com
Tue Jun 28 08:41:44 UTC 2022


Hi,
Part of the Classfile Processing API is access flags modeling. We held our own copy of AccessFlag class while waiting for JDK-8266670<https://bugs.openjdk.org/browse/JDK-8266670> “Better modeling of access flags in core reflection”.
Good news is that  java.lang.reflect.AccesFlag class has been recently integrated into JDK.
And the two commits below refactored Classfile API (including tests, benchmarks and JDK use cases) to use java.lang.reflect.AccesFlag instead.
Both branches (classfile-api-branch<https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch> and classfile-api-dev-branch<https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch>) and online API doc<https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/jdk/classfile/package-summary.html> have been updated.

Adam


From: jdk-sandbox-changes <jdk-sandbox-changes-retn at openjdk.org> on behalf of Adam Sotona <asotona at openjdk.org>
Date: Monday, 27 June 2022 13:23
To: jdk-sandbox-changes at openjdk.org <jdk-sandbox-changes at openjdk.org>
Subject: git: openjdk/jdk-sandbox: classfile-api-dev-branch: 2 new changesets
Changeset: a1a316ea
Author:    Adam Sotona <asotona at openjdk.org>
Date:      2022-06-27 12:54:51 +0000
URL:       https://git.openjdk.org/jdk-sandbox/commit/a1a316ea4e4d1a2540852031f8bb5cb575bee8cf

removal of jdk.classfile.jdktypes.AccessFlag and redirection to java.lang.reflect.AccesFlag in Classfile API and tests

! src/java.base/share/classes/jdk/classfile/AccessFlags.java
! src/java.base/share/classes/jdk/classfile/ClassBuilder.java
! src/java.base/share/classes/jdk/classfile/Classfile.java
! src/java.base/share/classes/jdk/classfile/FieldBuilder.java
! src/java.base/share/classes/jdk/classfile/MethodBuilder.java
! src/java.base/share/classes/jdk/classfile/attribute/InnerClassInfo.java
! src/java.base/share/classes/jdk/classfile/attribute/MethodParameterInfo.java
! src/java.base/share/classes/jdk/classfile/attribute/ModuleAttribute.java
! src/java.base/share/classes/jdk/classfile/attribute/ModuleExportInfo.java
! src/java.base/share/classes/jdk/classfile/attribute/ModuleOpenInfo.java
! src/java.base/share/classes/jdk/classfile/attribute/ModuleRequireInfo.java
! src/java.base/share/classes/jdk/classfile/impl/AccessFlagsImpl.java
! src/java.base/share/classes/jdk/classfile/impl/ClassImpl.java
! src/java.base/share/classes/jdk/classfile/impl/StackMapDecoder.java
! src/java.base/share/classes/jdk/classfile/impl/Util.java
! src/java.base/share/classes/jdk/classfile/impl/verifier/VerificationWrapper.java
- src/java.base/share/classes/jdk/classfile/jdktypes/AccessFlag.java
! src/java.base/share/classes/jdk/classfile/snippets/PackageSnippets.java
! src/java.base/share/classes/jdk/classfile/transforms/CodeLocalsShifter.java
! test/jdk/jdk/classfile/AccessFlagsTest.java
! test/jdk/jdk/classfile/AdvancedTransformationsTest.java
! test/jdk/jdk/classfile/BuilderBlockTest.java
! test/jdk/jdk/classfile/LDCTest.java
! test/jdk/jdk/classfile/LowAdaptTest.java
! test/jdk/jdk/classfile/LvtTest.java
! test/jdk/jdk/classfile/MassAdaptCopyPrimitiveMatchCodeTest.java
! test/jdk/jdk/classfile/OneToOneTest.java
! test/jdk/jdk/classfile/OpcodesValidationTest.java
! test/jdk/jdk/classfile/StackMapsTest.java
! test/jdk/jdk/classfile/TempConstantPoolBuilderTest.java
! test/jdk/jdk/classfile/WriteTest.java
! test/jdk/jdk/classfile/examples/ExampleGallery.java
! test/micro/org/openjdk/bench/jdk/classfile/ReadMetadata.java
! test/micro/org/openjdk/bench/jdk/classfile/Write.java

Changeset: ee472295
Author:    Adam Sotona <asotona at openjdk.org>
Date:      2022-06-27 13:22:35 +0000
URL:       https://git.openjdk.org/jdk-sandbox/commit/ee472295ad4466ba07ddc6c22a23424b98bb9c89

redirection of AccessFlag use cases to java.lang.reflect.AccesFlag in JDK integrations

! src/java.base/share/classes/java/lang/Module.java
! src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java
! src/java.base/share/classes/java/lang/invoke/GenerateJLIClassesHelper.java
! src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java
! src/jdk.jdeps/share/classes/com/sun/tools/javap/AttributeWriter.java
! src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/classfile-api-dev/attachments/20220628/6c7d0f2b/attachment-0001.htm>


More information about the classfile-api-dev mailing list