-
Notifications
You must be signed in to change notification settings - Fork 326
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
Open Java modules for Snowflake setup #9664
Conversation
In the absence of other workarounds we need to ensure that every Java process is started with extra options: `--add-opens=java.base/java.nio=ALL-UNNAMED` Verified locally. Note: this only affects LS and cli will continue to crash on examples using Snowflake. Closes #9475.
distribution/lib/Standard/Snowflake/0.0.0-dev/src/Snowflake_Details.enso
Outdated
Show resolved
Hide resolved
I think I don't understand. Does this not affect the launcher as well? If I use |
Btw. the proper way to address the needs of Snowflake JDBC driver is to load each library's JAR files as a separate |
Tracked in #7082 |
You can always prefix Having said that, I will add it to the script by default, for convenience. |
This change adds Snowflake's jdbc library packaged in a fat jar. It's not a straightword inclusion mostly due to the complicated way how the jar itself is constructed: - it's a fat jar so includes other dependencies which we sometimes include - they are patching some of the dependencies and putting them under their subpackage making it impossible to use the `snowflake-jdbc-thin` dependency - a number of configs are spurious and need to be disabled - `FileTypeDetector` provider leads to runtime-/build-time initialization confict that is impossible to workaround without disabling it - need to open `java.base` module, similarly to #9664, due to Arrow's usage - `java.nio.DirectByteBuffer` constructor changed its signature in JDK21 from `(long, int)` to `(long, long)` which caused problems for the constructed NI and needed to be reflected in the config
This change adds Snowflake's jdbc library packaged in a fat jar. It's not a straightword inclusion mostly due to the complicated way how the jar itself is constructed: - it's a fat jar so includes other dependencies which we sometimes include - they are patching some of the dependencies and putting them under their subpackage making it impossible to use the `snowflake-jdbc-thin` dependency - a number of configs are spurious and need to be disabled - `FileTypeDetector` provider leads to runtime-/build-time initialization confict that is impossible to workaround without disabling it - need to open `java.base` module, similarly to #9664, due to Arrow's usage - `java.nio.DirectByteBuffer` constructor changed its signature in JDK21 from `(long, int)` to `(long, long)` which caused problems for the constructed NI and needed to be reflected in the config
This change adds Snowflake's jdbc library packaged in a fat jar. Closes #12151. # Important Notes It's not a straightforward inclusion mostly due to the complicated way how the jar itself is constructed: - it's a fat jar so includes other dependencies which we sometimes already include (possibly room for improvement, if we are willing to risk some incompatibilities) - they are patching some of the dependencies and putting them under their subpackage making it impossible to use the `snowflake-jdbc-thin` dependency - a number of configs are spurious and need to be disabled - `FileTypeDetector` provider leads to runtime-/build-time initialization conflict that is impossible to workaround without disabling it - need to open `java.base` module, similarly to #9664, due to Arrow's usage - `java.nio.DirectByteBuffer` constructor changed its signature in JDK21 from `(long, int)` to `(long, long)` which caused problems for the constructed NI and needed to be reflected in the config
Pull Request Description
In the absence of other workarounds we need to ensure that every Java process is started with extra options:
--add-opens=java.base/java.nio=ALL-UNNAMED
Verified locally. Note: this only affects LS and cli will continue to crash on examples using Snowflake.
Tested manually.
Closes #9475.
Important Notes
Some workarounds are being considered but we need this change sooner than later.
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:
Scala,
Java,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
./run ide build
.