What's Changed
đ New Features
- Add pluggable exports, starting with an architecture-rules Markdown f⌠by @mnhock in #399
- Add a SARIF export of rule violations by @mnhock in #401
- Add metrics rules for inheritance, size and coupling by @mnhock in #403
- Add a FileContentCheck for the content of project files by @mnhock in #406
đ Bug Fixes
- Rules that check classes themselves skip synthetic classes, such as an annotated
package-infoor the class javac generates for a switch over an enum; dependency and usage rules still check their code - The deprecation, self-invocation and test-assertion rules treat method references like calls
- Assertions called through a subclass, such as
BDDMockito, or through a fluentArchRulesubtype are recognized - The
hashCode/equalsrule ignores compiler-generated record methods - Uses of deprecated members within their own top-level class are ignored
- Overrides such as
LinkedHashMap.removeEldestEntryare exempt from the rule against protected members in final classes - The package-private rule for test methods skips test methods declared in interfaces
- Searching project files skips unreadable subdirectories, and patterns that start with
..match the path as the pattern names it ServiceRegistrationsCheckskips files that cannot name a class, such as.DS_Store, and reads malformed UTF-8 the way theServiceLoaderdoes
đ Documentation
- Align Javadoc, test names and documentation for consistency, and correct the Kotlin version and the
configureparameter name in the Kotlin documentation
Breaking Changes
- Move
methodsShouldNotExceedMaxParametersfromjava(...)to the newmetrics(...), and the KotlinfunctionsShouldNotExceedMaxParametersfromkotlin { }tometrics { }.
đ¨ Dependency Upgrades
- Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.3 to 3.7.0 by @dependabot[bot] in #404
Full Changelog: v2.7.0...v2.8.0