From b73940861fb7c008b5be2ddf08abc602a6011dbb Mon Sep 17 00:00:00 2001 From: Jakub Holy Date: Wed, 11 Nov 2020 22:29:42 +0100 Subject: [PATCH] Add feature/oracledb (#638) NOTE: Using the Oracle driver directly requires some GraalVM settings while the helidon wrapper provides those and thus works out of the box. --- .gitignore | 1 + doc/build.md | 1 + project.clj | 2 ++ script/compile | 1 + script/uberjar | 8 ++++++++ script/uberjar.bat | 6 ++++++ src/babashka/impl/features.clj | 1 + src/babashka/main.clj | 6 ++++-- 8 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 266fb85d8..39d05c45b 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ org_babashka*.h /bb.stripped.pdb /.calva !test-resources/divide_by_zero.jar +.envrc diff --git a/doc/build.md b/doc/build.md index 31e439e99..6ae923a99 100644 --- a/doc/build.md +++ b/doc/build.md @@ -82,6 +82,7 @@ Babashka supports the following feature flags: | `BABASHKA_FEATURE_JDBC` | Includes the [next.jdbc](https://github.com/seancorfield/next-jdbc) library | `false` | | `BABASHKA_FEATURE_POSTGRESQL` | Includes the [PostgresSQL](https://jdbc.postgresql.org/) JDBC driver | `false` | | `BABASHKA_FEATURE_HSQLDB` | Includes the [HSQLDB](http://www.hsqldb.org/) JDBC driver | `false` | +| `BABASHKA_FEATURE_ORACLEDB` | Includes the [Oracle](https://www.oracle.com/database/technologies/appdev/jdbc.html) JDBC driver | `false` | | `BABASHKA_FEATURE_DATASCRIPT` | Includes [datascript](https://github.com/tonsky/datascript) | `false` | | `BABASHKA_FEATURE_LANTERNA` | Includes [clojure-lanterna](https://github.com/babashka/clojure-lanterna) | `false` | diff --git a/project.clj b/project.clj index e2b7fd798..e0c093518 100644 --- a/project.clj +++ b/project.clj @@ -29,6 +29,8 @@ :feature/jdbc {:source-paths ["feature-jdbc"] :dependencies [[seancorfield/next.jdbc "1.1.610"]]} :feature/postgresql [:feature/jdbc {:dependencies [[org.postgresql/postgresql "42.2.18"]]}] + ;:feature/oracledb [:feature/jdbc {:dependencies [[com.oracle.database.jdbc/ojdbc8 "19.8.0.0"]]}] + :feature/oracledb [:feature/jdbc {:dependencies [[io.helidon.integrations.db/ojdbc "2.1.0"]]}] ; ojdbc10 + GraalVM config, by Oracle :feature/hsqldb [:feature/jdbc {:dependencies [[org.hsqldb/hsqldb "2.5.1"]]}] :feature/core-async {:source-paths ["feature-core-async"] :dependencies [[org.clojure/core.async "1.3.610"]]} diff --git a/script/compile b/script/compile index c8dcb31bf..8f5960edc 100755 --- a/script/compile +++ b/script/compile @@ -75,6 +75,7 @@ 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 diff --git a/script/uberjar b/script/uberjar index 787fba892..863888c5c 100755 --- a/script/uberjar +++ b/script/uberjar @@ -15,6 +15,7 @@ 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 @@ -49,6 +50,13 @@ else BABASHKA_LEIN_PROFILES+=",-feature/hsqldb" fi +if [ "$BABASHKA_FEATURE_ORACLEDB" = "true" ] +then + BABASHKA_LEIN_PROFILES+=",+feature/oracledb" +else + BABASHKA_LEIN_PROFILES+=",-feature/oracledb" +fi + if [ "$BABASHKA_FEATURE_XML" != "false" ] then BABASHKA_LEIN_PROFILES+=",+feature/xml" diff --git a/script/uberjar.bat b/script/uberjar.bat index 13eda7618..830a90e11 100755 --- a/script/uberjar.bat +++ b/script/uberjar.bat @@ -28,6 +28,12 @@ if "%BABASHKA_FEATURE_HSQLDB%"=="true" ( set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,-feature/hsqldb ) +if "%BABASHKA_FEATURE_ORACLEDB%"=="true" ( + set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,+feature/oracledb +) else ( + set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,-feature/oracledb +) + if not "%BABASHKA_FEATURE_XML%"=="false" ( set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,+feature/xml ) else ( diff --git a/src/babashka/impl/features.clj b/src/babashka/impl/features.clj index 22acb9128..c42705345 100644 --- a/src/babashka/impl/features.clj +++ b/src/babashka/impl/features.clj @@ -15,6 +15,7 @@ ;; excluded by default (def jdbc? (= "true" (System/getenv "BABASHKA_FEATURE_JDBC"))) (def postgresql? (= "true" (System/getenv "BABASHKA_FEATURE_POSTGRESQL"))) +(def oracledb? (= "true" (System/getenv "BABASHKA_FEATURE_ORACLEDB"))) (def hsqldb? (= "true" (System/getenv "BABASHKA_FEATURE_HSQLDB"))) (def datascript? (= "true" (System/getenv "BABASHKA_FEATURE_DATASCRIPT"))) (def lanterna? (= "true" (System/getenv "BABASHKA_FEATURE_LANTERNA"))) diff --git a/src/babashka/main.clj b/src/babashka/main.clj index ca9c84de0..89cc05b6a 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -281,6 +281,7 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that :feature/jdbc %s :feature/postgresql %s :feature/hsqldb %s + :feature/oracledb %s :feature/httpkit-client %s :feature/lanterna %s}") version @@ -293,6 +294,7 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that features/jdbc? features/postgresql? features/hsqldb? + features/oracledb? features/httpkit-client? features/lanterna?))) @@ -659,5 +661,5 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that ;;;; Scratch -(comment - ) +(comment) +