On Tue, 14 Mar 2023 12:55:38 GMT, Adam Sotona <asot...@openjdk.org> wrote:
>> 8294962: java.base jdk.internal.module package uses ASM to modify and write >> module-info.class. >> This patch converts it to use Classfile API. >> >> Please review. >> Thanks, >> Adam > > Adam Sotona has updated the pull request incrementally with five additional > commits since the last revision: > > - fixed ModuleDescriptorTest::testReadsWithBadPackageFinder to use Classfile > API directly to generate modules descriptor without ModulePackagesAttribute > - ModuleInfoWriter converted to support invalid module names and emit > ModulePackagesAttribute if packages are provided > - fixed Classfile API tests > - added ModuleAttribute::of(ModuleEntry, Consumer<ModuleAttributeBuilder>) > - removed obsolete Classfile.buildModule method argument List<PackageDesc> > and obsolete method overrides Marked as reviewed by alanb (Reviewer). src/java.base/share/classes/jdk/internal/classfile/Classfile.java line 293: > 291: } > 292: > 293: public static final int MAGIC_NUMBER = 0xCAFEBABE; Dropping the packages parameter and the buildModuleTo overloads looks good. src/java.base/share/classes/jdk/internal/module/ModuleInfoExtender.java line 199: > 197: clb.accept(cle); > 198: } > 199: })); Updated ModuleInfoExtender looks okay. src/java.base/share/classes/jdk/internal/module/ModuleInfoWriter.java line 167: > 165: > clb.with(ModuleTargetAttribute.of(target.targetPlatform())); > 166: } > 167: }); The update ModuleInfoWriter looks fine. test/jdk/java/lang/module/ModuleDescriptorTest.java line 1375: > 1373: ModuleAttribute.of(ModuleDesc.of("foo"), mb -> mb > 1374: .requires(ModuleDesc.of("java.base"), 0, null) > 1375: .exports(PackageDesc.of("p"), 0)))); If you split this up into two or third steps then it would be easier to read/debug. ------------- PR: https://git.openjdk.org/jdk/pull/11368