Skip to content

Commit 181ef9c

Browse files
committed
java-command - TBUILD-14 Use :jvm-opts from aliases in basis, if provided
1 parent fcb8ecb commit 181ef9c

5 files changed

Lines changed: 17 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Changelog
22
===========
33

4+
* next
5+
* java-command - TBUILD-14 Use :jvm-opts from aliases in basis, if provided
46
* v0.9.4 76b78fe on Mar 6, 2023
57
* uber - exclude Emacs backup files from uberjar inclusion (useful with local/git deps)
68
* uber - improve error message when file in local or git lib can't be read

deps.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
:deps
44
{org.clojure/clojure {:mvn/version "1.11.1"}
5-
org.clojure/tools.deps {:mvn/version "0.17.1297"}
5+
org.clojure/tools.deps {:mvn/version "0.18.1354"}
66
;org.clojure/tools.deps {:git/url "https://github.com/clojure/tools.deps.git"
77
; :git/sha "459222ca6e4fce91cf5838435589a028cedbc784"}
88
org.clojure/tools.namespace {:mvn/version "1.3.0"}

src/main/clojure/clojure/tools/build/api.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@
172172
Options:
173173
:java-cmd - Java command, default = $JAVA_CMD or 'java' on $PATH, or $JAVA_HOME/bin/java
174174
:cp - coll of string classpath entries, used first (if provided)
175-
:basis - runtime basis used for classpath, used last (if provided)
175+
:basis - runtime basis used for classpath and jvm opts from aliases, used last (if provided)
176176
:java-opts - coll of string jvm opts
177177
:main - required, main class symbol
178178
:main-args - coll of main class args

src/main/clojure/clojure/tools/build/tasks/process.clj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@
158158
[{:keys [java-cmd cp basis java-opts main main-args use-cp-file]
159159
:or {use-cp-file :auto} :as _params}]
160160
(let [cmd (or java-cmd (java-executable))
161-
{:keys [classpath-roots]} basis
161+
{:keys [classpath-roots argmap]} basis
162162
cp-entries (concat cp classpath-roots)
163-
cp-str (deps/join-classpath cp-entries)]
164-
{:command-args (make-java-args cmd java-opts cp-str main main-args use-cp-file)}))
163+
cp-str (deps/join-classpath cp-entries)
164+
combined-java-opts (concat java-opts (:jvm-opts argmap))]
165+
{:command-args (make-java-args cmd combined-java-opts cp-str main main-args use-cp-file)}))

src/test/clojure/clojure/tools/build/tasks/test_process.clj

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
(ns clojure.tools.build.tasks.test-process
1010
(:require
1111
[clojure.test :refer :all]
12+
[clojure.set :as set]
13+
[clojure.tools.build.api :as api]
1214
[clojure.tools.build.tasks.process :as process]))
1315

1416
(deftest test-need-cp-file
@@ -18,4 +20,10 @@
1820
"Windows 10" "9.0.1" 10000 true
1921
"Windows 10" "9.0.1" 5000 false
2022
"Windows 10" "1.8.0_261" 10000 false
21-
"Mac OS X" "17" 10000 false)))
23+
"Mac OS X" "17" 10000 false)))
24+
25+
(deftest test-java-process-uses-and-merges-basis-jvm-opts
26+
(let [basis (api/create-basis {:extra {:aliases {:opts {:jvm-opts ["-Dhi=there"]}}}
27+
:aliases [:opts]})
28+
command (api/java-command {:basis basis, :main 'clojure.main, :java-opts ["-Dfoo=bar"]})]
29+
(is (set/subset? #{"-Dhi=there" "-Dfoo=bar"} (set (:command-args command))))))

0 commit comments

Comments
 (0)