From 5f5fe9436da740b73f909f8ea78fbd52c6410eb3 Mon Sep 17 00:00:00 2001 From: Richard Alam <ritzalam@gmail.com> Date: Thu, 13 Feb 2020 13:38:41 -0800 Subject: [PATCH] - cleanup --- .../voice/freeswitch/ESLEventListener.java | 1 + .../scala/org/bigbluebutton/ApiService.scala | 32 +++++++++---------- .../main/scala/org/bigbluebutton/Boot.scala | 7 ---- .../service/HealthzService.scala | 4 +-- 4 files changed, 17 insertions(+), 27 deletions(-) diff --git a/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java b/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java index 40109b9d76..a6a4e60a0c 100755 --- a/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java +++ b/akka-bbb-fsesl/src/main/java/org/bigbluebutton/freeswitch/voice/freeswitch/ESLEventListener.java @@ -292,6 +292,7 @@ public class ESLEventListener implements IEslEventListener { String json = gson.toJson(event.getEventHeaders()); //log.info(json); + log.info("Received Heartbeat from Freeswitch."); Map<String, String> headers = event.getEventHeaders(); Map<String, String> hb = new HashMap<String, String>(); diff --git a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala index 7df02361d5..297d073702 100755 --- a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala +++ b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/ApiService.scala @@ -1,19 +1,20 @@ package org.bigbluebutton -import scala.concurrent.ExecutionContext import akka.http.scaladsl.model._ -import akka.actor.ActorSystem import akka.http.scaladsl.server.Directives._ -import akka.pattern.AskTimeoutException -import akka.stream.Materializer -import com.google.gson.Gson -import org.bigbluebutton.service.{ GetHealthResponseMessage, HealthzService } +import org.bigbluebutton.service.{ HealthzService } +import spray.json.DefaultJsonProtocol +import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport -import scala.collection.JavaConverters._ -import scala.collection.mutable -import scala.util.{ Failure, Success } +case class HealthResponse(isHealthy: Boolean) +case class StatusResponse(status: Array[String], heartbeat: Map[String, String]) -class ApiService(healthz: HealthzService)(implicit executor: ExecutionContext, as: ActorSystem, mat: Materializer) { +trait JsonSupport extends SprayJsonSupport with DefaultJsonProtocol { + implicit val healthResponseFormat = jsonFormat1(HealthResponse) + implicit val statusResponseFormat = jsonFormat2(StatusResponse) +} + +class ApiService(healthz: HealthzService) extends JsonSupport { def routes = path("healthz") { @@ -22,11 +23,9 @@ class ApiService(healthz: HealthzService)(implicit executor: ExecutionContext, a onSuccess(future) { case res => if (res.isHealthy) { - val gson = new Gson - complete(StatusCodes.OK, HttpEntity(ContentTypes.`application/json`, gson.toJson(res))) + complete(StatusCodes.Created, HealthResponse(res.isHealthy)) } else { - val gson = new Gson - complete(StatusCodes.ServiceUnavailable, HttpEntity(ContentTypes.`application/json`, gson.toJson(res))) + complete(StatusCodes.ServiceUnavailable, HealthResponse(res.isHealthy)) } } } @@ -36,9 +35,8 @@ class ApiService(healthz: HealthzService)(implicit executor: ExecutionContext, a val future = healthz.getFreeswitchStatus() onSuccess(future) { case res => - val gson = new Gson() - val response = Map("status" -> res.status, "heartbeat" -> res.heartbeat.asJava) - complete(StatusCodes.OK, HttpEntity(ContentTypes.`application/json`, gson.toJson(response.asJava))) + val response = StatusResponse(res.status, res.heartbeat) + complete(StatusCodes.OK, response) } } } diff --git a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala index 7dd5b292ef..9e3c476969 100755 --- a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala +++ b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/Boot.scala @@ -68,11 +68,4 @@ object Boot extends App with SystemConfiguration with WebApi { val bindingFuture = Http().bindAndHandle(apiService.routes, httpHost, httpPort) - println(s"Server online at $httpHost:$httpPort/\nPress RETURN to stop...") - /* - bindingFuture - .flatMap(_.unbind()) // trigger unbinding from the port - .onComplete(_ => system.terminate()) // and shutdown when done - - */ } diff --git a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala index e6b41e9eea..448e57c132 100755 --- a/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala +++ b/akka-bbb-fsesl/src/main/scala/org/bigbluebutton/service/HealthzService.scala @@ -2,11 +2,10 @@ package org.bigbluebutton.service import java.text.SimpleDateFormat -import akka.actor.{ Actor, ActorContext, ActorLogging, Props } +import akka.actor.{ Actor, ActorLogging, Props } import akka.actor.ActorSystem import akka.pattern.{ AskTimeoutException, ask } import akka.util.Timeout -import com.google.gson.Gson import scala.concurrent.duration._ import scala.concurrent.Future @@ -72,7 +71,6 @@ class HealthzActor extends Actor def receive = { case msg: FreeswitchStatusMessage => - val gson = new Gson() val now = System.currentTimeMillis() status = FreeswitchStatus(now, sdf.format(now), msg.status) case msg: FreeswitchHeartbeatMessage => -- GitLab