|
@@ -1,4 +1,3 @@
|
|
-import java.text.{DateFormat, SimpleDateFormat}
|
|
|
|
import java.util.Date
|
|
import java.util.Date
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper
|
|
import com.fasterxml.jackson.databind.ObjectMapper
|
|
@@ -13,14 +12,13 @@ import com.twitter.io.Buf
|
|
object Main extends App {
|
|
object Main extends App {
|
|
|
|
|
|
val mapper: ObjectMapper = new ObjectMapper().registerModule(DefaultScalaModule)
|
|
val mapper: ObjectMapper = new ObjectMapper().registerModule(DefaultScalaModule)
|
|
- val dateFormat: DateFormat = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z")
|
|
|
|
|
|
|
|
val helloWorld: Buf = Buf.Utf8("Hello, World!")
|
|
val helloWorld: Buf = Buf.Utf8("Hello, World!")
|
|
|
|
|
|
val muxer: HttpMuxer = new HttpMuxer()
|
|
val muxer: HttpMuxer = new HttpMuxer()
|
|
.withHandler("/json", Service.mk { req: Request =>
|
|
.withHandler("/json", Service.mk { req: Request =>
|
|
val rep = Response()
|
|
val rep = Response()
|
|
- rep.content = Buf.Utf8(mapper.writeValueAsString(Map("message" -> "Hello, World!")))
|
|
|
|
|
|
+ rep.content = Buf.ByteArray.Owned(mapper.writeValueAsBytes(Map("message" -> "Hello, World!")))
|
|
rep.contentType = "application/json"
|
|
rep.contentType = "application/json"
|
|
|
|
|
|
Future.value(rep)
|
|
Future.value(rep)
|
|
@@ -34,13 +32,16 @@ object Main extends App {
|
|
})
|
|
})
|
|
|
|
|
|
val serverAndDate: SimpleFilter[Request, Response] = new SimpleFilter[Request, Response] {
|
|
val serverAndDate: SimpleFilter[Request, Response] = new SimpleFilter[Request, Response] {
|
|
- def apply(req: Request, s: Service[Request, Response]): Future[Response] =
|
|
|
|
- s(req).map { rep =>
|
|
|
|
- rep.headerMap.set("Server", "Finagle")
|
|
|
|
- rep.headerMap.set("Date", dateFormat.format(new Date()))
|
|
|
|
|
|
+
|
|
|
|
+ private[this] val addServerAndDate: Response => Response = { rep =>
|
|
|
|
+ rep.server = "Finagle"
|
|
|
|
+ rep.date = new Date()
|
|
|
|
|
|
rep
|
|
rep
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ def apply(req: Request, s: Service[Request, Response]): Future[Response] =
|
|
|
|
+ s(req).map(addServerAndDate)
|
|
}
|
|
}
|
|
|
|
|
|
Await.ready(Http.server
|
|
Await.ready(Http.server
|