Add Java 9+ module support (JPMS) for jlink compatibility#196
Merged
rlm2002 merged 2 commits intowolfSSL:masterfrom Feb 6, 2026
Merged
Add Java 9+ module support (JPMS) for jlink compatibility#196rlm2002 merged 2 commits intowolfSSL:masterfrom
rlm2002 merged 2 commits intowolfSSL:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds Java Platform Module System (JPMS) support to wolfCrypt JNI/JCE, enabling the library to be used with jlink for creating custom Java runtimes while maintaining backward compatibility with Java 8.
Changes:
- Added module descriptor (
module-info.java) declaring thecom.wolfssl.wolfcryptmodule with exports forcom.wolfssl.wolfcryptandcom.wolfssl.provider.jcepackages - Implemented conditional compilation in both Ant and Maven build systems to include module-info only when building with Java 9+
- Added comprehensive CI workflow testing module support on Java 11/17/21 and verifying Java 8 compatibility
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/java9/module-info.java | Defines JPMS module descriptor with package exports, required modules, and service provider registration |
| build.xml | Adds Java version detection and conditional compilation target for module-info with release=9 |
| pom.xml | Adds Maven profile that automatically activates on Java 9+ to compile module-info separately |
| README.md | Documents module support, conditional compilation behavior, and provides jlink usage examples |
| .github/workflows/java-module-test.yml | Comprehensive CI workflow testing module compilation, jlink integration, and Java 8 compatibility |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
rlm2002
approved these changes
Feb 6, 2026
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.
This PR adds Java 9+ module support (JPMS) to wolfCrypt JNI/JCE, enabling use with
jlinkfor creating custom Java runtimes. We maintain full backward compatibility with Java 8, sincemodule-info.javais conditionally compiled in based on Java version.New Files:
src/java9/module-info.java- Module descriptor declaringcom.wolfsslmodule.github/workflows/java-module-test.yml- CI workflow validating module supportModified Files:
build.xml- Added conditional compilation of module-info (Java 9+ only)pom.xml- Added Maven profile for module-info compilation on Java 9+README.md- Added documentation for module support and jlink usageBoth Ant and Maven use conditional compilation based on JDK version:
The module descriptor:
com.wolfsslcom.wolfsslandcom.wolfssl.provider.jcepackagesuses java.security.Providerfor ServiceLoader compatibilityWolfCryptProvideras ajava.security.ProviderserviceAddresses issue: wolfSSL/wolfssljni#85
Related to JSSE PR here: wolfSSL/wolfssljni#324