Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Duplicate
-
None
-
None
Description
Since CONJ-1354 replaced waffle-jna with the JDK native GSS-API bridge, JNA (jna and jna-platform, both optional) is only used by the socket layer:
- UnixDomainSocket binds libc socket/connect/recv/send/close through Native.register("c") to implement the localSocket option.
- NamedPipeSocket calls Kernel32.WaitNamedPipe when a pipe is busy, with an existing sleep-and-retry fallback used when JNA is absent.
- SocketUtility calls Platform.getOSType() only to detect JNA presence.
Java 16 provides native Unix domain socket support through SocketChannel.open(StandardProtocolFamily.UNIX) and UnixDomainSocketAddress, which removes the need for a native access library.
goal is to:
- Add a java16 multi-release source tree with a UnixDomainSocket built on a UNIX SocketChannel, and the matching compile-java-16 execution in the pom profiles.
- Make the Java 8 baseline UnixDomainSocket fail with a clear "requires Java 16+" error.
- Drop the WaitNamedPipe branch from NamedPipeSocket and the JNA presence check from SocketUtility.
- Remove JNA from the pom profiles, module-info.java (requires static com.sun.jna*), bnd.bnd Import-Package, and the SBOM vendor list.
(OpenJDK java 8 EOL is end of November 2026)
Attachments
Issue Links
- duplicates
-
CONJ-1370 Remove the JNA dependency, use JDK unix domain socket support
-
- Closed
-