[#780] Ignore empty classpath entries
This commit is contained in:
parent
15e71b0807
commit
657a88c348
2 changed files with 27 additions and 5 deletions
|
|
@ -47,9 +47,10 @@
|
||||||
(path-from-jar jar-file resource-paths opts)))
|
(path-from-jar jar-file resource-paths opts)))
|
||||||
|
|
||||||
(defn part->entry [part]
|
(defn part->entry [part]
|
||||||
(if (str/ends-with? part ".jar")
|
(when-not (str/blank? part)
|
||||||
(JarFileResolver. (io/file part))
|
(if (str/ends-with? part ".jar")
|
||||||
(DirectoryResolver. (io/file part))))
|
(JarFileResolver. (io/file part))
|
||||||
|
(DirectoryResolver. (io/file part)))))
|
||||||
|
|
||||||
(deftype Loader [entries]
|
(deftype Loader [entries]
|
||||||
IResourceResolver
|
IResourceResolver
|
||||||
|
|
@ -62,7 +63,7 @@
|
||||||
|
|
||||||
(defn loader [^String classpath]
|
(defn loader [^String classpath]
|
||||||
(let [parts (.split classpath path-sep)
|
(let [parts (.split classpath path-sep)
|
||||||
entries (map part->entry parts)]
|
entries (keep part->entry parts)]
|
||||||
(Loader. entries)))
|
(Loader. entries)))
|
||||||
|
|
||||||
(defn source-for-namespace [loader namespace opts]
|
(defn source-for-namespace [loader namespace opts]
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,13 @@
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[clojure.test :as t :refer [deftest is testing]]))
|
[clojure.test :as t :refer [deftest is testing]]))
|
||||||
|
|
||||||
|
(defn count-entries [jar]
|
||||||
|
(with-open [jar-file (java.util.jar.JarFile. jar)]
|
||||||
|
(count (map #_prn
|
||||||
|
identity
|
||||||
|
(enumeration-seq
|
||||||
|
(.entries jar-file))))))
|
||||||
|
|
||||||
(deftest uberjar-test
|
(deftest uberjar-test
|
||||||
(testing "uberjar with --main"
|
(testing "uberjar with --main"
|
||||||
(let [tmp-file (java.io.File/createTempFile "uber" ".jar")
|
(let [tmp-file (java.io.File/createTempFile "uber" ".jar")
|
||||||
|
|
@ -36,4 +43,18 @@
|
||||||
;; running
|
;; running
|
||||||
(is (= "(\"42\")\n" (tu/bb nil "--jar" path "-m" "my.main-main" "42")))
|
(is (= "(\"42\")\n" (tu/bb nil "--jar" path "-m" "my.main-main" "42")))
|
||||||
(is (= "(\"42\")\n" (tu/bb nil "--classpath" path "-m" "my.main-main" "42")))
|
(is (= "(\"42\")\n" (tu/bb nil "--classpath" path "-m" "my.main-main" "42")))
|
||||||
(is (= "(\"42\")\n" (tu/bb nil path "42")))))))
|
(is (= "(\"42\")\n" (tu/bb nil path "42"))))))
|
||||||
|
(testing "throw on empty classpath"
|
||||||
|
(let [tmp-file (java.io.File/createTempFile "uber" ".jar")
|
||||||
|
path (.getPath tmp-file)]
|
||||||
|
(.deleteOnExit tmp-file)
|
||||||
|
(is (thrown-with-msg?
|
||||||
|
Exception #"classpath"
|
||||||
|
(tu/bb nil "uberjar" path "-m" "my.main-main")))))
|
||||||
|
(testing "ignore empty entries on classpath"
|
||||||
|
(let [tmp-file (java.io.File/createTempFile "uber" ".jar")
|
||||||
|
path (.getPath tmp-file)]
|
||||||
|
(.deleteOnExit tmp-file)
|
||||||
|
(tu/bb nil "--classpath" ":::" "uberjar" path "-m" "my.main-main")
|
||||||
|
;; Only a manifest entry is added
|
||||||
|
(is (< (count-entries path) 3)))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue