package shared; import java.io.IOException; import java.io.PrintWriter; import java.net.URL; import java.util.Date; import java.util.Properties; public class ResponseWriter { private final String identifier; public ResponseWriter(String identifier) { this.identifier = identifier; } public void writeInto(PrintWriter writer) { writer.println("<html>"); writer.println("<head>"); writer.println("<title>"+identifier+"</title>"); writer.println("</head>"); writer.println("<body bgcolor=white>"); writer.println("<table border=\"0\" cellpadding=\"10\">"); writer.println("<tr>"); writer.println("<td>"); writer.println("<h1>"+identifier+" Servlet "+ new Date()+"</h1>"); writer.println("</td>"); writer.println("</tr>"); writer.println("</table>"); writer.write(resourceAsString("configuration.properties").toString()); writer.write(resourceAsString("props/hornetq-roles.properties").toString()); ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader(); writer.append(new HtmlClassPathPrinter().classpathAsHtmlString(systemClassLoader, "SystemClassloader")); ClassLoader classLoader = this.getClass().getClassLoader(); int level = 0; while (classLoader != null) { writer.append(new HtmlClassPathPrinter().classpathAsHtmlString(classLoader, "Level " + level++)); classLoader = classLoader.getParent(); } writer.println("</body>"); writer.println("</html>"); } private StringBuilder resourceAsString(String resource) { URL resourceUrl = this.getClass().getClassLoader().getResource(resource); StringBuilder builder = new StringBuilder(); builder.append("<br>"); builder.append("The url to "+resource +" is: " + resourceUrl); if( resourceUrl != null){ Properties properties = new Properties(); builder.append("<br>"); try { properties.load(this.getClass().getClassLoader().getResourceAsStream(resource)); builder.append(properties.getProperty("configuration")); } catch (IOException e) { builder.append("could not read"); } } builder.append("<br>"); return builder; } }