Skip to content

Commit e73dbb7

Browse files
committed
Change priority override to use ruleName instead of ruleClass
1 parent 8007ed5 commit e73dbb7

File tree

3 files changed

+17
-16
lines changed

3 files changed

+17
-16
lines changed

nebula-archrules-gradle-plugin/src/main/java/com/netflix/nebula/archrules/gradle/RunRulesWorkAction.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,8 @@ public void execute() {
4040

4141
// check if there is a priority override
4242
var priority = result.getPriority();
43-
String ruleClassName = ruleClass.getClass().getCanonicalName();
44-
for (Map.Entry<String, Priority> override : overrides.entrySet()) {
45-
if (ruleClassName.startsWith(override.getKey())) {
46-
priority = override.getValue();
47-
break;
48-
}
43+
if (overrides.containsKey(id)) {
44+
priority = overrides.get(id);
4945
}
5046

5147
final var rule = new Rule(ruleClass.getClass().getCanonicalName(), id, archRule.getDescription(), priority);
@@ -75,4 +71,4 @@ public void execute() {
7571
throw new RuntimeException(e);
7672
}
7773
}
78-
}
74+
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ abstract class ArchrulesExtension {
4949
consoleDetailsThreshold.set(Priority.valueOf(priority))
5050
}
5151

52-
fun rule(ruleClass: String, action: Action<RuleConfig>) {
52+
fun rule(ruleName: String, action: Action<RuleConfig>) {
5353
val config = RuleConfig()
5454
action.execute(config)
5555

5656
config.priority?.let { priority ->
57-
priorityOverrides.put(ruleClass, priority)
57+
priorityOverrides.put(ruleName, priority)
5858
}
5959
}
60-
}
60+
}

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ archRules {
472472
rawBuildScript(
473473
"""
474474
archRules {
475-
rule("com.netflix.nebula.archrules.deprecation") {
475+
rule("deprecated") {
476476
priority("HIGH")
477477
}
478478
}
@@ -490,12 +490,17 @@ archRules {
490490
val mainReport = projectDir.resolve("build/reports/archrules/main.data")
491491
val results = readDetails(mainReport)
492492

493-
// assert both the deprecatedForRemoval (MEDIUM) and deprecated (LOW) are overridden
494-
val deprecationResults = results.filter { it.rule.ruleClass.contains("deprecation") }
495-
assertThat(deprecationResults).hasSize(3)
496-
deprecationResults.forEach { result ->
493+
// assert deprecated (LOW) is overridden
494+
val deprecatedResults = results.filter { it.rule.ruleName.equals("deprecated") }
495+
assertThat(deprecatedResults).hasSize(2)
496+
deprecatedResults.forEach { result ->
497497
assertThat(result.rule.priority).isEqualTo(Priority.HIGH)
498498
}
499+
500+
// assert deprecatedForRemoval (MEDIUM), which is in the same class but not the same rule, is not overridden
501+
val deprecatedForRemovalResult = results.firstOrNull { it.rule.ruleName.equals("deprecatedForRemoval") }
502+
assertThat(deprecatedForRemovalResult).isNotNull
503+
assertThat(deprecatedForRemovalResult!!.rule.priority).isEqualTo(Priority.MEDIUM)
499504
}
500505

501506
@Test
@@ -505,7 +510,7 @@ archRules {
505510
rawBuildScript(
506511
"""
507512
archRules {
508-
rule("com.netflix.nebula.archrules.deprecation") {
513+
rule("deprecatedForRemoval") {
509514
priority("NONE")
510515
}
511516
}

0 commit comments

Comments
 (0)