in tools/ci/paimon-ci-tools/src/main/java/org/apache/paimon/tools/ci/suffixcheck/ScalaSuffixChecker.java [92:132]
private static ParseResult parseMavenOutput(final Path path) throws IOException {
final Set<String> cleanModules = new HashSet<>();
final Set<String> infectedModules = new HashSet<>();
final Map<String, DependencyTree> dependenciesByModule =
DependencyParser.parseDependencyTreeOutput(path);
for (String module : dependenciesByModule.keySet()) {
final String moduleName = stripScalaSuffix(module);
if (isExcluded(moduleName)) {
continue;
}
LOG.trace("Processing module '{}'.", moduleName);
final List<Dependency> dependencies =
dependenciesByModule.get(module).flatten().collect(Collectors.toList());
boolean infected = false;
for (Dependency dependency : dependencies) {
final boolean dependsOnScala = dependsOnScala(dependency);
final boolean isTestDependency = dependency.getScope().get().equals("test");
final boolean isExcluded = isExcluded(dependency.getArtifactId());
LOG.trace("\tdependency:{}", dependency);
LOG.trace("\t\tdepends-on-scala:{}", dependsOnScala);
LOG.trace("\t\tis-test-dependency:{}", isTestDependency);
LOG.trace("\t\tis-excluded:{}", isExcluded);
if (dependsOnScala && !isTestDependency && !isExcluded) {
LOG.trace("\t\tOutbreak detected at {}!", moduleName);
infected = true;
}
}
if (infected) {
infectedModules.add(moduleName);
} else {
cleanModules.add(moduleName);
}
}
return new ParseResult(cleanModules, infectedModules);
}