public void run()

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);
        }
    }