We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent dca7361 commit 03a8cfaCopy full SHA for 03a8cfa
src/main/groovy/org/scoverage/ScoverageRunner.groovy
src/main/kotlin/org/scoverage/ScoverageRunner.kt
@@ -0,0 +1,27 @@
1
+package org.scoverage
2
+
3
+import groovy.lang.Closure
4
+import org.gradle.api.file.FileCollection
5
+import org.gradle.api.tasks.Classpath
6
+import java.net.URL
7
+import java.net.URLClassLoader
8
9
+class ScoverageRunner(@Classpath val runtimeClasspath: FileCollection) {
10
11
+ fun run(action: Closure<*>) {
12
13
+ val cloader = Thread.currentThread().getContextClassLoader() as URLClassLoader
14
15
+ val method = URLClassLoader::class.java.getDeclaredMethod("addURL", URL::class.java)
16
+ method.isAccessible = true
17
18
+ runtimeClasspath.files.forEach { f ->
19
+ val url = f.toURI().toURL()
20
+ if (!cloader.urLs.contains(url)) {
21
+ method.invoke(cloader, url)
22
+ }
23
24
25
+ action.call()
26
27
+}
0 commit comments