in src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java [279:308]
public Collection<String> deleteSitemaps(@NotNull Resource sitemapRoot, @NotNull String name,
Predicate<SitemapStorageInfo> storageInfoPredicate) throws IOException {
Collection<SitemapStorageInfo> storageInfo = getSitemaps(sitemapRoot, Collections.singleton(name));
Iterator<SitemapStorageInfo> toDelete = storageInfo.stream().filter(storageInfoPredicate).iterator();
if (!toDelete.hasNext()) {
// nothing to delete according to the given predicate
return Collections.emptyList();
}
try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(AUTH)) {
List<String> result = new ArrayList<>(storageInfo.size());
List<Event> events = new ArrayList<>(storageInfo.size());
while (toDelete.hasNext()) {
String path = toDelete.next().getPath();
Resource resource = resolver.getResource(path);
if (resource != null) {
resolver.delete(resource);
result.add(path);
events.add(newPurgeEvent(path));
}
}
resolver.commit();
events.forEach(eventAdmin::postEvent);
return result;
} catch (LoginException | PersistenceException ex) {
throw new IOException("Failed to delete sitemaps: " + ex.getMessage(), ex);
}
}