# HG changeset patch # User Jaroslav Tulach # Date 1381561508 -7200 # Node ID fd2d4ca28bd3ce92b1ab02fdfb401418431d3f00 # Parent 617d62384a9c84cdb43f97f4ac639257cd367a46 If j2js task is used, read the generated bck2brwsr.js in rather than compiling new one during execution diff -r 617d62384a9c -r fd2d4ca28bd3 launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Oct 12 09:03:36 2013 +0200 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Sat Oct 12 09:05:08 2013 +0200 @@ -17,8 +17,14 @@ */ package org.apidesign.bck2brwsr.launcher; +import java.io.File; +import java.io.FileReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.net.URL; +import java.util.logging.Level; import org.apidesign.vm4brwsr.Bck2Brwsr; /** @@ -45,8 +51,23 @@ return loader.get(resource); } } - - Bck2Brwsr.generate(sb, new R()); + String b2b = System.getProperty("bck2brwsr.js"); + if (b2b != null) { + LOG.log(Level.INFO, "Serving bck2brwsr.js from {0}", b2b); + try (Reader r = new InputStreamReader(new URL(b2b).openStream())) { + char[] arr = new char[4096]; + for (;;) { + int len = r.read(arr); + if (len == -1) { + break; + } + sb.append(arr, 0, len); + } + } + } else { + LOG.log(Level.INFO, "Generating bck2brwsr.js from scratch", b2b); + Bck2Brwsr.generate(sb, new R()); + } sb.append( "(function WrapperVM(global) {" + " function ldCls(res) {\n" @@ -65,6 +86,7 @@ + " };\n" + "})(this);\n" ); + LOG.log(Level.INFO, "Serving bck2brwsr.js", b2b); } } diff -r 617d62384a9c -r fd2d4ca28bd3 rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/BrwsrMojo.java --- a/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/BrwsrMojo.java Sat Oct 12 09:03:36 2013 +0200 +++ b/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/BrwsrMojo.java Sat Oct 12 09:05:08 2013 +0200 @@ -70,12 +70,18 @@ /** Root of all pages, and files, etc. */ @Parameter private File directory; + + @Parameter(defaultValue="${project.build.directory}/bck2brwsr.js") + private File javascript; @Override public void execute() throws MojoExecutionException { if (startpage == null) { throw new MojoExecutionException("You have to provide a start page"); } + if (javascript != null && javascript.isFile()) { + System.setProperty("bck2brwsr.js", javascript.toURI().toString()); + } try { Closeable httpServer; if (directory != null) { diff -r 617d62384a9c -r fd2d4ca28bd3 rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Java2JavaScript.java --- a/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Java2JavaScript.java Sat Oct 12 09:03:36 2013 +0200 +++ b/rt/mojo/src/main/java/org/apidesign/bck2brwsr/mojo/Java2JavaScript.java Sat Oct 12 09:05:08 2013 +0200 @@ -50,7 +50,7 @@ @Parameter(defaultValue="${project.build.directory}/classes") private File classes; /** JavaScript file to generate */ - @Parameter + @Parameter(defaultValue="${project.build.directory}/bck2brwsr.js") private File javascript; /** Additional classes that should be pre-compiled into the javascript