1.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Apr 26 21:30:06 2014 +0200
1.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sun Apr 27 08:33:38 2014 +0200
1.3 @@ -56,14 +56,7 @@
1.4
1.5 @Override
1.6 void generateBck2BrwsrJS(StringBuilder sb, final Res loader) throws IOException {
1.7 - class R implements Bck2Brwsr.Resources {
1.8 - @Override
1.9 - public InputStream get(String resource) throws IOException {
1.10 - return loader.get(resource).openStream();
1.11 - }
1.12 - }
1.13 -
1.14 - Bck2Brwsr.generate(sb, new R());
1.15 + CompileCP.compileVM(sb, loader);
1.16 sb.append(
1.17 "(function WrapperVM(global) {"
1.18 + " function ldCls(res) {\n"
2.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Sat Apr 26 21:30:06 2014 +0200
2.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Sun Apr 27 08:33:38 2014 +0200
2.3 @@ -21,6 +21,7 @@
2.4 import java.io.IOException;
2.5 import java.io.InputStream;
2.6 import java.io.StringWriter;
2.7 +import java.net.JarURLConnection;
2.8 import java.net.URISyntaxException;
2.9 import java.net.URL;
2.10 import java.util.ArrayList;
2.11 @@ -29,6 +30,7 @@
2.12 import java.util.jar.JarEntry;
2.13 import java.util.jar.JarFile;
2.14 import java.util.zip.ZipEntry;
2.15 +import org.apidesign.bck2brwsr.launcher.BaseHTTPLauncher.Res;
2.16 import org.apidesign.vm4brwsr.Bck2Brwsr;
2.17
2.18 /**
2.19 @@ -97,6 +99,9 @@
2.20 while (en.hasMoreElements()) {
2.21 JarEntry e = en.nextElement();
2.22 final String n = e.getName();
2.23 + if (n.contains("package-info")) {
2.24 + continue;
2.25 + }
2.26 if (n.endsWith("/")) {
2.27 continue;
2.28 }
2.29 @@ -133,6 +138,19 @@
2.30 }
2.31 }
2.32
2.33 + static void compileVM(StringBuilder sb, Res r) throws IOException {
2.34 + URL u = r.get(InterruptedException.class.getName().replace('.', '/') + ".class");
2.35 + JarURLConnection juc = (JarURLConnection)u.openConnection();
2.36 +
2.37 + List<String> arr = new ArrayList<>();
2.38 + List<String> classes = new ArrayList<>();
2.39 + listJAR(juc.getJarFile(), classes, arr);
2.40 +
2.41 + Bck2Brwsr.newCompiler().addRootClasses(classes.toArray(new String[0]))
2.42 + .resources(new EmulationResources())
2.43 + .generate(sb);
2.44 + }
2.45 +
2.46 static class EmulationResources implements Bck2Brwsr.Resources {
2.47
2.48 @Override