Skip to content

ArchUnit 0.15.0

Compare
Choose a tag to compare
@codecholeric codecholeric released this 16 Dec 23:58

Bug Fixes

  • TextFileBasedViolationStore now correctly handles empty violation store files (see #456; thanks a lot to @hankem)
  • Fix URL scheme part issue on Windows when reading classpath URLs from manifest files (see #414; thanks a lot to @eriklumme)

Enhancements

Core

  • Reduce excessive logging if archunit.properties are overwritten by system properties (see #375; thanks a lot to @ldebruijn)
  • New method JavaClass.tryGetConstructor() (see #386; thanks a lot to @rweisleder)
  • JavaClass now provides generic type information, i.e. there is now JavaClass.getTypeParameters() (see #398). Furthermore JavaClass now reports type parameter bounds as Dependencies (see #484)
  • JavaClass now offers JavaClass.getInstanceofChecks(), which are also reported as Dependencies (see #371; thanks a lot to @t-h-e)
  • Support for Java 15 and 16-ea (see #409)
  • Resolve imported annotations transitively with the configured ClassResolver (i.e. by default from the classpath). This will make detection of meta-annotations work out of the box now in many cases, without the need to explicitly import these meta-annotation types as well (see #342, #450; thanks a lot to @KorSin)
  • New method JavaClass.getBaseComponentType() (see #441; thanks a lot to @hankem)
  • Component types (i.e. String for an array String[]) are now detected as dependencies of JavaClass (see #257; thanks a lot to @wengertj)
  • New method ..archunit..Optional.getOrThrow(Supplier) (see #391; thanks a lot to @idosal)
  • New method JavaClass.getTransitiveDependenciesFromSelf() (see #401; thanks a lot to @hankem)

Lang

  • New syntax members().that().haveName{StartingWith/Containing/EndingWith}(..) and members().should().haveName{StartingWith/Containing/EndingWith}(..) (see #239; thanks a lot to @kamer)
  • Improve CompositeArchRule.of(..) to accept an Iterable of ArchRule (see #384; thanks a lot to @sullis)
  • Clarify difference between access and depend in rule Javadocs (see #313; thanks a lot to @idosal)
  • New syntax classes().that().are{Not}Annotations() (see #468)
  • New syntax classes().that().doNotBelongToAnyOf(..) (see #422; thanks a lot to @perlun)

Further Acknowledgement

  • Thanks a lot to @rweisleder for improving the ArchUnit user guide, development documentation and build
  • Thanks a lot to @spanierm for improving OS-JDK-matrix CI builds with GitHub Actions
  • Thanks a lot to @gernotstarke for website and documentation improvements (see #478 and #479)
  • Thanks a lot to @kamilszymanski and @dariuszzbyrad for Javadoc improvements and code cleanups
  • Thanks a lot to @sullis for upgrading various build dependencies
  • Thanks a lot to @cristiangreco for introducing Upgrade Gradle Wrapper Action (see #486)