[#561] Add org.httpkit.client namespace
This also bumps GraalVM to 20.2.0 and XCode to version 12
This commit is contained in:
parent
51dca73030
commit
f89da080c3
14 changed files with 148 additions and 73 deletions
|
|
@ -70,7 +70,7 @@ jobs:
|
|||
working_directory: ~/repo
|
||||
environment:
|
||||
LEIN_ROOT: "true"
|
||||
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.1.0
|
||||
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.2.0
|
||||
BABASHKA_PLATFORM: linux # used in release script
|
||||
BABASHKA_TEST_ENV: native
|
||||
BABASHKA_XMX: "-J-Xmx6500m"
|
||||
|
|
@ -104,9 +104,9 @@ jobs:
|
|||
name: Download GraalVM
|
||||
command: |
|
||||
cd ~
|
||||
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
if ! [ -d graalvm-ce-java11-20.2.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
fi
|
||||
- run:
|
||||
name: Build binary
|
||||
|
|
@ -126,7 +126,7 @@ jobs:
|
|||
- save_cache:
|
||||
paths:
|
||||
- ~/.m2
|
||||
- ~/graalvm-ce-java11-20.1.0
|
||||
- ~/graalvm-ce-java11-20.2.0
|
||||
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
|
||||
- store_artifacts:
|
||||
path: /tmp/release
|
||||
|
|
@ -141,7 +141,7 @@ jobs:
|
|||
working_directory: ~/repo
|
||||
environment:
|
||||
LEIN_ROOT: "true"
|
||||
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.1.0
|
||||
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.2.0
|
||||
BABASHKA_PLATFORM: linux-static # used in release script
|
||||
BABASHKA_TEST_ENV: native
|
||||
BABASHKA_STATIC: true
|
||||
|
|
@ -176,9 +176,9 @@ jobs:
|
|||
name: Download GraalVM
|
||||
command: |
|
||||
cd ~
|
||||
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
if ! [ -d graalvm-ce-java11-20.2.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
fi
|
||||
- run:
|
||||
name: Build binary
|
||||
|
|
@ -198,7 +198,7 @@ jobs:
|
|||
- save_cache:
|
||||
paths:
|
||||
- ~/.m2
|
||||
- ~/graalvm-ce-java11-20.1.0
|
||||
- ~/graalvm-ce-java11-20.2.0
|
||||
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
|
||||
- store_artifacts:
|
||||
path: /tmp/release
|
||||
|
|
@ -209,9 +209,9 @@ jobs:
|
|||
./bb .circleci/script/publish_artifact.clj
|
||||
mac:
|
||||
macos:
|
||||
xcode: "9.4.1"
|
||||
xcode: "12.0.0"
|
||||
environment:
|
||||
GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-20.1.0/Contents/Home
|
||||
GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-20.2.0/Contents/Home
|
||||
BABASHKA_PLATFORM: macos # used in release script
|
||||
BABASHKA_TEST_ENV: native
|
||||
BABASHKA_XMX: "-J-Xmx6500m"
|
||||
|
|
@ -239,9 +239,9 @@ jobs:
|
|||
command: |
|
||||
cd ~
|
||||
ls -la
|
||||
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
|
||||
if ! [ -d graalvm-ce-java11-20.2.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-darwin-amd64-20.2.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-darwin-amd64-20.2.0.tar.gz
|
||||
fi
|
||||
- run:
|
||||
name: Build binary
|
||||
|
|
@ -263,7 +263,7 @@ jobs:
|
|||
- save_cache:
|
||||
paths:
|
||||
- ~/.m2
|
||||
- ~/graalvm-ce-java11-20.1.0
|
||||
- ~/graalvm-ce-java11-20.2.0
|
||||
key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
|
||||
- store_artifacts:
|
||||
path: /tmp/release
|
||||
|
|
|
|||
72
.github/workflows/build.yml
vendored
72
.github/workflows/build.yml
vendored
|
|
@ -44,17 +44,17 @@ jobs:
|
|||
uses: actions/cache@v1
|
||||
id: cache-graalvm
|
||||
with:
|
||||
path: ~/graalvm-ce-java11-20.1.0
|
||||
key: ${{ runner.os }}-graalvm-20.1.0
|
||||
path: ~/graalvm-ce-java11-20.2.0
|
||||
key: ${{ runner.os }}-graalvm-20.2.0
|
||||
restore-keys: |
|
||||
${{ runner.os }}-graalvm-20.1.0
|
||||
${{ runner.os }}-graalvm-20.2.0
|
||||
|
||||
- name: Download GraalVM
|
||||
run: |
|
||||
cd ~
|
||||
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
if ! [ -d graalvm-ce-java11-20.2.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
fi
|
||||
|
||||
- name: Fetch deps
|
||||
|
|
@ -64,18 +64,18 @@ jobs:
|
|||
|
||||
- name: Run tests
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
script/test
|
||||
|
||||
- name: Test libraries
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
sudo script/install-clojure
|
||||
script/run_lib_tests
|
||||
|
||||
- name: Build uberjar
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
script/uberjar
|
||||
|
||||
- name: Babashka version
|
||||
|
|
@ -132,17 +132,17 @@ jobs:
|
|||
uses: actions/cache@v1
|
||||
id: cache-graalvm
|
||||
with:
|
||||
path: ~/graalvm-ce-java11-20.1.0
|
||||
key: ${{ runner.os }}-graalvm-20.1.0
|
||||
path: ~/graalvm-ce-java11-20.2.0
|
||||
key: ${{ runner.os }}-graalvm-20.2.0
|
||||
restore-keys: |
|
||||
${{ runner.os }}-graalvm-20.1.0
|
||||
${{ runner.os }}-graalvm-20.2.0
|
||||
|
||||
- name: Download GraalVM
|
||||
run: |
|
||||
cd ~
|
||||
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
if ! [ -d graalvm-ce-java11-20.2.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
fi
|
||||
|
||||
- name: Babashka version
|
||||
|
|
@ -155,13 +155,13 @@ jobs:
|
|||
run: |
|
||||
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
|
||||
export BABASHKA_XMX="-J-Xmx6g"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
|
||||
script/compile
|
||||
|
||||
- name: Test binary
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
BABASHKA_TEST_ENV=native script/test
|
||||
|
||||
- name: Install clojure
|
||||
|
|
@ -170,7 +170,7 @@ jobs:
|
|||
|
||||
- name: Test libraries
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
BABASHKA_TEST_ENV=native script/run_lib_tests
|
||||
|
||||
- uses: actions/upload-artifact@v1
|
||||
|
|
@ -212,17 +212,17 @@ jobs:
|
|||
uses: actions/cache@v1
|
||||
id: cache-graalvm
|
||||
with:
|
||||
path: ~/graalvm-ce-java11-20.1.0
|
||||
key: ${{ runner.os }}-graalvm-20.1.0
|
||||
path: ~/graalvm-ce-java11-20.2.0
|
||||
key: ${{ runner.os }}-graalvm-20.2.0
|
||||
restore-keys: |
|
||||
${{ runner.os }}-graalvm-20.1.0
|
||||
${{ runner.os }}-graalvm-20.2.0
|
||||
|
||||
- name: Download GraalVM
|
||||
run: |
|
||||
cd ~
|
||||
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
if ! [ -d graalvm-ce-java11-20.2.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
fi
|
||||
|
||||
- name: Babashka version
|
||||
|
|
@ -235,7 +235,7 @@ jobs:
|
|||
run: |
|
||||
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
|
||||
export BABASHKA_XMX="-J-Xmx6g"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
export BABASHKA_STATIC=true
|
||||
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
|
||||
script/compile
|
||||
|
|
@ -243,7 +243,7 @@ jobs:
|
|||
- name: Test binary
|
||||
run: |
|
||||
./bb '(+ 1 2 3)'
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
BABASHKA_TEST_ENV=native script/test
|
||||
|
||||
- name: Install clojure
|
||||
|
|
@ -252,7 +252,7 @@ jobs:
|
|||
|
||||
- name: Test libraries
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
|
||||
BABASHKA_TEST_ENV=native script/run_lib_tests
|
||||
|
||||
- uses: actions/upload-artifact@v1
|
||||
|
|
@ -285,17 +285,17 @@ jobs:
|
|||
uses: actions/cache@v1
|
||||
id: cache-graalvm
|
||||
with:
|
||||
path: ~/graalvm-ce-java11-20.1.0
|
||||
key: ${{ runner.os }}-graalvm-20.1.0
|
||||
path: ~/graalvm-ce-java11-20.2.0
|
||||
key: ${{ runner.os }}-graalvm-20.2.0
|
||||
restore-keys: |
|
||||
${{ runner.os }}-graalvm-20.1.0
|
||||
${{ runner.os }}-graalvm-20.2.0
|
||||
|
||||
- name: Download GraalVM
|
||||
run: |
|
||||
cd ~
|
||||
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
|
||||
if ! [ -d graalvm-ce-java11-20.2.0 ]; then
|
||||
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-darwin-amd64-20.2.0.tar.gz
|
||||
tar xzf graalvm-ce-java11-darwin-amd64-20.2.0.tar.gz
|
||||
fi
|
||||
|
||||
- name: Babashka version
|
||||
|
|
@ -308,19 +308,19 @@ jobs:
|
|||
run: |
|
||||
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
|
||||
export BABASHKA_XMX="-J-Xmx6g"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0/Contents/Home"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0/Contents/Home"
|
||||
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
|
||||
script/compile
|
||||
|
||||
- name: Test binary
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0/Contents/Home"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0/Contents/Home"
|
||||
sudo script/install-leiningen
|
||||
BABASHKA_TEST_ENV=native script/test
|
||||
|
||||
- name: Test libraries
|
||||
run: |
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0/Contents/Home"
|
||||
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0/Contents/Home"
|
||||
sudo script/install-clojure
|
||||
BABASHKA_TEST_ENV=native script/run_lib_tests
|
||||
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ ARG BABASHKA_XMX="-J-Xmx3g"
|
|||
RUN apt update
|
||||
RUN apt install --no-install-recommends -yy curl unzip build-essential zlib1g-dev
|
||||
WORKDIR "/opt"
|
||||
RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
RUN tar -xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
|
||||
RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
RUN tar -xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
|
||||
|
||||
ENV GRAALVM_HOME="/opt/graalvm-ce-java11-20.1.0"
|
||||
ENV JAVA_HOME="/opt/graalvm-ce-java11-20.1.0/bin"
|
||||
ENV GRAALVM_HOME="/opt/graalvm-ce-java11-20.2.0"
|
||||
ENV JAVA_HOME="/opt/graalvm-ce-java11-20.2.0/bin"
|
||||
ENV PATH="$JAVA_HOME:$PATH"
|
||||
ENV BABASHKA_STATIC="true"
|
||||
ENV BABASHKA_XMX=$BABASHKA_XMX
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ image: Visual Studio 2017
|
|||
clone_folder: C:\projects\babashka
|
||||
|
||||
environment:
|
||||
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-20.1.0
|
||||
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-20.2.0
|
||||
BABASHKA_XMX: "-J-Xmx5g"
|
||||
|
||||
cache:
|
||||
|
|
@ -44,7 +44,7 @@ build_script:
|
|||
- cmd: >-
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
|
||||
|
||||
powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-windows-amd64-20.1.0.zip', 'graalvm.zip') }"
|
||||
powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-windows-amd64-20.2.0.zip', 'graalvm.zip') }"
|
||||
|
||||
powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"
|
||||
|
||||
|
|
|
|||
4
deps.edn
4
deps.edn
|
|
@ -1,6 +1,7 @@
|
|||
{:paths ["src" "feature-xml" "feature-core-async"
|
||||
"feature-yaml" "feature-csv" "feature-transit"
|
||||
"feature-java-time" "feature-java-nio"
|
||||
"feature-httpkit-client"
|
||||
"sci/src" "babashka.curl/src" "babashka.pods/src"
|
||||
"babashka.nrepl/src"
|
||||
"depstar/src"
|
||||
|
|
@ -22,7 +23,8 @@
|
|||
seancorfield/next.jdbc {:mvn/version "1.0.424"}
|
||||
org.postgresql/postgresql {:mvn/version "42.2.12"}
|
||||
org.hsqldb/hsqldb {:mvn/version "2.4.0"}
|
||||
datascript/datascript {:mvn/version "0.18.11"}}
|
||||
datascript/datascript {:mvn/version "0.18.11"}
|
||||
http-kit/http-kit {:mvn/version "2.5.0"}}
|
||||
:aliases {:main
|
||||
{:main-opts ["-m" "babashka.main"]}
|
||||
:profile
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Developing Babashka
|
||||
|
||||
You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java11-20.1.0.
|
||||
You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java11-20.2.0.
|
||||
|
||||
## Clone repository
|
||||
|
||||
|
|
|
|||
44
feature-httpkit-client/babashka/impl/httpkit_client.clj
Normal file
44
feature-httpkit-client/babashka/impl/httpkit_client.clj
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
(ns babashka.impl.httpkit-client
|
||||
{:no-doc true}
|
||||
(:require [org.httpkit.client :as client]
|
||||
[org.httpkit.sni-client :as sni-client]
|
||||
[sci.core :as sci :refer [copy-var]]))
|
||||
|
||||
(def sni-client (delay (client/make-client {:ssl-configurer sni-client/ssl-configurer})))
|
||||
|
||||
(def sns (sci/create-ns 'org.httpkit.server nil))
|
||||
(def cns (sci/create-ns 'org.httpkit.client nil))
|
||||
|
||||
(def default-client (sci/new-dynamic-var '*default-client* sni-client {:ns cns}))
|
||||
|
||||
(defn request
|
||||
([req]
|
||||
(binding [client/*default-client* @default-client]
|
||||
(client/request req)))
|
||||
([req cb]
|
||||
(binding [client/*default-client* @default-client]
|
||||
(client/request req cb))))
|
||||
|
||||
(def httpkit-client-namespace
|
||||
{'request (sci/new-var 'request request {:doc (:doc (meta #'client/request))
|
||||
:ns cns})
|
||||
'get (copy-var client/get cns)
|
||||
'options (copy-var client/options cns)
|
||||
'put (copy-var client/put cns)
|
||||
'lock (copy-var client/lock cns)
|
||||
'report (copy-var client/report cns)
|
||||
'proppatch (copy-var client/proppatch cns)
|
||||
'copy (copy-var client/copy cns)
|
||||
'patch (copy-var client/patch cns)
|
||||
'make-ssl-engine (copy-var client/make-ssl-engine cns)
|
||||
'move (copy-var client/move cns)
|
||||
'delete (copy-var client/delete cns)
|
||||
'make-client (copy-var client/make-client cns)
|
||||
'head (copy-var client/head cns)
|
||||
'propfind (copy-var client/propfind cns)
|
||||
'max-body-filter (copy-var client/max-body-filter cns)
|
||||
'post (copy-var client/post cns)
|
||||
'acl (copy-var client/acl cns)
|
||||
'unlock (copy-var client/unlock cns)
|
||||
'default-client (copy-var client/default-client cns)
|
||||
'*default-client* default-client})
|
||||
|
|
@ -38,6 +38,10 @@
|
|||
:dependencies [[com.cognitect/transit-clj "1.0.324"]]}
|
||||
:feature/datascript {:source-paths ["feature-datascript"]
|
||||
:dependencies [[datascript "0.18.11"]]}
|
||||
:feature/httpkit-client {:source-paths ["feature-httpkit-client"]
|
||||
:dependencies [[http-kit "2.5.0"]]}
|
||||
:feature/httpkit-server {:source-paths ["feature-httpkit-server"]
|
||||
:dependencies [[http-kit "2.5.0"]]}
|
||||
:test [:feature/xml
|
||||
:feature/yaml
|
||||
:feature/postgresql
|
||||
|
|
@ -46,6 +50,8 @@
|
|||
:feature/csv
|
||||
:feature/transit
|
||||
:feature/datascript
|
||||
:feature/httpkit-client
|
||||
:feature/httpkit-server
|
||||
{:dependencies [[clj-commons/conch "0.9.2"]
|
||||
[com.clojure-goes-fast/clj-async-profiler "0.4.1"]
|
||||
[com.opentable.components/otj-pg-embedded "0.13.3"]]}]
|
||||
|
|
@ -54,7 +60,7 @@
|
|||
"-Dclojure.spec.skip-macros=true"]
|
||||
:main babashka.main
|
||||
:aot :all}
|
||||
:native-image {:dependencies [[borkdude/clj-reflector-graal-java11-fix "0.0.1-graalvm-20.1.0"]]}
|
||||
:native-image {:dependencies [[borkdude/clj-reflector-graal-java11-fix "0.0.1-graalvm-20.2.0"]]}
|
||||
:reflection {:main babashka.impl.classes/generate-reflection-file}}
|
||||
:aliases {"bb" ["with-profile" "test" "run" "-m" "babashka.main"]}
|
||||
:deploy-repositories [["clojars" {:url "https://clojars.org/repo"
|
||||
|
|
|
|||
|
|
@ -41,7 +41,8 @@
|
|||
"doc/dev.md"
|
||||
".github/workflows/build.yml"
|
||||
".circleci/config.yml"
|
||||
"appveyor.yml"])
|
||||
"appveyor.yml"
|
||||
"project.clj"])
|
||||
|
||||
;; We might have to keep changing these from
|
||||
;; time to time whenever the version is bumped
|
||||
|
|
@ -51,7 +52,7 @@
|
|||
;; We could have them as environment variables
|
||||
(def current-graal-version "20.1.0")
|
||||
(def current-java-version "java11")
|
||||
(def valid-graal-bumps ["19.3.2" "20.1.0"])
|
||||
(def valid-graal-bumps ["19.3.2" "20.1.0" "20.2.0"])
|
||||
(def valid-java-bumps ["java8" "java11"])
|
||||
|
||||
(def cl-options
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ then
|
|||
export BABAHSKA_FEATURE_TRANSIT=false
|
||||
export BABASHKA_FEATURE_JAVA_TIME=false
|
||||
export BABASHKA_FEATURE_JAVA_NIO=false
|
||||
export BABASHKA_FEATURE_HTTPKIT_CLIENT=false
|
||||
fi
|
||||
|
||||
"$GRAALVM_HOME/bin/native-image" "${args[@]}"
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ then
|
|||
export BABAHSKA_FEATURE_TRANSIT=false
|
||||
export BABASHKA_FEATURE_JAVA_TIME=false
|
||||
export BABASHKA_FEATURE_JAVA_NIO=false
|
||||
export BABASHKA_FEATURE_HTTPKIT_CLIENT=false
|
||||
fi
|
||||
|
||||
BABASHKA_LEIN_PROFILES="+uberjar"
|
||||
|
|
@ -89,6 +90,13 @@ else
|
|||
BABASHKA_LEIN_PROFILES+=",-feature/datascript"
|
||||
fi
|
||||
|
||||
if [ "$BABASHKA_FEATURE_HTTPKIT_CLIENT" != "false" ]
|
||||
then
|
||||
BABASHKA_LEIN_PROFILES+=",+feature/httpkit-client"
|
||||
else
|
||||
BABASHKA_LEIN_PROFILES+=",-feature/httpkit-client"
|
||||
fi
|
||||
|
||||
if [ -z "$BABASHKA_JAR" ]; then
|
||||
lein with-profiles "$BABASHKA_LEIN_PROFILES,+reflection,-uberjar" do run
|
||||
lein with-profiles "$BABASHKA_LEIN_PROFILES" do clean, uberjar
|
||||
|
|
|
|||
|
|
@ -64,6 +64,12 @@ if "%BABASHKA_FEATURE_DATASCRIPT%"=="true" (
|
|||
set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,-feature/datascript
|
||||
)
|
||||
|
||||
if not "%BABASHKA_FEATURE_HTTPKIT_CLIENT%"=="false" (
|
||||
set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,+feature/httpkit-client
|
||||
) else (
|
||||
set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,-feature/httpkit-client
|
||||
)
|
||||
|
||||
call lein with-profiles %BABASHKA_LEIN_PROFILES% bb "(+ 1 2 3)"
|
||||
|
||||
call lein with-profiles %BABASHKA_LEIN_PROFILES%,+reflection,-uberjar do run
|
||||
|
|
|
|||
|
|
@ -2,13 +2,14 @@
|
|||
{:no-doc true})
|
||||
|
||||
;; included by default
|
||||
(def yaml? (not= "false" (System/getenv "BABASHKA_FEATURE_YAML")))
|
||||
(def xml? (not= "false" (System/getenv "BABASHKA_FEATURE_XML")))
|
||||
(def core-async? (not= "false" (System/getenv "BABASHKA_FEATURE_CORE_ASYNC")))
|
||||
(def csv? (not= "false" (System/getenv "BABASHKA_FEATURE_CSV")))
|
||||
(def transit? (not= "false" (System/getenv "BABASHKA_FEATURE_TRANSIT")))
|
||||
(def java-time? (not= "false" (System/getenv "BABASHKA_FEATURE_JAVA_TIME")))
|
||||
(def java-nio? (not= "false" (System/getenv "BABASHKA_FEATURE_JAVA_NIO")))
|
||||
(def yaml? (not= "false" (System/getenv "BABASHKA_FEATURE_YAML")))
|
||||
(def xml? (not= "false" (System/getenv "BABASHKA_FEATURE_XML")))
|
||||
(def core-async? (not= "false" (System/getenv "BABASHKA_FEATURE_CORE_ASYNC")))
|
||||
(def csv? (not= "false" (System/getenv "BABASHKA_FEATURE_CSV")))
|
||||
(def transit? (not= "false" (System/getenv "BABASHKA_FEATURE_TRANSIT")))
|
||||
(def java-time? (not= "false" (System/getenv "BABASHKA_FEATURE_JAVA_TIME")))
|
||||
(def java-nio? (not= "false" (System/getenv "BABASHKA_FEATURE_JAVA_NIO")))
|
||||
(def httpkit-client? (not= "false" (System/getenv "BABASHKA_FEATURE_HTTPKIT_CLIENT")))
|
||||
|
||||
;; excluded by default
|
||||
(def jdbc? (= "true" (System/getenv "BABASHKA_FEATURE_JDBC")))
|
||||
|
|
|
|||
|
|
@ -81,6 +81,9 @@
|
|||
(when features/datascript?
|
||||
(require '[babashka.impl.datascript]))
|
||||
|
||||
(when features/httpkit-client?
|
||||
(require '[babashka.impl.httpkit-client]))
|
||||
|
||||
(sci/alter-var-root sci/in (constantly *in*))
|
||||
(sci/alter-var-root sci/out (constantly *out*))
|
||||
(sci/alter-var-root sci/err (constantly *err*))
|
||||
|
|
@ -282,7 +285,8 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
|
|||
:feature/yaml %s
|
||||
:feature/jdbc %s
|
||||
:feature/postgresql %s
|
||||
:feature/hsqldb %s}")
|
||||
:feature/hsqldb %s
|
||||
:feature/httpkit-client %s}")
|
||||
version
|
||||
features/core-async?
|
||||
features/csv?
|
||||
|
|
@ -292,7 +296,8 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
|
|||
features/yaml?
|
||||
features/jdbc?
|
||||
features/postgresql?
|
||||
features/hsqldb?)))
|
||||
features/hsqldb?
|
||||
features/httpkit-client?)))
|
||||
|
||||
(defn read-file [file]
|
||||
(let [f (io/file file)]
|
||||
|
|
@ -397,7 +402,8 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
|
|||
'clojure.core.async.impl.protocols @(resolve 'babashka.impl.async/async-protocols-namespace))
|
||||
features/csv? (assoc 'clojure.data.csv @(resolve 'babashka.impl.csv/csv-namespace))
|
||||
features/transit? (assoc 'cognitect.transit @(resolve 'babashka.impl.transit/transit-namespace))
|
||||
features/datascript? (assoc 'datascript.core @(resolve 'babashka.impl.datascript/datascript-namespace))))
|
||||
features/datascript? (assoc 'datascript.core @(resolve 'babashka.impl.datascript/datascript-namespace))
|
||||
features/httpkit-client? (assoc 'org.httpkit.client @(resolve 'babashka.impl.httpkit-client/httpkit-client-namespace))))
|
||||
|
||||
(def bindings
|
||||
{'java.lang.System/exit exit ;; override exit, so we have more control
|
||||
|
|
|
|||
Loading…
Reference in a new issue