# HG changeset patch # User Jaroslav Tulach # Date 1358332579 -3600 # Node ID 443eb0f21a0a0824a2ecf9568420dda71275fd44 # Parent 9823859d253af68de28680164fd84a195fdf2939 Trying to server real HTML and Java code diff -r 9823859d253a -r 443eb0f21a0a launcher/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java Wed Jan 16 11:07:28 2013 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java Wed Jan 16 11:36:19 2013 +0100 @@ -5,12 +5,14 @@ package org.apidesign.bck2brwsr.dew; import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.util.List; import java.util.logging.Logger; +import javax.tools.Diagnostic; +import javax.tools.JavaFileObject; import org.glassfish.grizzly.http.Method; import org.glassfish.grizzly.http.server.HttpHandler; import org.glassfish.grizzly.http.server.Request; @@ -24,8 +26,34 @@ * @author phrebejk */ public class Dew extends HttpHandler { - private String html = "Nazdar!"; - private String java = "class C {\n}\n"; + private String html = "\n" + + " \n" + + "
\n" + + "\n" + + "\n" + + "\n" + + " \n" + + " \n" + + "\n"; + private String java = "package bck2brwsr.demo;\n" + + "import org.apidesign.bck2brwsr.htmlpage.api.*;\n" + + "@Page(xhtml=\"index.html\", className=\"Index\")\n" + + "class X {\n" + + " @OnClick(id=\"btn\") static void clcs() {\n" + + " Index.BTN.setDisabled(true);\n" + + " }\n" + + "}\n"; + private Compile data; @Override public void service(Request request, Response response) throws Exception { @@ -36,11 +64,17 @@ JSONObject obj = new JSONObject(tok); html = obj.getString("html"); java = obj.getString("java"); - LOG.info(html); - LOG.info(java); - response.getOutputStream().write("[]".getBytes()); - response.setStatus(HttpStatus.OK_200); + Compile res = Compile.create(html, java); + List> err = res.getErrors(); + if (err.isEmpty()) { + data = res; + response.getOutputStream().write("[]".getBytes()); + response.setStatus(HttpStatus.OK_200); + } else { + response.getOutputStream().write(("[errors:'" + err + "']").getBytes()); + response.setStatus(HttpStatus.PRECONDITION_FAILED_412); + } return; } @@ -59,6 +93,20 @@ if (r.startsWith("/")) { r = r.substring(1); } + if (r.startsWith("classes/")) { + if (data == null) { + //data = Compile.create(html, java); + } + r = r.substring(8); + byte[] is = data == null ? null : data.get(r); + if (is == null) { + is = new byte[0]; + } + OutputStream os = response.getOutputStream(); + copyStream(new ByteArrayInputStream(is), os, request.getRequestURL().toString() ); + return; + } + if (r.endsWith(".html") || r.endsWith(".xhtml")) { response.setContentType("text/html"); } diff -r 9823859d253a -r 443eb0f21a0a launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Wed Jan 16 11:07:28 2013 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Wed Jan 16 11:36:19 2013 +0100 @@ -106,6 +106,7 @@ public static void main(String... args) throws Exception { Bck2BrwsrLauncher l = new Bck2BrwsrLauncher(null); + l.addClassLoader(Bck2BrwsrLauncher.class.getClassLoader()); HttpServer s = l.initServer(); s.getServerConfiguration().addHttpHandler(new Dew(), "/dew/"); l.launchServerAndBrwsr(s, "/dew/");