github TNG/ArchUnit v0.18.0
ArchUnit 0.18.0

latest releases: v1.1.1, v1.2.2, v1.3.0...
3 years ago

Breaking Changes

  • JavaClass.get{All}Interfaces() is now JavaClass.get{All}RawInterfaces() to be consistent with regards to the generic JavaClass.getInterfaces(). We decided that this is still a less painful way than deprecating getInterfaces(), introducting a new getGenericInterfaces(), then deprecate getGenericInterfaces() in favor of getInterfaces() in a later release. To be consistent with other places in ArchUnit JavaClass.getInterfaces() needs to provide the generic version of the interfaces (compare e.g. JavaClass.getSuperclass()).

Enhancements

Core

  • Support for Java Records (see #295; thanks a lot to @rweisleder)
  • JavaClass now knows its generic interfaces (retrievable via JavaClass.getInterfaces()). Furthermore type arguments of generic interfaces are now part of the JavaClass.directDependencies{From/To}Self (see #551)

Lang

  • New syntax methods classes().that().containAny{Members,Fields,Methods,...}That(..) (see #553; thanks a lot to @nils-christian)

Library

  • Added an API to calculate Software Architecture Metrics inspired by John Lakos, Robert C. Martin and Herbert Dowalil. For further details check the user guide (see #572; thanks a lot to @hankem and @stefanhechtltng and to @hdowalil for the inspiration and support)

Further Acknowledgement

Don't miss a new ArchUnit release

NewReleases is sending notifications on new releases.