Use new JVM options from JEP 471 and JEP 472 in CI testing #511
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.
JEP 471 adds (from Java 23 on) the possibility to invoke the JVM with
--sun-misc-unsafe-memory-access=deny.JEP 472 adds (from Java 24 on) the possibility to invoke the JVM with
--illegal-native-access=deny.To use both options would be best practice (especially on Java 24+, with the loss of any policy enforcement on access to
UnsafeorloadLibrary), so it is worthwhile to make sure they are used inpljava.vmoptionsfor the CI tests (on the Java versions that support them).Also switch the CI scripts from using the
pgjdbc-ngdriver to usepgjdbcinstead. The-ngdriver usesnetty, which does attempt aloadLibrary. That's on the client side (injshell), so isn't affected by adding the options above topljava.vmoptionson the server side. But the change will save a warning now (and a failure in a laterjshellversion wheredenybecomes the default).A long-overdue refactoring (first shirked in 8a6b1b4) finally factors out the nearly-identical
jshellscripts from the GitHub Actions, AppVeyor, and Travis configurations, into one file they all can share.Several other miscellaneous changes to keep up with the moving target that is GitHub Actions.