in src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java [529:569]
private void addInputsFromPluginConfigs(
Object[] configurationChildren,
PluginScanConfig scanConfig,
List<Path> files,
HashSet<WalkKey> visitedDirs) {
if (configurationChildren == null) {
return;
}
for (Object configChild : configurationChildren) {
String tagName = Xpp3DomUtils.getName(configChild);
String tagValue = Xpp3DomUtils.getValue(configChild);
if (!scanConfig.accept(tagName)) {
LOGGER.debug("Skipping property (scan config)): {}, value: {}", tagName, stripToEmpty(tagValue));
continue;
}
LOGGER.debug("Checking xml tag. Tag: {}, value: {}", tagName, stripToEmpty(tagValue));
addInputsFromPluginConfigs(Xpp3DomUtils.getChildren(configChild), scanConfig, files, visitedDirs);
final ScanConfigProperties propertyConfig = scanConfig.getTagScanProperties(tagName);
final String glob = defaultIfEmpty(propertyConfig.getGlob(), dirGlob);
if ("true".equals(Xpp3DomUtils.getAttribute(configChild, CACHE_INPUT_NAME))) {
LOGGER.info(
"Found tag marked with {} attribute. Tag: {}, value: {}", CACHE_INPUT_NAME, tagName, tagValue);
startWalk(Paths.get(tagValue), glob, propertyConfig.isRecursive(), files, visitedDirs);
} else {
final Path candidate = getPathOrNull(tagValue);
if (candidate != null) {
startWalk(candidate, glob, propertyConfig.isRecursive(), files, visitedDirs);
if ("descriptorRef"
.equals(tagName)) { // hardcoded logic for assembly plugin which could reference files
// omitting .xml suffix
startWalk(Paths.get(tagValue + ".xml"), glob, propertyConfig.isRecursive(), files, visitedDirs);
}
}
}
}
}