[#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)))
|
||||
|
||||
(defn part->entry [part]
|
||||
(if (str/ends-with? part ".jar")
|
||||
(JarFileResolver. (io/file part))
|
||||
(DirectoryResolver. (io/file part))))
|
||||
(when-not (str/blank? part)
|
||||
(if (str/ends-with? part ".jar")
|
||||
(JarFileResolver. (io/file part))
|
||||
(DirectoryResolver. (io/file part)))))
|
||||
|
||||
(deftype Loader [entries]
|
||||
IResourceResolver
|
||||
|
|
@ -62,7 +63,7 @@
|
|||
|
||||
(defn loader [^String classpath]
|
||||
(let [parts (.split classpath path-sep)
|
||||
entries (map part->entry parts)]
|
||||
entries (keep part->entry parts)]
|
||||
(Loader. entries)))
|
||||
|
||||
(defn source-for-namespace [loader namespace opts]
|
||||
|
|
|
|||
|
|
@ -4,6 +4,13 @@
|
|||
[clojure.string :as str]
|
||||
[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
|
||||
(testing "uberjar with --main"
|
||||
(let [tmp-file (java.io.File/createTempFile "uber" ".jar")
|
||||
|
|
@ -36,4 +43,18 @@
|
|||
;; running
|
||||
(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 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