From 9db1e50344cc49810c8549b5b3022038c64e4dfa Mon Sep 17 00:00:00 2001 From: Reynold Xin Date: Mon, 26 Aug 2013 11:05:14 -0700 Subject: Revert "Merge pull request #841 from rxin/json" This reverts commit 1fb1b0992838c8cdd57eec45793e67a0490f1a52, reversing changes made to c69c48947d5102c81a9425cb380d861c3903685c. --- .../src/main/scala/spark/deploy/JsonProtocol.scala | 108 ++++++++++----------- .../spark/deploy/master/ui/ApplicationPage.scala | 5 +- .../scala/spark/deploy/master/ui/IndexPage.scala | 5 +- .../scala/spark/deploy/worker/ui/IndexPage.scala | 5 +- core/src/main/scala/spark/ui/JettyUtils.scala | 7 +- 5 files changed, 66 insertions(+), 64 deletions(-) (limited to 'core/src') diff --git a/core/src/main/scala/spark/deploy/JsonProtocol.scala b/core/src/main/scala/spark/deploy/JsonProtocol.scala index 6b71b953dd..bd1db7c294 100644 --- a/core/src/main/scala/spark/deploy/JsonProtocol.scala +++ b/core/src/main/scala/spark/deploy/JsonProtocol.scala @@ -17,7 +17,7 @@ package spark.deploy -import scala.util.parsing.json.{JSONArray, JSONObject, JSONType} +import net.liftweb.json.JsonDSL._ import spark.deploy.DeployMessages.{MasterStateResponse, WorkerStateResponse} import spark.deploy.master.{ApplicationInfo, WorkerInfo} @@ -25,63 +25,61 @@ import spark.deploy.worker.ExecutorRunner private[spark] object JsonProtocol { + def writeWorkerInfo(obj: WorkerInfo) = { + ("id" -> obj.id) ~ + ("host" -> obj.host) ~ + ("port" -> obj.port) ~ + ("webuiaddress" -> obj.webUiAddress) ~ + ("cores" -> obj.cores) ~ + ("coresused" -> obj.coresUsed) ~ + ("memory" -> obj.memory) ~ + ("memoryused" -> obj.memoryUsed) + } - def writeWorkerInfo(obj: WorkerInfo): JSONType = JSONObject(Map( - "id" -> obj.id, - "host" -> obj.host, - "port" -> obj.port, - "webuiaddress" -> obj.webUiAddress, - "cores" -> obj.cores, - "coresused" -> obj.coresUsed, - "memory" -> obj.memory, - "memoryused" -> obj.memoryUsed, - "state" -> obj.state.toString - )) + def writeApplicationInfo(obj: ApplicationInfo) = { + ("starttime" -> obj.startTime) ~ + ("id" -> obj.id) ~ + ("name" -> obj.desc.name) ~ + ("cores" -> obj.desc.maxCores) ~ + ("user" -> obj.desc.user) ~ + ("memoryperslave" -> obj.desc.memoryPerSlave) ~ + ("submitdate" -> obj.submitDate.toString) + } - def writeApplicationInfo(obj: ApplicationInfo): JSONType = JSONObject(Map( - "starttime" -> obj.startTime, - "id" -> obj.id, - "name" -> obj.desc.name, - "cores" -> obj.desc.maxCores, - "user" -> obj.desc.user, - "memoryperslave" -> obj.desc.memoryPerSlave, - "submitdate" -> obj.submitDate.toString - )) + def writeApplicationDescription(obj: ApplicationDescription) = { + ("name" -> obj.name) ~ + ("cores" -> obj.maxCores) ~ + ("memoryperslave" -> obj.memoryPerSlave) ~ + ("user" -> obj.user) + } - def writeApplicationDescription(obj: ApplicationDescription): JSONType = JSONObject(Map( - "name" -> obj.name, - "cores" -> obj.maxCores, - "memoryperslave" -> obj.memoryPerSlave, - "user" -> obj.user - )) + def writeExecutorRunner(obj: ExecutorRunner) = { + ("id" -> obj.execId) ~ + ("memory" -> obj.memory) ~ + ("appid" -> obj.appId) ~ + ("appdesc" -> writeApplicationDescription(obj.appDesc)) + } - def writeExecutorRunner(obj: ExecutorRunner): JSONType = JSONObject(Map( - "id" -> obj.execId, - "memory" -> obj.memory, - "appid" -> obj.appId, - "appdesc" -> writeApplicationDescription(obj.appDesc) - )) + def writeMasterState(obj: MasterStateResponse) = { + ("url" -> ("spark://" + obj.uri)) ~ + ("workers" -> obj.workers.toList.map(writeWorkerInfo)) ~ + ("cores" -> obj.workers.map(_.cores).sum) ~ + ("coresused" -> obj.workers.map(_.coresUsed).sum) ~ + ("memory" -> obj.workers.map(_.memory).sum) ~ + ("memoryused" -> obj.workers.map(_.memoryUsed).sum) ~ + ("activeapps" -> obj.activeApps.toList.map(writeApplicationInfo)) ~ + ("completedapps" -> obj.completedApps.toList.map(writeApplicationInfo)) + } - def writeMasterState(obj: MasterStateResponse): JSONType = JSONObject(Map( - "url" -> ("spark://" + obj.uri), - "workers" -> obj.workers.toList.map(writeWorkerInfo), - "cores" -> obj.workers.map(_.cores).sum, - "coresused" -> obj.workers.map(_.coresUsed).sum, - "memory" -> obj.workers.map(_.memory).sum, - "memoryused" -> obj.workers.map(_.memoryUsed).sum, - "activeapps" -> JSONArray(obj.activeApps.toList.map(writeApplicationInfo)), - "completedapps" -> JSONArray(obj.completedApps.toList.map(writeApplicationInfo)) - )) - - def writeWorkerState(obj: WorkerStateResponse): JSONType = JSONObject(Map( - "id" -> obj.workerId, - "masterurl" -> obj.masterUrl, - "masterwebuiurl" -> obj.masterWebUiUrl, - "cores" -> obj.cores, - "coresused" -> obj.coresUsed, - "memory" -> obj.memory, - "memoryused" -> obj.memoryUsed, - "executors" -> JSONArray(obj.executors.toList.map(writeExecutorRunner)), - "finishedexecutors" -> JSONArray(obj.finishedExecutors.toList.map(writeExecutorRunner)) - )) + def writeWorkerState(obj: WorkerStateResponse) = { + ("id" -> obj.workerId) ~ + ("masterurl" -> obj.masterUrl) ~ + ("masterwebuiurl" -> obj.masterWebUiUrl) ~ + ("cores" -> obj.cores) ~ + ("coresused" -> obj.coresUsed) ~ + ("memory" -> obj.memory) ~ + ("memoryused" -> obj.memoryUsed) ~ + ("executors" -> obj.executors.toList.map(writeExecutorRunner)) ~ + ("finishedexecutors" -> obj.finishedExecutors.toList.map(writeExecutorRunner)) + } } diff --git a/core/src/main/scala/spark/deploy/master/ui/ApplicationPage.scala b/core/src/main/scala/spark/deploy/master/ui/ApplicationPage.scala index 494a9b914d..405a1ec3a6 100644 --- a/core/src/main/scala/spark/deploy/master/ui/ApplicationPage.scala +++ b/core/src/main/scala/spark/deploy/master/ui/ApplicationPage.scala @@ -17,7 +17,6 @@ package spark.deploy.master.ui -import scala.util.parsing.json.JSONType import scala.xml.Node import akka.dispatch.Await @@ -26,6 +25,8 @@ import akka.util.duration._ import javax.servlet.http.HttpServletRequest +import net.liftweb.json.JsonAST.JValue + import spark.deploy.DeployMessages.{MasterStateResponse, RequestMasterState} import spark.deploy.JsonProtocol import spark.deploy.master.ExecutorInfo @@ -36,7 +37,7 @@ private[spark] class ApplicationPage(parent: MasterWebUI) { implicit val timeout = parent.timeout /** Executor details for a particular application */ - def renderJson(request: HttpServletRequest): JSONType = { + def renderJson(request: HttpServletRequest): JValue = { val appId = request.getParameter("appId") val stateFuture = (master ? RequestMasterState)(timeout).mapTo[MasterStateResponse] val state = Await.result(stateFuture, 30 seconds) diff --git a/core/src/main/scala/spark/deploy/master/ui/IndexPage.scala b/core/src/main/scala/spark/deploy/master/ui/IndexPage.scala index 28e421e3bc..2000211b98 100644 --- a/core/src/main/scala/spark/deploy/master/ui/IndexPage.scala +++ b/core/src/main/scala/spark/deploy/master/ui/IndexPage.scala @@ -19,13 +19,14 @@ package spark.deploy.master.ui import javax.servlet.http.HttpServletRequest -import scala.util.parsing.json.JSONType import scala.xml.Node import akka.dispatch.Await import akka.pattern.ask import akka.util.duration._ +import net.liftweb.json.JsonAST.JValue + import spark.Utils import spark.deploy.DeployWebUI import spark.deploy.DeployMessages.{MasterStateResponse, RequestMasterState} @@ -37,7 +38,7 @@ private[spark] class IndexPage(parent: MasterWebUI) { val master = parent.masterActorRef implicit val timeout = parent.timeout - def renderJson(request: HttpServletRequest): JSONType = { + def renderJson(request: HttpServletRequest): JValue = { val stateFuture = (master ? RequestMasterState)(timeout).mapTo[MasterStateResponse] val state = Await.result(stateFuture, 30 seconds) JsonProtocol.writeMasterState(state) diff --git a/core/src/main/scala/spark/deploy/worker/ui/IndexPage.scala b/core/src/main/scala/spark/deploy/worker/ui/IndexPage.scala index 02993d58a0..b67059068b 100644 --- a/core/src/main/scala/spark/deploy/worker/ui/IndexPage.scala +++ b/core/src/main/scala/spark/deploy/worker/ui/IndexPage.scala @@ -19,13 +19,14 @@ package spark.deploy.worker.ui import javax.servlet.http.HttpServletRequest -import scala.util.parsing.json.JSONType import scala.xml.Node import akka.dispatch.Await import akka.pattern.ask import akka.util.duration._ +import net.liftweb.json.JsonAST.JValue + import spark.Utils import spark.deploy.JsonProtocol import spark.deploy.DeployMessages.{RequestWorkerState, WorkerStateResponse} @@ -38,7 +39,7 @@ private[spark] class IndexPage(parent: WorkerWebUI) { val worker = parent.worker val timeout = parent.timeout - def renderJson(request: HttpServletRequest): JSONType = { + def renderJson(request: HttpServletRequest): JValue = { val stateFuture = (workerActor ? RequestWorkerState)(timeout).mapTo[WorkerStateResponse] val workerState = Await.result(stateFuture, 30 seconds) JsonProtocol.writeWorkerState(workerState) diff --git a/core/src/main/scala/spark/ui/JettyUtils.scala b/core/src/main/scala/spark/ui/JettyUtils.scala index ba58f35729..f66fe39905 100644 --- a/core/src/main/scala/spark/ui/JettyUtils.scala +++ b/core/src/main/scala/spark/ui/JettyUtils.scala @@ -21,9 +21,10 @@ import javax.servlet.http.{HttpServletResponse, HttpServletRequest} import scala.annotation.tailrec import scala.util.{Try, Success, Failure} -import scala.util.parsing.json.JSONType import scala.xml.Node +import net.liftweb.json.{JValue, pretty, render} + import org.eclipse.jetty.server.{Server, Request, Handler} import org.eclipse.jetty.server.handler.{ResourceHandler, HandlerList, ContextHandler, AbstractHandler} import org.eclipse.jetty.util.thread.QueuedThreadPool @@ -38,8 +39,8 @@ private[spark] object JettyUtils extends Logging { type Responder[T] = HttpServletRequest => T // Conversions from various types of Responder's to jetty Handlers - implicit def jsonResponderToHandler(responder: Responder[JSONType]): Handler = - createHandler(responder, "text/json", (in: JSONType) => in.toString) + implicit def jsonResponderToHandler(responder: Responder[JValue]): Handler = + createHandler(responder, "text/json", (in: JValue) => pretty(render(in))) implicit def htmlResponderToHandler(responder: Responder[Seq[Node]]): Handler = createHandler(responder, "text/html", (in: Seq[Node]) => "" + in.toString) -- cgit v1.2.3