From 3a5682eb43f7b4a93f72f680f30b3426dffb7d46 Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Fri, 1 Nov 2024 18:44:07 +0200 Subject: [PATCH 01/15] Add native-image compilation --- .gitignore | 1 + bb.edn | 89 ++- build.clj | 11 +- deps.edn | 5 +- graalvm-reachability-metadata/README.md | 3 + .../com.zaxxer/HikariCP/5.0.1/index.json | 5 + .../com.zaxxer/HikariCP/5.0.1/jni-config.json | 26 + .../HikariCP/5.0.1/proxy-config.json | 10 + .../HikariCP/5.0.1/reflect-config.json | 535 ++++++++++++++++++ .../com.zaxxer/HikariCP/index.json | 10 + .../postgresql/42.3.4/index.json | 3 + .../postgresql/42.3.4/reflect-config.json | 98 ++++ .../postgresql/42.7.3/index.json | 3 + .../postgresql/42.7.3/reflect-config.json | 98 ++++ .../org.postgresql/postgresql/index.json | 18 + resources/config.edn | 2 +- src/clj/backend/main.clj | 13 +- src/clj/backend/routes.clj | 2 +- 18 files changed, 915 insertions(+), 17 deletions(-) create mode 100644 graalvm-reachability-metadata/README.md create mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json create mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json create mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json create mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json create mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json create mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json create mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json create mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json create mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json create mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/index.json diff --git a/.gitignore b/.gitignore index f11a31f..6a1d698 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ node_modules/ /public/main.css .idea *.iml +.clj-kondo/imports diff --git a/bb.edn b/bb.edn index f9544bc..3c0b511 100644 --- a/bb.edn +++ b/bb.edn @@ -19,4 +19,91 @@ :task (shell "npx @svgr/cli --out-dir target/gen/svg -- src/svg")} icons {:doc "Generate React component JS files for svg files" :depends [-svgr] - :task (shell "npx babel target/gen/svg --out-dir src/js/icons")}}} + :task (shell "npx babel target/gen/svg --out-dir src/js/icons")} + + db-up {:doc "Start the database" + :task (shell "docker compose -p example-project up -d")} + db-down {:doc "Stop the database" + :task (shell "docker compose -p example-project down -d")} + + native-image {:doc "Create native image" + :requires ([babashka.process :as p] + [babashka.wait :as wait]) + :task (do + (defn start-backend-with-native-image-agent [http-port] + (shell "bb db-up") + (let [timeout-ms 5000 + tracing-process (p/process {:inherit true + :extra-env {"CONFIG_EDN" "resources/config.edn" + "HTTP_PORT" http-port}} + "java" (str "-agentlib:native-image-agent=" + "config-output-dir=target/native-image-configuration/META-INF/native-image") + "-jar" "target/app.jar")] + (when (= :timeout (wait/wait-for-port "localhost" http-port + {:timeout timeout-ms + :default :timeout})) + (p/destroy-tree tracing-process) + (throw (Exception. (str "Backend didn't start in " timeout-ms "ms")))) + tracing-process)) + + ;; Do a training run to gather metadata via native-image-agent + ;; Note that should not refer to any unnecessary test resources on the classpath during training, + ;; since those will get included into the metadata + (let [http-port 3322 + tracing-process (start-backend-with-native-image-agent http-port)] + (shell (format "curl http://localhost:%s/api/todo" http-port)) + (p/destroy-tree tracing-process) + ;; Wait for native-image-agent to create the tracing file + (when (= :timeout (wait/wait-for-path "target/native-image-configuration/META-INF/native-image/reachability-metadata.json" + {:timeout 5000 + :default :timeout})) + (println "Reachability metadata file not created") + (System/exit 1))) + + ;; Create the native image itself + (shell "native-image" + "--features=clj_easy.graal_build_time.InitClojureClasses" + ;; Logback related classes + "--initialize-at-build-time=ch.qos.logback" + "--initialize-at-build-time=ch.qos.logback.classic.Logger" + "--initialize-at-build-time=org.xml.sax" + + ;; Don't allow to fall back to launching a VM + "--no-fallback" + + ;; To make shutdown hooks work + "--install-exit-handlers" + + "-H:+UnlockExperimentalVMOptions" + "-H:IncludeResources=swagger-ui/.*" ;; TODO: Should create META-INF/native-image/metosin/ring-swagger-ui/native-image.properties + "-H:+PrintClassInitialization" + + "-cp" (str + ;; From training run with native-image-agent + "target/native-image-configuration" + ;; From https://github.com/oracle/graalvm-reachability-metadata + ":graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1" + ":graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3") + + "-jar" "target/app.jar" + "-o" "target/app"))} + + native-image-build {:doc "Builds uberjar, then native-image and runs the app for verification" + :requires ([babashka.process :as p] + [babashka.wait :as wait]) + :task (do + (shell "bb build") + (shell "bb native-image") + (let [http-port 3333 + app (p/process {:inherit true + :extra-env {"CONFIG_EDN" "resources/config.edn" + "HTTP_PORT" http-port}} + "target/app") + timeout-ms 5000] + (when (= :timeout (wait/wait-for-port "localhost" http-port + {:timeout timeout-ms + :default :timeout})) + (p/destroy-tree app) + (println "Backend didn't start in" timeout-ms "ms") + (System/exit 1)) + (p/destroy-tree app)))}}} diff --git a/build.clj b/build.clj index 243a0df..8864692 100644 --- a/build.clj +++ b/build.clj @@ -1,6 +1,6 @@ (ns build - (:require [shadow.cljs.devtools.api :as shadow] - [clojure.tools.build.api :as b])) + (:require [clojure.tools.build.api :as b] + [shadow.cljs.devtools.api :as shadow])) (def version "0.0.1-SNAPSHOT") (def class-dir "target/classes") @@ -21,14 +21,13 @@ ;; Build frontend: (shadow/release :app) - #_ (b/compile-clj {:basis @basis - :ns-compile '[backend.main] - :class-dir class-dir}) + :class-dir class-dir + :compile-opts {:direct-linking true}}) (b/uber {:class-dir class-dir :uber-file uber-file - ;; :main 'backend.main + :main 'backend.main :basis @basis}) (println "Uberjar:" uber-file)) diff --git a/deps.edn b/deps.edn index 4a01fda..d8c192a 100644 --- a/deps.edn +++ b/deps.edn @@ -30,7 +30,10 @@ ;; org.apache.logging.log4j/log4j-to-slf4j {:mvn/version "2.23.1"} ;; org.slf4j/jul-to-slf4j {:mvn/version "2.0.16"} ;; org.slf4j/jcl-over-slf4j {:mvn/version "2.0.16"} - org.clojure/tools.logging {:mvn/version "1.3.0"}}} + org.clojure/tools.logging {:mvn/version "1.3.0"} + + ;; For native-image, used by --features=clj_easy.graal_build_time.InitClojureClasses + com.github.clj-easy/graal-build-time {:mvn/version "1.0.5"}}} :dev ;; Include test folder here for REPL, diff --git a/graalvm-reachability-metadata/README.md b/graalvm-reachability-metadata/README.md new file mode 100644 index 0000000..eb86063 --- /dev/null +++ b/graalvm-reachability-metadata/README.md @@ -0,0 +1,3 @@ +# GraalVM Reachability Metadata + +Copied from https://github.com/oracle/graalvm-reachability-metadata, only the configuration of the libraries used in the example. diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json new file mode 100644 index 0000000..b906d4a --- /dev/null +++ b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json @@ -0,0 +1,5 @@ +[ + "jni-config.json", + "proxy-config.json", + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json new file mode 100644 index 0000000..55a29bf --- /dev/null +++ b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json @@ -0,0 +1,26 @@ +[ + { + "condition": { + "typeReachable": "java.lang.ClassLoader" + }, + "name": "java.lang.ClassLoader", + "methods": [ + { + "name": "getPlatformClassLoader", + "parameterTypes": [] + }, + { + "name": "loadClass", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "jdk.internal.loader.ClassLoaders" + }, + "name": "jdk.internal.loader.ClassLoaders$PlatformClassLoader" + } +] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json new file mode 100644 index 0000000..ec452f3 --- /dev/null +++ b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json @@ -0,0 +1,10 @@ +[ + { + "condition": { + "typeReachable": "com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection" + }, + "interfaces": [ + "java.sql.Connection" + ] + } +] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json new file mode 100644 index 0000000..f6ae83a --- /dev/null +++ b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json @@ -0,0 +1,535 @@ +[ + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.ConcurrentBag" + }, + "name": "[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.pool.PoolEntry" + }, + "name": "[Ljava.sql.Statement;" + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.FastList" + }, + "name": "[Ljava.sql.Statement;" + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.HikariConfig" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "allDeclaredFields": true, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "setAutoCommit", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setConnectionTestQuery", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setMinimumIdle", + "parameterTypes": [ + "int" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.HikariJNDIFactory" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "queryAllPublicMethods": true, + "methods": [ + { + "name": "setDataSourceJNDI", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDriverClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setJdbcUrl", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setMaxLifetime", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setMaximumPoolSize", + "parameterTypes": [ + "int" + ] + }, + { + "name": "setPassword", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setUsername", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.hibernate.HikariConfigurationUtil" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "queryAllPublicMethods": true, + "methods": [ + { + "name": "setAutoCommit", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setConnectionTestQuery", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceClassName", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.PropertyElf" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "methods": [ + { + "name": "getCatalog", + "parameterTypes": [] + }, + { + "name": "getConnectionInitSql", + "parameterTypes": [] + }, + { + "name": "getConnectionTestQuery", + "parameterTypes": [] + }, + { + "name": "getConnectionTimeout", + "parameterTypes": [] + }, + { + "name": "getDataSource", + "parameterTypes": [] + }, + { + "name": "getDataSourceClassName", + "parameterTypes": [] + }, + { + "name": "getDataSourceJNDI", + "parameterTypes": [] + }, + { + "name": "getDataSourceProperties", + "parameterTypes": [] + }, + { + "name": "getDriverClassName", + "parameterTypes": [] + }, + { + "name": "getExceptionOverrideClassName", + "parameterTypes": [] + }, + { + "name": "getHealthCheckProperties", + "parameterTypes": [] + }, + { + "name": "getHealthCheckRegistry", + "parameterTypes": [] + }, + { + "name": "getIdleTimeout", + "parameterTypes": [] + }, + { + "name": "getInitializationFailTimeout", + "parameterTypes": [] + }, + { + "name": "getJdbcUrl", + "parameterTypes": [] + }, + { + "name": "getKeepaliveTime", + "parameterTypes": [] + }, + { + "name": "getLeakDetectionThreshold", + "parameterTypes": [] + }, + { + "name": "getMaxLifetime", + "parameterTypes": [] + }, + { + "name": "getMaximumPoolSize", + "parameterTypes": [] + }, + { + "name": "getMetricRegistry", + "parameterTypes": [] + }, + { + "name": "getMetricsTrackerFactory", + "parameterTypes": [] + }, + { + "name": "getMinimumIdle", + "parameterTypes": [] + }, + { + "name": "getPassword", + "parameterTypes": [] + }, + { + "name": "getPoolName", + "parameterTypes": [] + }, + { + "name": "getScheduledExecutor", + "parameterTypes": [] + }, + { + "name": "getScheduledExecutorService", + "parameterTypes": [] + }, + { + "name": "getSchema", + "parameterTypes": [] + }, + { + "name": "getThreadFactory", + "parameterTypes": [] + }, + { + "name": "getTransactionIsolation", + "parameterTypes": [] + }, + { + "name": "getUsername", + "parameterTypes": [] + }, + { + "name": "getValidationTimeout", + "parameterTypes": [] + }, + { + "name": "isAllowPoolSuspension", + "parameterTypes": [] + }, + { + "name": "isAutoCommit", + "parameterTypes": [] + }, + { + "name": "isInitializationFailFast", + "parameterTypes": [] + }, + { + "name": "isIsolateInternalQueries", + "parameterTypes": [] + }, + { + "name": "isJdbc4ConnectionTest", + "parameterTypes": [] + }, + { + "name": "isReadOnly", + "parameterTypes": [] + }, + { + "name": "isRegisterMbeans", + "parameterTypes": [] + } + ], + "queriedMethods": [ + { + "name": "setAllowPoolSuspension", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setAutoCommit", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setCatalog", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setConnectionInitSql", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setConnectionTestQuery", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setConnectionTimeout", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setDataSource", + "parameterTypes": [ + "javax.sql.DataSource" + ] + }, + { + "name": "setDataSourceClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceJNDI", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceProperties", + "parameterTypes": [ + "java.util.Properties" + ] + }, + { + "name": "setDriverClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setExceptionOverrideClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setHealthCheckProperties", + "parameterTypes": [ + "java.util.Properties" + ] + }, + { + "name": "setHealthCheckRegistry", + "parameterTypes": [ + "java.lang.Object" + ] + }, + { + "name": "setIdleTimeout", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setInitializationFailTimeout", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setInitializationFailFast", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setIsolateInternalQueries", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setJdbc4ConnectionTest", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setJdbcUrl", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setKeepaliveTime", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setLeakDetectionThreshold", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setMaxLifetime", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setMaximumPoolSize", + "parameterTypes": [ + "int" + ] + }, + { + "name": "setMetricRegistry", + "parameterTypes": [ + "java.lang.Object" + ] + }, + { + "name": "setMetricsTrackerFactory", + "parameterTypes": [ + "com.zaxxer.hikari.metrics.MetricsTrackerFactory" + ] + }, + { + "name": "setMinimumIdle", + "parameterTypes": [ + "int" + ] + }, + { + "name": "setPassword", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setPoolName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setReadOnly", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setRegisterMbeans", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setScheduledExecutor", + "parameterTypes": [ + "java.util.concurrent.ScheduledExecutorService" + ] + }, + { + "name": "setScheduledExecutorService", + "parameterTypes": [ + "java.util.concurrent.ScheduledThreadPoolExecutor" + ] + }, + { + "name": "setSchema", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setThreadFactory", + "parameterTypes": [ + "java.util.concurrent.ThreadFactory" + ] + }, + { + "name": "setTransactionIsolation", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setUsername", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setValidationTimeout", + "parameterTypes": [ + "long" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.UtilityElf" + }, + "name": "java.sql.Connection", + "fields": [] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.Sequence$Factory" + }, + "name": "java.util.concurrent.atomic.LongAdder" + } +] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json new file mode 100644 index 0000000..79b443c --- /dev/null +++ b/graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json @@ -0,0 +1,10 @@ +[ + { + "latest": true, + "metadata-version": "5.0.1", + "module": "com.zaxxer:HikariCP", + "tested-versions": [ + "5.0.1" + ] + } +] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json new file mode 100644 index 0000000..768b550 --- /dev/null +++ b/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json @@ -0,0 +1,3 @@ +[ + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json new file mode 100644 index 0000000..e4e6fa5 --- /dev/null +++ b/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json @@ -0,0 +1,98 @@ +[ + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.util.PGInterval" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGbox" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGcircle" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGline" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGlseg" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpath" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpoint" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpolygon" + } +] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json new file mode 100644 index 0000000..768b550 --- /dev/null +++ b/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json @@ -0,0 +1,3 @@ +[ + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json new file mode 100644 index 0000000..e4e6fa5 --- /dev/null +++ b/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json @@ -0,0 +1,98 @@ +[ + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.util.PGInterval" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGbox" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGcircle" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGline" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGlseg" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpath" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpoint" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpolygon" + } +] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/index.json b/graalvm-reachability-metadata/org.postgresql/postgresql/index.json new file mode 100644 index 0000000..aacf301 --- /dev/null +++ b/graalvm-reachability-metadata/org.postgresql/postgresql/index.json @@ -0,0 +1,18 @@ +[ + { + "latest": true, + "metadata-version": "42.7.3", + "module": "org.postgresql:postgresql", + "tested-versions": [ + "42.7.3" + ] + }, + { + "metadata-version": "42.3.4", + "module": "org.postgresql:postgresql", + "tested-versions": [ + "42.3.4" + ] + } + +] diff --git a/resources/config.edn b/resources/config.edn index 87a8aa0..3a69336 100644 --- a/resources/config.edn +++ b/resources/config.edn @@ -1,4 +1,4 @@ -{:adapter/jetty {:port 3333 +{:adapter/jetty {:port #long #or [#env "HTTP_PORT" 3333] :routes #ig/ref :web/routes} :web/routes {:db #ig/ref :database/pool} :database/pool {:adapter "postgresql" diff --git a/src/clj/backend/main.clj b/src/clj/backend/main.clj index 51562bd..5194002 100644 --- a/src/clj/backend/main.clj +++ b/src/clj/backend/main.clj @@ -1,21 +1,22 @@ (ns backend.main (:require [aero.core :as aero] [backend.routes] - [clojure.java.io :as io] [clojure.tools.logging :as log] [cognitect.transit] [hikari-cp.core :as hikari-cp] [integrant.core :as ig] [next.jdbc.date-time] [reitit.ring.middleware.exception] - [ring.adapter.jetty :as jetty])) + [ring.adapter.jetty :as jetty]) + (:gen-class)) (defmethod aero.core/reader 'ig/ref [_opts _tag value] (ig/ref value)) (defn system-config [] - (aero/read-config (io/resource "config.edn"))) + (aero/read-config (or (System/getenv "CONFIG_EDN") + "config.edn"))) (defmethod ig/init-key :adapter/jetty [_ {:keys [port routes] :as jetty-opts}] (log/infof "Starting Jetty server on http://localhost:%s" port) @@ -31,16 +32,14 @@ ;; receive java.time.Instant from JDBC (next.jdbc.date-time/read-as-instant) + ;; Hint for GraalVM native-image to register postgresql jdbc driver + (java.sql.DriverManager/registerDriver (org.postgresql.Driver.)) (hikari-cp/make-datasource jdbc-options)) (defmethod ig/halt-key! :database/pool [_ pool] (log/infof "Shutting down DB pool") (hikari-cp/close-datasource pool)) -(defmethod ig/halt-key! :database/pool [_ pool] - (log/infof "Shutting down DB pool") - (hikari-cp/close-datasource pool)) - (defn run-system [config] (try (let [initialized-system (ig/init config)] diff --git a/src/clj/backend/routes.clj b/src/clj/backend/routes.clj index c728f05..edc5535 100644 --- a/src/clj/backend/routes.clj +++ b/src/clj/backend/routes.clj @@ -1,4 +1,4 @@ -(ns backend.routes +(ns backend.routes (:require [backend.api.todo :as todo] [clojure.edn :as edn] [clojure.java.io :as io] From deaffceaf3d1fd07a543212fb18c8c4ff893f899 Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Fri, 1 Nov 2024 19:37:08 +0200 Subject: [PATCH 02/15] Refactoring --- bb.edn | 46 +++++++++++++++++----------------------- src/clj/backend/main.clj | 7 ++++-- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/bb.edn b/bb.edn index 3c0b511..1b1e943 100644 --- a/bb.edn +++ b/bb.edn @@ -30,27 +30,33 @@ :requires ([babashka.process :as p] [babashka.wait :as wait]) :task (do - (defn start-backend-with-native-image-agent [http-port] + (defn start-backend [{:keys [http-port extra-env timeout-ms command]}] (shell "bb db-up") - (let [timeout-ms 5000 - tracing-process (p/process {:inherit true - :extra-env {"CONFIG_EDN" "resources/config.edn" - "HTTP_PORT" http-port}} - "java" (str "-agentlib:native-image-agent=" - "config-output-dir=target/native-image-configuration/META-INF/native-image") - "-jar" "target/app.jar")] + (let [command (if (string? command) + [command] + command) + backend-process (apply p/process + {:inherit true + :extra-env extra-env} + command)] (when (= :timeout (wait/wait-for-port "localhost" http-port {:timeout timeout-ms :default :timeout})) - (p/destroy-tree tracing-process) + (p/destroy-tree backend-process) (throw (Exception. (str "Backend didn't start in " timeout-ms "ms")))) - tracing-process)) + backend-process)) ;; Do a training run to gather metadata via native-image-agent ;; Note that should not refer to any unnecessary test resources on the classpath during training, ;; since those will get included into the metadata (let [http-port 3322 - tracing-process (start-backend-with-native-image-agent http-port)] + tracing-process (start-backend {:http-port http-port + :extra-env {"CONFIG_EDN" "resources/config.edn" + "HTTP_PORT" http-port} + :timeout-ms 5000 + :command ["java" (str "-agentlib:native-image-agent=" + "config-output-dir=target/native-image-configuration/META-INF/native-image") + "-jar" "target/app.jar"]})] (shell (format "curl http://localhost:%s/api/todo" http-port)) (p/destroy-tree tracing-process) ;; Wait for native-image-agent to create the tracing file @@ -89,21 +95,9 @@ "-o" "target/app"))} native-image-build {:doc "Builds uberjar, then native-image and runs the app for verification" - :requires ([babashka.process :as p] - [babashka.wait :as wait]) :task (do (shell "bb build") (shell "bb native-image") - (let [http-port 3333 - app (p/process {:inherit true - :extra-env {"CONFIG_EDN" "resources/config.edn" - "HTTP_PORT" http-port}} - "target/app") - timeout-ms 5000] - (when (= :timeout (wait/wait-for-port "localhost" http-port - {:timeout timeout-ms - :default :timeout})) - (p/destroy-tree app) - (println "Backend didn't start in" timeout-ms "ms") - (System/exit 1)) - (p/destroy-tree app)))}}} + (shell {:extra-env {"CONFIG_EDN" "resources/config.edn" + "HTTP_PORT" 3333}} + "target/app exit-after-start"))}}} diff --git a/src/clj/backend/main.clj b/src/clj/backend/main.clj index 5194002..aec4ff5 100644 --- a/src/clj/backend/main.clj +++ b/src/clj/backend/main.clj @@ -51,5 +51,8 @@ (catch Throwable t (log/error t "Failed to start system")))) -(defn -main [] - (run-system (system-config))) +(defn -main [& args] + (run-system (system-config)) + (when (= "exit-after-start" (first args)) + (log/info "Exiting") + (System/exit 0))) From 671ebdcee17c0683004bfc4c14c9967f9273b88d Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Sat, 2 Nov 2024 10:14:49 +0200 Subject: [PATCH 03/15] Apparently, agent run is enough --- bb.edn | 8 +- graalvm-reachability-metadata/README.md | 3 - .../com.zaxxer/HikariCP/5.0.1/index.json | 5 - .../com.zaxxer/HikariCP/5.0.1/jni-config.json | 26 - .../HikariCP/5.0.1/proxy-config.json | 10 - .../HikariCP/5.0.1/reflect-config.json | 535 ------------------ .../com.zaxxer/HikariCP/index.json | 10 - .../postgresql/42.3.4/index.json | 3 - .../postgresql/42.3.4/reflect-config.json | 98 ---- .../postgresql/42.7.3/index.json | 3 - .../postgresql/42.7.3/reflect-config.json | 98 ---- .../org.postgresql/postgresql/index.json | 18 - src/clj/backend/main.clj | 2 - 13 files changed, 2 insertions(+), 817 deletions(-) delete mode 100644 graalvm-reachability-metadata/README.md delete mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json delete mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json delete mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json delete mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json delete mode 100644 graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json delete mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json delete mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json delete mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json delete mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json delete mode 100644 graalvm-reachability-metadata/org.postgresql/postgresql/index.json diff --git a/bb.edn b/bb.edn index 1b1e943..cc244a2 100644 --- a/bb.edn +++ b/bb.edn @@ -84,12 +84,8 @@ "-H:IncludeResources=swagger-ui/.*" ;; TODO: Should create META-INF/native-image/metosin/ring-swagger-ui/native-image.properties "-H:+PrintClassInitialization" - "-cp" (str - ;; From training run with native-image-agent - "target/native-image-configuration" - ;; From https://github.com/oracle/graalvm-reachability-metadata - ":graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1" - ":graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3") + ;; From training run with native-image-agent + "-cp" "target/native-image-configuration" "-jar" "target/app.jar" "-o" "target/app"))} diff --git a/graalvm-reachability-metadata/README.md b/graalvm-reachability-metadata/README.md deleted file mode 100644 index eb86063..0000000 --- a/graalvm-reachability-metadata/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# GraalVM Reachability Metadata - -Copied from https://github.com/oracle/graalvm-reachability-metadata, only the configuration of the libraries used in the example. diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json deleted file mode 100644 index b906d4a..0000000 --- a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/index.json +++ /dev/null @@ -1,5 +0,0 @@ -[ - "jni-config.json", - "proxy-config.json", - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json deleted file mode 100644 index 55a29bf..0000000 --- a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "condition": { - "typeReachable": "java.lang.ClassLoader" - }, - "name": "java.lang.ClassLoader", - "methods": [ - { - "name": "getPlatformClassLoader", - "parameterTypes": [] - }, - { - "name": "loadClass", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "jdk.internal.loader.ClassLoaders" - }, - "name": "jdk.internal.loader.ClassLoaders$PlatformClassLoader" - } -] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json deleted file mode 100644 index ec452f3..0000000 --- a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "condition": { - "typeReachable": "com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection" - }, - "interfaces": [ - "java.sql.Connection" - ] - } -] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json deleted file mode 100644 index f6ae83a..0000000 --- a/graalvm-reachability-metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json +++ /dev/null @@ -1,535 +0,0 @@ -[ - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.ConcurrentBag" - }, - "name": "[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.pool.PoolEntry" - }, - "name": "[Ljava.sql.Statement;" - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.FastList" - }, - "name": "[Ljava.sql.Statement;" - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.HikariConfig" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "allDeclaredFields": true, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "setAutoCommit", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setConnectionTestQuery", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setMinimumIdle", - "parameterTypes": [ - "int" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.HikariJNDIFactory" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "queryAllPublicMethods": true, - "methods": [ - { - "name": "setDataSourceJNDI", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDriverClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setJdbcUrl", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setMaxLifetime", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setMaximumPoolSize", - "parameterTypes": [ - "int" - ] - }, - { - "name": "setPassword", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setUsername", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.hibernate.HikariConfigurationUtil" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "queryAllPublicMethods": true, - "methods": [ - { - "name": "setAutoCommit", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setConnectionTestQuery", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceClassName", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.PropertyElf" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "methods": [ - { - "name": "getCatalog", - "parameterTypes": [] - }, - { - "name": "getConnectionInitSql", - "parameterTypes": [] - }, - { - "name": "getConnectionTestQuery", - "parameterTypes": [] - }, - { - "name": "getConnectionTimeout", - "parameterTypes": [] - }, - { - "name": "getDataSource", - "parameterTypes": [] - }, - { - "name": "getDataSourceClassName", - "parameterTypes": [] - }, - { - "name": "getDataSourceJNDI", - "parameterTypes": [] - }, - { - "name": "getDataSourceProperties", - "parameterTypes": [] - }, - { - "name": "getDriverClassName", - "parameterTypes": [] - }, - { - "name": "getExceptionOverrideClassName", - "parameterTypes": [] - }, - { - "name": "getHealthCheckProperties", - "parameterTypes": [] - }, - { - "name": "getHealthCheckRegistry", - "parameterTypes": [] - }, - { - "name": "getIdleTimeout", - "parameterTypes": [] - }, - { - "name": "getInitializationFailTimeout", - "parameterTypes": [] - }, - { - "name": "getJdbcUrl", - "parameterTypes": [] - }, - { - "name": "getKeepaliveTime", - "parameterTypes": [] - }, - { - "name": "getLeakDetectionThreshold", - "parameterTypes": [] - }, - { - "name": "getMaxLifetime", - "parameterTypes": [] - }, - { - "name": "getMaximumPoolSize", - "parameterTypes": [] - }, - { - "name": "getMetricRegistry", - "parameterTypes": [] - }, - { - "name": "getMetricsTrackerFactory", - "parameterTypes": [] - }, - { - "name": "getMinimumIdle", - "parameterTypes": [] - }, - { - "name": "getPassword", - "parameterTypes": [] - }, - { - "name": "getPoolName", - "parameterTypes": [] - }, - { - "name": "getScheduledExecutor", - "parameterTypes": [] - }, - { - "name": "getScheduledExecutorService", - "parameterTypes": [] - }, - { - "name": "getSchema", - "parameterTypes": [] - }, - { - "name": "getThreadFactory", - "parameterTypes": [] - }, - { - "name": "getTransactionIsolation", - "parameterTypes": [] - }, - { - "name": "getUsername", - "parameterTypes": [] - }, - { - "name": "getValidationTimeout", - "parameterTypes": [] - }, - { - "name": "isAllowPoolSuspension", - "parameterTypes": [] - }, - { - "name": "isAutoCommit", - "parameterTypes": [] - }, - { - "name": "isInitializationFailFast", - "parameterTypes": [] - }, - { - "name": "isIsolateInternalQueries", - "parameterTypes": [] - }, - { - "name": "isJdbc4ConnectionTest", - "parameterTypes": [] - }, - { - "name": "isReadOnly", - "parameterTypes": [] - }, - { - "name": "isRegisterMbeans", - "parameterTypes": [] - } - ], - "queriedMethods": [ - { - "name": "setAllowPoolSuspension", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setAutoCommit", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setCatalog", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setConnectionInitSql", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setConnectionTestQuery", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setConnectionTimeout", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setDataSource", - "parameterTypes": [ - "javax.sql.DataSource" - ] - }, - { - "name": "setDataSourceClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceJNDI", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceProperties", - "parameterTypes": [ - "java.util.Properties" - ] - }, - { - "name": "setDriverClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setExceptionOverrideClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setHealthCheckProperties", - "parameterTypes": [ - "java.util.Properties" - ] - }, - { - "name": "setHealthCheckRegistry", - "parameterTypes": [ - "java.lang.Object" - ] - }, - { - "name": "setIdleTimeout", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setInitializationFailTimeout", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setInitializationFailFast", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setIsolateInternalQueries", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setJdbc4ConnectionTest", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setJdbcUrl", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setKeepaliveTime", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setLeakDetectionThreshold", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setMaxLifetime", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setMaximumPoolSize", - "parameterTypes": [ - "int" - ] - }, - { - "name": "setMetricRegistry", - "parameterTypes": [ - "java.lang.Object" - ] - }, - { - "name": "setMetricsTrackerFactory", - "parameterTypes": [ - "com.zaxxer.hikari.metrics.MetricsTrackerFactory" - ] - }, - { - "name": "setMinimumIdle", - "parameterTypes": [ - "int" - ] - }, - { - "name": "setPassword", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setPoolName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setReadOnly", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setRegisterMbeans", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setScheduledExecutor", - "parameterTypes": [ - "java.util.concurrent.ScheduledExecutorService" - ] - }, - { - "name": "setScheduledExecutorService", - "parameterTypes": [ - "java.util.concurrent.ScheduledThreadPoolExecutor" - ] - }, - { - "name": "setSchema", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setThreadFactory", - "parameterTypes": [ - "java.util.concurrent.ThreadFactory" - ] - }, - { - "name": "setTransactionIsolation", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setUsername", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setValidationTimeout", - "parameterTypes": [ - "long" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.UtilityElf" - }, - "name": "java.sql.Connection", - "fields": [] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.Sequence$Factory" - }, - "name": "java.util.concurrent.atomic.LongAdder" - } -] diff --git a/graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json b/graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json deleted file mode 100644 index 79b443c..0000000 --- a/graalvm-reachability-metadata/com.zaxxer/HikariCP/index.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "latest": true, - "metadata-version": "5.0.1", - "module": "com.zaxxer:HikariCP", - "tested-versions": [ - "5.0.1" - ] - } -] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json deleted file mode 100644 index 768b550..0000000 --- a/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/index.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json deleted file mode 100644 index e4e6fa5..0000000 --- a/graalvm-reachability-metadata/org.postgresql/postgresql/42.3.4/reflect-config.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.util.PGInterval" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGbox" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGcircle" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGline" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGlseg" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpath" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpoint" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpolygon" - } -] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json deleted file mode 100644 index 768b550..0000000 --- a/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/index.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json b/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json deleted file mode 100644 index e4e6fa5..0000000 --- a/graalvm-reachability-metadata/org.postgresql/postgresql/42.7.3/reflect-config.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.util.PGInterval" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGbox" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGcircle" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGline" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGlseg" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpath" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpoint" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpolygon" - } -] diff --git a/graalvm-reachability-metadata/org.postgresql/postgresql/index.json b/graalvm-reachability-metadata/org.postgresql/postgresql/index.json deleted file mode 100644 index aacf301..0000000 --- a/graalvm-reachability-metadata/org.postgresql/postgresql/index.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "latest": true, - "metadata-version": "42.7.3", - "module": "org.postgresql:postgresql", - "tested-versions": [ - "42.7.3" - ] - }, - { - "metadata-version": "42.3.4", - "module": "org.postgresql:postgresql", - "tested-versions": [ - "42.3.4" - ] - } - -] diff --git a/src/clj/backend/main.clj b/src/clj/backend/main.clj index aec4ff5..d8b3027 100644 --- a/src/clj/backend/main.clj +++ b/src/clj/backend/main.clj @@ -32,8 +32,6 @@ ;; receive java.time.Instant from JDBC (next.jdbc.date-time/read-as-instant) - ;; Hint for GraalVM native-image to register postgresql jdbc driver - (java.sql.DriverManager/registerDriver (org.postgresql.Driver.)) (hikari-cp/make-datasource jdbc-options)) (defmethod ig/halt-key! :database/pool [_ pool] From e09894674501e87723c1434ca2c120d27ae8e8d8 Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Sun, 3 Nov 2024 16:35:33 +0200 Subject: [PATCH 04/15] Hopefully make build reliable --- bb.edn | 77 +- build.clj | 58 +- deps.edn | 14 +- .../com.zaxxer/HikariCP/5.0.1/index.json | 5 + .../com.zaxxer/HikariCP/5.0.1/jni-config.json | 26 + .../HikariCP/5.0.1/proxy-config.json | 10 + .../HikariCP/5.0.1/reflect-config.json | 535 +++++++ .../bcpkix-jdk15on/1.70/index.json | 3 + .../bcpkix-jdk15on/1.70/reflect-config.json | 1262 +++++++++++++++ .../bcpkix-jdk15to18/1.77/index.json | 3 + .../bcpkix-jdk15to18/1.77/reflect-config.json | 1360 +++++++++++++++++ .../bcpkix-jdk18on/1.77/index.json | 3 + .../bcpkix-jdk18on/1.77/reflect-config.json | 1360 +++++++++++++++++ .../postgresql/42.7.3/index.json | 3 + .../postgresql/42.7.3/reflect-config.json | 98 ++ src/babashka/native_image.clj | 104 ++ src/clj/backend/main.clj | 2 + src/clj/backend/routes.clj | 28 +- .../graalvm/features/BouncyCastleFeature.java | 23 + 19 files changed, 4902 insertions(+), 72 deletions(-) create mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json create mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json create mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json create mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json create mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json create mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json create mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json create mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json create mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json create mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json create mode 100644 graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json create mode 100644 graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json create mode 100644 src/babashka/native_image.clj create mode 100644 src/java/graalvm/features/BouncyCastleFeature.java diff --git a/bb.edn b/bb.edn index cc244a2..25032a5 100644 --- a/bb.edn +++ b/bb.edn @@ -1,4 +1,5 @@ -{:tasks {build {:doc "Build uberjar" +{:paths ["src/babashka"] + :tasks {build {:doc "Build uberjar" ;; FIXME: Consider if it would be better to handle Cljs build in separate classpath :task (clojure "-T:shadow-cljs:frontend:backend:build uberjar")} outdated {:doc "Check depdendencies" @@ -26,74 +27,16 @@ db-down {:doc "Stop the database" :task (shell "docker compose -p example-project down -d")} - native-image {:doc "Create native image" - :requires ([babashka.process :as p] - [babashka.wait :as wait]) - :task (do - (defn start-backend [{:keys [http-port extra-env timeout-ms command]}] - (shell "bb db-up") - (let [command (if (string? command) - [command] - command) - backend-process (apply p/process - {:inherit true - :extra-env extra-env} - command)] - (when (= :timeout (wait/wait-for-port "localhost" http-port - {:timeout timeout-ms - :default :timeout})) - (p/destroy-tree backend-process) - (throw (Exception. (str "Backend didn't start in " timeout-ms "ms")))) - backend-process)) - - ;; Do a training run to gather metadata via native-image-agent - ;; Note that should not refer to any unnecessary test resources on the classpath during training, - ;; since those will get included into the metadata - (let [http-port 3322 - tracing-process (start-backend {:http-port http-port - :extra-env {"CONFIG_EDN" "resources/config.edn" - "HTTP_PORT" http-port} - :timeout-ms 5000 - :command ["java" (str "-agentlib:native-image-agent=" - "config-output-dir=target/native-image-configuration/META-INF/native-image") - "-jar" "target/app.jar"]})] - (shell (format "curl http://localhost:%s/api/todo" http-port)) - (p/destroy-tree tracing-process) - ;; Wait for native-image-agent to create the tracing file - (when (= :timeout (wait/wait-for-path "target/native-image-configuration/META-INF/native-image/reachability-metadata.json" - {:timeout 5000 - :default :timeout})) - (println "Reachability metadata file not created") - (System/exit 1))) - - ;; Create the native image itself - (shell "native-image" - "--features=clj_easy.graal_build_time.InitClojureClasses" - ;; Logback related classes - "--initialize-at-build-time=ch.qos.logback" - "--initialize-at-build-time=ch.qos.logback.classic.Logger" - "--initialize-at-build-time=org.xml.sax" - - ;; Don't allow to fall back to launching a VM - "--no-fallback" - - ;; To make shutdown hooks work - "--install-exit-handlers" - - "-H:+UnlockExperimentalVMOptions" - "-H:IncludeResources=swagger-ui/.*" ;; TODO: Should create META-INF/native-image/metosin/ring-swagger-ui/native-image.properties - "-H:+PrintClassInitialization" - - ;; From training run with native-image-agent - "-cp" "target/native-image-configuration" - - "-jar" "target/app.jar" - "-o" "target/app"))} - - native-image-build {:doc "Builds uberjar, then native-image and runs the app for verification" + native-image-agent {:doc "Run backend with native-image-agent to collect metadata for building a native image" + :requires ([native-image :as n]) + :task (n/run-with-agent)} + native-image {:doc "Build native image" + :task (shell "clojure -T:build:shadow-cljs native-image")} + native-image-build {:doc "Builds uberjar, then native-image and runs the app for verification" :task (do (shell "bb build") + (shell "bb native-image-agent") (shell "bb native-image") (shell {:extra-env {"CONFIG_EDN" "resources/config.edn" - "HTTP_PORT" 3333}} + "HTTP_PORT" 3333}} "target/app exit-after-start"))}}} diff --git a/build.clj b/build.clj index 8864692..beffa74 100644 --- a/build.clj +++ b/build.clj @@ -1,5 +1,8 @@ (ns build - (:require [clojure.tools.build.api :as b] + (:require [babashka.process :as p] + [babashka.fs :as fs] + babashka.process.pprint + [clojure.tools.build.api :as b] [shadow.cljs.devtools.api :as shadow])) (def version "0.0.1-SNAPSHOT") @@ -31,3 +34,56 @@ :basis @basis}) (println "Uberjar:" uber-file)) + +(defn native-image [_] + (println "Compiling GraalVM feature classes") + (b/javac {:src-dirs ["src/java"] + :class-dir "target/native-image-configuration/classes" + :basis @basis + :javac-opts ["--add-exports" "org.graalvm.nativeimage/org.graalvm.nativeimage.impl=ALL-UNNAMED" + "-Xlint:deprecation"]}) + + ;; Copy reachability metadata into classpath + (doseq [path (fs/list-dir "graalvm-reachability-metadata/metadata")] + (fs/copy-tree path "target/native-image-configuration/META-INF/native-image")) + + (println "Building native image") + (p/shell "native-image" + + ;; Clojure namespaces + "--features=clj_easy.graal_build_time.InitClojureClasses" + + ;; Buddy support + "--add-exports" "org.graalvm.nativeimage/org.graalvm.nativeimage.impl=ALL-UNNAMED" + "--features=graalvm.features.BouncyCastleFeature" + + ;; Logback related classes + "--initialize-at-build-time=ch.qos.logback" + "--initialize-at-build-time=ch.qos.logback.classic.Logger" + "--initialize-at-build-time=org.xml.sax" + + ;; Don't allow to fall back to launching a VM + "--no-fallback" + + ;; To make shutdown hooks work + "--install-exit-handlers" + + #_"--initialize-at-run-time=buddy.core.bytes__init" + #_"--initialize-at-run-time=clojure.math__init" + + "-H:+UnlockExperimentalVMOptions" + "-H:IncludeResources=swagger-ui/.*" ;; TODO: Should create META-INF/native-image/metosin/ring-swagger-ui/native-image.properties + + "-H:+PrintClassInitialization" + + "-cp" (str + ;; From training run with native-image-agent + "target/native-image-configuration" + ;; Compiled GraalVM feature classes, buddy support + ":target/native-image-configuration/classes") + + "--native-image-info" + + "-jar" "target/app.jar" + "-o" "target/app") + (println "native image created: target/app")) diff --git a/deps.edn b/deps.edn index d8c192a..9e2998c 100644 --- a/deps.edn +++ b/deps.edn @@ -33,7 +33,11 @@ org.clojure/tools.logging {:mvn/version "1.3.0"} ;; For native-image, used by --features=clj_easy.graal_build_time.InitClojureClasses - com.github.clj-easy/graal-build-time {:mvn/version "1.0.5"}}} + com.github.clj-easy/graal-build-time {:mvn/version "1.0.5"} + + ;; For showing how to make buddy work in native-image + buddy/buddy-sign {:mvn/version "3.5.351"} + buddy/buddy-core {:mvn/version "1.11.423"}}} :dev ;; Include test folder here for REPL, @@ -67,8 +71,12 @@ org.slf4j/slf4j-simple {:mvn/version "2.0.16"}}} :build - {:deps {io.github.clojure/tools.build {:mvn/version "0.10.5"}} - :ns-default build} + {:deps {io.github.clojure/tools.build {:mvn/version "0.10.5"} + babashka/process {:mvn/version "0.5.22"} + babashka/fs {:mvn/version "0.5.22"}} + + :ns-default build + :jvm-opts ["-XX:-OmitStackTraceInFastThrow" "-Dclojure.main.report=stderr"]} :outdated {:deps {com.github.liquidz/antq {:mvn/version "RELEASE"} diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json new file mode 100644 index 0000000..b906d4a --- /dev/null +++ b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json @@ -0,0 +1,5 @@ +[ + "jni-config.json", + "proxy-config.json", + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json new file mode 100644 index 0000000..55a29bf --- /dev/null +++ b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json @@ -0,0 +1,26 @@ +[ + { + "condition": { + "typeReachable": "java.lang.ClassLoader" + }, + "name": "java.lang.ClassLoader", + "methods": [ + { + "name": "getPlatformClassLoader", + "parameterTypes": [] + }, + { + "name": "loadClass", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "jdk.internal.loader.ClassLoaders" + }, + "name": "jdk.internal.loader.ClassLoaders$PlatformClassLoader" + } +] diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json new file mode 100644 index 0000000..ec452f3 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json @@ -0,0 +1,10 @@ +[ + { + "condition": { + "typeReachable": "com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection" + }, + "interfaces": [ + "java.sql.Connection" + ] + } +] diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json new file mode 100644 index 0000000..f6ae83a --- /dev/null +++ b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json @@ -0,0 +1,535 @@ +[ + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.ConcurrentBag" + }, + "name": "[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.pool.PoolEntry" + }, + "name": "[Ljava.sql.Statement;" + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.FastList" + }, + "name": "[Ljava.sql.Statement;" + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.HikariConfig" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "allDeclaredFields": true, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "setAutoCommit", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setConnectionTestQuery", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setMinimumIdle", + "parameterTypes": [ + "int" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.HikariJNDIFactory" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "queryAllPublicMethods": true, + "methods": [ + { + "name": "setDataSourceJNDI", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDriverClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setJdbcUrl", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setMaxLifetime", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setMaximumPoolSize", + "parameterTypes": [ + "int" + ] + }, + { + "name": "setPassword", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setUsername", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.hibernate.HikariConfigurationUtil" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "queryAllPublicMethods": true, + "methods": [ + { + "name": "setAutoCommit", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setConnectionTestQuery", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceClassName", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.PropertyElf" + }, + "name": "com.zaxxer.hikari.HikariConfig", + "methods": [ + { + "name": "getCatalog", + "parameterTypes": [] + }, + { + "name": "getConnectionInitSql", + "parameterTypes": [] + }, + { + "name": "getConnectionTestQuery", + "parameterTypes": [] + }, + { + "name": "getConnectionTimeout", + "parameterTypes": [] + }, + { + "name": "getDataSource", + "parameterTypes": [] + }, + { + "name": "getDataSourceClassName", + "parameterTypes": [] + }, + { + "name": "getDataSourceJNDI", + "parameterTypes": [] + }, + { + "name": "getDataSourceProperties", + "parameterTypes": [] + }, + { + "name": "getDriverClassName", + "parameterTypes": [] + }, + { + "name": "getExceptionOverrideClassName", + "parameterTypes": [] + }, + { + "name": "getHealthCheckProperties", + "parameterTypes": [] + }, + { + "name": "getHealthCheckRegistry", + "parameterTypes": [] + }, + { + "name": "getIdleTimeout", + "parameterTypes": [] + }, + { + "name": "getInitializationFailTimeout", + "parameterTypes": [] + }, + { + "name": "getJdbcUrl", + "parameterTypes": [] + }, + { + "name": "getKeepaliveTime", + "parameterTypes": [] + }, + { + "name": "getLeakDetectionThreshold", + "parameterTypes": [] + }, + { + "name": "getMaxLifetime", + "parameterTypes": [] + }, + { + "name": "getMaximumPoolSize", + "parameterTypes": [] + }, + { + "name": "getMetricRegistry", + "parameterTypes": [] + }, + { + "name": "getMetricsTrackerFactory", + "parameterTypes": [] + }, + { + "name": "getMinimumIdle", + "parameterTypes": [] + }, + { + "name": "getPassword", + "parameterTypes": [] + }, + { + "name": "getPoolName", + "parameterTypes": [] + }, + { + "name": "getScheduledExecutor", + "parameterTypes": [] + }, + { + "name": "getScheduledExecutorService", + "parameterTypes": [] + }, + { + "name": "getSchema", + "parameterTypes": [] + }, + { + "name": "getThreadFactory", + "parameterTypes": [] + }, + { + "name": "getTransactionIsolation", + "parameterTypes": [] + }, + { + "name": "getUsername", + "parameterTypes": [] + }, + { + "name": "getValidationTimeout", + "parameterTypes": [] + }, + { + "name": "isAllowPoolSuspension", + "parameterTypes": [] + }, + { + "name": "isAutoCommit", + "parameterTypes": [] + }, + { + "name": "isInitializationFailFast", + "parameterTypes": [] + }, + { + "name": "isIsolateInternalQueries", + "parameterTypes": [] + }, + { + "name": "isJdbc4ConnectionTest", + "parameterTypes": [] + }, + { + "name": "isReadOnly", + "parameterTypes": [] + }, + { + "name": "isRegisterMbeans", + "parameterTypes": [] + } + ], + "queriedMethods": [ + { + "name": "setAllowPoolSuspension", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setAutoCommit", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setCatalog", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setConnectionInitSql", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setConnectionTestQuery", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setConnectionTimeout", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setDataSource", + "parameterTypes": [ + "javax.sql.DataSource" + ] + }, + { + "name": "setDataSourceClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceJNDI", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setDataSourceProperties", + "parameterTypes": [ + "java.util.Properties" + ] + }, + { + "name": "setDriverClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setExceptionOverrideClassName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setHealthCheckProperties", + "parameterTypes": [ + "java.util.Properties" + ] + }, + { + "name": "setHealthCheckRegistry", + "parameterTypes": [ + "java.lang.Object" + ] + }, + { + "name": "setIdleTimeout", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setInitializationFailTimeout", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setInitializationFailFast", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setIsolateInternalQueries", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setJdbc4ConnectionTest", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setJdbcUrl", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setKeepaliveTime", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setLeakDetectionThreshold", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setMaxLifetime", + "parameterTypes": [ + "long" + ] + }, + { + "name": "setMaximumPoolSize", + "parameterTypes": [ + "int" + ] + }, + { + "name": "setMetricRegistry", + "parameterTypes": [ + "java.lang.Object" + ] + }, + { + "name": "setMetricsTrackerFactory", + "parameterTypes": [ + "com.zaxxer.hikari.metrics.MetricsTrackerFactory" + ] + }, + { + "name": "setMinimumIdle", + "parameterTypes": [ + "int" + ] + }, + { + "name": "setPassword", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setPoolName", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setReadOnly", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setRegisterMbeans", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setScheduledExecutor", + "parameterTypes": [ + "java.util.concurrent.ScheduledExecutorService" + ] + }, + { + "name": "setScheduledExecutorService", + "parameterTypes": [ + "java.util.concurrent.ScheduledThreadPoolExecutor" + ] + }, + { + "name": "setSchema", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setThreadFactory", + "parameterTypes": [ + "java.util.concurrent.ThreadFactory" + ] + }, + { + "name": "setTransactionIsolation", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setUsername", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setValidationTimeout", + "parameterTypes": [ + "long" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.UtilityElf" + }, + "name": "java.sql.Connection", + "fields": [] + }, + { + "condition": { + "typeReachable": "com.zaxxer.hikari.util.Sequence$Factory" + }, + "name": "java.util.concurrent.atomic.LongAdder" + } +] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json new file mode 100644 index 0000000..768b550 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json @@ -0,0 +1,3 @@ +[ + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json new file mode 100644 index 0000000..d78dc98 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json @@ -0,0 +1,1262 @@ +[ + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory", + "condition": { + "typeReachable": "org.bouncycastle.cert.jcajce.ProviderCertHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Haraka$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SM3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Skein$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + } +] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json new file mode 100644 index 0000000..768b550 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json @@ -0,0 +1,3 @@ +[ + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json new file mode 100644 index 0000000..4ab82e8 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json @@ -0,0 +1,1360 @@ +[ + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.Dilithium$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.Falcon$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.LMS$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.NTRU$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory", + "condition": { + "typeReachable": "org.bouncycastle.cert.jcajce.ProviderCertHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Haraka$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SM3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Skein$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + } +] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json new file mode 100644 index 0000000..768b550 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json @@ -0,0 +1,3 @@ +[ + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json new file mode 100644 index 0000000..4ab82e8 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json @@ -0,0 +1,1360 @@ +[ + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.Dilithium$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.Falcon$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.LMS$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.NTRU$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi", + "condition": { + "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory", + "condition": { + "typeReachable": "org.bouncycastle.cert.jcajce.ProviderCertHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Blake3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Haraka$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.MD5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.SM3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Skein$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + }, + { + "name": "org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", + "condition": { + "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" + }, + "methods": [ + { + "name": "", + "parameterTypes": [ + + ] + } + ] + } +] diff --git a/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json b/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json new file mode 100644 index 0000000..768b550 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json @@ -0,0 +1,3 @@ +[ + "reflect-config.json" +] diff --git a/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json b/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json new file mode 100644 index 0000000..e4e6fa5 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json @@ -0,0 +1,98 @@ +[ + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.util.PGInterval" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGbox" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGcircle" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGline" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGlseg" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpath" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpoint" + }, + { + "condition": { + "typeReachable": "org.postgresql.jdbc.PgConnection" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ], + "name": "org.postgresql.geometric.PGpolygon" + } +] diff --git a/src/babashka/native_image.clj b/src/babashka/native_image.clj new file mode 100644 index 0000000..67752f7 --- /dev/null +++ b/src/babashka/native_image.clj @@ -0,0 +1,104 @@ +(ns native-image + (:require [babashka.fs :as fs] + [babashka.http-client :as http] + [babashka.process :as p] + [babashka.wait :as wait] + [cheshire.core :as json] + [clojure.string :as str] + [clojure.walk :as walk])) + +(defn start-backend [{:keys [http-port extra-env timeout-ms command]}] + (p/shell "bb db-up") + (let [command (if (string? command) + [command] + command) + backend-process (apply p/process + {:inherit true + :extra-env extra-env} + command)] + (when (= :timeout (wait/wait-for-port "localhost" http-port + {:timeout timeout-ms + :default :timeout})) + (p/destroy-tree backend-process) + (throw (Exception. (str "Backend didn't start in " timeout-ms "ms")))) + backend-process)) + +(defn run-training [http-port] + (let [base-url (format "http://localhost:%s" http-port) + test-requests [[200 (str base-url "/api/todo")] + [200 (str base-url "/api/buddy-test")]]] + (doall (keep (fn [[expected-status url]] + (let [response (http/get url {:throw false})] + (when (not= expected-status (:status response)) + response))) + test-requests)))) + +(defn check-failures [failures] + (when (not (zero? (count failures))) + (println "Training requests failed:") + (doseq [failure failures] + (prn failure)) + (System/exit 1))) + +(defn remove-clojure-name [coll clojure-names] + (remove (fn [{:keys [type glob]}] + (let [s (or glob + (when (and type + (string? type)) + type))] + (if s + (some #(or (.startsWith s %) + (.contains s %)) + clojure-names) + false))) + coll)) + +(defn post-process-metadata + "Removes Clojure relates entries from the metadata file, idea is to keep only entries from dependencies + + Apparently, keeping Clojure entries leads into problems with code that modifies dynamic variables such as *warn-on-reflection*" + [filename] + (fs/copy filename (str filename ".orig")) + (let [data (json/parse-string (slurp filename) true) + clojure-names-atom (atom #{"clojure"})] + (walk/postwalk (fn [o] + (when (and (string? o) + (or (.endsWith o ".clj") + (.endsWith o ".cljc"))) + (let [clojure-name (str/replace o + (if (.endsWith o ".clj") + ".clj" + ".cljc") + "")] + (swap! clojure-names-atom conj clojure-name (str/replace clojure-name "/" ".")))) + o) + data) + (let [new-data (-> data + (update :reflection #(remove-clojure-name % @clojure-names-atom)) + (update :resources #(remove-clojure-name % @clojure-names-atom)) + (update :jni #(remove-clojure-name % @clojure-names-atom)))] + (spit filename (json/generate-string new-data {:pretty true}))))) + +;; Do a training run to gather metadata via native-image-agent +;; Note that should not refer to any unnecessary test resources on the classpath during training, +;; since those will get included into the metadata +(defn run-with-agent [] + (let [http-port 3322 + tracing-process (start-backend {:http-port http-port + :extra-env {"CONFIG_EDN" "resources/config.edn" + "HTTP_PORT" http-port} + :timeout-ms 5000 + :command ["java" (str "-agentlib:native-image-agent=" + "config-output-dir=target/native-image-configuration/META-INF/native-image") + "-jar" "target/app.jar"]}) + failures (run-training http-port)] + (p/destroy-tree tracing-process) + (check-failures failures) + ;; Wait for native-image-agent to create the tracing file + (when (= :timeout (wait/wait-for-path "target/native-image-configuration/META-INF/native-image/reachability-metadata.json" + {:timeout 5000 + :default :timeout})) + (println "Reachability metadata file not created") + (System/exit 1))) + + (post-process-metadata "target/native-image-configuration/META-INF/native-image/reachability-metadata.json")) diff --git a/src/clj/backend/main.clj b/src/clj/backend/main.clj index d8b3027..7005e66 100644 --- a/src/clj/backend/main.clj +++ b/src/clj/backend/main.clj @@ -10,6 +10,8 @@ [ring.adapter.jetty :as jetty]) (:gen-class)) +(set! *warn-on-reflection* true) + (defmethod aero.core/reader 'ig/ref [_opts _tag value] (ig/ref value)) diff --git a/src/clj/backend/routes.clj b/src/clj/backend/routes.clj index edc5535..8c779e6 100644 --- a/src/clj/backend/routes.clj +++ b/src/clj/backend/routes.clj @@ -15,7 +15,10 @@ [reitit.ring.middleware.muuntaja :as muuntaja] [reitit.swagger :as swagger] [reitit.swagger-ui :as swagger-ui] - [ring.util.http-response :as resp])) + [ring.util.http-response :as resp] + [buddy.sign.jwt :as jwt] + buddy.sign.util + [buddy.core.keys :as buddy-keys])) (def muuntaja-instance (m/create (-> m/default-options @@ -66,10 +69,33 @@ [:h1 "Loading, please wait..."]]] [:script {:type "text/javascript" :src (str "/js/" (main-js-file))}]]])) +(def buddy-test-route + ["/buddy-test" {:get (fn [_] + (try + (let [id-token "eyJraWQiOiJVd3VIdERJeXVYTGs5NytmUlVHeTIzM3pNRnVCMkZPc2ErcURBMUt4OGNRPSIsImFsZyI6IlJTMjU2In0.eyJhdF9oYXNoIjoiQkNkbC16MEowRXkzb25DU1cwUndLZyIsInN1YiI6IjZlNWEwNTE4LTNkNzctNDA2NS05MjVkLWUzZGM3YTU4MjkyYiIsImNvZ25pdG86Z3JvdXBzIjpbImFkbWluIl0sImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21cL3VzLXdlc3QtMl9XNDVGSUU0SzciLCJjb2duaXRvOnVzZXJuYW1lIjoia2ltbW9AcmVwbGlhbmNlLmNvbSIsImF1ZCI6ImVyMHFkbGwwODdncnJhY20wM2tsMmU0OGEiLCJldmVudF9pZCI6IjkzMDhiMDU5LTk2Y2EtNGQwNi05NzNmLWI5YzcwNGM3NmVmNCIsInRva2VuX3VzZSI6ImlkIiwiYXV0aF90aW1lIjoxNjY1NzMzODQyLCJleHAiOjE2NjU3NjI2NDIsImlhdCI6MTY2NTczMzg0MiwianRpIjoiZTAyZGE1ZDctMjZlZC00OGJlLWEwMDMtMzJhMGMwMzM1ZDI5IiwiZW1haWwiOiJraW1tb0ByZXBsaWFuY2UuY29tIn0.p54_PyPrK0z_g87FikyKh4pkTpMeITP27TPyeBzc8dSCbNuShR8epGpw2Ag1rcBaKS1Tcig2qicnJdHlCHuG6nkVvhjnu4I3DjH45b1Nx3neV5ii5t6YZ1GNTipzqypVd_Y9pdSxYCZYrwA442LzLSLKgzJlYD5sDB91iL0KAmcYx5JLHJ0Tpm__BILt-SHm3s3nRhbYe6isrSHeOdr19NIFOL5S5UYYS641Tlz5MQyEFHQ9tmSCMv3BudnaaImacpRQVy-uu5zseP5Db9BGjPtCoRHnpYpF8YZC9fLj2hY3AMiBBEkmfXhIh6dUnPahC8bwGaDk36OWnMVw1hxbyA" + jwt-key {:alg "RS256", + :e "AQAB", + :kid "UwuHtDIyuXLk97+fRUGy233zMFuB2FOsa+qDA1Kx8cQ=", + :kty "RSA", + :n "qos6mdmypWvK74e7z9-JT5x-0ua4Sjjo5_uV-AKdkx3s7n_oAV7TfYBIYaFDfRxkTDIfWIy2yQUqUlkkxLHn7MiEF0m6mP7Wwb0tdSxgYOF9TmciPDGnxjSAgdi6E8sb0jHYnN79U0DJI-mpxB1v79MFwR6erxDROikQVtecnj-4vVhhjxc6q098HrrOIRMZIXvyEhdkbB_UTr6u8-OYAAHX2GuDgkmnX6rpUQLOqv66WxSsebWvj88UJZWqQ6KoG9gV2KvzxvwiO0gV0ePnzZ6p8oiEqhK6sxDBksXDY9vASQwW1xDcLMY_iOSJ-YpaeFiTD33Oevkyv0nRzLhe5w", + :use "sig"}] + (jwt/unsign id-token + (buddy-keys/jwk->public-key jwt-key) + {:alg :rs256, + :aud "er0qdll087grracm03kl2e48a", + :iss "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_W45FIE4K7"})) + (catch Exception e + (let [{:keys [type cause] :as data} (ex-data e)] + (assert (= :validation type)) + (assert (= :exp cause)) + (prn data)))) + {:status 200})}]) + (defn app [env] (ring/ring-handler (ring/router ["/api" + buddy-test-route ["/todo" ["" {:summary "Return a list of todo items" diff --git a/src/java/graalvm/features/BouncyCastleFeature.java b/src/java/graalvm/features/BouncyCastleFeature.java new file mode 100644 index 0000000..e325143 --- /dev/null +++ b/src/java/graalvm/features/BouncyCastleFeature.java @@ -0,0 +1,23 @@ +package graalvm.features; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.graalvm.nativeimage.ImageSingletons; +import org.graalvm.nativeimage.hosted.Feature; +import org.graalvm.nativeimage.hosted.RuntimeClassInitialization; +import org.graalvm.nativeimage.impl.RuntimeClassInitializationSupport; + +import java.security.Security; + +public class BouncyCastleFeature implements Feature { + + @Override + public void afterRegistration(AfterRegistrationAccess access) { + System.out.println("[BouncyCastleFeature] Adding BouncyCastle support"); + RuntimeClassInitialization.initializeAtBuildTime("org.bouncycastle"); + RuntimeClassInitializationSupport rci = ImageSingletons.lookup(RuntimeClassInitializationSupport.class); + rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$Default", ""); + rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV", ""); + Security.addProvider(new BouncyCastleProvider()); + } + +} From 6b5197749e551288ab46cbb17521aada49aab799 Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Sun, 3 Nov 2024 18:06:19 +0200 Subject: [PATCH 05/15] Try out ring-jetty9-adapter --- build.clj | 3 +++ deps.edn | 3 ++- src/babashka/native_image.clj | 15 +++++++++------ src/clj/backend/main.clj | 3 ++- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/build.clj b/build.clj index beffa74..d7de48e 100644 --- a/build.clj +++ b/build.clj @@ -68,6 +68,9 @@ ;; To make shutdown hooks work "--install-exit-handlers" + ;; Try to make ring-jetty9-adapter work + "--initialize-at-build-time=ring.adapter.jetty9" + #_"--initialize-at-run-time=buddy.core.bytes__init" #_"--initialize-at-run-time=clojure.math__init" diff --git a/deps.edn b/deps.edn index 9e2998c..4ec39f3 100644 --- a/deps.edn +++ b/deps.edn @@ -19,7 +19,8 @@ ;; Hugsql hikari-cp/hikari-cp {:mvn/version "3.1.0"} migratus/migratus {:mvn/version "1.5.8"} - ring/ring-jetty-adapter {:mvn/version "1.12.2"} + #_#_ring/ring-jetty-adapter {:mvn/version "1.12.2"} + info.sunng/ring-jetty9-adapter {:mvn/version "0.35.1"} metosin/ring-swagger-ui {:mvn/version "5.17.14"} metosin/ring-http-response {:mvn/version "0.9.4"} metosin/muuntaja {:mvn/version "0.6.10"} diff --git a/src/babashka/native_image.clj b/src/babashka/native_image.clj index 67752f7..ef60984 100644 --- a/src/babashka/native_image.clj +++ b/src/babashka/native_image.clj @@ -40,15 +40,18 @@ (prn failure)) (System/exit 1))) -(defn remove-clojure-name [coll clojure-names] +(defn remove-clojure-name [coll clojure-names keeps] (remove (fn [{:keys [type glob]}] (let [s (or glob (when (and type (string? type)) type))] (if s - (some #(or (.startsWith s %) - (.contains s %)) + (some #(and (or (.startsWith s %) + (.contains s %)) + (not (some (fn [k] + (.contains % k)) + keeps))) clojure-names) false))) coll)) @@ -74,9 +77,9 @@ o) data) (let [new-data (-> data - (update :reflection #(remove-clojure-name % @clojure-names-atom)) - (update :resources #(remove-clojure-name % @clojure-names-atom)) - (update :jni #(remove-clojure-name % @clojure-names-atom)))] + (update :reflection #(remove-clojure-name % @clojure-names-atom #{"jetty9"})) ;; To support ring-jetty9-adapter + (update :resources #(remove-clojure-name % @clojure-names-atom #{})) + (update :jni #(remove-clojure-name % @clojure-names-atom #{})))] (spit filename (json/generate-string new-data {:pretty true}))))) ;; Do a training run to gather metadata via native-image-agent diff --git a/src/clj/backend/main.clj b/src/clj/backend/main.clj index 7005e66..e19916d 100644 --- a/src/clj/backend/main.clj +++ b/src/clj/backend/main.clj @@ -7,7 +7,8 @@ [integrant.core :as ig] [next.jdbc.date-time] [reitit.ring.middleware.exception] - [ring.adapter.jetty :as jetty]) + [ring.adapter.jetty9 :as jetty] + #_[ring.adapter.jetty :as jetty]) (:gen-class)) (set! *warn-on-reflection* true) From 78999b535ce715b8b8d886f8530b95d6672354ef Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Sun, 3 Nov 2024 18:30:12 +0200 Subject: [PATCH 06/15] Seems that keeps is enough for ring-jetty9-adapter --- build.clj | 3 --- 1 file changed, 3 deletions(-) diff --git a/build.clj b/build.clj index d7de48e..beffa74 100644 --- a/build.clj +++ b/build.clj @@ -68,9 +68,6 @@ ;; To make shutdown hooks work "--install-exit-handlers" - ;; Try to make ring-jetty9-adapter work - "--initialize-at-build-time=ring.adapter.jetty9" - #_"--initialize-at-run-time=buddy.core.bytes__init" #_"--initialize-at-run-time=clojure.math__init" From b71cdd45a20bb40029b4357e3d02f3fdc5657c80 Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Mon, 4 Nov 2024 11:25:47 +0200 Subject: [PATCH 07/15] Remove commented-out options --- build.clj | 3 --- 1 file changed, 3 deletions(-) diff --git a/build.clj b/build.clj index beffa74..addc65c 100644 --- a/build.clj +++ b/build.clj @@ -68,9 +68,6 @@ ;; To make shutdown hooks work "--install-exit-handlers" - #_"--initialize-at-run-time=buddy.core.bytes__init" - #_"--initialize-at-run-time=clojure.math__init" - "-H:+UnlockExperimentalVMOptions" "-H:IncludeResources=swagger-ui/.*" ;; TODO: Should create META-INF/native-image/metosin/ring-swagger-ui/native-image.properties From de4470b1ac6ca14759c1f5b5049dc966736280ea Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Mon, 4 Nov 2024 11:25:59 +0200 Subject: [PATCH 08/15] Add logback metadata --- .../logback-classic/1.4.9/reflect-config.json | 968 ++++++++++++++++++ .../1.4.9/resource-config.json | 20 + 2 files changed, 988 insertions(+) create mode 100644 graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json create mode 100644 graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json diff --git a/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json b/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json new file mode 100644 index 0000000..8316413 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json @@ -0,0 +1,968 @@ +[ + { + "name": "ch.qos.logback.classic.BasicConfigurator", + "condition": { + "typeReachable": "ch.qos.logback.classic.util.ContextInitializer" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.PatternLayout", + "condition": { + "typeReachable": "ch.qos.logback.core.LayoutBase" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.encoder.PatternLayoutEncoder", + "condition": { + "typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.joran.SerializedModelConfigurator", + "condition": { + "typeReachable": "ch.qos.logback.classic.util.ContextInitializer" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.log4j.XMLLayout", + "condition": { + "typeReachable": "ch.qos.logback.core.LayoutBase" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "setLocationInfo", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setProperties", + "parameterTypes": [ + "boolean" + ] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.CallerDataConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.ClassOfCallerConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.ContextNameConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.DateConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.FileOfCallerConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.KeyValuePairConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.LevelConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.LineOfCallerConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.LineSeparatorConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.pattern.parser.Compiler" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.LocalSequenceNumberConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.LoggerConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.MDCConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.MarkerConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.MessageConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.pattern.parser.Compiler" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.MethodOfCallerConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.MicrosecondConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.NopThrowableInformationConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.PrefixCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.PropertyConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.RelativeTimeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.RootCauseFirstThrowableProxyConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.SequenceNumberConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.ThreadConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.ThrowableProxyConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.classic.util.DefaultJoranConfigurator", + "condition": { + "typeReachable": "ch.qos.logback.classic.util.ContextInitializer" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.ConsoleAppender", + "condition": { + "typeReachable": "ch.qos.logback.core.model.processor.AppenderModelHandler" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.ConsoleAppender", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "setWithJansi", + "parameterTypes": [ + "boolean" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.FileAppender", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "setAppend", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setFile", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setPrudent", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "valueOf", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.Layout", + "condition": { + "typeReachable": "ch.qos.logback.core.LayoutBase" + }, + "methods": [ + { + "name": "valueOf", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.OutputStreamAppender", + "condition": { + "typeReachable": "ch.qos.logback.core.joran.util.PropertySetter" + }, + "methods": [ + { + "name": "setEncoder", + "parameterTypes": [ + "ch.qos.logback.core.encoder.Encoder" + ] + }, + { + "name": "setImmediateFlush", + "parameterTypes": [ + "boolean" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.encoder.LayoutWrappingEncoder", + "condition": { + "typeReachable": "ch.qos.logback.core.joran.util.PropertySetter" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "setLayout", + "parameterTypes": [ + "ch.qos.logback.core.Layout" + ] + }, + { + "name": "setParent", + "parameterTypes": [ + "ch.qos.logback.core.spi.ContextAware" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.IdentityCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.PatternLayoutBase", + "condition": { + "typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler" + }, + "methods": [ + { + "name": "setOutputPatternAsHeader", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setPattern", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.PatternLayoutEncoderBase", + "condition": { + "typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler" + }, + "methods": [ + { + "name": "setPattern", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.ReplacingCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BlackCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BlueCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BoldBlueCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BoldCyanCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BoldGreenCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BoldMagentaCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BoldRedCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BoldWhiteCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.BoldYellowCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.CyanCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.GrayCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.GreenCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.MagentaCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.RedCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.WhiteCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.pattern.color.YellowCompositeConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.RollingFileAppender", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "setFile", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setRollingPolicy", + "parameterTypes": [ + "ch.qos.logback.core.rolling.RollingPolicy" + ] + }, + { + "name": "setTriggeringPolicy", + "parameterTypes": [ + "ch.qos.logback.core.rolling.TriggeringPolicy" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.RollingPolicy", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "valueOf", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.RollingPolicyBase", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "setFileNamePattern", + "parameterTypes": [ + "java.lang.String" + ] + }, + { + "name": "setParent", + "parameterTypes": [ + "ch.qos.logback.core.FileAppender" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "setMaxFileSize", + "parameterTypes": [ + "ch.qos.logback.core.util.FileSize" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "queryAllPublicMethods": true, + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "setMaxFileSize", + "parameterTypes": [ + "ch.qos.logback.core.util.FileSize" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.TimeBasedRollingPolicy", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "setCleanHistoryOnStart", + "parameterTypes": [ + "boolean" + ] + }, + { + "name": "setMaxHistory", + "parameterTypes": [ + "int" + ] + }, + { + "name": "setTotalSizeCap", + "parameterTypes": [ + "ch.qos.logback.core.util.FileSize" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.TriggeringPolicy", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "valueOf", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.helper.DateTokenConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.rolling.helper.IntegerTokenConverter", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "name": "ch.qos.logback.core.spi.ContextAware", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "valueOf", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "name": "ch.qos.logback.core.util.FileSize", + "condition": { + "typeReachable": "ch.qos.logback.core.util.OptionHelper" + }, + "methods": [ + { + "name": "valueOf", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + } +] diff --git a/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json b/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json new file mode 100644 index 0000000..8049327 --- /dev/null +++ b/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json @@ -0,0 +1,20 @@ +{ + "resources": { + "includes": [ + { + "pattern": "\\QMETA-INF/services/org.slf4j.spi.SLF4JServiceProvider\\E", + "condition": { + "typeReachable": "org.slf4j.LoggerFactory" + } + }, + { + "pattern": "\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E", + "condition": { + "typeReachable": "org.slf4j.LoggerFactory" + } + } + ] + }, + "bundles": [ + ] +} From 36d9bc753137b0c8f6ae08addf0702a8a5c728da Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Tue, 12 Nov 2024 15:09:21 +0200 Subject: [PATCH 09/15] Enable monitoring and create build reports --- build.clj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.clj b/build.clj index addc65c..2056862 100644 --- a/build.clj +++ b/build.clj @@ -68,6 +68,12 @@ ;; To make shutdown hooks work "--install-exit-handlers" + "--enable-monitoring" + + "--emit" "build-report=native-image-build-report.html" + + "--enable-sbom=export" + "-H:+UnlockExperimentalVMOptions" "-H:IncludeResources=swagger-ui/.*" ;; TODO: Should create META-INF/native-image/metosin/ring-swagger-ui/native-image.properties From 121b906103cb8e6aa4dcd715e1c83db9e9a6d28a Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Tue, 12 Nov 2024 15:12:50 +0200 Subject: [PATCH 10/15] Regroup dependencies --- deps.edn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deps.edn b/deps.edn index 4ec39f3..03ab8be 100644 --- a/deps.edn +++ b/deps.edn @@ -73,8 +73,9 @@ :build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.5"} - babashka/process {:mvn/version "0.5.22"} - babashka/fs {:mvn/version "0.5.22"}} + + babashka/process {:mvn/version "0.5.22"} + babashka/fs {:mvn/version "0.5.22"}} :ns-default build :jvm-opts ["-XX:-OmitStackTraceInFastThrow" "-Dclojure.main.report=stderr"]} From 61760800ec7a6911a4a0f68b3c01a8cd58f354bd Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Tue, 12 Nov 2024 15:13:09 +0200 Subject: [PATCH 11/15] Add cider and hashp, add dev task --- bb.edn | 7 ++++++- deps.edn | 10 +++++++++- dev/clj/user.clj | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/bb.edn b/bb.edn index 25032a5..d8af832 100644 --- a/bb.edn +++ b/bb.edn @@ -39,4 +39,9 @@ (shell "bb native-image") (shell {:extra-env {"CONFIG_EDN" "resources/config.edn" "HTTP_PORT" 3333}} - "target/app exit-after-start"))}}} + "target/app exit-after-start"))} + + dev {:doc "Start backend development environment" + :task (do + (run 'db-up) + (shell "clojure -A:backend:dev:repl:build:shadow-cljs"))}}} diff --git a/deps.edn b/deps.edn index 03ab8be..1e26d85 100644 --- a/deps.edn +++ b/deps.edn @@ -46,7 +46,15 @@ {:extra-paths ["dev/clj" "target/dev" "test/clj"]} :repl - {:extra-deps {}} + {:extra-deps {cider/cider-nrepl {:mvn/version "0.50.2"} + nrepl/nrepl {:mvn/version "1.3.0"} + com.bhauman/rebel-readline {:mvn/version "0.1.4"} + + hashp/hashp {:mvn/version "0.2.2"}} + :main-opts ["-m" "nrepl.cmdline" + "--middleware" "[cider.nrepl/cider-middleware]" + "--interactive" + "--repl-fn" "rebel-readline.main/-main"]} :test {:extra-paths ["test/clj"] diff --git a/dev/clj/user.clj b/dev/clj/user.clj index bbec288..6f7848a 100644 --- a/dev/clj/user.clj +++ b/dev/clj/user.clj @@ -1,5 +1,6 @@ (ns user - (:require [integrant.repl :refer [clear go halt prep init reset reset-all]] + (:require [hashp.core] + [integrant.repl :refer [clear go halt prep init reset reset-all]] [integrant.repl.state :as state] [migratus.core :as migratus])) From 1a354b58a1047dbf27638e270481b607e4c817fb Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Tue, 12 Nov 2024 15:14:27 +0200 Subject: [PATCH 12/15] Remove reachability metadata Training with enough coverage to hit libraries used seems to be enough --- build.clj | 4 - .../com.zaxxer/HikariCP/5.0.1/index.json | 5 - .../com.zaxxer/HikariCP/5.0.1/jni-config.json | 26 - .../HikariCP/5.0.1/proxy-config.json | 10 - .../HikariCP/5.0.1/reflect-config.json | 535 ------- .../logback-classic/1.4.9/reflect-config.json | 968 ------------ .../1.4.9/resource-config.json | 20 - .../bcpkix-jdk15on/1.70/index.json | 3 - .../bcpkix-jdk15on/1.70/reflect-config.json | 1262 --------------- .../bcpkix-jdk15to18/1.77/index.json | 3 - .../bcpkix-jdk15to18/1.77/reflect-config.json | 1360 ----------------- .../bcpkix-jdk18on/1.77/index.json | 3 - .../bcpkix-jdk18on/1.77/reflect-config.json | 1360 ----------------- .../postgresql/42.7.3/index.json | 3 - .../postgresql/42.7.3/reflect-config.json | 98 -- 15 files changed, 5660 deletions(-) delete mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json delete mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json delete mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json delete mode 100644 graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json delete mode 100644 graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json delete mode 100644 graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json delete mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json delete mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json delete mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json delete mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json delete mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json delete mode 100644 graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json delete mode 100644 graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json delete mode 100644 graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json diff --git a/build.clj b/build.clj index 2056862..34803a9 100644 --- a/build.clj +++ b/build.clj @@ -43,10 +43,6 @@ :javac-opts ["--add-exports" "org.graalvm.nativeimage/org.graalvm.nativeimage.impl=ALL-UNNAMED" "-Xlint:deprecation"]}) - ;; Copy reachability metadata into classpath - (doseq [path (fs/list-dir "graalvm-reachability-metadata/metadata")] - (fs/copy-tree path "target/native-image-configuration/META-INF/native-image")) - (println "Building native image") (p/shell "native-image" diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json deleted file mode 100644 index b906d4a..0000000 --- a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/index.json +++ /dev/null @@ -1,5 +0,0 @@ -[ - "jni-config.json", - "proxy-config.json", - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json deleted file mode 100644 index 55a29bf..0000000 --- a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/jni-config.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "condition": { - "typeReachable": "java.lang.ClassLoader" - }, - "name": "java.lang.ClassLoader", - "methods": [ - { - "name": "getPlatformClassLoader", - "parameterTypes": [] - }, - { - "name": "loadClass", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "jdk.internal.loader.ClassLoaders" - }, - "name": "jdk.internal.loader.ClassLoaders$PlatformClassLoader" - } -] diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json deleted file mode 100644 index ec452f3..0000000 --- a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/proxy-config.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "condition": { - "typeReachable": "com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection" - }, - "interfaces": [ - "java.sql.Connection" - ] - } -] diff --git a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json b/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json deleted file mode 100644 index f6ae83a..0000000 --- a/graalvm-reachability-metadata/metadata/com.zaxxer/HikariCP/5.0.1/reflect-config.json +++ /dev/null @@ -1,535 +0,0 @@ -[ - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.ConcurrentBag" - }, - "name": "[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.pool.PoolEntry" - }, - "name": "[Ljava.sql.Statement;" - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.FastList" - }, - "name": "[Ljava.sql.Statement;" - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.HikariConfig" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "allDeclaredFields": true, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "setAutoCommit", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setConnectionTestQuery", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setMinimumIdle", - "parameterTypes": [ - "int" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.HikariJNDIFactory" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "queryAllPublicMethods": true, - "methods": [ - { - "name": "setDataSourceJNDI", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDriverClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setJdbcUrl", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setMaxLifetime", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setMaximumPoolSize", - "parameterTypes": [ - "int" - ] - }, - { - "name": "setPassword", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setUsername", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.hibernate.HikariConfigurationUtil" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "queryAllPublicMethods": true, - "methods": [ - { - "name": "setAutoCommit", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setConnectionTestQuery", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceClassName", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.PropertyElf" - }, - "name": "com.zaxxer.hikari.HikariConfig", - "methods": [ - { - "name": "getCatalog", - "parameterTypes": [] - }, - { - "name": "getConnectionInitSql", - "parameterTypes": [] - }, - { - "name": "getConnectionTestQuery", - "parameterTypes": [] - }, - { - "name": "getConnectionTimeout", - "parameterTypes": [] - }, - { - "name": "getDataSource", - "parameterTypes": [] - }, - { - "name": "getDataSourceClassName", - "parameterTypes": [] - }, - { - "name": "getDataSourceJNDI", - "parameterTypes": [] - }, - { - "name": "getDataSourceProperties", - "parameterTypes": [] - }, - { - "name": "getDriverClassName", - "parameterTypes": [] - }, - { - "name": "getExceptionOverrideClassName", - "parameterTypes": [] - }, - { - "name": "getHealthCheckProperties", - "parameterTypes": [] - }, - { - "name": "getHealthCheckRegistry", - "parameterTypes": [] - }, - { - "name": "getIdleTimeout", - "parameterTypes": [] - }, - { - "name": "getInitializationFailTimeout", - "parameterTypes": [] - }, - { - "name": "getJdbcUrl", - "parameterTypes": [] - }, - { - "name": "getKeepaliveTime", - "parameterTypes": [] - }, - { - "name": "getLeakDetectionThreshold", - "parameterTypes": [] - }, - { - "name": "getMaxLifetime", - "parameterTypes": [] - }, - { - "name": "getMaximumPoolSize", - "parameterTypes": [] - }, - { - "name": "getMetricRegistry", - "parameterTypes": [] - }, - { - "name": "getMetricsTrackerFactory", - "parameterTypes": [] - }, - { - "name": "getMinimumIdle", - "parameterTypes": [] - }, - { - "name": "getPassword", - "parameterTypes": [] - }, - { - "name": "getPoolName", - "parameterTypes": [] - }, - { - "name": "getScheduledExecutor", - "parameterTypes": [] - }, - { - "name": "getScheduledExecutorService", - "parameterTypes": [] - }, - { - "name": "getSchema", - "parameterTypes": [] - }, - { - "name": "getThreadFactory", - "parameterTypes": [] - }, - { - "name": "getTransactionIsolation", - "parameterTypes": [] - }, - { - "name": "getUsername", - "parameterTypes": [] - }, - { - "name": "getValidationTimeout", - "parameterTypes": [] - }, - { - "name": "isAllowPoolSuspension", - "parameterTypes": [] - }, - { - "name": "isAutoCommit", - "parameterTypes": [] - }, - { - "name": "isInitializationFailFast", - "parameterTypes": [] - }, - { - "name": "isIsolateInternalQueries", - "parameterTypes": [] - }, - { - "name": "isJdbc4ConnectionTest", - "parameterTypes": [] - }, - { - "name": "isReadOnly", - "parameterTypes": [] - }, - { - "name": "isRegisterMbeans", - "parameterTypes": [] - } - ], - "queriedMethods": [ - { - "name": "setAllowPoolSuspension", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setAutoCommit", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setCatalog", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setConnectionInitSql", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setConnectionTestQuery", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setConnectionTimeout", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setDataSource", - "parameterTypes": [ - "javax.sql.DataSource" - ] - }, - { - "name": "setDataSourceClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceJNDI", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setDataSourceProperties", - "parameterTypes": [ - "java.util.Properties" - ] - }, - { - "name": "setDriverClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setExceptionOverrideClassName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setHealthCheckProperties", - "parameterTypes": [ - "java.util.Properties" - ] - }, - { - "name": "setHealthCheckRegistry", - "parameterTypes": [ - "java.lang.Object" - ] - }, - { - "name": "setIdleTimeout", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setInitializationFailTimeout", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setInitializationFailFast", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setIsolateInternalQueries", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setJdbc4ConnectionTest", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setJdbcUrl", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setKeepaliveTime", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setLeakDetectionThreshold", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setMaxLifetime", - "parameterTypes": [ - "long" - ] - }, - { - "name": "setMaximumPoolSize", - "parameterTypes": [ - "int" - ] - }, - { - "name": "setMetricRegistry", - "parameterTypes": [ - "java.lang.Object" - ] - }, - { - "name": "setMetricsTrackerFactory", - "parameterTypes": [ - "com.zaxxer.hikari.metrics.MetricsTrackerFactory" - ] - }, - { - "name": "setMinimumIdle", - "parameterTypes": [ - "int" - ] - }, - { - "name": "setPassword", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setPoolName", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setReadOnly", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setRegisterMbeans", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setScheduledExecutor", - "parameterTypes": [ - "java.util.concurrent.ScheduledExecutorService" - ] - }, - { - "name": "setScheduledExecutorService", - "parameterTypes": [ - "java.util.concurrent.ScheduledThreadPoolExecutor" - ] - }, - { - "name": "setSchema", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setThreadFactory", - "parameterTypes": [ - "java.util.concurrent.ThreadFactory" - ] - }, - { - "name": "setTransactionIsolation", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setUsername", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setValidationTimeout", - "parameterTypes": [ - "long" - ] - } - ] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.UtilityElf" - }, - "name": "java.sql.Connection", - "fields": [] - }, - { - "condition": { - "typeReachable": "com.zaxxer.hikari.util.Sequence$Factory" - }, - "name": "java.util.concurrent.atomic.LongAdder" - } -] diff --git a/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json b/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json deleted file mode 100644 index 8316413..0000000 --- a/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/reflect-config.json +++ /dev/null @@ -1,968 +0,0 @@ -[ - { - "name": "ch.qos.logback.classic.BasicConfigurator", - "condition": { - "typeReachable": "ch.qos.logback.classic.util.ContextInitializer" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.PatternLayout", - "condition": { - "typeReachable": "ch.qos.logback.core.LayoutBase" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.encoder.PatternLayoutEncoder", - "condition": { - "typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.joran.SerializedModelConfigurator", - "condition": { - "typeReachable": "ch.qos.logback.classic.util.ContextInitializer" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.log4j.XMLLayout", - "condition": { - "typeReachable": "ch.qos.logback.core.LayoutBase" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "", - "parameterTypes": [] - }, - { - "name": "setLocationInfo", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setProperties", - "parameterTypes": [ - "boolean" - ] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.CallerDataConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.ClassOfCallerConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.ContextNameConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.DateConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.ExtendedThrowableProxyConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.FileOfCallerConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.KeyValuePairConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.LevelConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.LineOfCallerConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.LineSeparatorConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.pattern.parser.Compiler" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.LocalSequenceNumberConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.LoggerConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.MDCConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.MarkerConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.MessageConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.pattern.parser.Compiler" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.MethodOfCallerConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.MicrosecondConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.NopThrowableInformationConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.PrefixCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.PropertyConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.RelativeTimeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.RootCauseFirstThrowableProxyConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.SequenceNumberConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.ThreadConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.ThrowableProxyConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.classic.util.DefaultJoranConfigurator", - "condition": { - "typeReachable": "ch.qos.logback.classic.util.ContextInitializer" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.ConsoleAppender", - "condition": { - "typeReachable": "ch.qos.logback.core.model.processor.AppenderModelHandler" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.ConsoleAppender", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "setWithJansi", - "parameterTypes": [ - "boolean" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.FileAppender", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "", - "parameterTypes": [] - }, - { - "name": "setAppend", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setFile", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setPrudent", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "valueOf", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.Layout", - "condition": { - "typeReachable": "ch.qos.logback.core.LayoutBase" - }, - "methods": [ - { - "name": "valueOf", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.OutputStreamAppender", - "condition": { - "typeReachable": "ch.qos.logback.core.joran.util.PropertySetter" - }, - "methods": [ - { - "name": "setEncoder", - "parameterTypes": [ - "ch.qos.logback.core.encoder.Encoder" - ] - }, - { - "name": "setImmediateFlush", - "parameterTypes": [ - "boolean" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.encoder.LayoutWrappingEncoder", - "condition": { - "typeReachable": "ch.qos.logback.core.joran.util.PropertySetter" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "", - "parameterTypes": [] - }, - { - "name": "setLayout", - "parameterTypes": [ - "ch.qos.logback.core.Layout" - ] - }, - { - "name": "setParent", - "parameterTypes": [ - "ch.qos.logback.core.spi.ContextAware" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.IdentityCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.PatternLayoutBase", - "condition": { - "typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler" - }, - "methods": [ - { - "name": "setOutputPatternAsHeader", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setPattern", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.PatternLayoutEncoderBase", - "condition": { - "typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler" - }, - "methods": [ - { - "name": "setPattern", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.ReplacingCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BlackCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BlueCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BoldBlueCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BoldCyanCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BoldGreenCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BoldMagentaCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BoldRedCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BoldWhiteCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.BoldYellowCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.CyanCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.GrayCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.GreenCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.MagentaCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.RedCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.WhiteCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.pattern.color.YellowCompositeConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.RollingFileAppender", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "", - "parameterTypes": [] - }, - { - "name": "setFile", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setRollingPolicy", - "parameterTypes": [ - "ch.qos.logback.core.rolling.RollingPolicy" - ] - }, - { - "name": "setTriggeringPolicy", - "parameterTypes": [ - "ch.qos.logback.core.rolling.TriggeringPolicy" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.RollingPolicy", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "valueOf", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.RollingPolicyBase", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "setFileNamePattern", - "parameterTypes": [ - "java.lang.String" - ] - }, - { - "name": "setParent", - "parameterTypes": [ - "ch.qos.logback.core.FileAppender" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "", - "parameterTypes": [] - }, - { - "name": "setMaxFileSize", - "parameterTypes": [ - "ch.qos.logback.core.util.FileSize" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "queryAllPublicMethods": true, - "methods": [ - { - "name": "", - "parameterTypes": [] - }, - { - "name": "setMaxFileSize", - "parameterTypes": [ - "ch.qos.logback.core.util.FileSize" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.TimeBasedRollingPolicy", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "setCleanHistoryOnStart", - "parameterTypes": [ - "boolean" - ] - }, - { - "name": "setMaxHistory", - "parameterTypes": [ - "int" - ] - }, - { - "name": "setTotalSizeCap", - "parameterTypes": [ - "ch.qos.logback.core.util.FileSize" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.TriggeringPolicy", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "valueOf", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.helper.DateTokenConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.rolling.helper.IntegerTokenConverter", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "ch.qos.logback.core.spi.ContextAware", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "valueOf", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - }, - { - "name": "ch.qos.logback.core.util.FileSize", - "condition": { - "typeReachable": "ch.qos.logback.core.util.OptionHelper" - }, - "methods": [ - { - "name": "valueOf", - "parameterTypes": [ - "java.lang.String" - ] - } - ] - } -] diff --git a/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json b/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json deleted file mode 100644 index 8049327..0000000 --- a/graalvm-reachability-metadata/metadata/logback-classic/1.4.9/resource-config.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "resources": { - "includes": [ - { - "pattern": "\\QMETA-INF/services/org.slf4j.spi.SLF4JServiceProvider\\E", - "condition": { - "typeReachable": "org.slf4j.LoggerFactory" - } - }, - { - "pattern": "\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E", - "condition": { - "typeReachable": "org.slf4j.LoggerFactory" - } - } - ] - }, - "bundles": [ - ] -} diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json deleted file mode 100644 index 768b550..0000000 --- a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/index.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json deleted file mode 100644 index d78dc98..0000000 --- a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15on/1.70/reflect-config.json +++ /dev/null @@ -1,1262 +0,0 @@ -[ - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory", - "condition": { - "typeReachable": "org.bouncycastle.cert.jcajce.ProviderCertHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Haraka$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SM3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Skein$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - } -] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json deleted file mode 100644 index 768b550..0000000 --- a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/index.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json deleted file mode 100644 index 4ab82e8..0000000 --- a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk15to18/1.77/reflect-config.json +++ /dev/null @@ -1,1360 +0,0 @@ -[ - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.Dilithium$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.Falcon$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.LMS$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.NTRU$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory", - "condition": { - "typeReachable": "org.bouncycastle.cert.jcajce.ProviderCertHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Haraka$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SM3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Skein$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - } -] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json deleted file mode 100644 index 768b550..0000000 --- a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/index.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json b/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json deleted file mode 100644 index 4ab82e8..0000000 --- a/graalvm-reachability-metadata/metadata/org.bouncycastle/bcpkix-jdk18on/1.77/reflect-config.json +++ /dev/null @@ -1,1360 +0,0 @@ -[ - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.Dilithium$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.Falcon$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.LMS$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.NTRU$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA256", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyPairGeneratorSpi", - "condition": { - "typeReachable": "org.bouncycastle.jcajce.util.ProviderJcaJceHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory", - "condition": { - "typeReachable": "org.bouncycastle.cert.jcajce.ProviderCertHelper" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Blake3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Haraka$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.MD5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.SM3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Skein$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.BC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - }, - { - "name": "org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", - "condition": { - "typeReachable": "org.bouncycastle.jce.provider.BouncyCastleProvider" - }, - "methods": [ - { - "name": "", - "parameterTypes": [ - - ] - } - ] - } -] diff --git a/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json b/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json deleted file mode 100644 index 768b550..0000000 --- a/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/index.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "reflect-config.json" -] diff --git a/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json b/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json deleted file mode 100644 index e4e6fa5..0000000 --- a/graalvm-reachability-metadata/metadata/org.postgresql/postgresql/42.7.3/reflect-config.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.util.PGInterval" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGbox" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGcircle" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGline" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGlseg" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpath" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpoint" - }, - { - "condition": { - "typeReachable": "org.postgresql.jdbc.PgConnection" - }, - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ], - "name": "org.postgresql.geometric.PGpolygon" - } -] From c00fa4b5a488f5b293030a03323e7d4c73276f3a Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Tue, 12 Nov 2024 15:14:36 +0200 Subject: [PATCH 13/15] Add comments --- src/babashka/native_image.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/babashka/native_image.clj b/src/babashka/native_image.clj index ef60984..14b10be 100644 --- a/src/babashka/native_image.clj +++ b/src/babashka/native_image.clj @@ -25,7 +25,9 @@ (defn run-training [http-port] (let [base-url (format "http://localhost:%s" http-port) - test-requests [[200 (str base-url "/api/todo")] + test-requests [;; Database access + [200 (str base-url "/api/todo")] + ;; Buddy [200 (str base-url "/api/buddy-test")]]] (doall (keep (fn [[expected-status url]] (let [response (http/get url {:throw false})] From 5108de3b9a34c05747fa6d3216bd3d44f730877a Mon Sep 17 00:00:00 2001 From: Kimmo Koskinen Date: Tue, 12 Nov 2024 15:14:49 +0200 Subject: [PATCH 14/15] Small cleanup --- build.clj | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build.clj b/build.clj index 34803a9..0058f41 100644 --- a/build.clj +++ b/build.clj @@ -1,11 +1,9 @@ (ns build (:require [babashka.process :as p] - [babashka.fs :as fs] - babashka.process.pprint + [babashka.process.pprint] [clojure.tools.build.api :as b] [shadow.cljs.devtools.api :as shadow])) -(def version "0.0.1-SNAPSHOT") (def class-dir "target/classes") (def uber-file "target/app.jar") @@ -16,6 +14,7 @@ (defn clean [_] (b/delete {:path "target"})) +#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]} (defn uberjar [_] (clean nil) (b/copy-dir {:src-dirs ["src/clj" "src/cljc" "resources"] @@ -35,6 +34,8 @@ (println "Uberjar:" uber-file)) + +#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]} (defn native-image [_] (println "Compiling GraalVM feature classes") (b/javac {:src-dirs ["src/java"] From 53b946bf4a37d063cc07de733ada8ad7b710385a Mon Sep 17 00:00:00 2001 From: Juho Teperi Date: Tue, 26 Nov 2024 11:05:26 +0200 Subject: [PATCH 15/15] Remove unncessary clj-kondo gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6a1d698..f11a31f 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,3 @@ node_modules/ /public/main.css .idea *.iml -.clj-kondo/imports