Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .current_gitmodules

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 6 additions & 4 deletions doc/changes/changes_9.4.0.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# script-languages-release 9.4.0, released t.b.d.
# script-languages-release 9.4.0, released 2025-03-24

Code name: t.b.d.
Code name: Java 17 standard flavor.

## Summary

t.b.d.
This release adds the Java 17 standard flavor, which is a replacement of the Java 17 template flavor. Furthermore, the UDF client accepts a new argument for the script options parser version for Java. `exaslct` was updated to version 3.0.0. Besides, the release provides several dependency updates and internal improvements.

## [Package Version Comparison between Release 9.3.0 and 9.4.0](package_diffs/9.4.0/README.md)

Expand All @@ -14,7 +14,8 @@ This release uses version 3.0.0 of the container tool.

## Features

- Replaced flavor `template-Exasol-all-java-17` with `standard-EXASOL-all-java-17`
- #1096: Replaced flavor `template-Exasol-all-java-17` with `standard-EXASOL-all-java-17`
- #1098: Allow setting script-options-parser version via CLI argument

## Security Issues

Expand All @@ -25,6 +26,7 @@ n/a
- #943: Use env variable for ssl dependencies
- #1043: Created a nox session for running OFT
- Updated poetry dependencies
- #1100: Ignore python module `setuptools.command.bdist_wheel` in import test

## Bugs

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

42 changes: 37 additions & 5 deletions exaudfclient/exaudfclient.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
#endif
#include <inttypes.h>



#ifdef ENABLE_JAVA_VM
#include "base/javacontainer/javacontainer_builder.h"
#endif //ENABLE_JAVA_VM
Expand Down Expand Up @@ -66,6 +68,10 @@ void set_SWIGVM_params(SWIGVM_params_t* p);
}
#endif

void print_usage(const char *prg_name) {
std::cerr << "Usage: " << prg_name << " <socket> lang=python|lang=r|lang=java|lang=streaming|lang=benchmark <scriptOptionsParserVersion=1|2>" << endl;
}

int main(int argc, char **argv) {
#ifndef UDF_PLUGIN_CLIENT
#ifdef CUSTOM_LIBEXAUDFLIB_PATH
Expand Down Expand Up @@ -125,13 +131,39 @@ int main(int argc, char **argv) {
return 1;
}
#else
if (argc != 3) {
cerr << "Usage: " << argv[0] << " <socket> lang=python|lang=r|lang=java|lang=streaming|lang=benchmark" << endl;
bool cli_use_ctp_parser = false;
if (argc < 3 || argc > 4) {
print_usage(argv[0]);
return 1;
}
if (4 == argc) {
if(strcmp(argv[3], "scriptOptionsParserVersion=2") == 0) {
cli_use_ctp_parser = true;
} else if (strcmp(argv[3], "scriptOptionsParserVersion=1") != 0) {
print_usage(argv[0]);
return 1;
}
}
const char* script_options_parser_env_val = ::getenv("SCRIPT_OPTIONS_PARSER_VERSION");
const bool useCtpgScriptOptionsParser = script_options_parser_env_val != nullptr &&
::strcmp(script_options_parser_env_val, "2") == 0;
bool use_ctpg_script_options_parser = false;
/*
* The given script-options-parser version set by the environment variable "SCRIPT_OPTIONS_PARSER_VERSION"
* must have priority over the CLI argument "scriptOptionsParserVersion=x".
* This allows clients to override the parser version in a specific UDF, if needed,
* via "%env SCRIPT_OPTIONS_PARSER_VERSION=x".
*/
if (script_options_parser_env_val != nullptr) {
if (::strcmp(script_options_parser_env_val, "1") == 0) {
use_ctpg_script_options_parser = false;
} else if (::strcmp(script_options_parser_env_val, "2") == 0) {
use_ctpg_script_options_parser = true;
} else {
print_usage(argv[0]);
return 1;
}
} else {
use_ctpg_script_options_parser = cli_use_ctp_parser;
}

#endif

Expand Down Expand Up @@ -171,7 +203,7 @@ int main(int argc, char **argv) {
} else if (strcmp(argv[2], "lang=java")==0)
{
#ifdef ENABLE_JAVA_VM
if (useCtpgScriptOptionsParser) {
if (use_ctpg_script_options_parser) {
vmMaker = [&](){return SWIGVMContainers::JavaContainerBuilder().useCtpgParser().build();};
} else {
vmMaker = [&](){return SWIGVMContainers::JavaContainerBuilder().build();};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
{
"key": "lang",
"value": "java"
},
{
"key": "scriptOptionsParserVersion",
"value": "2"
}
],
"udf_client_path": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ pyexasol|0.25.2
pysftp|0.2.9
pytz|2024.1
sagemaker|2.218.1
setuptools|70.0.0
setuptools|77.0.3
pycurl|7.45.3
redis|5.0.4
roman|4.2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ pyexasol|0.25.2
pysftp|0.2.9
pytz|2024.1
sagemaker|2.218.1
setuptools|70.0.0
setuptools|77.0.3
pycurl|7.45.3
redis|5.0.4
roman|4.2
Expand Down
Loading