NOTE: Using the Oracle driver directly requires some GraalVM settings while the helidon wrapper provides those and thus works out of the box.
90 lines
2.6 KiB
Bash
Executable file
90 lines
2.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -eou pipefail
|
|
|
|
BABASHKA_XMX=${BABASHKA_XMX:-"-J-Xmx4500m"}
|
|
|
|
if [ -z "$GRAALVM_HOME" ]; then
|
|
echo "Please set GRAALVM_HOME"
|
|
exit 1
|
|
fi
|
|
|
|
BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
|
|
|
|
BABASHKA_JAR=${BABASHKA_JAR:-"target/babashka-$BABASHKA_VERSION-standalone.jar"}
|
|
|
|
if [[ ! -f "$BABASHKA_JAR" ]]
|
|
then
|
|
echo "Please run script/uberjar first."
|
|
exit 1
|
|
fi
|
|
|
|
"$GRAALVM_HOME/bin/gu" install native-image
|
|
|
|
export JAVA_HOME=$GRAALVM_HOME
|
|
export PATH=$GRAALVM_HOME/bin:$PATH
|
|
|
|
SVM_JAR=$(find -L "$GRAALVM_HOME" | grep svm.jar)
|
|
"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java
|
|
|
|
if [ -z "$BABASHKA_JAR" ]; then
|
|
lein with-profiles +reflection,+native-image "do" run
|
|
lein "do" clean, uberjar
|
|
BABASHKA_JAR=${BABASHKA_JAR:-"target/babashka-$BABASHKA_VERSION-standalone.jar"}
|
|
fi
|
|
|
|
BABASHKA_BINARY=${BABASHKA_BINARY:-"bb"}
|
|
|
|
args=( "-jar" "$BABASHKA_JAR"
|
|
"-H:Name=$BABASHKA_BINARY"
|
|
"-H:+ReportExceptionStackTraces"
|
|
"-J-Dclojure.spec.skip-macros=true"
|
|
"-J-Dclojure.compiler.direct-linking=true"
|
|
"-H:IncludeResources=BABASHKA_VERSION"
|
|
"-H:IncludeResources=SCI_VERSION"
|
|
"-H:ReflectionConfigurationFiles=reflection.json"
|
|
"--initialize-at-run-time=java.lang.Math\$RandomNumberGeneratorHolder"
|
|
"--initialize-at-build-time"
|
|
"-H:Log=registerResource:"
|
|
"-H:EnableURLProtocols=http,https,jar"
|
|
"--enable-all-security-services"
|
|
"-H:+JNI"
|
|
"--verbose"
|
|
"--no-fallback"
|
|
"--no-server"
|
|
"--report-unsupported-elements-at-runtime"
|
|
"--initialize-at-run-time=org.postgresql.sspi.SSPIClient"
|
|
"$BABASHKA_XMX" )
|
|
|
|
BABASHKA_STATIC=${BABASHKA_STATIC:-}
|
|
|
|
if [ "$BABASHKA_STATIC" = "true" ]; then
|
|
args+=("--static")
|
|
fi
|
|
|
|
BABASHKA_FEATURE_HSQLDB=${BABASHKA_FEATURE_HSQLDB:-}
|
|
|
|
if [ "$BABASHKA_FEATURE_HSQLDB" = "true" ]; then
|
|
args+=("-H:IncludeResources=org/hsqldb/.*\.properties" "-H:IncludeResources=org/hsqldb/.*\.sql")
|
|
fi
|
|
|
|
BABASHKA_LEAN=${BABASHKA_LEAN:-}
|
|
|
|
if [ "$BABASHKA_LEAN" = "true" ]
|
|
then
|
|
export BABASHKA_FEATURE_JDBC=false
|
|
export BABASHKA_FEATURE_POSTGRESQL=false
|
|
export BABASHKA_FEATURE_HSQLDB=false
|
|
export BABASHKA_FEATURE_ORACLEDB=false
|
|
export BABASHKA_FEATURE_XML=false
|
|
export BABASHKA_FEATURE_YAML=false
|
|
export BABASHKA_FEATURE_CORE_ASYNC=false
|
|
export BABASHKA_FEATURE_CSV=false
|
|
export BABAHSKA_FEATURE_TRANSIT=false
|
|
export BABASHKA_FEATURE_JAVA_TIME=false
|
|
export BABASHKA_FEATURE_JAVA_NIO=false
|
|
export BABASHKA_FEATURE_HTTPKIT_CLIENT=false
|
|
export BABASHKA_FEATURE_HTTPKIT_SERVER=false
|
|
fi
|
|
|
|
"$GRAALVM_HOME/bin/native-image" "${args[@]}"
|