Skip to content

Read module descriptors without ASM - #242

Merged
slachiewicz merged 1 commit into
masterfrom
agent/module-attribute-reader
Oct 20, 2026
Merged

slachiewicz merged 1 commit into
masterfrom
agent/module-attribute-reader

Conversation

@slachiewicz

@slachiewicz slachiewicz commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

Replaces AsmModuleInfoParser with a reader of the Module attribute (JVMS 4.7.25) and drops the org.ow2.asm dependency and requires org.objectweb.asm. The reader does not check the class file version, so a module-info.class from any future JDK parses without a library release; the only thing that could break it is a new constant pool tag.

One of two alternatives for #165, for comparison with #244, which keeps ASM and adds a Java 24 Class File API layer. A side-by-side test against ASM gave identical descriptors for all 8 module-info.class files and jar entries under src/test/test-data; that test is not part of this PR.

Main code: +302 / −137 lines. The java9 ModuleDescriptor.read parser is unchanged.

Includes the CI commit from #243 so the JDK 26, 27 and 28-ea legs exercise the reader.

@slachiewicz slachiewicz added the enhancement New feature or request label Sep 26, 2026
@slachiewicz
slachiewicz marked this pull request as ready for review September 29, 2026 15:30
@slachiewicz
slachiewicz force-pushed the agent/module-attribute-reader branch from 006a0c1 to edd5bf3 Compare October 19, 2026 23:38
@slachiewicz slachiewicz added the breaking Pull requests that break existing features label Oct 20, 2026
@slachiewicz
slachiewicz merged commit c3f2165 into master Oct 20, 2026
17 checks passed
@slachiewicz
slachiewicz deleted the agent/module-attribute-reader branch October 20, 2026 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking Pull requests that break existing features enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant