diff -r aa69b1387624 -r 443eb0f21a0a launcher/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java
--- a/launcher/src/main/java/org/apidesign/bck2brwsr/dew/Dew.java Tue Jan 15 22:48:17 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");
}