Browse Source

Fixing Kotlin annotations architecture rule

See gh-34276
pull/34282/head
Brian Clozel 11 months ago
parent
commit
309f5bebdb
  1. 11
      buildSrc/src/main/java/org/springframework/build/architecture/ArchitectureRules.java

11
buildSrc/src/main/java/org/springframework/build/architecture/ArchitectureRules.java

@ -16,6 +16,7 @@
package org.springframework.build.architecture; package org.springframework.build.architecture;
import com.tngtech.archunit.base.DescribedPredicate;
import com.tngtech.archunit.core.domain.JavaClass; import com.tngtech.archunit.core.domain.JavaClass;
import com.tngtech.archunit.lang.ArchRule; import com.tngtech.archunit.lang.ArchRule;
import com.tngtech.archunit.lang.syntax.ArchRuleDefinition; import com.tngtech.archunit.lang.syntax.ArchRuleDefinition;
@ -66,8 +67,14 @@ abstract class ArchitectureRules {
static ArchRule javaClassesShouldNotImportKotlinAnnotations() { static ArchRule javaClassesShouldNotImportKotlinAnnotations() {
return ArchRuleDefinition.noClasses() return ArchRuleDefinition.noClasses()
.that().haveSimpleNameNotEndingWith("Kt") .that(new DescribedPredicate<JavaClass>("is not a Kotlin class") {
.and().haveSimpleNameNotEndingWith("Dsl") @Override
public boolean test(JavaClass javaClass) {
return javaClass.getSourceCodeLocation()
.getSourceFileName().endsWith(".java");
}
}
)
.should().dependOnClassesThat() .should().dependOnClassesThat()
.resideInAnyPackage("org.jetbrains.annotations..") .resideInAnyPackage("org.jetbrains.annotations..")
.allowEmptyShould(true); .allowEmptyShould(true);

Loading…
Cancel
Save