Skip to content

Commit ac1c0d8

Browse files
committed
Add support for GraalVM ResourceURLConnection
GraalVM creates a resource substitution for regular resources on SubstrateVM @see https://github.com/oracle/graal/blob/db22885e2deb21ff0c1a72314f7b9bb86b7d334c/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jdk/resources/ResourceURLConnection.java#L38 Differences between regular URLConnection & ResourceURLConnection: - `resource:` - protocol instead of `jar:` or `file:` - no way of checking if the resource is a directory
1 parent cfc0be3 commit ac1c0d8

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

ring-core/src/ring/util/response.clj

+8
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,14 @@
289289
(if-not (zero? last-mod)
290290
(Date. last-mod))))
291291

292+
(defmethod resource-data :resource
293+
[^java.net.URL url]
294+
;; GraalVM resource scheme
295+
(let [resource (.openConnection url)]
296+
{:content (.getInputStream resource)
297+
:content-length (connection-content-length resource)
298+
:last-modified (connection-last-modified resource)}))
299+
292300
(defmethod resource-data :jar
293301
[^java.net.URL url]
294302
(let [conn (.openConnection url)]

0 commit comments

Comments
 (0)