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 nowJavaClass.getTypeParameters()
(see #398). FurthermoreJavaClass
now reports type parameter bounds asDependencies
(see #484)JavaClass
now offersJavaClass.getInstanceofChecks()
, which are also reported asDependencies
(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 arrayString[]
) are now detected as dependencies ofJavaClass
(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}(..)
andmembers().should().haveName{StartingWith/Containing/EndingWith}(..)
(see #239; thanks a lot to @kamer) - Improve
CompositeArchRule.of(..)
to accept anIterable
ofArchRule
(see #384; thanks a lot to @sullis) - Clarify difference between
access
anddepend
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)