Skip to content

Commit

Permalink
Merge pull request gradle#25923 Fix class exclude parsing in PackageC…
Browse files Browse the repository at this point in the history
…ycleTest

Having two different separators makes it hard to have both package and class-level excludes. Given that build code concats patterns with a comma, I doubt that the original intent was to have something like
```
excludePatterns.add("org/gradle/Foo* org/gradle/Bar*")
```

Co-authored-by: Mikhail Lopatkin <[email protected]>
  • Loading branch information
bot-gradle and mlopatkin committed Jul 28, 2023
2 parents 982e1fa + b8ec485 commit 72387fd
Showing 1 changed file with 8 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

@AnalyzeClasses(
packages = "org.gradle",
Expand All @@ -47,10 +48,14 @@ private static boolean isIgnoredClass(JavaClass javaClass) {
return javaClass.isAnnotation() || IGNORED_CLASSES_FOR_CYCLES.stream().anyMatch(prefix -> javaClass.getFullName().startsWith(prefix));
}

private static Set<String> ignoredPackagesForCycles() {
private static Stream<String> excludePatterns() {
String patterns = System.getProperty("package.cycle.exclude.patterns");
return Arrays.stream(patterns.split(","))
.map(String::trim)
.map(String::trim);
}

private static Set<String> ignoredPackagesForCycles() {
return excludePatterns()
.filter(pattern -> !isClassNamePattern(pattern))
.map(pattern -> pattern.replace("/**", ".."))
.map(pattern -> pattern.replace("/*", ""))
Expand All @@ -63,9 +68,7 @@ private static boolean isClassNamePattern(String pattern) {
}

private static Set<String> ignoredClassesForCycles() {
String patterns = System.getProperty("package.cycle.exclude.patterns");
return Arrays.stream(patterns.split(" "))
.map(String::trim)
return excludePatterns()
.filter(PackageCycleTest::isClassNamePattern)
.map(pattern -> pattern.replace("/", "."))
.map(pattern -> pattern.replace("*", ""))
Expand Down

0 comments on commit 72387fd

Please sign in to comment.