elasticsearch/distribution/tools
Ryan Ernst 6375e9f443
Add native access library (#105100)
Elasticsearch requires access to some native functions. Historically
this has been achieved with the JNA library. However, JNA is a
complicated, magical library, and has caused various problems booting
Elasticsearch over the years. The new Java Foreign Function and Memory
API allows access to call native functions directly from Java. It also
has the advantage of tight integration with hotspot which can improve
performance of these functions (though performance of Elasticsearch's
native calls has never been much of an issue since they are mostly at
boot time).

This commit adds a new native lib that is internal to Elasticsearch. It
is built to use the foreign function api starting with Java 21, and
continue using JNA with Java versions below that.

Only one function, checking whether Elasticsearch is running as root, is
migrated. Future changes will migrate other native functions.
2024-02-07 18:27:09 -05:00
..
ansi-console Update Gradle Wrapper to 8.2 (#96686) 2023-07-04 15:35:15 +02:00
cli-launcher Forbid non-named threads (#101631) 2023-10-31 15:18:32 -07:00
geoip-cli Make some practically static methods static (#97565) 2023-10-06 23:37:07 +02:00
java-version-checker Make YamlRestTest and ElasticDistributionPlugin cc compatible (#101923) 2023-11-10 08:02:53 +01:00
keystore-cli Make some practically static methods static (#97565) 2023-10-06 23:37:07 +02:00
plugin-cli Upgrade ASM to 9.6 for Java 22 support (#104085) 2024-01-08 15:03:40 -05:00
server-cli Add native access library (#105100) 2024-02-07 18:27:09 -05:00
windows-service-cli ServerProcess refactoring (separate options construction from ServerProcess start) (#102973) 2023-12-14 07:37:50 +01:00