From 4eab92016a793eb58782baa7c865498d66f611f1 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Fri, 20 Jul 2018 17:03:21 +0800 Subject: stick with blocking mode for now --- cask/src/cask/Main.scala | 6 +++--- cask/src/cask/Routes.scala | 8 ++++---- cask/test/src/test/cask/CaskTest.scala | 17 ++--------------- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/cask/src/cask/Main.scala b/cask/src/cask/Main.scala index 705ed35..2614436 100644 --- a/cask/src/cask/Main.scala +++ b/cask/src/cask/Main.scala @@ -1,10 +1,10 @@ package cask import cask.Router.EntryPoint - import java.io.OutputStream import java.nio.ByteBuffer import io.undertow.Undertow +import io.undertow.server.handlers.BlockingHandler import io.undertow.server.{HttpHandler, HttpServerExchange} import io.undertow.util.{Headers, HttpString} @@ -19,7 +19,7 @@ class Main(servers: Routes*){ val server = Undertow.builder .addHttpListener(port, host) - .setHandler(new HttpHandler() { + .setHandler(new BlockingHandler(new HttpHandler() { def handleRequest(exchange: HttpServerExchange): Unit = { val routeOpt = allRoutes @@ -82,7 +82,7 @@ class Main(servers: Routes*){ } } - }) + })) .build server.start() } diff --git a/cask/src/cask/Routes.scala b/cask/src/cask/Routes.scala index a4ff770..156fdbf 100644 --- a/cask/src/cask/Routes.scala +++ b/cask/src/cask/Routes.scala @@ -28,10 +28,10 @@ object ParamType{ trait RouteBase{ val path: String } -class get(val path: String, async: Boolean = false) extends StaticAnnotation with RouteBase -class post(val path: String, async: Boolean = false) extends StaticAnnotation with RouteBase -class put(val path: String, async: Boolean = false) extends StaticAnnotation with RouteBase -class route(val path: String, val methods: Seq[String], async: Boolean = false) extends StaticAnnotation with RouteBase +class get(val path: String) extends StaticAnnotation with RouteBase +class post(val path: String) extends StaticAnnotation with RouteBase +class put(val path: String) extends StaticAnnotation with RouteBase +class route(val path: String, val methods: Seq[String]) extends StaticAnnotation with RouteBase case class Response(data: Response.Data, statusCode: Int = 200, diff --git a/cask/test/src/test/cask/CaskTest.scala b/cask/test/src/test/cask/CaskTest.scala index a2e0f47..5330dce 100644 --- a/cask/test/src/test/cask/CaskTest.scala +++ b/cask/test/src/test/cask/CaskTest.scala @@ -1,6 +1,5 @@ package test.cask -import io.undertow.io.Receiver.{ErrorCallback, FullBytesCallback} import io.undertow.server.HttpServerExchange object MyServer extends cask.Routes{ @@ -16,23 +15,11 @@ object MyServer extends cask.Routes{ @cask.get("/path/::subPath") def showSubpath(x: HttpServerExchange, subPath: String) = { - x.getRequestReceiver().receiveFullBytes((exchange, data) => { - - }: FullBytesCallback, - (exchange, exception) => { - - }: ErrorCallback - ) + val length = x.getInputStream.readAllBytes().length println(x) - s"Subpath $subPath" + s"Subpath $subPath + $length" } -// @cask.post("/echo-size") -// def echoSize(x: HttpServerExchange, subPath: String) = { -// println(x) -// s"Subpath $subPath" -// } - initialize() } -- cgit v1.2.3