protected void doGet()

in src/main/java/org/apache/sling/sitemap/impl/SitemapServlet.java [96:128]


    protected void doGet(@NotNull SlingHttpServletRequest request, @NotNull SlingHttpServletResponse response)
            throws ServletException, IOException {
        try {
            Resource requestedResource = normalizeSitemapRoot(request.getResource());

            if (!isSitemapRoot(requestedResource)) {
                response.sendError(HttpServletResponse.SC_BAD_REQUEST);
                return;
            }

            response.setCharacterEncoding("utf-8");
            response.setContentType("application/xml");

            List<String> selectors = Arrays.asList(request.getRequestPathInfo().getSelectors());

            if (selectors.size() == 1 && selectors.contains(SITEMAP_INDEX_SELECTOR)) {
                doGetSitemapIndex(request, response, requestedResource);
            } else if (selectors.size() == 1 && selectors.contains(SITEMAP_SELECTOR)) {
                // when only one selector is provided, that means the default sitemap got requested
                doGetSitemap(response, requestedResource, selectors.get(0));
            } else if (selectors.size() == 2 && selectors.get(0).equals(SITEMAP_SELECTOR)) {
                doGetSitemap(response, requestedResource, selectors.get(1));
            } else {
                response.sendError(HttpServletResponse.SC_BAD_REQUEST);
            }
        } catch (SitemapException ex) {
            if (ex.getCause() instanceof IOException) {
                throw (IOException) ex.getCause();
            } else {
                throw new ServletException(ex);
            }
        }
    }