You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The previous helper snapshot referenced an unpublished dirty scala-native-crypto build and older curl APIs, so a fresh clone could not compile cleanly.
What changed:
Move scala-native-crypto to public 0.3.0.
Update curl option/info constants and callback signatures to the current generated APIs.
Keep KeyStore-backed client certificate initialization explicit as unsupported instead of relying on removed dirty-snapshot internals.
Adjust the related compile test to assert that unsupported boundary.
Validation:
git diff --check
./mill -i modules.java-http-client.compile
./mill -i modules.java-http-client.test.compile
Public patch apply was also checked against a fresh clone.
Known limit:
Full native test execution is still blocked on my local machine by missing OpenSSL headers (openssl/ssl.h), so this PR is scoped to restoring clean compile/test-compile and making the unsupported client-certificate path explicit.
Validation update: I reran the native compile/link locally with OpenSSL 3.5.0 provided via CPATH, LIBRARY_PATH, DYLD_LIBRARY_PATH, and PKG_CONFIG_PATH. The previous openssl/ssl.h blocker is gone: modules.java-http-client.test.compile and modules.java-http-client.test.nativeLink complete successfully, and the native linker now links [pthread, dl, m, crypto, curl, ssl].
I’m not claiming the full modules.java-http-client.test suite is green yet: after link it reaches HttpClientTest and appears to hang in the existing HTTP request loop, so I stopped that run rather than over-reporting it. The compile/link issue this PR targets is now validated locally.
fixed the curl multi wait loop so it stops once the multi handle reports no running transfers, instead of polling forever after completion;
decoded the CURLMSG_DONE payload from the pointer-sized union slot before mapping libcurl result codes, so invalid-host and unreachable-port paths now become ConnectException;
made client KeyManager registration fail explicitly as unsupported, and adjusted the unsupported-boundary test so it no longer depends on unavailable KeyStore.getInstance.
Validation with the same local OpenSSL 3.5.0 include/lib/pkg-config paths:
This is still not a full Requests-Scala bounty claim from this PR alone; it makes the helper PR green locally and removes the previous HttpClientTest hang/full-suite blocker.
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
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 updates the helper java-http-client module to compile against the public scala-native-crypto 0.3.0 release and the current curl/OpenSSL APIs.
Why:
java.net.http.HttpClientscala-native/scala-native#4104 points Requests-Scala Scala Native support toward java.net.http support.What changed:
scala-native-cryptoto public0.3.0.Validation:
git diff --check./mill -i modules.java-http-client.compile./mill -i modules.java-http-client.test.compileKnown limit:
openssl/ssl.h), so this PR is scoped to restoring clean compile/test-compile and making the unsupported client-certificate path explicit.