diff --git a/.circleci/config.yml b/.circleci/config.yml index 4e45fab3..5aeb3fe7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,7 +70,7 @@ jobs: working_directory: ~/repo environment: LEIN_ROOT: "true" - GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.3.0 + GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0 BABASHKA_PLATFORM: linux # used in release script BABASHKA_TEST_ENV: native BABASHKA_XMX: "-J-Xmx6500m" @@ -104,9 +104,9 @@ jobs: name: Download GraalVM command: | cd ~ - if ! [ -d graalvm-ce-java11-20.3.0 ]; then - curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz - tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz + if ! [ -d graalvm-ce-java11-21.0.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz + tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz fi - run: name: Build binary @@ -130,7 +130,7 @@ jobs: - save_cache: paths: - ~/.m2 - - ~/graalvm-ce-java11-20.3.0 + - ~/graalvm-ce-java11-21.0.0 key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} - store_artifacts: path: /tmp/release @@ -138,14 +138,14 @@ jobs: - run: name: Publish artifact link to Slack command: | - ./bb .circleci/script/publish_artifact.clj + ./bb .circleci/script/publish_artifact.clj || true linux-static: docker: - image: circleci/clojure:lein-2.9.1 working_directory: ~/repo environment: LEIN_ROOT: "true" - GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.3.0 + GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0 BABASHKA_PLATFORM: linux-static # used in release script BABASHKA_TEST_ENV: native BABASHKA_STATIC: "true" @@ -190,9 +190,9 @@ jobs: name: Download GraalVM command: | cd ~ - if ! [ -d graalvm-ce-java11-20.3.0 ]; then - curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz - tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz + if ! [ -d graalvm-ce-java11-21.0.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz + tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz fi - run: name: Build binary @@ -216,7 +216,7 @@ jobs: - save_cache: paths: - ~/.m2 - - ~/graalvm-ce-java11-20.3.0 + - ~/graalvm-ce-java11-21.0.0 key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} - store_artifacts: path: /tmp/release @@ -224,13 +224,13 @@ jobs: - run: name: Publish artifact link to Slack command: | - ./bb .circleci/script/publish_artifact.clj + ./bb .circleci/script/publish_artifact.clj || true mac: macos: xcode: "12.0.0" environment: MACOSX_DEPLOYMENT_TARGET: 10.13 # 10.12 is EOL - GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-20.3.0/Contents/Home + GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-21.0.0/Contents/Home BABASHKA_PLATFORM: macos # used in release script BABASHKA_TEST_ENV: native BABASHKA_XMX: "-J-Xmx6500m" @@ -258,9 +258,9 @@ jobs: command: | cd ~ ls -la - if ! [ -d graalvm-ce-java11-20.3.0 ]; then - curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz - tar xzf graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz + if ! [ -d graalvm-ce-java11-21.0.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz + tar xzf graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz fi - run: name: Build binary @@ -282,7 +282,7 @@ jobs: - save_cache: paths: - ~/.m2 - - ~/graalvm-ce-java11-20.3.0 + - ~/graalvm-ce-java11-21.0.0 key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} - store_artifacts: path: /tmp/release @@ -290,7 +290,7 @@ jobs: - run: name: Publish artifact link to Slack command: | - ./bb .circleci/script/publish_artifact.clj + ./bb .circleci/script/publish_artifact.clj || true deploy: resource_class: large docker: diff --git a/.circleci/script/publish_artifact.clj b/.circleci/script/publish_artifact.clj index 02b7c62c..3ac5ff32 100755 --- a/.circleci/script/publish_artifact.clj +++ b/.circleci/script/publish_artifact.clj @@ -3,7 +3,7 @@ '[clojure.java.io :as io] '[clojure.string :as str]) -(def channel "#babashka_circleci_builds") +(def channel "#babashka-circleci-builds") #_(def channel "#_test") (def babashka-version (str/trim (slurp (io/file "resources" "BABASHKA_VERSION")))) (def slack-hook-url (System/getenv "SLACK_HOOK_URL")) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ab1d4dcf..52cef161 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,17 +45,17 @@ jobs: uses: actions/cache@v1 id: cache-graalvm with: - path: ~/graalvm-ce-java11-20.3.0 - key: ${{ runner.os }}-graalvm-20.3.0 + path: ~/graalvm-ce-java11-21.0.0 + key: ${{ runner.os }}-graalvm-21.0.0 restore-keys: | - ${{ runner.os }}-graalvm-20.3.0 + ${{ runner.os }}-graalvm-21.0.0 - name: Download GraalVM run: | cd ~ - if ! [ -d graalvm-ce-java11-20.3.0 ]; then - curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz - tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz + if ! [ -d graalvm-ce-java11-21.0.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz + tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz fi - name: Fetch deps @@ -65,18 +65,18 @@ jobs: - name: Run tests run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" script/test - name: Test libraries run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" sudo script/install-clojure script/run_lib_tests - name: Build uberjar run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" script/uberjar - name: Babashka version @@ -133,17 +133,17 @@ jobs: uses: actions/cache@v1 id: cache-graalvm with: - path: ~/graalvm-ce-java11-20.3.0 - key: ${{ runner.os }}-graalvm-20.3.0 + path: ~/graalvm-ce-java11-21.0.0 + key: ${{ runner.os }}-graalvm-21.0.0 restore-keys: | - ${{ runner.os }}-graalvm-20.3.0 + ${{ runner.os }}-graalvm-21.0.0 - name: Download GraalVM run: | cd ~ - if ! [ -d graalvm-ce-java11-20.3.0 ]; then - curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz - tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz + if ! [ -d graalvm-ce-java11-21.0.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz + tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz fi - name: Babashka version @@ -156,13 +156,13 @@ jobs: run: | export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_XMX="-J-Xmx6g" - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json script/compile - name: Test binary run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" BABASHKA_TEST_ENV=native script/test - name: Install clojure @@ -171,7 +171,7 @@ jobs: - name: Test libraries run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" BABASHKA_TEST_ENV=native script/run_lib_tests - name: Upload artifact @@ -214,17 +214,17 @@ jobs: uses: actions/cache@v1 id: cache-graalvm with: - path: ~/graalvm-ce-java11-20.3.0 - key: ${{ runner.os }}-graalvm-20.3.0 + path: ~/graalvm-ce-java11-21.0.0 + key: ${{ runner.os }}-graalvm-21.0.0 restore-keys: | - ${{ runner.os }}-graalvm-20.3.0 + ${{ runner.os }}-graalvm-21.0.0 - name: Download GraalVM run: | cd ~ - if ! [ -d graalvm-ce-java11-20.3.0 ]; then - curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz - tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz + if ! [ -d graalvm-ce-java11-21.0.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz + tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz fi - name: Babashka version @@ -237,7 +237,7 @@ jobs: run: | export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_XMX="-J-Xmx6g" - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" export BABASHKA_STATIC=true cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json script/compile @@ -245,7 +245,7 @@ jobs: - name: Test binary run: | ./bb '(+ 1 2 3)' - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" BABASHKA_TEST_ENV=native script/test - name: Install clojure @@ -254,7 +254,7 @@ jobs: - name: Test libraries run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0" BABASHKA_TEST_ENV=native script/run_lib_tests - name: Upload artifact @@ -288,17 +288,17 @@ jobs: uses: actions/cache@v1 id: cache-graalvm with: - path: ~/graalvm-ce-java11-20.3.0 - key: ${{ runner.os }}-graalvm-20.3.0 + path: ~/graalvm-ce-java11-21.0.0 + key: ${{ runner.os }}-graalvm-21.0.0 restore-keys: | - ${{ runner.os }}-graalvm-20.3.0 + ${{ runner.os }}-graalvm-21.0.0 - name: Download GraalVM run: | cd ~ - if ! [ -d graalvm-ce-java11-20.3.0 ]; then - curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz - tar xzf graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz + if ! [ -d graalvm-ce-java11-21.0.0 ]; then + curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz + tar xzf graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz fi - name: Babashka version @@ -311,19 +311,19 @@ jobs: run: | export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_XMX="-J-Xmx6g" - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0/Contents/Home" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0/Contents/Home" cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json script/compile - name: Test binary run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0/Contents/Home" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0/Contents/Home" sudo script/install-leiningen BABASHKA_TEST_ENV=native script/test - name: Test libraries run: | - export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0/Contents/Home" + export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0/Contents/Home" sudo script/install-clojure BABASHKA_TEST_ENV=native script/run_lib_tests diff --git a/Dockerfile b/Dockerfile index 67bec53b..004fdba4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,13 +3,13 @@ FROM clojure:lein-2.9.1 AS BASE RUN apt update RUN apt install --no-install-recommends -yy curl unzip build-essential zlib1g-dev WORKDIR "/opt" -RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz -RUN tar -xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz +RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz +RUN tar -xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz ARG BABASHKA_XMX="-J-Xmx3g" -ENV GRAALVM_HOME="/opt/graalvm-ce-java11-20.3.0" -ENV JAVA_HOME="/opt/graalvm-ce-java11-20.3.0/bin" +ENV GRAALVM_HOME="/opt/graalvm-ce-java11-21.0.0" +ENV JAVA_HOME="/opt/graalvm-ce-java11-21.0.0/bin" ENV PATH="$JAVA_HOME:$PATH" ENV BABASHKA_XMX=$BABASHKA_XMX diff --git a/appveyor.yml b/appveyor.yml index 18c29b40..a837a22a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,7 +7,7 @@ image: Visual Studio 2017 clone_folder: C:\projects\babashka environment: - GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-20.3.0 + GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-21.0.0 BABASHKA_XMX: "-J-Xmx5g" cache: @@ -44,7 +44,7 @@ build_script: - cmd: >- call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" - powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-windows-amd64-20.3.0.zip', 'graalvm.zip') }" + powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-windows-amd64-21.0.0.zip', 'graalvm.zip') }" powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }" diff --git a/doc/.#dev.md b/doc/.#dev.md deleted file mode 120000 index 6cf9dd9f..00000000 --- a/doc/.#dev.md +++ /dev/null @@ -1 +0,0 @@ -borkdude@MBP2019.local.17736 \ No newline at end of file diff --git a/doc/build.md b/doc/build.md index 144d2fbb..b79f0dc4 100644 --- a/doc/build.md +++ b/doc/build.md @@ -3,24 +3,24 @@ ## Prerequisites - Install [lein](https://leiningen.org/) for producing uberjars -- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *java11-20.3.0*. +- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *java11-21.0.0*. - For Windows, installing Visual Studio 2019 with the "Desktop development with C++" workload is recommended. - Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like: ``` shell - export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-20.1.0/Contents/Home + export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.0.0/Contents/Home ``` On linux: ``` shell - export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-20.1.0 + export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.0.0 ``` On Windows, from the [Visual Studio 2019 x64 Native Tools Command Prompt](https://github.com/oracle/graal/issues/2116#issuecomment-590470806) or `cmd.exe` (not Powershell): ``` - set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-java11-20.1.0 + set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-java11-21.0.0 ``` If you are not running from the x64 Native Tools Command Prompt, you will need to set additional environment variables using: ``` diff --git a/doc/dev.md b/doc/dev.md index 126da73e..7c1121bd 100644 --- a/doc/dev.md +++ b/doc/dev.md @@ -1,6 +1,6 @@ # Developing Babashka -You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java11-20.3.0. +You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java11-21.0.0. ## Clone repository diff --git a/project.clj b/project.clj index f272168d..b91000a0 100644 --- a/project.clj +++ b/project.clj @@ -20,7 +20,7 @@ [org.clojure/tools.cli "1.0.194"] [cheshire "5.10.0"] [nrepl/bencode "1.1.0"] - [borkdude/sci.impl.reflector "0.0.1-java11"] + [borkdude/sci.impl.reflector "0.0.1"] [org.clojure/test.check "1.1.0"] [org.clojure/math.combinatorics "0.1.6"]] :profiles {:feature/xml {:source-paths ["feature-xml"] @@ -76,7 +76,6 @@ "-Dclojure.spec.skip-macros=true"] :main babashka.main :aot :all} - :native-image {:dependencies [[borkdude/clj-reflector-graal-java11-fix "0.0.1-graalvm-20.3.0"]]} :reflection {:main babashka.impl.classes/generate-reflection-file}} :aliases {"bb" ["with-profile" "test" "run" "-m" "babashka.main"]} :deploy-repositories [["clojars" {:url "https://clojars.org/repo" diff --git a/script/bump_graal_version.clj b/script/bump_graal_version.clj index e349b9e8..e448d42f 100755 --- a/script/bump_graal_version.clj +++ b/script/bump_graal_version.clj @@ -53,7 +53,7 @@ ;; We could have them as environment variables (def current-graal-version "20.2.0") (def current-java-version "java11") -(def valid-graal-bumps ["19.3.2" "20.1.0" "20.2.0" "20.3.0"]) +(def valid-graal-bumps ["19.3.2" "20.1.0" "20.2.0" "20.3.0" "21.0.0"]) (def valid-java-bumps ["java8" "java11"]) (def cl-options diff --git a/script/compile b/script/compile index 80529f0d..5451c4f6 100755 --- a/script/compile +++ b/script/compile @@ -25,9 +25,10 @@ export JAVA_HOME=$GRAALVM_HOME export PATH=$GRAALVM_HOME/bin:$PATH rm -rf resources/*.class -SVM_JAR=$(find -L "$GRAALVM_HOME" | grep svm.jar) -"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java -"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffSunAwtWwwContentAudioAiff.java +# SVM_JAR=$(find -L "$GRAALVM_HOME" | grep svm.jar) +# "$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java +# "$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffSunAwtWwwContentAudioAiff.java +# "$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffMisc.java if [ -z "$BABASHKA_JAR" ]; then lein with-profiles +reflection,+native-image "do" run diff --git a/script/compile.bat b/script/compile.bat index 8818b694..f0f13db2 100644 --- a/script/compile.bat +++ b/script/compile.bat @@ -48,6 +48,7 @@ call %GRAALVM_HOME%\bin\native-image.cmd ^ "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiDeviceProvider" ^ "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.SoundbankReader" ^ "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileWriter" ^ + "-H:ServiceLoaderFeatureExcludeServices=java.awt.Toolkit" ^ "%BABASHKA_XMX%" if %errorlevel% neq 0 exit /b %errorlevel% diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index a911d215..0ec769f1 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -71,7 +71,10 @@ {:name "toString"} {:name "toURI"}]} java.util.Arrays - {:methods [{:name "copyOf"}]}} + {:methods [{:name "copyOf"}]} + ;; this fixes clojure.lang.Reflector for Java 11 + java.lang.reflect.AccessibleObject + {:methods [{:name "canAccess"}]}} features/hsqldb? (assoc `org.hsqldb.dbinfo.DatabaseInformationFull {:methods [{:name "" :parameterTypes ["org.hsqldb.Database"]}]}