in src/main/java/org/apache/sling/sitemap/impl/console/SitemapInventoryPlugin.java [115:161]
private void printRootsJson(PrintWriter pw) {
pw.print("\"roots\":{");
try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(AUTH)) {
Iterator<Resource> roots = SitemapUtil.findSitemapRoots(resolver, "/");
while (roots.hasNext()) {
Resource root = roots.next();
pw.print('"');
pw.print(escapeDoubleQuotes(root.getPath()));
pw.print("\":[");
Iterator<SitemapInfo> infoIt = sitemapService.getSitemapInfo(root).iterator();
while (infoIt.hasNext()) {
SitemapInfo info = infoIt.next();
pw.print('{');
pw.print("\"name\":\"");
pw.print(escapeDoubleQuotes(info.getName()));
pw.print('"');
pw.print(",\"url\":\"");
pw.print(escapeDoubleQuotes(info.getUrl()));
pw.print("\",\"status\":\"");
pw.print(info.getStatus());
pw.print('"');
if (info.getStoragePath() != null) {
pw.print(",\"path\":\"");
pw.print(escapeDoubleQuotes(info.getStoragePath()));
pw.print("\",\"size\":");
pw.print(info.getSize());
pw.print(",\"urls\":");
pw.print(info.getEntries());
pw.print(",\"inLimits\":");
pw.print(isWithinLimits(info));
}
pw.print('}');
if (infoIt.hasNext()) {
pw.print(',');
}
}
pw.print(']');
if (roots.hasNext()) {
pw.print(',');
}
}
} catch (LoginException ex) {
pw.println("Failed to list sitemaps: " + ex.getMessage());
LOG.warn("Failed to get inventory of sitemaps: {}", ex.getMessage(), ex);
}
pw.print('}');
}