diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a7723b7c1..9583e9bdd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,13 +2,13 @@ # throughout the whole project. This way of applying plugins was needed for the build-related code in buildSrc/src/main/, # see https://docs.gradle.org/current/samples/sample_convention_plugins.html#things_to_note [versions] -checker = "3.25.0" +checker = "3.26.0" ideProbe = "0.45.0" powerMock = "2.0.9" [libraries] # Libraries -archunit = "com.tngtech.archunit:archunit:0.23.1" +archunit = "com.tngtech.archunit:archunit:1.0.0" betterStrings = "com.antkorwin:better-strings:0.5" checker = { module = "org.checkerframework:checker", version.ref = "checker" } checker-qual = { module = "org.checkerframework:checker-qual", version.ref = "checker" } diff --git a/src/test/java/com/virtuslab/archunit/ClassStructureTestSuite.java b/src/test/java/com/virtuslab/archunit/ClassStructureTestSuite.java index b34613c9b..365436587 100644 --- a/src/test/java/com/virtuslab/archunit/ClassStructureTestSuite.java +++ b/src/test/java/com/virtuslab/archunit/ClassStructureTestSuite.java @@ -117,7 +117,7 @@ public void inner_classes_should_not_be_instantiated_from_constructor_of_enclosi new DescribedPredicate( "an inner class is instantiated in a constructor of the enclosing class") { @Override - public boolean apply(JavaConstructorCall input) { + public boolean test(JavaConstructorCall input) { if (input.getOrigin().isConstructor()) { JavaClass constructingClass = input.getOriginOwner(); JavaClass constructedClass = input.getTargetOwner(); diff --git a/src/test/java/com/virtuslab/archunit/MethodCallsTestSuite.java b/src/test/java/com/virtuslab/archunit/MethodCallsTestSuite.java index fb9ed1816..1c1d46be6 100644 --- a/src/test/java/com/virtuslab/archunit/MethodCallsTestSuite.java +++ b/src/test/java/com/virtuslab/archunit/MethodCallsTestSuite.java @@ -30,7 +30,7 @@ public void actions_overriding_onUpdate_should_call_super_onUpdate() { .areNotAssignableFrom(com.virtuslab.gitmachete.frontend.actions.base.BaseProjectDependentAction.class) .and(new DescribedPredicate("override onUpdate method") { @Override - public boolean apply(JavaClass input) { + public boolean test(JavaClass input) { return input.getMethods().stream().anyMatch(method -> method.getName().equals("onUpdate")); } }) @@ -38,7 +38,7 @@ public boolean apply(JavaClass input) { .callMethodWhere( new DescribedPredicate("name is onUpdate and owner is the direct superclass") { @Override - public boolean apply(JavaMethodCall input) { + public boolean test(JavaMethodCall input) { JavaCodeUnit origin = input.getOrigin(); // where is the method called from? AccessTarget.MethodCallTarget target = input.getTarget(); // where is the method declared? diff --git a/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java b/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java index 59c78091c..71d164eb8 100644 --- a/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java +++ b/src/test/java/com/virtuslab/archunit/UiThreadUnsafeMethodInvocationsTestSuite.java @@ -73,9 +73,11 @@ public void check(JavaMethod method, ConditionEvents events) { } } - method.getCallsFromSelf().forEach(access -> { - AccessTarget accessTarget = access.getTarget(); - if (accessTarget.isAnnotatedWith(UIThreadUnsafe.class)) { + method.getCallsFromSelf().forEach(call -> { + AccessTarget accessTarget = call.getTarget(); + if (call.isDeclaredInLambda()) { + // ignore + } else if (accessTarget.isAnnotatedWith(UIThreadUnsafe.class)) { String message = "a non-${UIThreadUnsafeName} method ${method.getFullName()} " + "calls a ${UIThreadUnsafeName} method ${accessTarget.getFullName()}"; events.add(SimpleConditionEvent.violated(method, message)); @@ -156,7 +158,9 @@ public void check(JavaMethod method, ConditionEvents events) { AccessTarget.CodeUnitCallTarget callTarget = call.getTarget(); String callTargetPackageName = callTarget.getOwner().getPackageName(); String calledMethodFullName = callTarget.getFullName(); - if (callTargetPackageName.startsWith("git4idea")) { + if (call.isDeclaredInLambda()) { + // ignore + } else if (callTargetPackageName.startsWith("git4idea")) { if (!Arrays.asList(whitelistedMethodFullNames_git4idea).contains(calledMethodFullName)) { String message = "a non-${UIThreadUnsafeName} method ${method.getFullName()} " + "calls method ${calledMethodFullName} from git4idea";