Skip to content

Commit 367f88f

Browse files
committed
gradle cache compatibility
1 parent 364896a commit 367f88f

File tree

2 files changed

+37
-15
lines changed

2 files changed

+37
-15
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import org.gradle.api.DefaultTask
2+
import org.gradle.api.file.ConfigurableFileCollection
3+
import org.gradle.api.file.DirectoryProperty
4+
import org.gradle.api.tasks.InputDirectory
5+
import org.gradle.api.tasks.InputFiles
6+
import org.gradle.api.tasks.OutputDirectory
7+
import org.gradle.api.tasks.TaskAction
8+
9+
abstract class GenerateManifestTask : DefaultTask() {
10+
@get:InputFiles
11+
abstract val testFiles: ConfigurableFileCollection
12+
13+
@get:InputDirectory
14+
abstract val baseResourcesDir: DirectoryProperty
15+
16+
@get:OutputDirectory
17+
abstract val outputDir: DirectoryProperty
18+
19+
@TaskAction
20+
fun generate() {
21+
val baseDirFile = baseResourcesDir.get().asFile
22+
val paths = testFiles.files
23+
.map { file -> "/" + file.relativeTo(baseDirFile).path }
24+
.sortedWith(compareBy<String> { path -> path.count { it == '/' } }.thenBy { it })
25+
26+
val suitesFolder = outputDir.get().asFile.resolve("suites")
27+
suitesFolder.mkdirs()
28+
29+
suitesFolder.resolve("JSON-Schema-Test-Suite.txt").writeText(paths.joinToString("\n"))
30+
}
31+
}

json-schema-validator/build.gradle.kts

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,13 @@ dependencies {
2525
}
2626
}
2727

28-
val generateTestManifest by tasks.registering {
29-
val resourceDir = layout.projectDirectory.dir("src/test/resources/suites/JSON-Schema-Test-Suite/tests")
30-
inputs.dir(resourceDir)
31-
outputs.dir(temporaryDir)
28+
val generateTestManifest by tasks.registering(GenerateManifestTask::class) {
29+
val resourcesPath = "src/test/resources"
30+
val testsPath = "$resourcesPath/suites/JSON-Schema-Test-Suite/tests"
3231

33-
val tests = resourceDir.asFileTree
34-
35-
doLast {
36-
val paths = tests
37-
.map { file -> "/" + file.relativeTo(layout.projectDirectory.dir("src/test/resources").asFile).path }
38-
.sortedWith (compareBy<String> { path -> path.count { it.toString() == "/" } }.thenBy { path -> path })
39-
val outputDir = File(temporaryDir, "suites")
40-
outputDir.mkdirs()
41-
val outputFile = File(outputDir, "JSON-Schema-Test-Suite.txt")
42-
outputFile.writeText(paths.joinToString("\n"))
43-
}
32+
baseResourcesDir.set(layout.projectDirectory.dir(resourcesPath))
33+
testFiles.from(layout.projectDirectory.dir(testsPath).asFileTree)
34+
outputDir.set(temporaryDir)
4435
}
4536

4637
sourceSets {

0 commit comments

Comments
 (0)