sbt/.github/workflows
MkDev11 e16298521b
[2.x] feat: Enable musl static linking for sbtn on JDK 17+ (#8464)
** Problem **

The sbtn (sbt thin client) native image on Linux currently depends on glibc because ipcsocket uses JNI for Unix domain sockets. When building with musl for static linking, the JNI library fails to load since musl doesn't support `dlopen`.

** Solution **

Instead of upgrading to ipcsocket 2.x (which isn't ready for production), I created a `UnixDomainSocketFactory` that detects JDK 17+ at runtime and uses the native `java.net.UnixDomainSocketAddress` API directly via reflection. This completely bypasses JNI on modern JDKs.

For older JDKs (8 and 11), the factory falls back to ipcsocket 1.6.3, which is stable and well-tested.

** How It Works **

The factory checks at startup whether `java.net.UnixDomainSocketAddress` is available:

- **JDK 17+**: Uses native NIO Unix domain sockets (no JNI, no native libraries)
- **JDK 8/11**: Falls back to ipcsocket's JNI-based implementation

This approach:
- Enables musl static linking on JDK 17+ without any native dependencies
- Maintains full backward compatibility with older JDKs
- Keeps the stable ipcsocket 1.6.3 instead of the unstable 2.x
2026-01-13 23:14:45 -05:00
..
ci.yml [2.x] fix: Fix whatDependsOn RuntimeException (#8462) 2026-01-13 17:12:57 -05:00
cla.yml Use new Scala CLA checker 2024-12-17 14:58:29 -08:00
clean.yml Add clean.yml 2025-08-22 16:59:23 -04:00
client-test.yml [2.x] feat: Enable musl static linking for sbtn on JDK 17+ (#8464) 2026-01-13 23:14:45 -05:00
dependency-graph.yml [1.x] Bump actions/checkout from 5 to 6 2025-11-24 14:14:23 +09:00
lock-thread.yml Bump dessant/lock-threads from 5 to 6 2025-12-15 04:00:59 +00:00
nightly.yml [1.x] Bump actions/checkout from 5 to 6 2025-11-24 14:14:23 +09:00
server-test.yml [1.x] Bump actions/checkout from 5 to 6 2025-11-24 14:14:23 +09:00
winget.yml Create winget.yml 2023-02-27 14:57:36 +05:30