arch-unit-build-plugin-core
arch-unit-build-plugin-core copied to clipboard
Support for freezing rules
Summary
A new configuration point for ConfigurableRules could be very useful to specify whether a rule is frozen or not. See https://www.archunit.org/userguide/html/000_Index.html#_freezing_arch_rules for reference documentation.
I'm particularly interested in this feature in the Gradle plugin, but this feature could totally benefit the Maven plugin as well, which is why I've created this request here.
Type of Issue
It is a :
- [ ] bug
- [x] request
- [ ] question regarding the documentation
Motivation
When it comes to implementing ArchUnit in existing projects, the Freezing rules feature is very useful for implementing an iterative approach.
As it is, I haven't found any workaround other than declaring each rule twice, once "normally", and once wrapping it with FreezingArchRule.freeze(rule)
. By doing this, it is then possible to decide in the plugin configuration whether to use the "normal" rule or the frozen rule. In the meantime, if anyone sees a better workaround, don't hesitate to share :-)
A new configuration point in ConfigurableRules seems to me more appropriate for deciding whether a rule is frozen or not. WDYT?
Current Behavior
archUnit {
configurableRules=[
configurableRule(
"com.societegenerale.commons.plugin.rules.NoAutowiredFieldTest",
applyOn("com.package","main")
),
]
}
Expected Behavior
archUnit {
configurableRules=[
configurableRule(
"com.societegenerale.commons.plugin.rules.NoAutowiredFieldTest",
applyOn("com.package","main"),
true <== true for frozen, false otherwise, defaults to false
),
]
}
Your Environment
-
Version used:
- com.societegenerale.commons:arch-unit-gradle-plugin:2.9.5
- com.societegenerale.commons:arch-unit-build-plugin-core:2.9.5
-
OS and version: MacOS Ventura (13.5.1)
have you seen https://github.com/societe-generale/arch-unit-maven-plugin#using-archunitproperties-file , which points to https://github.com/societe-generale/arch-unit-maven-plugin/issues/37#issuecomment-792115469 ?
I haven't looked at this recently, and I won't have time any time soon, but maybe that helps you ?