/** Resolves a deferred binding request and create the requested object. */ @Override public <T> T create(Class<?> requestedClass) { long millis = new Date().getTime(); String className = requestedClass.getName(); try { return host.<T>rebindAndCreate(className); } catch (Throwable e) { String msg = "Deferred binding failed for '" + className + "' (did you forget to inherit a required module?)"; throw new RuntimeException(msg, e); } finally { millis = new Date().getTime() - millis; writer.println("<tr class=\"measurement\">"); writer.println("\t<td class=\"classType\">"); writer.println("\t\t" + requestedClass); writer.println("\t</td>"); writer.println("\t<td class=\"time\">"); writer.println("\t\t" + millis); writer.println("\t</td>"); writer.println("\t<td class=\"stack\">"); new RuntimeException().printStackTrace(writer); writer.println("\t</td>"); writer.println("</tr>"); writer.flush(); } }
/** Logs in dev shell. */ @Override public void log(String message, Throwable e) { host.log(message, e); }