diff -r 9cc0e1034f92 -r a6c71e376889 launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java Mon Oct 07 14:59:21 2013 +0200 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/BaseHTTPLauncher.java Sun Oct 20 20:36:03 2013 +0200 @@ -572,7 +572,10 @@ } class Res { - public InputStream get(String resource) throws IOException { + public InputStream get(String resource, int skip) throws IOException { + if (!resource.endsWith(".class")) { + return getResource(resource, skip); + } URL u = null; for (ClassLoader l : loaders) { Enumeration en = l.getResources(resource); @@ -592,6 +595,23 @@ } throw new IOException("Can't find " + resource); } + private InputStream getResource(String resource, int skip) throws IOException { + URL u = null; + for (ClassLoader l : loaders) { + Enumeration en = l.getResources(resource); + while (en.hasMoreElements()) { + final URL now = en.nextElement(); + if (--skip < 0) { + u = now; + break; + } + } + } + if (u != null) { + return u.openStream(); + } + return null; + } } private static class Page extends HttpHandler { @@ -624,7 +644,7 @@ } OutputStream os = response.getOutputStream(); try { - InputStream is = res.get(r); + InputStream is = res.get(r, 0); copyStream(is, os, request.getRequestURL().toString(), replace); } catch (IOException ex) { response.setDetailMessage(ex.getLocalizedMessage()); @@ -696,7 +716,9 @@ } InputStream is = null; try { - is = loader.get(res); + String skip = request.getParameter("skip"); + int skipCnt = skip == null ? 0 : Integer.parseInt(skip); + is = loader.get(res, skipCnt); response.setContentType("text/javascript"); Writer w = response.getWriter(); w.append("[");