From e71903ae4fbcc08a0d674fb652792b38b0749cea Mon Sep 17 00:00:00 2001 From: Diego Parra Date: Thu, 3 Oct 2013 13:23:31 -0300 Subject: cleanup cleanup cleanup --- .../main/scala/test/SimpleRequestProcessor.scala | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 kamon-core/src/main/scala/test/SimpleRequestProcessor.scala (limited to 'kamon-core/src/main/scala/test/SimpleRequestProcessor.scala') diff --git a/kamon-core/src/main/scala/test/SimpleRequestProcessor.scala b/kamon-core/src/main/scala/test/SimpleRequestProcessor.scala new file mode 100644 index 00000000..5b216b39 --- /dev/null +++ b/kamon-core/src/main/scala/test/SimpleRequestProcessor.scala @@ -0,0 +1,83 @@ +package test + +import akka.actor._ +import kamon.Tracer +import spray.routing.SimpleRoutingApp +import akka.util.Timeout +import spray.httpx.RequestBuilding +import scala.concurrent.{Await, Future} + +object SimpleRequestProcessor extends App with SimpleRoutingApp with RequestBuilding { + import scala.concurrent.duration._ + import spray.client.pipelining._ + import akka.pattern.ask + + implicit val system = ActorSystem("test") + import system.dispatcher + + implicit val timeout = Timeout(30 seconds) + + val pipeline = sendReceive + val replier = system.actorOf(Props[Replier]) + + startServer(interface = "localhost", port = 9090) { + get { + path("test"){ + complete { + pipeline(Get("http://www.despegar.com.ar")).map(r => "Ok") + } + } ~ + path("reply" / Segment) { reqID => + complete { + if (Tracer.context().isEmpty) + println("ROUTE NO CONTEXT") + + (replier ? reqID).mapTo[String] + } + } ~ + path("ok") { + complete("ok") + } ~ + path("future") { + dynamic { + complete(Future { "OK" }) + } + } + } + } + +} + +object Verifier extends App { + + def go: Unit = { + import scala.concurrent.duration._ + import spray.client.pipelining._ + + implicit val system = ActorSystem("test") + import system.dispatcher + + implicit val timeout = Timeout(30 seconds) + + val pipeline = sendReceive + + val futures = Future.sequence(for(i <- 1 to 500) yield { + pipeline(Get("http://127.0.0.1:9090/reply/"+i)).map(r => r.entity.asString == i.toString) + }) + println("Everything is: "+ Await.result(futures, 10 seconds).forall(a => a == true)) + } + + + + +} + +class Replier extends Actor with ActorLogging { + def receive = { + case anything => + if(Tracer.context.isEmpty) + log.warning("PROCESSING A MESSAGE WITHOUT CONTEXT") + + sender ! anything + } +} -- cgit v1.2.3