diff --git a/playground/src/main/java/no/priv/garshol/jslt/playground/PlaygroundServer.java b/playground/src/main/java/no/priv/garshol/jslt/playground/PlaygroundServer.java index 4c6f8d12..22a53dbf 100644 --- a/playground/src/main/java/no/priv/garshol/jslt/playground/PlaygroundServer.java +++ b/playground/src/main/java/no/priv/garshol/jslt/playground/PlaygroundServer.java @@ -7,7 +7,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; @@ -19,65 +18,66 @@ import com.schibsted.spt.data.jslt.Expression; public class PlaygroundServer { - private static ObjectMapper mapper = new ObjectMapper(); - private static String INDEX_HTML = "lambda.html"; - - public static class JsltHandler extends AbstractHandler { - public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) { - if (!target.equals("/jslt")) - return; - - if (request.getMethod().equals("GET")) { - try (InputStream stream = Parser.class.getClassLoader().getResourceAsStream(INDEX_HTML)) { - byte[] buf = new byte[16384]; - int bytes; - while ((bytes = stream.read(buf)) != -1) { - response.getOutputStream().write(buf, 0, bytes); - } - - response.setStatus(HttpServletResponse.SC_OK); - response.addHeader("Content-type", "text/html"); - } catch (IOException e) { - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + private static final ObjectMapper mapper = new ObjectMapper(); + + public static class JsltHandler extends AbstractHandler { + public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) { + if (!target.equals("/jslt")) + return; + + String method = request.getMethod(); + + if ("GET".equals(method)) { + String INDEX_HTML = "lambda.html"; + try (InputStream stream = Parser.class.getClassLoader().getResourceAsStream(INDEX_HTML)) { + byte[] buf = new byte[16384]; + int bytes; + while ((bytes = stream.read(buf)) != -1) { + response.getOutputStream().write(buf, 0, bytes); + } + + response.setStatus(HttpServletResponse.SC_OK); + response.addHeader("Content-type", "text/html"); + } catch (IOException e) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + + baseRequest.setHandled(true); + return; + } + + if ("POST".equals(method)) { + try { + JsonNode body = mapper.readTree(request.getReader()); + JsonNode input = mapper.readTree(body.get("json").asText()); + String jslt = body.get("jslt").asText(); + + Expression template = Parser.compileString(jslt); + JsonNode output = template.apply(input); + response.setStatus(HttpServletResponse.SC_OK); + + response.getOutputStream().write(mapper.writerWithDefaultPrettyPrinter().writeValueAsBytes(output)); + } catch (Exception e) { + try (PrintStream ps = new PrintStream(response.getOutputStream())) { + e.printStackTrace(ps); + } catch (IOException ignored) { + } + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + } + + baseRequest.setHandled(true); + } } - - baseRequest.setHandled(true); - return; - } - - if (request.getMethod().equals("POST")) { - try { - JsonNode body = mapper.readTree(request.getReader()); - JsonNode input = mapper.readTree(body.get("json").asText()); - String jslt = body.get("jslt").asText(); - - Expression template = Parser.compileString(jslt); - JsonNode output = template.apply(input); - response.setStatus(HttpServletResponse.SC_OK); - - response.getOutputStream().write(mapper.writerWithDefaultPrettyPrinter().writeValueAsBytes(output)); - - } catch (Exception e) { - try (PrintStream ps = new PrintStream(response.getOutputStream())) { - e.printStackTrace(ps); - } catch (IOException e2) { - } - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - } - - baseRequest.setHandled(true); - } } - } - public static void main(String[] argv) throws Exception { - Server server = new Server(Integer.parseInt(argv[0])); - HandlerList handlers = new HandlerList(); - handlers.addHandler(new JsltHandler()); - server.setHandler(handlers); - - server.start(); - server.join(); - } + public static void main(String[] argv) throws Exception { + int port = argv.length == 0 ? 9999 : Integer.parseInt(argv[0]); + Server server = new Server(port); + HandlerList handlers = new HandlerList(); + handlers.addHandler(new JsltHandler()); + server.setHandler(handlers); + server.start(); + server.join(); + } } diff --git a/playground/src/main/resources/lambda.html b/playground/src/main/resources/lambda.html index 8453f236..d455d1b1 100644 --- a/playground/src/main/resources/lambda.html +++ b/playground/src/main/resources/lambda.html @@ -1,99 +1,134 @@ - - + //]]> + -JSLT demo playground -

JSLT demo playground

+

JSLT demo playground

-

Here you can play with -JSLT -transforms. -Please report any issues.

+

+ Here you can play with JSLT transforms. + Please report any issues. +

-

Result

+

Input

-
+  
- Transform result will appear here +

JSLT

-
+
-

+

-

JSLT

+

Result

- + + + + +