[#60] Add a deterministic explicit JPMS descriptor - #122
Draft
peter-lawrey wants to merge 4 commits into
Draft
Conversation
Member
Author
This was referenced Aug 21, 2026
|
It is totally fine as a start |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Repository-owned continuation of #107, stacked on #119 while that PR awaits its required approval. The original #107 commits are retained unchanged in this branch, including Benjamin Marwell's authored commit
cdbdc5060cddb1373a86a1575445b68f1b1d08c0.After #119 merges, retarget this PR to
developand merge it with a merge commit so the original commit graph and attribution remain intact.What changed relative to #107
module net.openhft.hashingdescriptor, multi-release layout, class-path consumer, and module-path consumer.[9,)production compilation profile with ModiTect 1.3.0.Final duringpackage.META-INF/versions/9/module-info.class; descriptor presence no longer depends on the JDK running Maven.Automatic-Module-Name: net.openhft.hashingand packaged-JAR integration test.net.openhft.hashing, and has a non-staticrequires jdk.unsupported.Validation
Java 8 build
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 mvn -B clean verifyCanonical Java 8-built JAR SHA-256:
f629250a02248de8138084e65feac897710fd55d6f0630a397ae6599b1c319ab.Exact Java 8-built JAR
sun.misc.Unsafe).net.openhft.hashing.jar --validate: passed.jar --describe-module --release 9: exportsnet.openhft.hashing; requires mandatedjava.baseandjdk.unsupported.Java 25 build
JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64 mvn -B clean verifyAuthorship and line-survival audit
0bfbe9692e9b4c5d937e64f6569815c4c0d0d78f.cdbdc5060cddb1373a86a1575445b68f1b1d08c0, with authorBenjamin Marwell <bmarwell@apache.org>and GitHub author@bmarwell.b84125e0e04efd09b9ffbcec5e2537f169f4645f.pom.xmland the one corrected integration-test documentation sentence described below.module-info.java(9), settings (6), and the original modular Invoker properties (2) remain attributed to Benjamin.pom.xmladditions, the multi-release manifest configuration and Maven Invoker integration remain attributed to Benjamin (39 surviving lines).pom.xmllines are specifically the globalreleaseproperty, JDK-conditionalcompile-java9execution, and bundleInclude-Resourcewiring. Those lines made descriptor presence depend on the Maven JDK and therefore had to be replaced by the deterministic ModiTect mechanism.sun.nio.chcould not be accessed, while the preserved direct-buffer fast path deliberately accesses it through a documented--add-exportsoption. All other original README lines retain Benjamin's attribution.git diff --checkpassed.Scope
Part of #60, Stage 2. This establishes deterministic explicit-module packaging. Direct-buffer/internal-API hardening and the broader Java 25 runtime-path matrix belong to Stage 3.