1.1 --- a/dew/nbactions.xml Thu Jan 24 19:36:40 2013 +0100
1.2 +++ b/dew/nbactions.xml Fri Jan 25 16:36:09 2013 +0100
1.3 @@ -25,10 +25,6 @@
1.4 <goal>process-classes</goal>
1.5 <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
1.6 </goals>
1.7 - <properties>
1.8 - <exec.args>-classpath %classpath org.apidesign.bck2brwsr.dew.Dew</exec.args>
1.9 - <exec.executable>java</exec.executable>
1.10 - </properties>
1.11 </action>
1.12 <action>
1.13 <actionName>debug</actionName>
2.1 --- a/dew/pom.xml Thu Jan 24 19:36:40 2013 +0100
2.2 +++ b/dew/pom.xml Fri Jan 25 16:36:09 2013 +0100
2.3 @@ -23,6 +23,26 @@
2.4 <target>1.7</target>
2.5 </configuration>
2.6 </plugin>
2.7 + <plugin>
2.8 + <groupId>org.codehaus.mojo</groupId>
2.9 + <artifactId>exec-maven-plugin</artifactId>
2.10 + <version>1.2.1</version>
2.11 + <executions>
2.12 + <execution>
2.13 + <goals>
2.14 + <goal>exec</goal>
2.15 + </goals>
2.16 + </execution>
2.17 + </executions>
2.18 + <configuration>
2.19 + <executable>java</executable>
2.20 + <arguments>
2.21 + <argument>-classpath</argument>
2.22 + <classpath/>
2.23 + <argument>org.apidesign.bck2brwsr.dew.Dew</argument>
2.24 + </arguments>
2.25 + </configuration>
2.26 + </plugin>
2.27 </plugins>
2.28 </build>
2.29 <properties>
3.1 --- a/dew/src/main/java/org/apidesign/bck2brwsr/dew/Compile.java Thu Jan 24 19:36:40 2013 +0100
3.2 +++ b/dew/src/main/java/org/apidesign/bck2brwsr/dew/Compile.java Fri Jan 25 16:36:09 2013 +0100
3.3 @@ -52,10 +52,12 @@
3.4 private final Map<String, byte[]> classes;
3.5 private final String pkg;
3.6 private final String cls;
3.7 + private final String html;
3.8
3.9 private Compile(String html, String code) throws IOException {
3.10 this.pkg = findPkg(code);
3.11 this.cls = findCls(code);
3.12 + this.html = html;
3.13 classes = compile(html, code);
3.14 }
3.15
3.16 @@ -193,4 +195,9 @@
3.17 String cls = m.group(1);
3.18 return cls;
3.19 }
3.20 +
3.21 + String getHtml() {
3.22 + String fqn = "'" + pkg + '.' + cls + "'";
3.23 + return html.replace("'${fqn}'", fqn);
3.24 + }
3.25 }
4.1 --- a/dew/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java Thu Jan 24 19:36:40 2013 +0100
4.2 +++ b/dew/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java Fri Jan 25 16:36:09 2013 +0100
4.3 @@ -42,7 +42,6 @@
4.4 * @author phrebejk
4.5 */
4.6 final class Dew extends HttpHandler implements Bck2Brwsr.Resources {
4.7 - private String html = "";
4.8 private Compile data;
4.9
4.10 public static void main(String... args) throws Exception {
4.11 @@ -69,7 +68,6 @@
4.12 List<Diagnostic<? extends JavaFileObject>> err = res.getErrors();
4.13 if (err.isEmpty()) {
4.14 data = res;
4.15 - html = tmpHtml;
4.16 response.getOutputStream().write("[]".getBytes());
4.17 response.setStatus(HttpStatus.OK_200);
4.18 } else {
4.19 @@ -98,7 +96,7 @@
4.20 }
4.21 if (r.equals("/result.html")) {
4.22 response.setContentType("text/html");
4.23 - response.getOutputBuffer().write(html);
4.24 + response.getOutputBuffer().write(data.getHtml());
4.25 response.setStatus(HttpStatus.OK_200);
4.26 return;
4.27 }
5.1 --- a/dew/src/main/java/org/apidesign/bck2brwsr/dew/DewLauncher.java Thu Jan 24 19:36:40 2013 +0100
5.2 +++ b/dew/src/main/java/org/apidesign/bck2brwsr/dew/DewLauncher.java Fri Jan 25 16:36:09 2013 +0100
5.3 @@ -56,7 +56,7 @@
5.4 this.loaders.add(url);
5.5 }
5.6
5.7 - final HttpServer initServer(Bck2Brwsr.Resources... extraResources) {
5.8 + final HttpServer initServer(Bck2Brwsr.Resources... extraResources) throws IOException {
5.9 xRes.addAll(Arrays.asList(extraResources));
5.10
5.11 HttpServer s = HttpServer.createSimpleServer(".", new PortRange(8080, 65535));
5.12 @@ -125,17 +125,19 @@
5.13 }
5.14
5.15 private static class VM extends HttpHandler {
5.16 - private final Res loader;
5.17 + private final String bck2brwsr;
5.18
5.19 - public VM(Res loader) {
5.20 - this.loader = loader;
5.21 + public VM(Res loader) throws IOException {
5.22 + StringBuilder sb = new StringBuilder();
5.23 + Bck2Brwsr.generate(sb, loader);
5.24 + this.bck2brwsr = sb.toString();
5.25 }
5.26
5.27 @Override
5.28 public void service(Request request, Response response) throws Exception {
5.29 response.setCharacterEncoding("UTF-8");
5.30 response.setContentType("text/javascript");
5.31 - Bck2Brwsr.generate(response.getWriter(), loader);
5.32 + response.getWriter().write(bck2brwsr);
5.33 }
5.34 }
5.35 private static class VMInit extends HttpHandler {
6.1 --- a/dew/src/main/resources/org/apidesign/bck2brwsr/dew/js/app.js Thu Jan 24 19:36:40 2013 +0100
6.2 +++ b/dew/src/main/resources/org/apidesign/bck2brwsr/dew/js/app.js Fri Jan 25 16:36:09 2013 +0100
6.3 @@ -113,7 +113,7 @@
6.4 " return arr;\n" +
6.5 " }\n" +
6.6 " var vm = new bck2brwsr(ldCls);\n" +
6.7 -" vm.loadClass('bck2brwsr.demo.YourFirstHTML5PageInRealLanguage');\n" +
6.8 +" vm.loadClass('${fqn}');\n" +
6.9 " </script>\n" +
6.10 "</body></html>";
6.11 var templateJava =
7.1 --- a/emul/mini/src/main/java/java/lang/Class.java Thu Jan 24 19:36:40 2013 +0100
7.2 +++ b/emul/mini/src/main/java/java/lang/Class.java Fri Jan 25 16:36:09 2013 +0100
7.3 @@ -606,7 +606,9 @@
7.4 * @see java.lang.reflect.Modifier
7.5 * @since JDK1.1
7.6 */
7.7 - public native int getModifiers();
7.8 + public int getModifiers() {
7.9 + return getAccess();
7.10 + }
7.11
7.12
7.13 /**
8.1 --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Thu Jan 24 19:36:40 2013 +0100
8.2 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Fri Jan 25 16:36:09 2013 +0100
8.3 @@ -122,16 +122,11 @@
8.4 }
8.5 }
8.6
8.7 - private HttpServer initServer() {
8.8 + private HttpServer initServer() throws IOException {
8.9 HttpServer s = HttpServer.createSimpleServer(".", new PortRange(8080, 65535));
8.10
8.11 final ServerConfiguration conf = s.getServerConfiguration();
8.12 - conf.addHttpHandler(new Page(resources,
8.13 - "org/apidesign/bck2brwsr/launcher/console.xhtml",
8.14 - "org.apidesign.bck2brwsr.launcher.Console", "welcome", "false"
8.15 - ), "/console");
8.16 - conf.addHttpHandler(new VM(resources), "/bck2brwsr.js");
8.17 - conf.addHttpHandler(new VMInit(), "/vm.js");
8.18 + conf.addHttpHandler(new VM(resources), "/vm.js");
8.19 conf.addHttpHandler(new Classes(resources), "/classes/");
8.20 return s;
8.21 }
8.22 @@ -410,28 +405,12 @@
8.23 }
8.24
8.25 private static class VM extends HttpHandler {
8.26 - private final Res loader;
8.27 + private final String bck2brwsr;
8.28
8.29 - public VM(Res loader) {
8.30 - this.loader = loader;
8.31 - }
8.32 -
8.33 - @Override
8.34 - public void service(Request request, Response response) throws Exception {
8.35 - response.setCharacterEncoding("UTF-8");
8.36 - response.setContentType("text/javascript");
8.37 - Bck2Brwsr.generate(response.getWriter(), loader);
8.38 - }
8.39 - }
8.40 - private static class VMInit extends HttpHandler {
8.41 - public VMInit() {
8.42 - }
8.43 -
8.44 - @Override
8.45 - public void service(Request request, Response response) throws Exception {
8.46 - response.setCharacterEncoding("UTF-8");
8.47 - response.setContentType("text/javascript");
8.48 - response.getWriter().append(
8.49 + public VM(Res loader) throws IOException {
8.50 + StringBuilder sb = new StringBuilder();
8.51 + Bck2Brwsr.generate(sb, loader);
8.52 + sb.append(
8.53 "function ldCls(res) {\n"
8.54 + " var request = new XMLHttpRequest();\n"
8.55 + " request.open('GET', '/classes/' + res, false);\n"
8.56 @@ -439,7 +418,16 @@
8.57 + " var arr = eval('(' + request.responseText + ')');\n"
8.58 + " return arr;\n"
8.59 + "}\n"
8.60 - + "var vm = new bck2brwsr(ldCls);\n");
8.61 + + "var vm = new bck2brwsr(ldCls);\n"
8.62 + );
8.63 + this.bck2brwsr = sb.toString();
8.64 + }
8.65 +
8.66 + @Override
8.67 + public void service(Request request, Response response) throws Exception {
8.68 + response.setCharacterEncoding("UTF-8");
8.69 + response.setContentType("text/javascript");
8.70 + response.getWriter().write(bck2brwsr);
8.71 }
8.72 }
8.73
9.1 --- a/launcher/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.xhtml Thu Jan 24 19:36:40 2013 +0100
9.2 +++ b/launcher/src/main/resources/org/apidesign/bck2brwsr/launcher/harness.xhtml Fri Jan 25 16:36:09 2013 +0100
9.3 @@ -24,7 +24,6 @@
9.4 <title>Bck2Brwsr Harness</title>
9.5 </head>
9.6 <body>
9.7 - <script src="/bck2brwsr.js"></script>
9.8 <script src="/vm.js"></script>
9.9
9.10 <h1>Bck2Brwsr Execution Harness</h1>
10.1 --- a/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Thu Jan 24 19:36:40 2013 +0100
10.2 +++ b/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Fri Jan 25 16:36:09 2013 +0100
10.3 @@ -21,8 +21,6 @@
10.4 import java.util.Arrays;
10.5 import java.util.Collections;
10.6 import java.util.List;
10.7 -import java.util.logging.Level;
10.8 -import java.util.logging.Logger;
10.9 import org.apidesign.bck2brwsr.core.JavaScriptBody;
10.10 import org.apidesign.bck2brwsr.vmtest.Compare;
10.11 import org.apidesign.bck2brwsr.vmtest.VMTest;
10.12 @@ -71,6 +69,15 @@
10.13 return StaticUse.class.getMethod("instanceMethod").getReturnType();
10.14 }
10.15
10.16 + enum E { A, B };
10.17 + @Compare public boolean isEnum() {
10.18 + return E.A.getClass().isEnum();
10.19 + }
10.20 +
10.21 + @Compare public boolean isNotEnum() {
10.22 + return "".getClass().isEnum();
10.23 + }
10.24 +
10.25 @Compare public String newInstanceFails() throws InstantiationException {
10.26 try {
10.27 return "success: " + StaticUse.class.newInstance();