Skip to content

Commit

Permalink
Extend Java version information
Browse files Browse the repository at this point in the history
  • Loading branch information
Bozhidar Batsov authored and cemerick committed Aug 22, 2014
1 parent 222c456 commit 0679ab6
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
12 changes: 11 additions & 1 deletion src/main/clojure/clojure/tools/nrepl/middleware.clj
Expand Up @@ -32,6 +32,16 @@
[m]
(into {} (filter (fn [[_ v]] (or (number? v) (string? v))) m)))

(defn- java-version
[]
(let [version-string (System/getProperty "java.version")
version-seq (re-seq #"\d+" version-string)
;; add detailed version info only if we found four numbers in the version string
version-map (if (= 4 (count version-seq))
(zipmap [:major :minor :incremental :update] version-seq)
{})]
(assoc version-map :version-string version-string)))

(defn wrap-describe
[h]
(fn [{:keys [op descriptors verbose? transport] :as msg}]
Expand All @@ -42,7 +52,7 @@
(into {} (map #(vector (key %) {}) descriptors)))
:versions {:nrepl (safe-version clojure.tools.nrepl/version)
:clojure (safe-version *clojure-version*)
:java {:version-string (System/getProperty "java.version")}}
:java (safe-version (java-version))}
:status :done}))
(h msg))))

Expand Down
5 changes: 3 additions & 2 deletions src/test/clojure/clojure/tools/nrepl/describe_test.clj
Expand Up @@ -20,8 +20,9 @@
(testing "versions"
(is (= (#'middleware/safe-version clojure.tools.nrepl/version) nrepl))
(is (= (#'middleware/safe-version *clojure-version*) clojure))
(is (= (System/getProperty "java.version") (:version-string java))))

(is (= (System/getProperty "java.version") (:version-string java)))
(is (every? #(contains? java %) [:major :minor :incremental :update])))

(is (= op-names (set (keys ops))))
(is (every? empty? (map val ops)))))

Expand Down

0 comments on commit 0679ab6

Please sign in to comment.