in src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java [134:158]
public void run() {
try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(AUTH)) {
Iterator<Resource> descendants = traverse(resolver.getResource(rootPath)).iterator();
List<Resource> toDelete = new LinkedList<>();
List<Event> purgeEvents = new LinkedList<>();
while (descendants.hasNext()) {
Resource descendant = descendants.next();
if (descendant.isResourceType(RT_SITEMAP_PART) && isExpired(descendant)) {
toDelete.add(descendant);
} else if (descendant.isResourceType(RT_SITEMAP_FILE)
&& (!doesSitemapRootExist(descendant) || !isValidSitemapFile(descendant))) {
toDelete.add(descendant);
purgeEvents.add(newPurgeEvent(descendant.getPath()));
}
}
for (Resource resource : toDelete) {
LOG.debug("Purging: {}", resource.getPath());
resolver.delete(resource);
}
resolver.commit();
purgeEvents.forEach(eventAdmin::postEvent);
} catch (LoginException | PersistenceException ex) {
LOG.warn("Failed to cleanup storage: {}", ex.getMessage(), ex);
}
}