From c73a375db993fa5c82287761e2cc1fed23e6309c Mon Sep 17 00:00:00 2001 From: mfirry Date: Sat, 20 Feb 2016 10:17:48 +0100 Subject: [PATCH 1/4] Finch 0.10.0 --- frameworks/Scala/finch/build.sbt | 10 +++++----- .../Scala/finch/src/main/scala/WebServer.scala | 17 +++++++---------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/frameworks/Scala/finch/build.sbt b/frameworks/Scala/finch/build.sbt index 20ead6a4d84..b23673f93fa 100644 --- a/frameworks/Scala/finch/build.sbt +++ b/frameworks/Scala/finch/build.sbt @@ -9,11 +9,11 @@ com.github.retronym.SbtOneJar.oneJarSettings mainClass in (Compile, run) := Some("WebServer") libraryDependencies ++= Seq( - "com.github.finagle" %% "finch-core" % "0.8.0", - "com.github.finagle" %% "finch-circe" % "0.8.0", - "io.circe" %% "circe-core" % "0.1.1", - "io.circe" %% "circe-generic" % "0.1.1", - "io.circe" %% "circe-jawn" % "0.1.1" + "com.github.finagle" %% "finch-core" % "0.10.0", + "com.github.finagle" %% "finch-circe" % "0.10.0" , + "io.circe" %% "circe-core" % "0.3.0", + "io.circe" %% "circe-generic" % "0.3.0", + "io.circe" %% "circe-jawn" % "0.3.0" ) resolvers += Resolver.sonatypeRepo("snapshots") diff --git a/frameworks/Scala/finch/src/main/scala/WebServer.scala b/frameworks/Scala/finch/src/main/scala/WebServer.scala index 5d704e32413..283df1ac346 100644 --- a/frameworks/Scala/finch/src/main/scala/WebServer.scala +++ b/frameworks/Scala/finch/src/main/scala/WebServer.scala @@ -1,12 +1,9 @@ import java.net.InetSocketAddress import io.finch._ -import io.finch.route._ -import io.finch.response._ import com.twitter.finagle.Service -import com.twitter.finagle.Httpx -import com.twitter.finagle.httpx.{Response, Request} +import com.twitter.finagle.Http import com.twitter.util.Await @@ -14,25 +11,25 @@ import io.circe._ import io.circe.generic.auto._ import io.circe.jawn._ import io.circe.syntax._ -import io.finch.response.EncodeResponse import io.circe.{Decoder, Encoder, Json} object WebServer extends App { + import io.finch.circe._ val json = get("json") { - import io.finch.circe._ case class Message(message: String) Ok(Message("Hello, World!").asJson) } - val plaintext = get("plaintext") { - "Hello, World!" + val plaintext: Endpoint[String] = get("plaintext") { + Ok("Hello, World!") + .withContentType(Some("text/plain")) } - val api: Service[Request, Response] = (json :+: plaintext).toService + val api = json :+: plaintext Await.ready( - Httpx.serve(":9000", api) + Http.serve(":9000", api.toService) ) } From 8371c93ea658a403130cdb298ce3807c30640d41 Mon Sep 17 00:00:00 2001 From: mfirry Date: Thu, 25 Feb 2016 20:59:58 +0100 Subject: [PATCH 2/4] minor --- frameworks/Scala/finch/src/main/scala/WebServer.scala | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/frameworks/Scala/finch/src/main/scala/WebServer.scala b/frameworks/Scala/finch/src/main/scala/WebServer.scala index 283df1ac346..5a631091826 100644 --- a/frameworks/Scala/finch/src/main/scala/WebServer.scala +++ b/frameworks/Scala/finch/src/main/scala/WebServer.scala @@ -17,9 +17,7 @@ object WebServer extends App { import io.finch.circe._ val json = get("json") { - - case class Message(message: String) - Ok(Message("Hello, World!").asJson) + Ok(Json.obj("message" -> Json.string("Hello, World!"))) } val plaintext: Endpoint[String] = get("plaintext") { @@ -27,9 +25,7 @@ object WebServer extends App { .withContentType(Some("text/plain")) } - val api = json :+: plaintext - Await.ready( - Http.serve(":9000", api.toService) + Http.serve(":9000", (json :+: plaintext).toService) ) } From a01f76830d763ff7568224b41ca0245aae663b7b Mon Sep 17 00:00:00 2001 From: mfirry Date: Thu, 25 Feb 2016 21:33:05 +0100 Subject: [PATCH 3/4] No gzip. Date and Server headers added. --- .../Scala/finch/src/main/scala/WebServer.scala | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/frameworks/Scala/finch/src/main/scala/WebServer.scala b/frameworks/Scala/finch/src/main/scala/WebServer.scala index 5a631091826..a5be53765b2 100644 --- a/frameworks/Scala/finch/src/main/scala/WebServer.scala +++ b/frameworks/Scala/finch/src/main/scala/WebServer.scala @@ -1,4 +1,6 @@ import java.net.InetSocketAddress +import java.text.{DateFormat, SimpleDateFormat} +import java.util.Date import io.finch._ @@ -14,18 +16,24 @@ import io.circe.syntax._ import io.circe.{Decoder, Encoder, Json} object WebServer extends App { + private val dateFormat: DateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z") import io.finch.circe._ val json = get("json") { Ok(Json.obj("message" -> Json.string("Hello, World!"))) + .withHeader("Server" -> "finch") + .withHeader("Date" -> dateFormat.format(new Date())) } val plaintext: Endpoint[String] = get("plaintext") { Ok("Hello, World!") + .withHeader("Server" -> "finch") + .withHeader("Date" -> dateFormat.format(new Date())) .withContentType(Some("text/plain")) } - Await.ready( - Http.serve(":9000", (json :+: plaintext).toService) + Await.ready(Http.server + .withCompressionLevel(0) + .serve(":9000", (json :+: plaintext).toService) ) } From 5f26ddaa04cd891bec8622d202b8132793db59cc Mon Sep 17 00:00:00 2001 From: mfirry Date: Sat, 27 Feb 2016 10:22:06 +0100 Subject: [PATCH 4/4] Disabled tracing and stats. --- frameworks/Scala/finch/src/main/scala/WebServer.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frameworks/Scala/finch/src/main/scala/WebServer.scala b/frameworks/Scala/finch/src/main/scala/WebServer.scala index a5be53765b2..2eae3c06b82 100644 --- a/frameworks/Scala/finch/src/main/scala/WebServer.scala +++ b/frameworks/Scala/finch/src/main/scala/WebServer.scala @@ -6,7 +6,8 @@ import io.finch._ import com.twitter.finagle.Service import com.twitter.finagle.Http - +import com.twitter.finagle.stats.NullStatsReceiver +import com.twitter.finagle.tracing.NullTracer import com.twitter.util.Await import io.circe._ @@ -34,6 +35,8 @@ object WebServer extends App { Await.ready(Http.server .withCompressionLevel(0) + .withStatsReceiver(NullStatsReceiver) + .withTracer(NullTracer) .serve(":9000", (json :+: plaintext).toService) ) }