Add JAR integration test for JDK compatibility by xerial · Pull Request #704 · xerial/snappy-java
Add the Enable-Native-Access: ALL-UNNAMED attribute to the JAR manifest to suppress native access warnings on JDK 24+ without requiring users to add the --enable-native-access=ALL-UNNAMED command-line flag. This manifest attribute allows the library to declare its need for native access, which helps suppress the warnings introduced by JEP 472 when snappy-java loads native libraries via JNI. Benefits: - Users no longer need to add JVM flags for basic usage - Warnings are suppressed automatically when the JAR is on the classpath - Backwards compatible with all JDK versions (attribute is ignored on JDK < 24) Related to #689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
bot reviewed Nov 24, 2025
Add a comprehensive integration test that verifies snappy-java works in a separate JVM process. This test: 1. Builds the JAR with sbt 2. Compiles a simple test program that uses snappy-java 3. Runs the test in a fresh JVM WITHOUT --enable-native-access flag 4. Verifies the compression/decompression works correctly 5. Checks for JEP 472 warnings on JDK 24+ The test can be run two ways: - Via JUnit: testOnly org.xerial.snappy.JarManifestIntegrationTest - Via script: ./script/test-jar-integration.sh Findings: The Enable-Native-Access manifest attribute is present but does NOT suppress warnings when the JAR is used as a library on the classpath. The attribute only works for executable JARs (java -jar). Users still need to add --enable-native-access=ALL-UNNAMED for now. Related to #689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Changes: - Remove Enable-Native-Access manifest attribute (doesn't work for library JARs) - Remove unused JUnit integration test (using shell script instead) - Add JAR integration test to CI workflow for all JDK versions The integration test now runs in CI after regular tests, verifying that the built JAR works correctly in a separate JVM process on each tested JDK version (8, 11, 17, 21, 25). Related to #689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
xerial
changed the title
Add Enable-Native-Access manifest attribute for JDK 24+
Add JAR integration test for JDK compatibility
The manifest check is no longer needed since we decided not to include the Enable-Native-Access attribute. Related to #689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
xerial
deleted the
add-native-access-manifest
branch
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