Skip to content

Commit 90f14b1

Browse files
committed
#171 Migrate ScoverageReport from Groovy to Kotlin
1 parent 0dcd42f commit 90f14b1

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

Diff for: src/main/groovy/org/scoverage/ScoverageAggregate.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class ScoverageAggregate extends DefaultTask {
5151

5252
@TaskAction
5353
def aggregate() {
54-
runner.run {
54+
runner.runGroovy {
5555
reportDir.get().deleteDir()
5656
reportDir.get().mkdirs()
5757

Diff for: src/main/groovy/org/scoverage/ScoverageReport.groovy renamed to src/main/kotlin/org/scoverage/ScoverageReport.kt

+17-16
Original file line numberDiff line numberDiff line change
@@ -13,49 +13,50 @@ import org.gradle.api.tasks.PathSensitive
1313
import org.gradle.api.tasks.TaskAction
1414
import scoverage.report.CoverageAggregator
1515

16-
import static org.gradle.api.tasks.PathSensitivity.RELATIVE
16+
import org.gradle.api.tasks.PathSensitivity.RELATIVE
17+
import java.io.File
1718

1819
@CacheableTask
19-
class ScoverageReport extends DefaultTask {
20+
abstract class ScoverageReport: DefaultTask() {
2021

2122
@Nested
22-
ScoverageRunner runner
23+
var runner: ScoverageRunner? = null
2324

2425
@InputDirectory
2526
@PathSensitive(RELATIVE)
26-
final Property<File> dataDir = project.objects.property(File)
27+
val dataDir: Property<File> = project.objects.property(File::class.java)
2728

2829
@InputFiles
2930
@PathSensitive(RELATIVE)
30-
final Property<FileCollection> sources = project.objects.property(FileCollection)
31+
val sources: Property<FileCollection> = project.objects.property(FileCollection::class.java)
3132

3233
@OutputDirectory
33-
final Property<File> reportDir = project.objects.property(File)
34+
val reportDir: Property<File> = project.objects.property(File::class.java)
3435

3536
@Input
36-
final Property<String> sourceEncoding = project.objects.property(String)
37+
val sourceEncoding: Property<String> = project.objects.property(String::class.java)
3738

3839
@Input
39-
final Property<Boolean> coverageOutputCobertura = project.objects.property(Boolean)
40+
val coverageOutputCobertura: Property<Boolean> = project.objects.property(Boolean::class.java)
4041
@Input
41-
final Property<Boolean> coverageOutputXML = project.objects.property(Boolean)
42+
val coverageOutputXML: Property<Boolean> = project.objects.property(Boolean::class.java)
4243
@Input
43-
final Property<Boolean> coverageOutputHTML = project.objects.property(Boolean)
44+
val coverageOutputHTML: Property<Boolean> = project.objects.property(Boolean::class.java)
4445
@Input
45-
final Property<Boolean> coverageDebug = project.objects.property(Boolean)
46+
val coverageDebug: Property<Boolean> = project.objects.property(Boolean::class.java)
4647

4748
@TaskAction
48-
def report() {
49-
runner.run {
49+
fun report() {
50+
runner?.run {
5051
reportDir.get().delete()
5152
reportDir.get().mkdirs()
5253

53-
def coverage = CoverageAggregator.aggregate([dataDir.get()] as File[])
54+
val coverage = CoverageAggregator.aggregate(arrayOf(dataDir.get()))
5455

55-
if (coverage.isEmpty()) {
56+
if (coverage.isEmpty) {
5657
project.logger.info("[scoverage] Could not find coverage file, skipping...")
5758
} else {
58-
new ScoverageWriter(project.logger).write(
59+
ScoverageWriter(project.logger).write(
5960
sources.get().getFiles(),
6061
reportDir.get(),
6162
coverage.get(),

Diff for: src/main/kotlin/org/scoverage/ScoverageRunner.kt

+7-3
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import java.net.URLClassLoader
88

99
class ScoverageRunner(@Classpath val runtimeClasspath: FileCollection) {
1010

11-
fun run(action: Closure<*>) {
12-
11+
fun run(action: () -> Unit) {
1312
val cloader = Thread.currentThread().getContextClassLoader() as URLClassLoader
1413

1514
val method = URLClassLoader::class.java.getDeclaredMethod("addURL", URL::class.java)
@@ -22,6 +21,11 @@ class ScoverageRunner(@Classpath val runtimeClasspath: FileCollection) {
2221
}
2322
}
2423

25-
action.call()
24+
action()
25+
}
26+
27+
// TODO delete when no longer used by groovy code
28+
fun runGroovy(action: Closure<*>) {
29+
run { action.call() }
2630
}
2731
}

0 commit comments

Comments
 (0)