-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify deployment of ACCP #409
Comments
Thanks for the report @cloudshiftchris. Just so we understand the ask correctly, are you looking for an "uberjar" style solution that bundles everything together (with distinct names per native lib build), the ability to specify individual components at run/compile time, or both? |
@WillChilds-Klein the "uberjar" that automagically loads the correct library (or not, with graceful fallback for unsupported platforms) is the primary ask. The goal being to do reduce barriers to adoption / extensibility - do the minimal work in the consumer's build script (drop in the uberjar), which provides the flexibility to move between platforms w/o rebuilding (or even thinking about all that), no different than any other lib (i.e. hide the "native/platform" details away...). |
Would appreciate this as well, use case:
Even solving the last point would already go a long way. Would you be open for a PR to address this? |
We worked through moving from
netty-tcnative
to ACCP; it wasn't a smooth path, and still has a few rough edges.For Netty TcNative we had pulled in the native dependencies via build.gradle.kts as:
Key points:
runtimeOnly
as the native libraries only need to be pulled in at runtime;Netty has collaborating components - code in Netty itself and these optional dependencies - making it smart enough to attempt to load the (optional) native library for the current platform. For example,
libnetty_tcnative_osx_aarch_64.jnilib
is included in theosx-aarch_64
classifier. Note that the library name includes the platform information.We played with a few options for ACCP:
libamazonCorrettoCryptoProvider.dylib
is the same name for x86_64 and aarch64 variants;That was a non-starter.
build.gradle.kts
to account for development and deployment requirements:This works but isn't equivalent to what we had with Netty:
Ideally ACCP would support something like:
Aware that ACCP can be deployed out-of-band (into the class path, or installed in the JDK) but that poses additional complexities:
Perhaps similar to #366, with more color.
The text was updated successfully, but these errors were encountered: