|
|
@@ -1,39 +1,36 @@
|
|
|
-package com.cloudera.hue.sparker.repl
|
|
|
+package com.cloudera.hue.sparker.repl.webapp
|
|
|
|
|
|
-import java.io._
|
|
|
-import java.util.concurrent.SynchronousQueue
|
|
|
-
|
|
|
-import akka.actor.{Actor, ActorSystem}
|
|
|
import akka.util.Timeout
|
|
|
-import org.json4s.JsonDSL._
|
|
|
-import org.json4s.jackson.JsonMethods._
|
|
|
-import org.scalatra.{ScalatraServlet, AsyncResult, FutureSupport, ScalatraFilter}
|
|
|
+import com.cloudera.hue.sparker.repl.interpreter.SparkerInterpreter
|
|
|
+import org.json4s.{DefaultFormats, Formats}
|
|
|
+import org.scalatra.json._
|
|
|
+import org.scalatra.{AsyncResult, FutureSupport, ScalatraServlet}
|
|
|
|
|
|
-import scala.concurrent.{ExecutionContextExecutor, ExecutionContext}
|
|
|
+import scala.concurrent.{ExecutionContext, ExecutionContextExecutor}
|
|
|
|
|
|
-class HelloWorldApp(interpreter: SparkerInterpreter) extends ScalatraServlet with FutureSupport {
|
|
|
+class HelloWorldApp(interpreter: SparkerInterpreter) extends ScalatraServlet with FutureSupport with JacksonJsonSupport {
|
|
|
|
|
|
- implicit def executor: ExecutionContextExecutor = ExecutionContext.global
|
|
|
- implicit def defaultTimeout: Timeout = Timeout(10)
|
|
|
+ protected implicit def executor: ExecutionContextExecutor = ExecutionContext.global
|
|
|
+ protected implicit def defaultTimeout: Timeout = Timeout(10)
|
|
|
+ protected implicit val jsonFormats: Formats = DefaultFormats
|
|
|
|
|
|
- get("/") {
|
|
|
- <h1>Hello {params("name")}</h1>
|
|
|
+ before() {
|
|
|
+ contentType = formats("json")
|
|
|
}
|
|
|
|
|
|
- get("/async") {
|
|
|
- new AsyncResult { val is =
|
|
|
- interpreter.execute("1 + 1")
|
|
|
- }
|
|
|
+ get("/") {
|
|
|
+ <h1>Hello {params("name")}</h1>
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- get("/fire-forget") {
|
|
|
- sparkActor ! "wee"
|
|
|
- Accepted()
|
|
|
+ post("/statement") {
|
|
|
+ val request = parsedBody.extract[ExecuteRequest]
|
|
|
+ val statement = request.statement
|
|
|
+ new AsyncResult { def is = interpreter.execute(statement) }
|
|
|
}
|
|
|
- */
|
|
|
}
|
|
|
|
|
|
+case class ExecuteRequest(statement: String)
|
|
|
+
|
|
|
/*
|
|
|
class SparkActor extends Actor {
|
|
|
|