Skip to content

Commit

Permalink
feat: Apply timeout to antq.ver.java/get-versions
Browse files Browse the repository at this point in the history
cf. #158
  • Loading branch information
liquidz committed Jun 7, 2022
1 parent 6ed99cf commit 79b6975
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
12 changes: 9 additions & 3 deletions src/antq/ver/java.clj
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
(ns antq.ver.java
(:require
[antq.constant :as const]
[antq.util.async :as u.async]
[antq.util.maven :as u.mvn]
[antq.ver :as ver]
[clojure.set :as set]
Expand All @@ -13,7 +15,7 @@
(org.eclipse.aether.resolution
VersionRangeRequest)))

(defn get-versions
(defn- get-versions
[name opts]
(let [{:keys [^RepositorySystem system
^DefaultRepositorySystemSession session
Expand All @@ -25,11 +27,16 @@
(->> (.resolveVersionRange system session req)
(.getVersions))))

(def ^:private get-versions-with-timeout
(u.async/fn-with-timeout
get-versions
const/maven-timeout-msec))

(defn get-sorted-versions-by-name*
[name
{:as dep-opts :keys [snapshots?]}
options]
(let [maven-vers (->> (get-versions name dep-opts)
(let [maven-vers (->> (get-versions-with-timeout name dep-opts)
(map str))
versions (if (:ignore-locals options)
(seq (set/difference (set maven-vers)
Expand All @@ -41,7 +48,6 @@
(cond->> sorted-versions
(not snapshots?) (remove ver/snapshot?))))


(def get-sorted-versions-by-name
(memoize get-sorted-versions-by-name*))

Expand Down
6 changes: 3 additions & 3 deletions test/antq/ver/java_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
[:deps 'org.clojure/clojure :mvn/version]))

(t/deftest get-versions-test
(let [vers (sut/get-versions 'org.clojure/clojure
{:repositories u.mvn/default-repos})]
(let [vers (#'sut/get-versions 'org.clojure/clojure
{:repositories u.mvn/default-repos})]
(t/is (seq vers))
(t/is (contains? (set (map str vers)) current-clojure-version))))

Expand All @@ -32,7 +32,7 @@
{}))

(t/deftest get-sorted-versions-test
(with-redefs [sut/get-versions dummy-versions]
(with-redefs [sut/get-versions-with-timeout dummy-versions]
(t/is (= ["2" "1"]
(get-sorted-versions {:version "1.0.0"})))
(t/is (= ["2" "1.6-SNAPSHOT" "1"]
Expand Down

0 comments on commit 79b6975

Please sign in to comment.