If j2js task is used, read the generated bck2brwsr.js in rather than compiling new one during execution
1.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Oct 12 09:03:36 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 }
2.1 --- a/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/BrwsrMojo.java Sat Oct 12 09:03:36 2013 +0200
2.2 +++ b/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/BrwsrMojo.java Sat Oct 12 09:05:08 2013 +0200
2.3 @@ -70,12 +70,18 @@
2.4 /** Root of all pages, and files, etc. */
2.5 @Parameter
2.6 private File directory;
2.7 +
2.8 + @Parameter(defaultValue="${project.build.directory}/bck2brwsr.js")
2.9 + private File javascript;
2.10
2.11 @Override
2.12 public void execute() throws MojoExecutionException {
2.13 if (startpage == null) {
2.14 throw new MojoExecutionException("You have to provide a start page");
2.15 }
2.16 + if (javascript != null && javascript.isFile()) {
2.17 + System.setProperty("bck2brwsr.js", javascript.toURI().toString());
2.18 + }
2.19 try {
2.20 Closeable httpServer;
2.21 if (directory != null) {
3.1 --- a/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Java2JavaScript.java Sat Oct 12 09:03:36 2013 +0200
3.2 +++ b/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Java2JavaScript.java Sat Oct 12 09:05:08 2013 +0200
3.3 @@ -50,7 +50,7 @@
3.4 @Parameter(defaultValue="${project.build.directory}/classes")
3.5 private File classes;
3.6 /** JavaScript file to generate */
3.7 - @Parameter
3.8 + @Parameter(defaultValue="${project.build.directory}/bck2brwsr.js")
3.9 private File javascript;
3.10
3.11 /** Additional classes that should be pre-compiled into the javascript