Skip to content

Commit 8007ed5

Browse files
committed
validate archrule priority without exceptions
add .editorconfig to enforce style
1 parent 3fecbe4 commit 8007ed5

File tree

3 files changed

+44
-12
lines changed

3 files changed

+44
-12
lines changed

.editorconfig

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
indent_size = 4
6+
indent_style = space
7+
insert_final_newline = true
8+
max_line_length = 120
9+
ij_continuation_indent_size = 8
10+
tab_width = 4
11+
trim_trailing_whitespace = true
12+
13+
[{*.kt,*.kts}]
14+
ij_kotlin_allow_trailing_comma = false
15+
ij_kotlin_allow_trailing_comma_on_call_site = false
16+
ij_kotlin_name_count_to_use_star_import_for_members = 20
17+
ij_kotlin_name_count_to_use_star_import = 20
18+
ij_kotlin_continuation_indent_size = 4
19+
ktlint_code_style=intellij_idea
20+
21+
[*.java]
22+
ij_java_names_count_to_use_import_on_demand = 20
23+
ij_java_class_count_to_use_import_on_demand = 20
24+
ij_java_packages_to_use_import_on_demand = 20

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,29 @@ package com.netflix.nebula.archrules.gradle
33
import com.tngtech.archunit.lang.Priority
44
import org.slf4j.Logger
55
import org.slf4j.LoggerFactory
6+
import java.util.EnumSet
67

78
class RuleConfig {
8-
val LOGGER: Logger = LoggerFactory.getLogger(RuleConfig::class.java)
9+
companion object {
10+
@JvmStatic
11+
val LOGGER: Logger = LoggerFactory.getLogger(RuleConfig::class.java)
12+
}
13+
914
var priority: Priority? = null
1015

1116
fun priority(priority: String) {
12-
try {
13-
this.priority = Priority.valueOf(priority)
14-
} catch(e: IllegalArgumentException) {
15-
val validValues = Priority.entries.joinToString { it.name }
16-
LOGGER.warn("Invalid priority '$priority'. Must be one of the following (case-sensitive): $validValues")
17+
val validStrings = EnumSet.allOf(Priority::class.java).map { it.asString() }.toSet()
18+
if (validStrings.contains(priority)) {
19+
priority(Priority.valueOf(priority))
20+
} else {
21+
LOGGER.warn(
22+
"Invalid ArchRule priority '$priority'. " +
23+
"Must be one of the following (case-sensitive): ${validStrings.joinToString(", ")}"
24+
)
1725
}
1826
}
1927

2028
fun priority(priority: Priority) {
2129
this.priority = priority
2230
}
23-
}
31+
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ archRules {
298298
"""
299299
archRules {
300300
skipPassingSummaries = true
301-
}
301+
}
302302
"""
303303
)
304304
src {
@@ -341,7 +341,7 @@ archRules {
341341
"""
342342
archRules {
343343
consoleDetailsThreshold("MEDIUM")
344-
}
344+
}
345345
"""
346346
)
347347
}
@@ -370,7 +370,7 @@ archRules {
370370
"""
371371
archRules {
372372
consoleDetailsThreshold("LOW")
373-
}
373+
}
374374
"""
375375
)
376376
}
@@ -427,7 +427,7 @@ archRules {
427427
"""
428428
archRules {
429429
skipSourceSet("test")
430-
}
430+
}
431431
"""
432432
)
433433
}
@@ -517,7 +517,7 @@ archRules {
517517
val result = runner.run("checkArchRulesMain", "--stacktrace", "-x", "test")
518518

519519
assertThat(result.output)
520-
.contains("Invalid priority 'NONE'")
520+
.contains("Invalid ArchRule priority 'NONE'")
521521
.contains("Must be one of the following (case-sensitive): HIGH, MEDIUM, LOW")
522522

523523
assertThat(result.task(":checkArchRulesMain"))

0 commit comments

Comments
 (0)