aboutsummaryrefslogtreecommitdiff
path: root/mavigator-server/src/main/scala/mavigator/Main.scala
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-12-28 11:54:00 +0100
committerJakob Odersky <jakob@odersky.com>2016-01-29 13:50:37 -0800
commit4f4c799a6d9ccf333a3e609a2464e2f317875af7 (patch)
tree599232dd8c97fa9eb8f3426ea4375216ecadb386 /mavigator-server/src/main/scala/mavigator/Main.scala
parentc77bf21e7f4c197d34d23b2aebe5953a75d099e2 (diff)
downloadmavigator-4f4c799a6d9ccf333a3e609a2464e2f317875af7.tar.gz
mavigator-4f4c799a6d9ccf333a3e609a2464e2f317875af7.tar.bz2
mavigator-4f4c799a6d9ccf333a3e609a2464e2f317875af7.zip
Rename project and update dependencies
Diffstat (limited to 'mavigator-server/src/main/scala/mavigator/Main.scala')
-rw-r--r--mavigator-server/src/main/scala/mavigator/Main.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/mavigator-server/src/main/scala/mavigator/Main.scala b/mavigator-server/src/main/scala/mavigator/Main.scala
new file mode 100644
index 0000000..ca81fa9
--- /dev/null
+++ b/mavigator-server/src/main/scala/mavigator/Main.scala
@@ -0,0 +1,45 @@
+package mavigator
+
+import akka.actor._
+import akka.http.scaladsl._
+import akka.http.scaladsl.server._
+import akka.stream._
+import scala.concurrent.Await
+import scala.concurrent.duration.Duration
+
+object Main {
+
+ implicit lazy val system = ActorSystem("mavigator")
+ implicit lazy val materializer = ActorMaterializer()
+
+ def main(args: Array[String]): Unit = {
+ import system.dispatcher
+
+ system.log.info("System started.")
+
+ val router = (new Router(system)).route
+ val settings = Mavigator(system)
+
+ system.log.info(s"Starting server on ${settings.interface}:${settings.port}...")
+ val binding = Http(system).bindAndHandle(router, settings.interface, settings.port)
+
+ for (b <- binding) {
+ val addr = b.localAddress.getHostString()
+ val port = b.localAddress.getPort()
+ system.log.info(s"Server is listening on $addr:$port")
+ }
+
+ scala.io.StdIn.readLine()
+
+ binding.flatMap{b =>
+ system.log.info("Shutting down server...")
+ b.unbind()
+ }.onComplete{ _ =>
+ system.log.info("Server shut down")
+ system.terminate()
+ }
+
+ Await.result(system.whenTerminated, Duration.Inf)
+
+ }
+}