Skip to content

Commit d08c874

Browse files
authored
Merge pull request #57 from pmonks/dev
Release 2.0.323
2 parents a6d9766 + 33bb098 commit d08c874

File tree

4 files changed

+45
-40
lines changed

4 files changed

+45
-40
lines changed

src/lice_comb/files.clj

+13-12
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,20 @@
100100
(let [zip-file (io/file zip)]
101101
(java.util.zip.ZipFile. zip-file) ; This no-op forces validation of the zip file - ZipInputStream does not reliably perform validation
102102
(with-open [zip-is (java.util.zip.ZipInputStream. (io/input-stream zip-file))]
103-
(loop [result {}
104-
entry (.getNextEntry zip-is)]
105-
(if entry
106-
(if (probable-license-file? entry)
107-
(if-let [expressions (try
108-
(file->expressions-info zip-is (lciu/filename entry))
109-
(catch Exception e
110-
(log/warn (str "Unexpected exception while processing " (lciu/filename zip) ":" (lciu/filename entry) " - ignoring") e)
111-
nil))]
112-
(recur (merge result expressions) (.getNextEntry zip-is))
103+
(doall
104+
(loop [result {}
105+
entry (.getNextEntry zip-is)]
106+
(if entry
107+
(if (probable-license-file? entry)
108+
(if-let [expressions (try
109+
(file->expressions-info zip-is (lciu/filename entry))
110+
(catch Exception e
111+
(log/warn (str "Unexpected exception while processing " (lciu/filename zip) ":" (lciu/filename entry) " - ignoring") e)
112+
nil))]
113+
(recur (merge result expressions) (.getNextEntry zip-is))
114+
(recur result (.getNextEntry zip-is)))
113115
(recur result (.getNextEntry zip-is)))
114-
(recur result (.getNextEntry zip-is)))
115-
(when-not (empty? result) (lciei/prepend-source (lciu/filepath zip-file) result))))))))
116+
(when-not (empty? result) (lciei/prepend-source (lciu/filepath zip-file) result)))))))))
116117

117118
(defn zip->expressions
118119
"Returns a set of SPDX expressions (`String`s) for `zip`. See

src/lice_comb/impl/matching.clj

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
"Returns an expressions-info map for the given license text, or nil if no
126126
matches are found."
127127
{:arglists '([text])}
128-
type)
128+
class)
129129

130130
(defmethod text->expressions-info java.lang.String
131131
[s]
@@ -157,7 +157,7 @@
157157
[src]
158158
(when src
159159
(with-open [r (io/reader src)]
160-
(text->expressions-info r))))
160+
(doall (text->expressions-info r)))))
161161

162162
(defn uri->expressions-info
163163
"Returns an expressions-info map for the given license uri, or nil if no

src/lice_comb/impl/utils.clj

+11-11
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@
153153

154154
(defmulti readable-file?
155155
"Is f (a String, File, InputStream, or Reader) a readable file?"
156-
type)
156+
class)
157157

158158
(defmethod readable-file? nil
159159
[_])
@@ -189,7 +189,7 @@
189189
(defmulti filepath
190190
"Returns the full path and name of the given file-like thing (String, File,
191191
ZipEntry, URI, URL)."
192-
type)
192+
class)
193193

194194
(defmethod filepath nil
195195
[_])
@@ -206,10 +206,6 @@
206206
(filepath (io/as-url s))
207207
(filepath (io/file s))))))
208208

209-
(defmethod filepath java.util.zip.ZipEntry
210-
[^java.util.zip.ZipEntry ze]
211-
(.getName ze))
212-
213209
(defmethod filepath java.net.URI
214210
[^java.net.URI uri]
215211
(str uri))
@@ -218,14 +214,18 @@
218214
[^java.net.URL url]
219215
(str url))
220216

217+
(defmethod filepath java.util.zip.ZipEntry
218+
[^java.util.zip.ZipEntry ze]
219+
(.getName ze))
220+
221221
(defmethod filepath java.io.InputStream
222222
[_]
223223
(throw (ex-info "Cannot determine filepath of an InputStream - did you forget to provide it separately?" {})))
224224

225225
(defmulti filename
226226
"Returns just the name component of the given file-like thing (String, File,
227227
ZipEntry, URI, URL), excluding any parents."
228-
type)
228+
class)
229229

230230
(defmethod filename nil
231231
[_])
@@ -242,10 +242,6 @@
242242
(filename (io/as-url s))
243243
(filename (io/file s))))))
244244

245-
(defmethod filename java.util.zip.ZipEntry
246-
[^java.util.zip.ZipEntry ze]
247-
(filename (.getName ze)))
248-
249245
(defmethod filename java.net.URI
250246
[^java.net.URI uri]
251247
(filename (.getPath uri)))
@@ -254,6 +250,10 @@
254250
[^java.net.URL url]
255251
(filename (.getPath url)))
256252

