protected void doGetSitemap()

in src/main/java/org/apache/sling/sitemap/impl/SitemapServlet.java [158:182]


    protected void doGetSitemap(@NotNull SlingHttpServletResponse response, Resource topLevelSitemapRoot, String sitemapSelector)
        throws SitemapException, IOException {
        Set<String> onDemandNames = generatorManager.getOnDemandNames(topLevelSitemapRoot);
        if (!onDemandNames.isEmpty()) {
            // resolve the actual sitemap root from the sitemapSelector
            Map<Resource, String> candidates = resolveSitemapRoots(topLevelSitemapRoot, sitemapSelector);

            for (Map.Entry<Resource, String> entry : candidates.entrySet()) {
                Resource sitemapRoot = entry.getKey();
                String name = entry.getValue();
                SitemapGenerator generator = generatorManager.getGenerator(sitemapRoot, name);

                if (generator != null && onDemandNames.contains(name)) {
                    SitemapImpl sitemap = new SitemapImpl(response.getWriter(), extensionProviderManager);
                    generator.generate(sitemapRoot, name, sitemap, NOOP_CONTEXT);
                    sitemap.close();
                    return;
                }
            }
        }

        if (!storage.copySitemap(topLevelSitemapRoot, sitemapSelector, response.getOutputStream())) {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        }
    }