Skip to content

Commit 03664c1

Browse files
alexander-yakushevbbatsov
authored andcommitted
Use inlined :cider/nrepl alias to inject -Djdk.attach.allowAttachSelf
1 parent 9f93a5f commit 03664c1

File tree

2 files changed

+19
-18
lines changed

2 files changed

+19
-18
lines changed

cider.el

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -910,13 +910,16 @@ your aliases contain any mains, the cider/nrepl one will be the one used."
910910
(cider-jack-in-normalized-nrepl-middlewares)
911911
","))
912912
(main-opts (format "\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[%s]\"" middleware))
913-
(deps (format "{:deps {%s} :aliases {:cider/nrepl {:main-opts [%s]}}}"
914-
(string-join all-deps " ") main-opts))
913+
(deps (format "{:deps {%s} :aliases {:cider/nrepl {%s:main-opts [%s]}}}"
914+
(string-join all-deps " ")
915+
(if cider-enable-nrepl-jvmti-agent
916+
":jvm-opts [\"-Djdk.attach.allowAttachSelf\"], "
917+
"")
918+
main-opts))
915919
(deps-quoted (cider--shell-quote-argument deps command)))
916-
(format "%s%s-Sdeps %s -M%s:cider/nrepl%s"
920+
(format "%s-Sdeps %s -M%s:cider/nrepl%s"
917921
;; TODO: global-options are deprecated and should be removed in CIDER 2.0
918922
(if global-options (format "%s " global-options) "")
919-
(if cider-enable-nrepl-jvmti-agent "-J-Djdk.attach.allowAttachSelf " "")
920923
deps-quoted
921924
(cider--combined-aliases)
922925
(if params (format " %s" params) ""))))

test/cider-tests.el

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,8 @@
455455
(it "uses main opts in an alias to prevent other mains from winning"
456456
(setq-local cider-jack-in-dependencies nil)
457457
(setq-local cider-jack-in-nrepl-middlewares '("cider.nrepl/cider-middleware"))
458-
(let ((expected (string-join `("clojure -J-Djdk.attach.allowAttachSelf -Sdeps "
459-
,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.49.0\"}} :aliases {:cider/nrepl {:main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
458+
(let ((expected (string-join `("clojure -Sdeps "
459+
,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.49.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
460460
" -M:cider/nrepl")
461461
"")))
462462
(setq-local cider-allow-jack-in-without-project t)
@@ -470,8 +470,8 @@
470470
:to-equal expected)))
471471

472472
(it "allows specifying custom aliases with `cider-clojure-cli-aliases`"
473-
(let ((expected (string-join `("clojure -J-Djdk.attach.allowAttachSelf -Sdeps "
474-
,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.49.0\"}} :aliases {:cider/nrepl {:main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
473+
(let ((expected (string-join `("clojure -Sdeps "
474+
,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.49.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
475475
" -M:dev:test:cider/nrepl")
476476
"")))
477477
(setq-local cider-jack-in-dependencies nil)
@@ -488,9 +488,8 @@
488488
(dolist (command '("clojure" "powershell"))
489489
(it (format "should remove duplicates, yielding the same result (for %S command invocation)" command)
490490
;; repeat the same test for PowerShell too
491-
(let ((expected (string-join `("-J-Djdk.attach.allowAttachSelf "
492-
"-Sdeps "
493-
,(cider--shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.49.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}"
491+
(let ((expected (string-join `("-Sdeps "
492+
,(cider--shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.49.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}"
494493
command)
495494
" -M:dev:test:cider/nrepl")
496495
"")))
@@ -499,9 +498,8 @@
499498
command)
500499
:to-equal expected))))
501500
(it "handles aliases correctly"
502-
(let ((expected (string-join `("-J-Djdk.attach.allowAttachSelf "
503-
"-Sdeps "
504-
,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.49.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
501+
(let ((expected (string-join `("-Sdeps "
502+
,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.49.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
505503
" -M:test:cider/nrepl")
506504
""))
507505
(deps '(("nrepl/nrepl" "0.9.0"))))
@@ -528,8 +526,8 @@
528526
(expect (cider-clojure-cli-jack-in-dependencies nil nil deps)
529527
:to-equal expected)))))
530528
(it "allows for global options"
531-
(let ((expected (string-join `("-J-Xverify:none -J-Djdk.attach.allowAttachSelf -Sdeps "
532-
,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.49.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
529+
(let ((expected (string-join `("-J-Xverify:none -Sdeps "
530+
,(shell-quote-argument "{:deps {cider/cider-nrepl {:mvn/version \"0.49.0\"} nrepl/nrepl {:mvn/version \"0.9.0\"}} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
533531
" -M:test:cider/nrepl")
534532
""))
535533
(deps '(("nrepl/nrepl" "0.9.0"))))
@@ -539,8 +537,8 @@
539537
(it "allows to specify git coordinate as cider-jack-in-dependency"
540538
(setq-local cider-jack-in-dependencies '(("org.clojure/tools.deps" (("git/sha" . "6ae2b6f71773de7549d7f22759e8b09fec27f0d9")
541539
("git/url" . "https://github.com/clojure/tools.deps/")))))
542-
(let ((expected (string-join `("clojure -J-Djdk.attach.allowAttachSelf -Sdeps "
543-
,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.49.0\"} org.clojure/tools.deps { :git/sha \"6ae2b6f71773de7549d7f22759e8b09fec27f0d9\" :git/url \"https://github.com/clojure/tools.deps/\" }} :aliases {:cider/nrepl {:main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
540+
(let ((expected (string-join `("clojure -Sdeps "
541+
,(shell-quote-argument "{:deps {nrepl/nrepl {:mvn/version \"0.9.0\"} cider/cider-nrepl {:mvn/version \"0.49.0\"} org.clojure/tools.deps { :git/sha \"6ae2b6f71773de7549d7f22759e8b09fec27f0d9\" :git/url \"https://github.com/clojure/tools.deps/\" }} :aliases {:cider/nrepl {:jvm-opts [\"-Djdk.attach.allowAttachSelf\"], :main-opts [\"-m\" \"nrepl.cmdline\" \"--middleware\" \"[cider.nrepl/cider-middleware]\"]}}}")
544542
" -M:cider/nrepl")
545543
"")))
546544
(setq-local cider-allow-jack-in-without-project t)

0 commit comments

Comments
 (0)