253+
(defmethod filename java.util.zip.ZipEntry
254+
[^java.util.zip.ZipEntry ze]
255+
(filename (.getName ze)))
256+
257257
(defmethod filename java.io.InputStream
258258
[_]
259259
(throw (ex-info "Cannot determine filename of an InputStream - did you forget to provide it separately?" {})))

src/lice_comb/maven.clj

+19-15
Original file line numberDiff line numberDiff line change
@@ -207,19 +207,21 @@
207207
[group-id artifact-id]
208208
(when-let [metadata-uri (ga->metadata-uri group-id artifact-id)]
209209
(with-open [metadata-is (io/input-stream metadata-uri)]
210-
(let [metadata-xml (xml/parse metadata-is)]
211-
(if-let [latest-version (xml-find-first-string metadata-xml [:metadata :versioning :latest])]
212-
latest-version
213-
(last (xi/find-all metadata-xml [:metadata :versioning :versions :version])))))))
210+
(doall
211+
(let [metadata-xml (xml/parse metadata-is)]
212+
(if-let [latest-version (xml-find-first-string metadata-xml [:metadata :versioning :latest])]
213+
latest-version
214+
(last (xi/find-all metadata-xml [:metadata :versioning :versions :version]))))))))
214215

215216
(defn ga-release-version
216217
"Determines the release version (if any) of the given GA as a `String`, or
217218
`nil` if it cannot be determined or the GA doesn't have a released version."
218219
[group-id artifact-id]
219220
(when-let [metadata-uri (ga->metadata-uri group-id artifact-id)]
220221
(with-open [metadata-is (io/input-stream metadata-uri)]
221-
(let [metadata-xml (xml/parse metadata-is)]
222-
(xml-find-first-string metadata-xml [:metadata :versioning :release])))))
222+
(doall
223+
(let [metadata-xml (xml/parse metadata-is)]
224+
(xml-find-first-string metadata-xml [:metadata :versioning :release]))))))
223225

224226
(defn- snapshot-version?
225227
"Is version a SNAPSHOT?"
@@ -234,10 +236,11 @@
234236
(if (snapshot-version? version)
235237
(when-let [metadata-uri (gav->metadata-uri group-id artifact-id version)]
236238
(with-open [metadata-is (io/input-stream metadata-uri)]
237-
(let [metadata-xml (xml/parse metadata-is)
238-
timestamp (xml-find-first-string metadata-xml [:metadata :versioning :snapshot :timestamp])
239-
build-number (xml-find-first-string metadata-xml [:metadata :versioning :snapshot :buildNumber])]
240-
(str (s/replace version #"(?i)SNAPSHOT" (str timestamp "-" build-number))))))
239+
(doall
240+
(let [metadata-xml (xml/parse metadata-is)
241+
timestamp (xml-find-first-string metadata-xml [:metadata :versioning :snapshot :timestamp])
242+
build-number (xml-find-first-string metadata-xml [:metadata :versioning :snapshot :buildNumber])]
243+
(str (s/replace version #"(?i)SNAPSHOT" (str timestamp "-" build-number)))))))
241244
version))
242245

243246
(defn- release-version?
@@ -299,7 +302,7 @@
299302
(then search that page for 'licenses/license*')
300303
* throws on XML parsing error"
301304
{:arglists '([pom] [pom filepath])}
302-
(fn [& args] (type (first args))))
305+
(fn [& args] (class (first args))))
303306

304307
; Note: a few rare pom.xml files are missing the xmlns declation (e.g. software.amazon.ion/ion-java) - so we look for both namespaced and non-namespaced versions of all tags
305308
(defmethod pom->expressions-info java.io.InputStream
@@ -343,9 +346,10 @@
343346
([pom filepath]
344347
(when pom
345348
(with-open [pom-is (io/input-stream pom)]
346-
(if-let [expressions (pom->expressions-info pom-is filepath)]
347-
expressions
348-
(log/info (str "'" filepath "'") "contains no license information"))))))
349+
(doall
350+
(if-let [expressions (doall (pom->expressions-info pom-is filepath))]
351+
expressions
352+
(log/info (str "'" filepath "'") "contains no license information")))))))
349353

350354
(defn pom->expressions
351355
"Returns a set of SPDX expressions (`String`s) for `pom`. See
@@ -374,7 +378,7 @@
374378
(when-let [version (or version (ga-latest-version group-id artifact-id))]
375379
(when-let [pom-uri (gav->pom-uri group-id artifact-id version)]
376380
(with-open [pom-is (io/input-stream pom-uri)]
377-
(lciei/prepend-source (str group-id "/" artifact-id "@" version) (pom->expressions-info pom-is (str pom-uri))))))))
381+
(doall (lciei/prepend-source (str group-id "/" artifact-id "@" version) (pom->expressions-info pom-is (str pom-uri)))))))))
378382

379383
(defn gav->expressions
380384
"Returns a set of SPDX expressions (`String`s) for the given GA and

0 commit comments

Comments
 (0)