# HG changeset patch # User Jaroslav Tulach # Date 1355606153 -3600 # Node ID ee4e8ba0a847f6336e6ecf6c3e61f8db50c3e439 # Parent a1c84cc2ed148bd12f51b279850010b0131aae23 Refactoring anonymous handlers to named inner classes diff -r a1c84cc2ed14 -r ee4e8ba0a847 launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Dec 15 22:10:19 2012 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Dec 15 22:15:53 2012 +0100 @@ -42,68 +42,9 @@ final ClassLoader loader = Bck2BrwsrLauncher.class.getClassLoader(); final ServerConfiguration conf = server.getServerConfiguration(); - conf.addHttpHandler(new HttpHandler() { - @Override - public void service(Request request, Response response) throws Exception { - response.setContentType("text/html"); - OutputStream os = response.getOutputStream(); - InputStream is = Bck2BrwsrLauncher.class.getResourceAsStream("console.xhtml"); - for (;;) { - int ch = is.read(); - if (ch == -1) { - break; - } - os.write(ch); - } - } - }, "/console"); - conf.addHttpHandler(new HttpHandler() { - @Override - public void service(Request request, Response response) throws Exception { - response.setCharacterEncoding("UTF-8"); - response.setContentType("text/javascript"); - Bck2Brwsr.generate(response.getWriter(), loader); - } - }, "/bck2brwsr.js"); - conf.addHttpHandler(new HttpHandler() { - @Override - public void service(Request request, Response response) throws Exception { - String res = request.getHttpHandlerPath(); - if (res.startsWith("/")) { - res = res.substring(1); - } - Enumeration en = loader.getResources(res); - URL u = null; - while (en.hasMoreElements()) { - u = en.nextElement(); - } - if (u == null) { - response.setError(); - response.setDetailMessage("Can't find resource " + res); - } - response.setContentType("text/javascript"); - InputStream is = u.openStream(); - Writer w = response.getWriter(); - w.append("["); - for (int i = 0;; i++) { - int b = is.read(); - if (b == -1) { - break; - } - if (i > 0) { - w.append(", "); - } - if (i % 20 == 0) { - w.write("\n"); - } - if (b > 127) { - b = b - 256; - } - w.append(Integer.toString(b)); - } - w.append("\n]"); - } - }, "/classes/"); + conf.addHttpHandler(new Console(), "/console"); + conf.addHttpHandler(new VM(loader), "/bck2brwsr.js"); + conf.addHttpHandler(new Classes(loader), "/classes/"); server.start(); NetworkListener listener = server.getListeners().iterator().next(); @@ -121,4 +62,84 @@ System.in.read(); } + + private static class Console extends HttpHandler { + public Console() { + } + + @Override + public void service(Request request, Response response) throws Exception { + response.setContentType("text/html"); + OutputStream os = response.getOutputStream(); + InputStream is = Bck2BrwsrLauncher.class.getResourceAsStream("console.xhtml"); + for (;;) { + int ch = is.read(); + if (ch == -1) { + break; + } + os.write(ch); + } + } + } + + private static class VM extends HttpHandler { + private final ClassLoader loader; + + public VM(ClassLoader loader) { + this.loader = loader; + } + + @Override + public void service(Request request, Response response) throws Exception { + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/javascript"); + Bck2Brwsr.generate(response.getWriter(), loader); + } + } + + private static class Classes extends HttpHandler { + private final ClassLoader loader; + + public Classes(ClassLoader loader) { + this.loader = loader; + } + + @Override + public void service(Request request, Response response) throws Exception { + String res = request.getHttpHandlerPath(); + if (res.startsWith("/")) { + res = res.substring(1); + } + Enumeration en = loader.getResources(res); + URL u = null; + while (en.hasMoreElements()) { + u = en.nextElement(); + } + if (u == null) { + response.setError(); + response.setDetailMessage("Can't find resource " + res); + } + response.setContentType("text/javascript"); + InputStream is = u.openStream(); + Writer w = response.getWriter(); + w.append("["); + for (int i = 0;; i++) { + int b = is.read(); + if (b == -1) { + break; + } + if (i > 0) { + w.append(", "); + } + if (i % 20 == 0) { + w.write("\n"); + } + if (b > 127) { + b = b - 256; + } + w.append(Integer.toString(b)); + } + w.append("\n]"); + } + } }