Test Point

An application event trace captured in a circular buffer and then render as HTML on demand.

I recommended that large web applications include a route to diagnostic software such as object dumps and event traces. I wrote this HTTP 0.9 server to be included in desktop applications for similar debugging. pdf

Test Point dispatched HTTP 0.9 requests directly to static java methods using reflection which was new at the time.

static void printTrace(PrintWriter out) { out.println("<table cellspacing=0 cellpadding=2>"); double clock = 0; int tick = 0; for (int i = nextTrace+1; (i%traces.length) != nextTrace; i = (i+1) % traces.length) { Trace t = traces[i]; if (t==null) continue; if (t.time != clock) { clock = t.time; tick++; } String color = tick%2==0 ? "#cfffcf" : "#afffaf"; out.println("<tr bgcolor=" + color + ">" + t + "</tr>"); } out.println("</table>"); out.flush(); }

See also the Test Point Diagnostic Web Server: site

I experimented with "freemium" distribution by publishing Test Point on my website and asking for payments only when it had been used to find difficult bugs. No revenue was forthcoming.