src/main/scala/Example.scala
author Tomas Zeman <tzeman@volny.cz>
Fri, 24 Jul 2015 15:31:40 +0200
changeset 2 04af787ba66f
parent 0 a279a342bc78
child 4 b25c02bd6b11
permissions -rw-r--r--
Configuration via config-annotation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
package couchdb.changes
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
import akka.actor._
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
import spray.http.Uri
2
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
     5
import com.typesafe.config.ConfigFactory
0
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
object LoggingActor extends Actor with ActorLogging {
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
  log.info("Initializing LoggingActor")
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
  def receive: Receive = {
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
    case x => log.info("Received {}", x)
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
  }
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
}
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
2
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    14
object Example extends App with settings {
0
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
  val system = ActorSystem()
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
  val stream = system.actorOf(Props(new ChangesStreamActor(
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
    system.actorOf(Props(LoggingActor)))))
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
2
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    20
  def config = ConfigFactory.load()
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    21
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    22
  stream ! Uri(s"${couchConf.url}/_changes").withQuery(
0
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
    "feed" -> "continuous"
2
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    24
  , "heartbeat" -> couchConf.heartbeat.toMillis.toString
0
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
  , "include_docs" -> "true"
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
  )
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
}
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
2
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    30
import com.wacai.config.annotation._
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    31
import scala.concurrent.duration._
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    32
@conf trait settings extends Configurable {
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    33
  val couchConf = new {
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    34
    val url = "http://localhost:5984/example"
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    35
    val heartbeat = 5 seconds
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    36
  }
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    37
}
04af787ba66f Configuration via config-annotation
Tomas Zeman <tzeman@volny.cz>
parents: 0
diff changeset
    38
0
a279a342bc78 Initial import
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
// vim: set ts=2 sw=2 et: