in tools/ci/paimon-ci-tools/src/main/java/org/apache/paimon/tools/ci/suffixcheck/ScalaSuffixChecker.java [196:238]
private static Collection<String> checkModules(
Collection<String> modules,
Path paimonRootPath,
String moduleSuffix,
String violationTemplate)
throws IOException {
final ArrayList<String> sortedModules = new ArrayList<>(modules);
sortedModules.sort(String::compareTo);
final Collection<String> violations = new ArrayList<>();
for (String module : sortedModules) {
int numPreviousViolations = violations.size();
try (Stream<Path> pathStream = Files.walk(paimonRootPath, 3)) {
final List<Path> pomFiles =
pathStream
.filter(path -> path.getFileName().toString().equals("pom.xml"))
.collect(Collectors.toList());
for (Path pomFile : pomFiles) {
try (Stream<String> lines = Files.lines(pomFile, StandardCharsets.UTF_8)) {
final boolean existsCleanReference =
lines.anyMatch(
line ->
line.contains(
module + moduleSuffix + "</artifactId>"));
if (existsCleanReference) {
violations.add(
String.format(
violationTemplate,
module,
paimonRootPath.relativize(pomFile)));
}
}
}
}
if (numPreviousViolations == violations.size()) {
LOG.info("OK {}", module);
}
}
return violations;
}