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