Fix bug where referenced class objects and instanceof checks were not detected if declared within a lambda (see #992)
Fix empty records not being detected as records (see #998; thanks a lot to @hankem)
Fix Javadoc on layeredArchitecture() missing the new consideringDependencies part (see #977; thanks a lot to @Thunderforge)
Fix user guide still showing DescribedPredicate.apply instead of .test (see #978; thanks a lot to @thmuch)
ArchUnit 1.0.0
:warning: If you upgrade from the latest 0.x version, please also refer to the release notes of release candidate 1.0.0-rc1 as these release notes refer to upgrading from the release candidate :warning:
Breaking Changes
Naming around JavaPackage subpackages and dependencies has been improved to remove ambiguities. In general, whenever all classes from a package and subpackages recursively are involved, this is now called "package tree". Otherwise, it only targets the classes directly within this package (see #919/#968; thanks a lot to @grimsa)
The following mapping shows how to translate the old methods to the current methods:
Importing the default package via ClassFileImporter.importPackages("") will now yields the same result as using importClasspath() without any ImportOption (see #954)
ClassFileImporter.importClasspath() now behaves consistently to other import APIs. I.e. no default ImportOptions like DoNotIncludeArchives are added anymore, instead all ImportOptions need to be added the same way as for all other import methods (see #958)
The custom collection ImportOptions has been removed from the public API and been replaced by a standard Collection<ImportOption> where appropriate (see #958)
The package com.tngtech.archunit.library.plantuml has been moved to com.tngtech.archunit.library.plantuml.rules to make room for adding other PlantUML related features (see #959)
SLF4J-API has been upgraded from 1.7.30 to 2.0.3, so any log adapter dependency to be used with ArchUnit (e.g. to hook in Log4J) has to be compatible with SLF4J-API 2.x from now on (see #966)
Bug Fixes
Fix bug where multiple synthetic access calls to methods like access$123(..) would lead to only one access being imported. Note, that these synthetic methods are added for calls to private fields / methods from inner classes to outer classes, etc. (see #957)
Enhancements
Lang
archunit_ignore_patterns.txt is now also respected by FreezingArchRule. Thus, ignored violations are not added to the ViolationStore anymore (see #915)
Library
testClassesShouldResideInTheSamePackageAsImplementation(..) now supports multiple test classes with same simple name (see #918; thanks a lot to @mslowiak)
PlantUmlArchCondition now does not throw exceptions anymore, if a class is in none or multiple components, but instead reports those as standard violations. This way these violations can also be frozen via FreezingArchRule instead of crashing the test (see #960)
Further Acknowledgement
Thanks a lot to @hankem for upgrading various dependencies, cleaning up code and extensive reviews
Fix bug where referenced class objects and instanceof checks were not detected if declared within a lambda (see #992)
Fix empty records not being detected as records (see #998; thanks a lot to @hankem)
Fix Javadoc on layeredArchitecture() missing the new consideringDependencies part (see #977; thanks a lot to @Thunderforge)
Fix user guide still showing DescribedPredicate.apply instead of .test (see #978; thanks a lot to @thmuch)
ArchUnit 1.0.0
:warning: If you upgrade from the latest 0.x version, please also refer to the release notes of release candidate 1.0.0-rc1 as these release notes refer to upgrading from the release candidate :warning:
Breaking Changes
Naming around JavaPackage subpackages and dependencies has been improved to remove ambiguities. In general, whenever all classes from a package and subpackages recursively are involved, this is now called "package tree". Otherwise, it only targets the classes directly within this package (see #919/#968; thanks a lot to @grimsa)
The following mapping shows how to translate the old methods to the current methods:
Importing the default package via ClassFileImporter.importPackages("") will now yields the same result as using importClasspath() without any ImportOption (see #954)
ClassFileImporter.importClasspath() now behaves consistently to other import APIs. I.e. no default ImportOptions like DoNotIncludeArchives are added anymore, instead all ImportOptions need to be added the same way as for all other import methods (see #958)
The custom collection ImportOptions has been removed from the public API and been replaced by a standard Collection<ImportOption> where appropriate (see #958)
The package com.tngtech.archunit.library.plantuml has been moved to com.tngtech.archunit.library.plantuml.rules to make room for adding other PlantUML related features (see #959)
SLF4J-API has been upgraded from 1.7.30 to 2.0.3, so any log adapter dependency to be used with ArchUnit (e.g. to hook in Log4J) has to be compatible with SLF4J-API 2.x from now on (see #966)
Bug Fixes
Fix bug where multiple synthetic access calls to methods like access$123(..) would lead to only one access being imported. Note, that these synthetic methods are added for calls to private fields / methods from inner classes to outer classes, etc. (see #957)
Enhancements
Lang
archunit_ignore_patterns.txt is now also respected by FreezingArchRule. Thus, ignored violations are not added to the ViolationStore anymore (see #915)
Library
testClassesShouldResideInTheSamePackageAsImplementation(..) now supports multiple test classes with same simple name (see #918; thanks a lot to @mslowiak)
PlantUmlArchCondition now does not throw exceptions anymore, if a class is in none or multiple components, but instead reports those as standard violations. This way these violations can also be frozen via FreezingArchRule instead of crashing the test (see #960)
Further Acknowledgement
Thanks a lot to @hankem for upgrading various dependencies, cleaning up code and extensive reviews
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps
archunit-junit5.version
from 0.22.0 to 1.0.1. Updatesarchunit-junit5-api
from 0.22.0 to 1.0.1Release notes
Sourced from archunit-junit5-api's releases.
... (truncated)
Commits
bfbf047
prepare release 1.0.16b8fe3c
set version for bugfix to1.0.1-SNAPSHOT
055f5c2
recognize empty records (#999)2cad383
recognize empty records165dbbd
add rule not to use ASM from (most) domain classes7d41549
Fix referenced class objects and instanceof checks in lambdas (#1004)ef153bf
fix instanceof checks not detected in lambdas4f5698b
fix referenced class objects not detected in lambdas710b565
generifySyntheticAccessRecorder
736ffb6
remove unnecessaryfinal
on variables or parametersUpdates
archunit-junit5-engine
from 0.22.0 to 1.0.1Release notes
Sourced from archunit-junit5-engine's releases.
... (truncated)
Commits
bfbf047
prepare release 1.0.16b8fe3c
set version for bugfix to1.0.1-SNAPSHOT
055f5c2
recognize empty records (#999)2cad383
recognize empty records165dbbd
add rule not to use ASM from (most) domain classes7d41549
Fix referenced class objects and instanceof checks in lambdas (#1004)ef153bf
fix instanceof checks not detected in lambdas4f5698b
fix referenced class objects not detected in lambdas710b565
generifySyntheticAccessRecorder
736ffb6
remove unnecessaryfinal
on variables or parametersDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)