Skip to content

Commit 3d96410

Browse files
committed
fix NoSuchElementException in ViolationsUtil on fresh run
fixes #20 fix report inputs not being wired up correctly
1 parent bbc0381 commit 3d96410

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

nebula-archrules-gradle-plugin/src/main/kotlin/com/netflix/nebula/archrules/gradle/ArchrulesRunnerPlugin.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,17 @@ class ArchrulesRunnerPlugin : Plugin<Project> {
3636
}
3737
val checkTasks = project.tasks.withType<CheckRulesTask>()
3838
val jsonReportTask = project.tasks.register<PrintJsonReportTask>("archRulesJsonReport") {
39-
getDataFiles().set(project.fileTree(archRulesReportDir).filter { it.extension == "data" })
39+
getDataFiles().set(
40+
project.provider { (project.tasks.withType<CheckRulesTask>().flatMap { it.outputs.files }) }
41+
)
4042
getJsonReportFile().set(archRulesReportDir.map { it.file("report.json").asFile })
4143
dependsOn(checkTasks)
4244
}
4345

4446
val consoleReportTask = project.tasks.register<PrintConsoleReportTask>("archRulesConsoleReport") {
45-
getDataFiles().set(project.fileTree(archRulesReportDir).filter { it.extension == "data" })
47+
getDataFiles().set(
48+
project.provider { (project.tasks.withType<CheckRulesTask>().flatMap { it.outputs.files }) }
49+
)
4650
dependsOn(checkTasks)
4751
onlyIf { archRulesExt.consoleReportEnabled.get() }
4852
}

nebula-archrules-gradle-plugin/src/test/kotlin/com/netflix/nebula/archrules/gradle/ArchrulesRunnerPluginTest.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.netflix.nebula.archrules.gradle
22

33
import nebula.test.dsl.*
44
import nebula.test.dsl.TestKitAssertions.assertThat
5+
import org.gradle.kotlin.dsl.named
56
import org.gradle.testfixtures.ProjectBuilder
67
import org.gradle.testkit.runner.TaskOutcome
78
import org.junit.jupiter.api.Test
@@ -26,6 +27,21 @@ class ArchrulesRunnerPluginTest {
2627
assertThat(configuration).isNotNull
2728
}
2829

30+
@Test
31+
fun `report inputs are correct`() {
32+
val project = ProjectBuilder.builder().build()
33+
project.plugins.apply("java")
34+
project.plugins.apply(ArchrulesRunnerPlugin::class.java)
35+
val consoleReport = project.tasks.named<PrintConsoleReportTask>("archRulesConsoleReport")
36+
assertThat(consoleReport.get().dataFiles.get())
37+
.`as`("console report inputs are correct")
38+
.hasSize(2)
39+
val jsonReport = project.tasks.named<PrintJsonReportTask>("archRulesJsonReport")
40+
assertThat(jsonReport.get().dataFiles.get())
41+
.`as`("json report inputs are correct")
42+
.hasSize(2)
43+
}
44+
2945
@ParameterizedTest
3046
@EnumSource(SupportedGradleVersion::class)
3147
fun `plugin checks each sourceset`(gradleVersion: SupportedGradleVersion) {

0 commit comments

Comments
 (0)