launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java
1.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Thu Oct 03 15:51:55 2013 +0200
1.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Oct 12 09:05:08 2013 +0200
1.3 @@ -17,8 +17,14 @@
1.4 */
1.5 package org.apidesign.bck2brwsr.launcher;
1.6
1.7 +import java.io.File;
1.8 +import java.io.FileReader;
1.9 import java.io.IOException;
1.10 import java.io.InputStream;
1.11 +import java.io.InputStreamReader;
1.12 +import java.io.Reader;
1.13 +import java.net.URL;
1.14 +import java.util.logging.Level;
1.15 import org.apidesign.vm4brwsr.Bck2Brwsr;
1.16
1.17 /**
1.18 @@ -45,8 +51,23 @@
1.19 return loader.get(resource);
1.20 }
1.21 }
1.22 -
1.23 - Bck2Brwsr.generate(sb, new R());
1.24 + String b2b = System.getProperty("bck2brwsr.js");
1.25 + if (b2b != null) {
1.26 + LOG.log(Level.INFO, "Serving bck2brwsr.js from {0}", b2b);
1.27 + try (Reader r = new InputStreamReader(new URL(b2b).openStream())) {
1.28 + char[] arr = new char[4096];
1.29 + for (;;) {
1.30 + int len = r.read(arr);
1.31 + if (len == -1) {
1.32 + break;
1.33 + }
1.34 + sb.append(arr, 0, len);
1.35 + }
1.36 + }
1.37 + } else {
1.38 + LOG.log(Level.INFO, "Generating bck2brwsr.js from scratch", b2b);
1.39 + Bck2Brwsr.generate(sb, new R());
1.40 + }
1.41 sb.append(
1.42 "(function WrapperVM(global) {"
1.43 + " function ldCls(res) {\n"
1.44 @@ -65,6 +86,7 @@
1.45 + " };\n"
1.46 + "})(this);\n"
1.47 );
1.48 + LOG.log(Level.INFO, "Serving bck2brwsr.js", b2b);
1.49 }
1.50
1.51 }