in src/main/java/org/apache/sling/commons/fsclassloader/impl/FSClassLoaderWebConsole.java [288:363]
protected void renderContent(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Map<String, ScriptFiles> scripts = new LinkedHashMap<String, ScriptFiles>();
readFiles(root, root, scripts);
Writer w = response.getWriter();
w.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + RES_LOC + "/prettify.css\"></link>");
w.write("<script type=\"text/javascript\" src=\"" + RES_LOC + "/prettify.js\"></script>");
w.write("<script type=\"text/javascript\" src=\"" + RES_LOC + "/fsclassloader.js\"></script>");
w.write("<script>$(document).ready(prettyPrint);</script>");
w.write("<style>.prettyprint ol.linenums > li { list-style-type: decimal; } pre.prettyprint { white-space: pre-wrap; }</style>");
String file = request.getParameter("view");
File toView = new File(root + file);
w.write("<div id=\"classes\">");
if (!StringUtils.isEmpty(file)) {
if (isValid(toView)) {
w.write("<p class=\"statline ui-state-highlight\">Viewing Script: " + root + file + "</p><br/><br/>");
ScriptFiles scriptFiles = new ScriptFiles(root, toView);
w.write("<table class=\"nicetable ui-widget\">");
w.write("<tr class=\"header ui-widget-header\">");
w.write("<th>Script</th>");
w.write("<th>Class</th>");
w.write("<th>Deps</th>");
w.write("<th>Java</th>");
w.write("</tr>");
w.write("<tr class=\"ui-state-default\">");
w.write("<td>" + scriptFiles.getScript() + "</td>");
w.write("<td>[<a href=\"?download=" + scriptFiles.getClassFile()
+ "\" target=\"_blank\">download</a>]</td>");
w.write("<td>[<a href=\"?download=" + scriptFiles.getDepsFile()
+ "\" target=\"_blank\">download</a>]</td>");
w.write("<td>[<a href=\"?download=" + scriptFiles.getJavaFile()
+ "\" target=\"_blank\">download</a>]</td>");
w.write("</tr>");
w.write("</table><br/><br/>");
InputStream is = null;
try {
is = new FileInputStream(toView);
String contents = IOUtils.toString(is, "UTF-8");
w.write("<pre class=\"prettyprint linenums\">");
w.write(StringEscapeUtils.escapeHtml4(contents));
w.write("</pre>");
} finally {
IOUtils.closeQuietly(is);
}
} else {
response.sendError(404, "File " + file + " not found");
}
} else {
w.write("<p class=\"statline ui-state-highlight\">File System ClassLoader Root: " + root
+ " <span style=\"float: right\"><button type='button' id='clear'>Clear Class Loader</button></span></p>");
if (scripts.values().size() > 0) {
w.write("<table class=\"nicetable ui-widget fsclassloader-has-classes\">");
} else {
w.write("<table class=\"nicetable ui-widget\">");
}
w.write("<tr class=\"header ui-widget-header\">");
w.write("<th>View</th>");
w.write("<th>Script</th>");
w.write("</tr>");
int i = 0;
for (ScriptFiles scriptFiles : scripts.values()) {
w.write("<tr class=\"" + (i % 2 == 0 ? "even" : "odd") + " ui-state-default\">");
w.write("<td>[<a href=\"?view=" + scriptFiles.getJavaFile() + "\">view</a>]</td>");
w.write("<td>" + scriptFiles.getScript() + "</td>");
w.write("</tr>");
i++;
}
w.write("</table>");
}
w.write("</div>");
}