# HG changeset patch # User Jaroslav Tulach # Date 1359128169 -3600 # Node ID 6f864278604a434a22be3bf841f07c7bf8ddefb0 # Parent b679a7dad2974dc768ec2ee0374557b803b1ef78# Parent b670af2aa0f78c66a40a79dcc684074c914daeb5 Merge with today's work on default branch diff -r b679a7dad297 -r 6f864278604a dew/nbactions.xml --- a/dew/nbactions.xml Thu Jan 24 19:36:40 2013 +0100 +++ b/dew/nbactions.xml Fri Jan 25 16:36:09 2013 +0100 @@ -25,10 +25,6 @@ process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec - - -classpath %classpath org.apidesign.bck2brwsr.dew.Dew - java - debug diff -r b679a7dad297 -r 6f864278604a dew/pom.xml --- a/dew/pom.xml Thu Jan 24 19:36:40 2013 +0100 +++ b/dew/pom.xml Fri Jan 25 16:36:09 2013 +0100 @@ -23,6 +23,26 @@ 1.7 + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + + + exec + + + + + java + + -classpath + + org.apidesign.bck2brwsr.dew.Dew + + + diff -r b679a7dad297 -r 6f864278604a dew/src/main/java/org/apidesign/bck2brwsr/dew/Compile.java --- a/dew/src/main/java/org/apidesign/bck2brwsr/dew/Compile.java Thu Jan 24 19:36:40 2013 +0100 +++ b/dew/src/main/java/org/apidesign/bck2brwsr/dew/Compile.java Fri Jan 25 16:36:09 2013 +0100 @@ -52,10 +52,12 @@ private final Map classes; private final String pkg; private final String cls; + private final String html; private Compile(String html, String code) throws IOException { this.pkg = findPkg(code); this.cls = findCls(code); + this.html = html; classes = compile(html, code); } @@ -193,4 +195,9 @@ String cls = m.group(1); return cls; } + + String getHtml() { + String fqn = "'" + pkg + '.' + cls + "'"; + return html.replace("'${fqn}'", fqn); + } } diff -r b679a7dad297 -r 6f864278604a dew/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java --- a/dew/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java Thu Jan 24 19:36:40 2013 +0100 +++ b/dew/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java Fri Jan 25 16:36:09 2013 +0100 @@ -42,7 +42,6 @@ * @author phrebejk */ final class Dew extends HttpHandler implements Bck2Brwsr.Resources { - private String html = ""; private Compile data; public static void main(String... args) throws Exception { @@ -69,7 +68,6 @@ List> err = res.getErrors(); if (err.isEmpty()) { data = res; - html = tmpHtml; response.getOutputStream().write("[]".getBytes()); response.setStatus(HttpStatus.OK_200); } else { @@ -98,7 +96,7 @@ } if (r.equals("/result.html")) { response.setContentType("text/html"); - response.getOutputBuffer().write(html); + response.getOutputBuffer().write(data.getHtml()); response.setStatus(HttpStatus.OK_200); return; } diff -r b679a7dad297 -r 6f864278604a dew/src/main/java/org/apidesign/bck2brwsr/dew/DewLauncher.java --- a/dew/src/main/java/org/apidesign/bck2brwsr/dew/DewLauncher.java Thu Jan 24 19:36:40 2013 +0100 +++ b/dew/src/main/java/org/apidesign/bck2brwsr/dew/DewLauncher.java Fri Jan 25 16:36:09 2013 +0100 @@ -56,7 +56,7 @@ this.loaders.add(url); } - final HttpServer initServer(Bck2Brwsr.Resources... extraResources) { + final HttpServer initServer(Bck2Brwsr.Resources... extraResources) throws IOException { xRes.addAll(Arrays.asList(extraResources)); HttpServer s = HttpServer.createSimpleServer(".", new PortRange(8080, 65535)); @@ -125,17 +125,19 @@ } private static class VM extends HttpHandler { - private final Res loader; + private final String bck2brwsr; - public VM(Res loader) { - this.loader = loader; + public VM(Res loader) throws IOException { + StringBuilder sb = new StringBuilder(); + Bck2Brwsr.generate(sb, loader); + this.bck2brwsr = sb.toString(); } @Override public void service(Request request, Response response) throws Exception { response.setCharacterEncoding("UTF-8"); response.setContentType("text/javascript"); - Bck2Brwsr.generate(response.getWriter(), loader); + response.getWriter().write(bck2brwsr); } } private static class VMInit extends HttpHandler { diff -r b679a7dad297 -r 6f864278604a dew/src/main/resources/org/apidesign/bck2brwsr/dew/js/app.js --- a/dew/src/main/resources/org/apidesign/bck2brwsr/dew/js/app.js Thu Jan 24 19:36:40 2013 +0100 +++ b/dew/src/main/resources/org/apidesign/bck2brwsr/dew/js/app.js Fri Jan 25 16:36:09 2013 +0100 @@ -113,7 +113,7 @@ " return arr;\n" + " }\n" + " var vm = new bck2brwsr(ldCls);\n" + -" vm.loadClass('bck2brwsr.demo.YourFirstHTML5PageInRealLanguage');\n" + +" vm.loadClass('${fqn}');\n" + " \n" + ""; var templateJava = diff -r b679a7dad297 -r 6f864278604a emul/mini/src/main/java/java/lang/Class.java --- a/emul/mini/src/main/java/java/lang/Class.java Thu Jan 24 19:36:40 2013 +0100 +++ b/emul/mini/src/main/java/java/lang/Class.java Fri Jan 25 16:36:09 2013 +0100 @@ -606,7 +606,9 @@ * @see java.lang.reflect.Modifier * @since JDK1.1 */ - public native int getModifiers(); + public int getModifiers() { + return getAccess(); + } /** diff -r b679a7dad297 -r 6f864278604a launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Thu Jan 24 19:36:40 2013 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Fri Jan 25 16:36:09 2013 +0100 @@ -122,16 +122,11 @@ } } - private HttpServer initServer() { + private HttpServer initServer() throws IOException { HttpServer s = HttpServer.createSimpleServer(".", new PortRange(8080, 65535)); final ServerConfiguration conf = s.getServerConfiguration(); - conf.addHttpHandler(new Page(resources, - "org/apidesign/bck2brwsr/launcher/console.xhtml", - "org.apidesign.bck2brwsr.launcher.Console", "welcome", "false" - ), "/console"); - conf.addHttpHandler(new VM(resources), "/bck2brwsr.js"); - conf.addHttpHandler(new VMInit(), "/vm.js"); + conf.addHttpHandler(new VM(resources), "/vm.js"); conf.addHttpHandler(new Classes(resources), "/classes/"); return s; } @@ -410,28 +405,12 @@ } private static class VM extends HttpHandler { - private final Res loader; + private final String bck2brwsr; - public VM(Res loader) { - this.loader = loader; - } - - @Override - public void service(Request request, Response response) throws Exception { - response.setCharacterEncoding("UTF-8"); - response.setContentType("text/javascript"); - Bck2Brwsr.generate(response.getWriter(), loader); - } - } - private static class VMInit extends HttpHandler { - public VMInit() { - } - - @Override - public void service(Request request, Response response) throws Exception { - response.setCharacterEncoding("UTF-8"); - response.setContentType("text/javascript"); - response.getWriter().append( + public VM(Res loader) throws IOException { + StringBuilder sb = new StringBuilder(); + Bck2Brwsr.generate(sb, loader); + sb.append( "function ldCls(res) {\n" + " var request = new XMLHttpRequest();\n" + " request.open('GET', '/classes/' + res, false);\n" @@ -439,7 +418,16 @@ + " var arr = eval('(' + request.responseText + ')');\n" + " return arr;\n" + "}\n" - + "var vm = new bck2brwsr(ldCls);\n"); + + "var vm = new bck2brwsr(ldCls);\n" + ); + this.bck2brwsr = sb.toString(); + } + + @Override + public void service(Request request, Response response) throws Exception { + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/javascript"); + response.getWriter().write(bck2brwsr); } } diff -r b679a7dad297 -r 6f864278604a launcher/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.xhtml --- a/launcher/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.xhtml Thu Jan 24 19:36:40 2013 +0100 +++ b/launcher/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.xhtml Fri Jan 25 16:36:09 2013 +0100 @@ -24,7 +24,6 @@ Bck2Brwsr Harness -

Bck2Brwsr Execution Harness

diff -r b679a7dad297 -r 6f864278604a vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java --- a/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Thu Jan 24 19:36:40 2013 +0100 +++ b/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Fri Jan 25 16:36:09 2013 +0100 @@ -21,8 +21,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import org.apidesign.bck2brwsr.core.JavaScriptBody; import org.apidesign.bck2brwsr.vmtest.Compare; import org.apidesign.bck2brwsr.vmtest.VMTest; @@ -71,6 +69,15 @@ return StaticUse.class.getMethod("instanceMethod").getReturnType(); } + enum E { A, B }; + @Compare public boolean isEnum() { + return E.A.getClass().isEnum(); + } + + @Compare public boolean isNotEnum() { + return "".getClass().isEnum(); + } + @Compare public String newInstanceFails() throws InstantiationException { try { return "success: " + StaticUse.class.newInstance();