launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java
changeset 1371 fd2d4ca28bd3
parent 1336 804f6f982f4e
child 1375 a6c71e376889
     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  }