You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
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)