in camel-upgrade-recipes/src/main/java/org/apache/camel/upgrade/SetupJavaUpgradeJavaVersion.java [48:83]
public TreeVisitor<?, ExecutionContext> getVisitor() {
return Preconditions.check(
new FindSourceFiles(".github/workflows/*.yml"),
new YamlVisitor<>() {
@Override
public Yaml visitMappingEntry(Yaml.Mapping.Entry entry, ExecutionContext ctx) {
if (!javaVersion.matches(getCursor())) {
return super.visitMappingEntry(entry, ctx);
}
Yaml.Scalar currentValue = (Yaml.Scalar) entry.getValue();
// specific versions are allowed by `actions/setup-java`
Matcher matcher = javaVersionPattern.matcher(currentValue.getValue());
if (!matcher.matches()) {
return super.visitMappingEntry(entry, ctx);
}
int currentMajorVersion;
try {
currentMajorVersion = Integer.parseInt(matcher.group(1));
} catch (NumberFormatException ex) {
return super.visitMappingEntry(entry, ctx);
}
if (currentMajorVersion >= minimumJavaMajorVersion) {
return super.visitMappingEntry(entry, ctx);
}
return super.visitMappingEntry(
entry.withValue(currentValue.withValue(String.valueOf(minimumJavaMajorVersion))),
ctx
);
}
});
}