Skip to content

ArchUnit 0.11.0

Compare
Choose a tag to compare
@codecholeric codecholeric released this 30 Jul 18:06

Enhancements

Core

  • DescribedPredicate now offers a more lambda compatible factory method DescribedPredicate.describe(description, predicate) (see #188; thanks a lot to @jzheaux)
  • New factory method DescribedPredicate.allElements(..) to complement DescribedPredicate.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 the ContextClassLoader instead of the ClassLoader 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 other ArchRule 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