Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.sigmapoint.kmx.micro.stack
- import java.io.{InputStreamReader, BufferedReader}
- import akka.actor.{ActorRef, Props}
- import com.rabbitmq.client.ConnectionFactory
- import com.thenewmotion.akka.rabbitmq.ConnectionActor
- import com.typesafe.config.ConfigFactory
- import net.ceedubs.ficus.Ficus._
- import pl.sigmapoint.kmx.micro.actors.{AndroidReportsActor, IosAppsActor, IosReportsActor}
- import spray.json._
- import scala.io.Source
- trait CoreActors extends DefaultJsonProtocol with IosPersonaDefinitionsModel {
- this: Core =>
- val rabbitMqConnectionFactory = new ConnectionFactory()
- ConfigFactory.load().as[Option[String]]("kmx.reports.receiver.queue.uri").map { uriFromConfig =>
- println(s"using amqp uri = $uriFromConfig")
- rabbitMqConnectionFactory.setUri(uriFromConfig)
- }
- val iosPersonaDefinitions: IosPersonaDefinitions = {
- println("before from file " + System.currentTimeMillis())
- val string: String = readResource("src/main/resources/iosPersonDefs.json")
- println("read from file" + System.currentTimeMillis())
- val parsed: IosPersonaDefinitions = iosPersonaDefinitionsJsonFormat.read(string.parseJson) //lastModified timestamp stored in file must be in miliseconds!
- println("parsed json" + System.currentTimeMillis())
- parsed
- }
- val connectionActor: ActorRef = actorSystem.actorOf(ConnectionActor.props(rabbitMqConnectionFactory), "QueueConnection")
- val sampleActor = actorSystem.actorOf(Props(classOf[AndroidReportsActor], connectionActor), "androidActor")
- val iosReportActor = actorSystem.actorOf(Props(classOf[IosReportsActor], connectionActor))
- val iosAppsActor = actorSystem.actorOf(Props(classOf[IosAppsActor], iosPersonaDefinitions, connectionActor))
- private def readResource(resourcePath: String): String = {
- val path = if (!resourcePath.startsWith("/")) "/" + resourcePath else resourcePath
- val reader = new BufferedReader(new InputStreamReader(getClass.getResourceAsStream(path)))
- val sb = StringBuilder.newBuilder
- var line = reader.readLine()
- while(line!=null){
- sb.append(line)
- line = reader.readLine()
- }
- sb.mkString
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement