[#561] Add org.httpkit.client namespace

This also bumps GraalVM to 20.2.0 and XCode to version 12
This commit is contained in:
Michiel Borkent 2020-09-18 21:32:08 +02:00 committed by GitHub
parent 51dca73030
commit f89da080c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 148 additions and 73 deletions

View file

@ -70,7 +70,7 @@ jobs:
working_directory: ~/repo working_directory: ~/repo
environment: environment:
LEIN_ROOT: "true" 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_PLATFORM: linux # used in release script
BABASHKA_TEST_ENV: native BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m" BABASHKA_XMX: "-J-Xmx6500m"
@ -104,9 +104,9 @@ jobs:
name: Download GraalVM name: Download GraalVM
command: | command: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.1.0 ]; then if ! [ -d graalvm-ce-java11-20.2.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 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.1.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
fi fi
- run: - run:
name: Build binary name: Build binary
@ -126,7 +126,7 @@ jobs:
- save_cache: - save_cache:
paths: paths:
- ~/.m2 - ~/.m2
- ~/graalvm-ce-java11-20.1.0 - ~/graalvm-ce-java11-20.2.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts: - store_artifacts:
path: /tmp/release path: /tmp/release
@ -141,7 +141,7 @@ jobs:
working_directory: ~/repo working_directory: ~/repo
environment: environment:
LEIN_ROOT: "true" 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_PLATFORM: linux-static # used in release script
BABASHKA_TEST_ENV: native BABASHKA_TEST_ENV: native
BABASHKA_STATIC: true BABASHKA_STATIC: true
@ -176,9 +176,9 @@ jobs:
name: Download GraalVM name: Download GraalVM
command: | command: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.1.0 ]; then if ! [ -d graalvm-ce-java11-20.2.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 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.1.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
fi fi
- run: - run:
name: Build binary name: Build binary
@ -198,7 +198,7 @@ jobs:
- save_cache: - save_cache:
paths: paths:
- ~/.m2 - ~/.m2
- ~/graalvm-ce-java11-20.1.0 - ~/graalvm-ce-java11-20.2.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts: - store_artifacts:
path: /tmp/release path: /tmp/release
@ -209,9 +209,9 @@ jobs:
./bb .circleci/script/publish_artifact.clj ./bb .circleci/script/publish_artifact.clj
mac: mac:
macos: macos:
xcode: "9.4.1" xcode: "12.0.0"
environment: 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_PLATFORM: macos # used in release script
BABASHKA_TEST_ENV: native BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m" BABASHKA_XMX: "-J-Xmx6500m"
@ -239,9 +239,9 @@ jobs:
command: | command: |
cd ~ cd ~
ls -la ls -la
if ! [ -d graalvm-ce-java11-20.1.0 ]; then if ! [ -d graalvm-ce-java11-20.2.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 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.1.0.tar.gz tar xzf graalvm-ce-java11-darwin-amd64-20.2.0.tar.gz
fi fi
- run: - run:
name: Build binary name: Build binary
@ -263,7 +263,7 @@ jobs:
- save_cache: - save_cache:
paths: paths:
- ~/.m2 - ~/.m2
- ~/graalvm-ce-java11-20.1.0 - ~/graalvm-ce-java11-20.2.0
key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts: - store_artifacts:
path: /tmp/release path: /tmp/release

View file

@ -44,17 +44,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.1.0 path: ~/graalvm-ce-java11-20.2.0
key: ${{ runner.os }}-graalvm-20.1.0 key: ${{ runner.os }}-graalvm-20.2.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.1.0 ${{ runner.os }}-graalvm-20.2.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.1.0 ]; then if ! [ -d graalvm-ce-java11-20.2.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 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.1.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
fi fi
- name: Fetch deps - name: Fetch deps
@ -64,18 +64,18 @@ jobs:
- name: Run tests - name: Run tests
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
script/test script/test
- name: Test libraries - name: Test libraries
run: | 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 sudo script/install-clojure
script/run_lib_tests script/run_lib_tests
- name: Build uberjar - name: Build uberjar
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.2.0"
script/uberjar script/uberjar
- name: Babashka version - name: Babashka version
@ -132,17 +132,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.1.0 path: ~/graalvm-ce-java11-20.2.0
key: ${{ runner.os }}-graalvm-20.1.0 key: ${{ runner.os }}-graalvm-20.2.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.1.0 ${{ runner.os }}-graalvm-20.2.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.1.0 ]; then if ! [ -d graalvm-ce-java11-20.2.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 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.1.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
fi fi
- name: Babashka version - name: Babashka version
@ -155,13 +155,13 @@ jobs:
run: | run: |
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
export BABASHKA_XMX="-J-Xmx6g" 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 cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
script/compile script/compile
- name: Test binary - name: Test binary
run: | 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 BABASHKA_TEST_ENV=native script/test
- name: Install clojure - name: Install clojure
@ -170,7 +170,7 @@ jobs:
- name: Test libraries - name: Test libraries
run: | 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 BABASHKA_TEST_ENV=native script/run_lib_tests
- uses: actions/upload-artifact@v1 - uses: actions/upload-artifact@v1
@ -212,17 +212,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.1.0 path: ~/graalvm-ce-java11-20.2.0
key: ${{ runner.os }}-graalvm-20.1.0 key: ${{ runner.os }}-graalvm-20.2.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.1.0 ${{ runner.os }}-graalvm-20.2.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.1.0 ]; then if ! [ -d graalvm-ce-java11-20.2.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 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.1.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-20.2.0.tar.gz
fi fi
- name: Babashka version - name: Babashka version
@ -235,7 +235,7 @@ jobs:
run: | run: |
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
export BABASHKA_XMX="-J-Xmx6g" 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 export BABASHKA_STATIC=true
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
script/compile script/compile
@ -243,7 +243,7 @@ jobs:
- name: Test binary - name: Test binary
run: | run: |
./bb '(+ 1 2 3)' ./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 BABASHKA_TEST_ENV=native script/test
- name: Install clojure - name: Install clojure
@ -252,7 +252,7 @@ jobs:
- name: Test libraries - name: Test libraries
run: | 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 BABASHKA_TEST_ENV=native script/run_lib_tests
- uses: actions/upload-artifact@v1 - uses: actions/upload-artifact@v1
@ -285,17 +285,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.1.0 path: ~/graalvm-ce-java11-20.2.0
key: ${{ runner.os }}-graalvm-20.1.0 key: ${{ runner.os }}-graalvm-20.2.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.1.0 ${{ runner.os }}-graalvm-20.2.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.1.0 ]; then if ! [ -d graalvm-ce-java11-20.2.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 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.1.0.tar.gz tar xzf graalvm-ce-java11-darwin-amd64-20.2.0.tar.gz
fi fi
- name: Babashka version - name: Babashka version
@ -308,19 +308,19 @@ jobs:
run: | run: |
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
export BABASHKA_XMX="-J-Xmx6g" 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 cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
script/compile script/compile
- name: Test binary - name: Test binary
run: | 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 sudo script/install-leiningen
BABASHKA_TEST_ENV=native script/test BABASHKA_TEST_ENV=native script/test
- name: Test libraries - name: Test libraries
run: | 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 sudo script/install-clojure
BABASHKA_TEST_ENV=native script/run_lib_tests BABASHKA_TEST_ENV=native script/run_lib_tests

View file

@ -4,11 +4,11 @@ ARG BABASHKA_XMX="-J-Xmx3g"
RUN apt update RUN apt update
RUN apt install --no-install-recommends -yy curl unzip build-essential zlib1g-dev RUN apt install --no-install-recommends -yy curl unzip build-essential zlib1g-dev
WORKDIR "/opt" 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 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.1.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 GRAALVM_HOME="/opt/graalvm-ce-java11-20.2.0"
ENV JAVA_HOME="/opt/graalvm-ce-java11-20.1.0/bin" ENV JAVA_HOME="/opt/graalvm-ce-java11-20.2.0/bin"
ENV PATH="$JAVA_HOME:$PATH" ENV PATH="$JAVA_HOME:$PATH"
ENV BABASHKA_STATIC="true" ENV BABASHKA_STATIC="true"
ENV BABASHKA_XMX=$BABASHKA_XMX ENV BABASHKA_XMX=$BABASHKA_XMX

View file

@ -7,7 +7,7 @@ image: Visual Studio 2017
clone_folder: C:\projects\babashka clone_folder: C:\projects\babashka
environment: 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" BABASHKA_XMX: "-J-Xmx5g"
cache: cache:
@ -44,7 +44,7 @@ build_script:
- cmd: >- - cmd: >-
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" 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 }" powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"

View file

@ -1,6 +1,7 @@
{:paths ["src" "feature-xml" "feature-core-async" {:paths ["src" "feature-xml" "feature-core-async"
"feature-yaml" "feature-csv" "feature-transit" "feature-yaml" "feature-csv" "feature-transit"
"feature-java-time" "feature-java-nio" "feature-java-time" "feature-java-nio"
"feature-httpkit-client"
"sci/src" "babashka.curl/src" "babashka.pods/src" "sci/src" "babashka.curl/src" "babashka.pods/src"
"babashka.nrepl/src" "babashka.nrepl/src"
"depstar/src" "depstar/src"
@ -22,7 +23,8 @@
seancorfield/next.jdbc {:mvn/version "1.0.424"} seancorfield/next.jdbc {:mvn/version "1.0.424"}
org.postgresql/postgresql {:mvn/version "42.2.12"} org.postgresql/postgresql {:mvn/version "42.2.12"}
org.hsqldb/hsqldb {:mvn/version "2.4.0"} 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 :aliases {:main
{:main-opts ["-m" "babashka.main"]} {:main-opts ["-m" "babashka.main"]}
:profile :profile

View file

@ -1,6 +1,6 @@
# Developing Babashka # 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 ## Clone repository

View 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})

View file

@ -38,6 +38,10 @@
:dependencies [[com.cognitect/transit-clj "1.0.324"]]} :dependencies [[com.cognitect/transit-clj "1.0.324"]]}
:feature/datascript {:source-paths ["feature-datascript"] :feature/datascript {:source-paths ["feature-datascript"]
:dependencies [[datascript "0.18.11"]]} :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 :test [:feature/xml
:feature/yaml :feature/yaml
:feature/postgresql :feature/postgresql
@ -46,6 +50,8 @@
:feature/csv :feature/csv
:feature/transit :feature/transit
:feature/datascript :feature/datascript
:feature/httpkit-client
:feature/httpkit-server
{:dependencies [[clj-commons/conch "0.9.2"] {:dependencies [[clj-commons/conch "0.9.2"]
[com.clojure-goes-fast/clj-async-profiler "0.4.1"] [com.clojure-goes-fast/clj-async-profiler "0.4.1"]
[com.opentable.components/otj-pg-embedded "0.13.3"]]}] [com.opentable.components/otj-pg-embedded "0.13.3"]]}]
@ -54,7 +60,7 @@
"-Dclojure.spec.skip-macros=true"] "-Dclojure.spec.skip-macros=true"]
:main babashka.main :main babashka.main
:aot :all} :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}} :reflection {:main babashka.impl.classes/generate-reflection-file}}
:aliases {"bb" ["with-profile" "test" "run" "-m" "babashka.main"]} :aliases {"bb" ["with-profile" "test" "run" "-m" "babashka.main"]}
:deploy-repositories [["clojars" {:url "https://clojars.org/repo" :deploy-repositories [["clojars" {:url "https://clojars.org/repo"

View file

@ -41,7 +41,8 @@
"doc/dev.md" "doc/dev.md"
".github/workflows/build.yml" ".github/workflows/build.yml"
".circleci/config.yml" ".circleci/config.yml"
"appveyor.yml"]) "appveyor.yml"
"project.clj"])
;; We might have to keep changing these from ;; We might have to keep changing these from
;; time to time whenever the version is bumped ;; time to time whenever the version is bumped
@ -51,7 +52,7 @@
;; We could have them as environment variables ;; We could have them as environment variables
(def current-graal-version "20.1.0") (def current-graal-version "20.1.0")
(def current-java-version "java11") (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 valid-java-bumps ["java8" "java11"])
(def cl-options (def cl-options

View file

@ -82,6 +82,7 @@ then
export BABAHSKA_FEATURE_TRANSIT=false export BABAHSKA_FEATURE_TRANSIT=false
export BABASHKA_FEATURE_JAVA_TIME=false export BABASHKA_FEATURE_JAVA_TIME=false
export BABASHKA_FEATURE_JAVA_NIO=false export BABASHKA_FEATURE_JAVA_NIO=false
export BABASHKA_FEATURE_HTTPKIT_CLIENT=false
fi fi
"$GRAALVM_HOME/bin/native-image" "${args[@]}" "$GRAALVM_HOME/bin/native-image" "${args[@]}"

View file

@ -22,6 +22,7 @@ then
export BABAHSKA_FEATURE_TRANSIT=false export BABAHSKA_FEATURE_TRANSIT=false
export BABASHKA_FEATURE_JAVA_TIME=false export BABASHKA_FEATURE_JAVA_TIME=false
export BABASHKA_FEATURE_JAVA_NIO=false export BABASHKA_FEATURE_JAVA_NIO=false
export BABASHKA_FEATURE_HTTPKIT_CLIENT=false
fi fi
BABASHKA_LEIN_PROFILES="+uberjar" BABASHKA_LEIN_PROFILES="+uberjar"
@ -89,6 +90,13 @@ else
BABASHKA_LEIN_PROFILES+=",-feature/datascript" BABASHKA_LEIN_PROFILES+=",-feature/datascript"
fi 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 if [ -z "$BABASHKA_JAR" ]; then
lein with-profiles "$BABASHKA_LEIN_PROFILES,+reflection,-uberjar" do run lein with-profiles "$BABASHKA_LEIN_PROFILES,+reflection,-uberjar" do run
lein with-profiles "$BABASHKA_LEIN_PROFILES" do clean, uberjar lein with-profiles "$BABASHKA_LEIN_PROFILES" do clean, uberjar

View file

@ -64,6 +64,12 @@ if "%BABASHKA_FEATURE_DATASCRIPT%"=="true" (
set BABASHKA_LEIN_PROFILES=%BABASHKA_LEIN_PROFILES%,-feature/datascript 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% bb "(+ 1 2 3)"
call lein with-profiles %BABASHKA_LEIN_PROFILES%,+reflection,-uberjar do run call lein with-profiles %BABASHKA_LEIN_PROFILES%,+reflection,-uberjar do run

View file

@ -9,6 +9,7 @@
(def transit? (not= "false" (System/getenv "BABASHKA_FEATURE_TRANSIT"))) (def transit? (not= "false" (System/getenv "BABASHKA_FEATURE_TRANSIT")))
(def java-time? (not= "false" (System/getenv "BABASHKA_FEATURE_JAVA_TIME"))) (def java-time? (not= "false" (System/getenv "BABASHKA_FEATURE_JAVA_TIME")))
(def java-nio? (not= "false" (System/getenv "BABASHKA_FEATURE_JAVA_NIO"))) (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 ;; excluded by default
(def jdbc? (= "true" (System/getenv "BABASHKA_FEATURE_JDBC"))) (def jdbc? (= "true" (System/getenv "BABASHKA_FEATURE_JDBC")))

View file

@ -81,6 +81,9 @@
(when features/datascript? (when features/datascript?
(require '[babashka.impl.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/in (constantly *in*))
(sci/alter-var-root sci/out (constantly *out*)) (sci/alter-var-root sci/out (constantly *out*))
(sci/alter-var-root sci/err (constantly *err*)) (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/yaml %s
:feature/jdbc %s :feature/jdbc %s
:feature/postgresql %s :feature/postgresql %s
:feature/hsqldb %s}") :feature/hsqldb %s
:feature/httpkit-client %s}")
version version
features/core-async? features/core-async?
features/csv? features/csv?
@ -292,7 +296,8 @@ If neither -e, -f, or --socket-repl are specified, then the first argument that
features/yaml? features/yaml?
features/jdbc? features/jdbc?
features/postgresql? features/postgresql?
features/hsqldb?))) features/hsqldb?
features/httpkit-client?)))
(defn read-file [file] (defn read-file [file]
(let [f (io/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)) '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/csv? (assoc 'clojure.data.csv @(resolve 'babashka.impl.csv/csv-namespace))
features/transit? (assoc 'cognitect.transit @(resolve 'babashka.impl.transit/transit-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 (def bindings
{'java.lang.System/exit exit ;; override exit, so we have more control {'java.lang.System/exit exit ;; override exit, so we have more control