Releases: TNG/ArchUnit
Releases · TNG/ArchUnit
ArchUnit 1.3.2
ArchUnit 1.4.1
ArchUnit 1.3.1
Enhancements
(backported from ArchUnit 1.4.0)
Core
- Support Java 24 / class file major version 68 (backported from #1364)
ArchUnit 1.4.0
Enhancements
Core
- Support Java 24 / class file major version 68 (#1364)
Lang
Library
- New
GeneralCodingRules.OLD_DATE_AND_TIME_CLASSES_SHOULD_NOT_BE_USED(#1385; thanks to @Bukama 👏) - Improve
GeneralCodingRules.testClassesShouldResideInTheSamePackageAsImplementationto not fail for classes with no tests in their packages (#1368; thanks to @krzysztof-owczarek 👏)
JUnit
- Fix failure when
junit.testFilteris used (#1361; thanks to @Sparkymann 👏) - Enable
@AnalyzeClassesannotation to be used as meta annotation (#1300; thanks to @mathze 👏)
Documentation
- Fix user guide describing wrong default behavior of
@AnalyzeClasses(#1406) - Clarify Slices documentation (#1366; thanks to @mipo256 👏)
Internal improvements
ArchUnit 1.1.1
Bug Fixes
- Fix ArchUnit importer being unable to import classes from Spring Boot Nested jars (see #1224)
ArchUnit 1.2.2
Bug Fixes
- Fix ArchUnit importer being unable to import classes from Spring Boot Nested jars (see #1224)
ArchUnit 1.3.0
Bug Fixes
- Fix ArchUnit importer being unable to import classes from Spring Boot Nested jars (see #1224)
- Fix
OnionArchitecturelosingwithOptionalLayers()on description override (see #1185) - Fix
JavaType.getAllInvolvedRawTypes()recursing infinitely for recursive type definitions (see #1237) - Fix
@ArchTestfields in base classes of@ArchIgnored classes not being ignored (see #1277)
Enhancements
Core
- Add support for Java 23 (see #1275; thanks a lot to @hankem)
- New method
JavaType.traverseSignature(..)to examine parts of a type signature more conveniently (see 8456198 of #1276)
Lang
- Make handling specific violating object types with
ViolationHandlermore convenient (see #1251)
Library
- Jakarta EE annotations are now considered in
GeneralCodingRules.NO_CLASSES_SHOULD_USE_FIELD_INJECTION(see #1285; thanks a lot to @hankem) - PlantUML rules now ignore dependencies between unparsable objects (e.g. a database instead of a regular component) (see #1132; thanks a lot to @tfij)
- PlantUML rules now optionally support the
componentkeyword incomponent [Example] <<..example..>>(see #1223; thanks a lot to @tfij)
JUnit
@ArchTests included viaArchTests.in(..)now report their full "inclusion path" in the test report (see #452, #1279)- Specific
@ArchTestrules can now be executed by setting the ArchUnit propertyjunit.testFilter=rule_field_name/ setting the system property-Darchunit.junit.testFilter=...(compare the user guide; see #1280)
Further Acknowledgement
ArchUnit 1.2.1
ArchUnit 1.2.0
Enhancements
Core
- Add support for Java 22 (see #1172; thanks a lot to @hankem)
- New methods
{JavaType/JavaMember}.getAllInvolvedRawTypes()to quickly detect all raw types contributing to a type (e.g.List<? extends Serializable>) or member (e.g.List<? extends Serializable> method(Set<String> args) {..}) (see #723; thanks a lot to @leonardhusmann)
Lang
- New rules API
FieldsShould.{be/notBe}AccessedByMethodsThat(predicate)to prevent fields from being accessed by certain methods (see #857; thanks a lot to @leonardhusmann)
Library
- New extensive modules rule syntax to support easier checks for modularization (dependency direction, API surface, ...) (compare the user guide; see #1078)
JUnit
Further Acknowledgement
- Thanks a lot to @SimonVerhoeven for improving the user guide (see #1140)
ArchUnit 1.1.0
Bug Fixes
- Try-Catch-Blocks declared within lambdas will now be detected correctly (see #1069)
- Fix ArchUnit not being able to find classes loaded by Spring Boot
ClassLoader(see #1131; thanks a lot to @odrotbohm)
Enhancements
Core
- New
ImportOptionDoNotIncludeGradleTestFixtures(see #949) - Reduce all log levels except
WARNtoTRACE(see #1050) - Add support for Java 21 (see #1098)
Library
- Two new
GeneralCodingRules(see #970; thanks a lot to @hankem)ASSERTIONS_SHOULD_HAVE_DETAIL_MESSAGEDEPRECATED_API_SHOULD_NOT_BE_USED
TextFileBasedViolationStoreis now part of the public API and can thus be used for customization; as a special case of this file names can now be adjusted (see #1046; thanks a lot to @danhaywood)TextFileBasedViolationStorenow adds a final new line character to the violation file to better conform to the spec (see #1057; thanks a lot to @pkubowicz)