Enhancements
Core
DescribedPredicate
now offers a more lambda compatible factory methodDescribedPredicate.describe(description, predicate)
(see #188; thanks a lot to @jzheaux)- New factory method
DescribedPredicate.allElements(..)
to complementDescribedPredicate.anyElementThat(..)
(see b8890f4) - Support for JDK 13 (see #195; thanks a lot to @jqno)
- ArchUnits configuration (
archunit.properties
) and ignore patterns (archunit_ignore_patterns.txt
) are now loaded with theContextClassLoader
instead of theClassLoader
of the respective class (see 81c31f6)
Lang
- New method
classes().that().belongToAnyOf(..)
to match any class or inner class of the passed classes (see #173; thanks a lot to @moboa) - New method
classes().should().haveOnlyPrivateConstructors()
(see #204; thanks a lot to @sullis) - New methods
members().should().{have,notHave}FullName[Not][Matching](..)
(see #205; thanks a lot to @hankem)
Library
- New
FreezingArchRule
to wrap any otherArchRule
and change the behavior (see #181):- on the first run record all existing violations
- on further runs only fail by unknown violations
- also on further runs automatically decrease the stored violation count if existing violations are solved
- compare the user guide
- New
Architectures.onionArchitecture()
API offering a predefined API for Onion or Hexagonal Architectures, compare the user guide (see #174; thanks a lot to @spanierm)
JUnit
- The JUnit 5 platform dependency has been upgraded to version 1.5.1
Further Acknowledgement
- Thanks a lot to @hankem for adjusting Spotbugs to ignore false positives with JDK 9
- Thanks a lot to @hankem for fixing incompatibilities of some tests with JDK 12
- Thanks a lot to @vincent-fuchs for improving ArchUnit's logging
- Thanks a lot to @sullis for upgrading dependencies