Comparing CodeIntelligenceTesting:main...xerial:main · CodeIntelligenceTesting/snappy-java
Commits on Nov 24, 2025
-
Document JDK 24+ native access requirements (xerial#702)
Add documentation for JEP 472 native access requirements that affect users running snappy-java on JDK 24 or later. Since snappy-java uses JNI to load native libraries, applications running on JDK 24+ must add the --enable-native-access=ALL-UNNAMED JVM flag. Per JEP 472 guidance, this is the application developer's responsibility (not the library's). The new section includes: - Clear explanation of the requirement - Examples for Maven, Gradle, sbt, and command-line usage - Warning message examples users will encounter - Rationale based on JEP 472's "integrity by default" policy No code changes are needed - this is purely documentation to help users understand and address the warnings they see on JDK 24+. Fixes xerial#689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
-
Add JDK 25 to CI test matrix (xerial#703)
Update CI to test on JDK 25 (LTS) and remove JDK 24 (non-LTS). Changes: - Replace JDK 24 with JDK 25 in test matrix - Add --enable-native-access=ALL-UNNAMED flag for JDK 24+ tests - This ensures native library loading works correctly per JEP 472 The CI now tests on: JDK 8, 11, 17, 21, 25 (all LTS versions plus latest) Related to xerial#689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
-
Add JAR integration test for JDK compatibility (xerial#704)
* Add Enable-Native-Access manifest attribute for JDK 24+ 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 xerial#689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add integration test for JAR manifest and native access 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 xerial#689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Clean up and finalize integration test 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 xerial#689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove unnecessary manifest check from integration test The manifest check is no longer needed since we decided not to include the Enable-Native-Access attribute. Related to xerial#689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>