# HG changeset patch # User Jaroslav Tulach # Date 1398580418 -7200 # Node ID e38025e9536a8699ca26c66ddcc5ee7f8d31b874 # Parent 4a1398eff4fb1e1d2bf3098a59a57c76ce4d45ad Need to include all emul-mini classes in the generated bck2brwsr.js diff -r 4a1398eff4fb -r e38025e9536a launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Apr 26 21:30:06 2014 +0200 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sun Apr 27 08:33:38 2014 +0200 @@ -56,14 +56,7 @@ @Override void generateBck2BrwsrJS(StringBuilder sb, final Res loader) throws IOException { - class R implements Bck2Brwsr.Resources { - @Override - public InputStream get(String resource) throws IOException { - return loader.get(resource).openStream(); - } - } - - Bck2Brwsr.generate(sb, new R()); + CompileCP.compileVM(sb, loader); sb.append( "(function WrapperVM(global) {" + " function ldCls(res) {\n" diff -r 4a1398eff4fb -r e38025e9536a launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Sat Apr 26 21:30:06 2014 +0200 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Sun Apr 27 08:33:38 2014 +0200 @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; +import java.net.JarURLConnection; import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; @@ -29,6 +30,7 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.zip.ZipEntry; +import org.apidesign.bck2brwsr.launcher.BaseHTTPLauncher.Res; import org.apidesign.vm4brwsr.Bck2Brwsr; /** @@ -97,6 +99,9 @@ while (en.hasMoreElements()) { JarEntry e = en.nextElement(); final String n = e.getName(); + if (n.contains("package-info")) { + continue; + } if (n.endsWith("/")) { continue; } @@ -133,6 +138,19 @@ } } + static void compileVM(StringBuilder sb, Res r) throws IOException { + URL u = r.get(InterruptedException.class.getName().replace('.', '/') + ".class"); + JarURLConnection juc = (JarURLConnection)u.openConnection(); + + List arr = new ArrayList<>(); + List classes = new ArrayList<>(); + listJAR(juc.getJarFile(), classes, arr); + + Bck2Brwsr.newCompiler().addRootClasses(classes.toArray(new String[0])) + .resources(new EmulationResources()) + .generate(sb); + } + static class EmulationResources implements Bck2Brwsr.Resources { @Override