From 871f8d7e4844890f920b960bc53ec0f99268d794 Mon Sep 17 00:00:00 2001 From: vlad Date: Mon, 13 Mar 2017 21:46:06 -0700 Subject: Added writing tracking Id to MDC so it can be logged for all messages, removed some linkerd legacy and refined Revision equals --- src/main/scala/xyz/driver/core/app.scala | 13 ++++++------- src/main/scala/xyz/driver/core/core.scala | 4 ++-- src/main/scala/xyz/driver/core/file.scala | 1 - src/main/scala/xyz/driver/core/generators.scala | 1 - src/main/scala/xyz/driver/core/json.scala | 1 - src/main/scala/xyz/driver/core/rest.scala | 1 - 6 files changed, 8 insertions(+), 13 deletions(-) (limited to 'src/main/scala/xyz') diff --git a/src/main/scala/xyz/driver/core/app.scala b/src/main/scala/xyz/driver/core/app.scala index deb0e6a..090be76 100644 --- a/src/main/scala/xyz/driver/core/app.scala +++ b/src/main/scala/xyz/driver/core/app.scala @@ -14,7 +14,7 @@ import akka.http.scaladsl.server.{ExceptionHandler, Route, RouteConcatenation} import akka.stream.ActorMaterializer import com.typesafe.config.Config import io.swagger.models.Scheme -import org.slf4j.LoggerFactory +import org.slf4j.{LoggerFactory, MDC} import spray.json.DefaultJsonProtocol import xyz.driver.core import xyz.driver.core.logging.{Logger, TypesafeScalaLogger} @@ -26,7 +26,7 @@ import xyz.driver.core.time.provider.{SystemTimeProvider, TimeProvider} import scala.compat.Platform.ConcurrentModificationException import scala.concurrent.duration._ -import scala.concurrent.{Await, Future} +import scala.concurrent.{Await, ExecutionContext, Future} object app { @@ -40,12 +40,10 @@ object app { interface: String = "::0", baseUrl: String = "localhost:8080", scheme: String = "http", - port: Int = 8080) { + port: Int = 8080)(implicit actorSystem: ActorSystem, executionContext: ExecutionContext) { - implicit private lazy val actorSystem = ActorSystem("spray-routing", config) - implicit private lazy val executionContext = actorSystem.dispatcher - implicit private lazy val materializer = ActorMaterializer()(actorSystem) - private lazy val http = Http()(actorSystem) + implicit private lazy val materializer = ActorMaterializer()(actorSystem) + private lazy val http = Http()(actorSystem) def run(): Unit = { activateServices(modules) @@ -73,6 +71,7 @@ object app { http.bindAndHandle(route2HandlerFlow(handleExceptions(ExceptionHandler(exceptionHandler)) { ctx => val trackingId = rest.extractTrackingId(ctx.request) log.audit(s"Received request ${ctx.request} with tracking id $trackingId") + MDC.put("trackingId", trackingId) val contextWithTrackingId = ctx.withRequest(ctx.request.addHeader(RawHeader(ContextHeaders.TrackingIdHeader, trackingId))) diff --git a/src/main/scala/xyz/driver/core/core.scala b/src/main/scala/xyz/driver/core/core.scala index 341d991..3e77c1f 100644 --- a/src/main/scala/xyz/driver/core/core.scala +++ b/src/main/scala/xyz/driver/core/core.scala @@ -60,9 +60,9 @@ package core { implicit def nameOrdering[T]: Ordering[Name[T]] = Ordering.by(_.value) } - object revision { - final case class Revision[T](id: String) + final case class Revision[T](id: String) + object Revision { implicit def revisionEqual[T]: Equal[Revision[T]] = Equal.equal[Revision[T]](_.id == _.id) } diff --git a/src/main/scala/xyz/driver/core/file.scala b/src/main/scala/xyz/driver/core/file.scala index 9cea9e5..42dc6b2 100644 --- a/src/main/scala/xyz/driver/core/file.scala +++ b/src/main/scala/xyz/driver/core/file.scala @@ -6,7 +6,6 @@ import java.util.UUID._ import com.amazonaws.services.s3.AmazonS3 import com.amazonaws.services.s3.model.{Bucket, GetObjectRequest, ListObjectsV2Request} -import xyz.driver.core.revision.Revision import xyz.driver.core.time.Time import scala.concurrent.{ExecutionContext, Future} diff --git a/src/main/scala/xyz/driver/core/generators.scala b/src/main/scala/xyz/driver/core/generators.scala index 55cc3b4..8f3ff13 100644 --- a/src/main/scala/xyz/driver/core/generators.scala +++ b/src/main/scala/xyz/driver/core/generators.scala @@ -2,7 +2,6 @@ package xyz.driver.core import java.math.MathContext -import xyz.driver.core.revision.Revision import xyz.driver.core.time.{Time, TimeRange} import xyz.driver.core.date.Date diff --git a/src/main/scala/xyz/driver/core/json.scala b/src/main/scala/xyz/driver/core/json.scala index b23a8e4..01efd57 100644 --- a/src/main/scala/xyz/driver/core/json.scala +++ b/src/main/scala/xyz/driver/core/json.scala @@ -6,7 +6,6 @@ import akka.http.scaladsl.server.{PathMatcher, _} import akka.http.scaladsl.unmarshalling.Unmarshaller import spray.json.{DeserializationException, JsNumber, _} import xyz.driver.core.auth.AuthCredentials -import xyz.driver.core.revision.Revision import xyz.driver.core.time.Time import xyz.driver.core.date.Date import xyz.driver.core.domain.{Email, PhoneNumber} diff --git a/src/main/scala/xyz/driver/core/rest.scala b/src/main/scala/xyz/driver/core/rest.scala index 33e0f97..ebdb1b9 100644 --- a/src/main/scala/xyz/driver/core/rest.scala +++ b/src/main/scala/xyz/driver/core/rest.scala @@ -56,7 +56,6 @@ object rest { def extractContextHeaders(request: HttpRequest): Map[String, String] = { request.headers.filter { h => h.name === ContextHeaders.AuthenticationTokenHeader || h.name === ContextHeaders.TrackingIdHeader - // || ContextHeaders.LinkerD.isLinkerD(h.lowercaseName) } map { header => if (header.name === ContextHeaders.AuthenticationTokenHeader) { header.name -> header.value.stripPrefix(ContextHeaders.AuthenticationHeaderPrefix).trim -- cgit v1.2.3