Browse Source

Merge https://github.com/sksamuel/FrameworkBenchmarks into 1610

Mattie Coccia 10 years ago
parent
commit
4a2ba801d1

+ 1 - 1
frameworks/Scala/scruffy/README.md

@@ -7,7 +7,7 @@ This is the Scruffy portion of a [benchmarking test suite](../) comparing a vari
 The tests were run with:
 
 * [Java OpenJDK 1.7.0_09](http://openjdk.java.net/)
-* [Scruffy 1.9.0](http://scruffy-project.github.io/)
+* [Scruffy 1.13.0](http://scruffy-project.github.io/)
 
 ## Test URLs
 

+ 5 - 3
frameworks/Scala/scruffy/build.sbt

@@ -4,11 +4,13 @@ organization := "com.sksamuel.scruffy"
 
 scalaVersion := "2.11.6"
 
-version := "10.1" // version 10 for round 10
+version := "11.0" // version 0 for round 11
 
 libraryDependencies ++= Seq(
-  "com.sksamuel.scruffy" %% "scruffy-undertow" % "1.9.0",
-  "org.mongodb" %% "casbah-core" % "2.7.1"
+  "com.sksamuel.scruffy" %% "scruffy-undertow" % "1.13.0",
+  "com.sksamuel.scruffy" %% "scruffy-jackson" % "1.13.0",
+  "com.sksamuel.scruffy" %% "scruffy-client" % "1.13.0" % "test",
+  "org.mongodb" %% "casbah-core" % "2.8.0"
 )
 
 sbtassembly.Plugin.assemblySettings

+ 1 - 1
frameworks/Scala/scruffy/project/build.properties

@@ -1 +1 @@
-sbt.version=0.13.2
+sbt.version=0.13.7

+ 1 - 1
frameworks/Scala/scruffy/setup.sh

@@ -6,4 +6,4 @@ sed -i 's|database_host|'"${DBHOST}"'|g' src/main/scala/scruffy/examples/Test2En
 
 $SBT_HOME/bin/sbt assembly
 
-java -jar target/scala-2.11/scruffy-benchmark-assembly-10.1.jar -Dhostname=${DBHOST} &
+java -jar target/scala-2.11/scruffy-benchmark-assembly-11.0.jar -Dhostname=${DBHOST} &

+ 8 - 7
frameworks/Scala/scruffy/src/main/scala/scruffy/examples/Main.scala

@@ -1,22 +1,23 @@
 package scruffy.examples
 
+import com.sksamuel.scruffy.ScruffyContext
 import com.sksamuel.scruffy.undertow.ScruffyUndertowHttpHandler
-import io.undertow.{UndertowOptions, Undertow}
+import io.undertow.{Undertow, UndertowOptions}
 
 /** @author Stephen Samuel */
 object Main extends App {
 
+  import scala.concurrent.ExecutionContext.Implicits.global
+
   val port = 8080
 
-  val scruffy = new ScruffyUndertowHttpHandler
-  scruffy.mount(new Test1Endpoint)
-  scruffy.mount(new Test2Endpoint)
-  scruffy.mount(new Test6Endpoint)
+  val context = ScruffyContext(Test1Endpoint, Test2Endpoint, Test6Endpoint)
+  val handler = new ScruffyUndertowHttpHandler(context)
 
   val server = Undertow
     .builder()
     .addHttpListener(port, "localhost")
-    .setHandler(scruffy)
+    .setHandler(handler)
     .setServerOption(UndertowOptions.ALWAYS_SET_KEEP_ALIVE, java.lang.Boolean.FALSE)
     .setServerOption(UndertowOptions.ALWAYS_SET_DATE, java.lang.Boolean.TRUE)
     .setServerOption(UndertowOptions.ENABLE_CONNECTOR_STATISTICS, java.lang.Boolean.FALSE)
@@ -24,7 +25,7 @@ object Main extends App {
 
     .build()
 
-  println("Starting Undertow...")
+  println("Starting Scruffy on Undertow...")
   server.start()
   println(s"Started on port [$port]. Interrupt to exit.")
 }

+ 6 - 6
frameworks/Scala/scruffy/src/main/scala/scruffy/examples/Test1Endpoint.scala

@@ -1,14 +1,14 @@
 package scruffy.examples
 
-import com.sksamuel.scruffy.HttpEndpointProvider
+import com.sksamuel.scruffy.HttpModule
 
 /** @author Stephen Samuel */
-class Test1Endpoint extends HttpEndpointProvider {
+object Test1Endpoint extends HttpModule {
 
-  get("json") { implicit req =>
-    json {
-      Message("Hello, World!")
-    }
+  import com.sksamuel.scruffy.jackson.ScruffyJackson.Implicits._
+
+  get("json") { req =>
+    Message("Hello, World!").json
   }
 }
 

+ 12 - 11
frameworks/Scala/scruffy/src/main/scala/scruffy/examples/Test2Endpoint.scala

@@ -1,13 +1,16 @@
 package scruffy.examples
 
-import com.mongodb.casbah.Imports._
-import com.sksamuel.scruffy.HttpEndpointProvider
 import java.util.concurrent.ThreadLocalRandom
 
+import com.mongodb.casbah.Imports._
+import com.sksamuel.scruffy.HttpModule
+
 /** @author Stephen Samuel */
-class Test2Endpoint() extends HttpEndpointProvider {
+object Test2Endpoint extends HttpModule {
+
+  import com.sksamuel.scruffy.jackson.ScruffyJackson.Implicits._
 
-  val hostname = "database_host"
+  val hostname = "localhost"
   val connection = MongoConnection(hostname, 27017)
   val collection = connection.getDB("hello_world").getCollection("world")
 
@@ -17,13 +20,11 @@ class Test2Endpoint() extends HttpEndpointProvider {
   //for ( k <- 1 to 10000 )
   //  collection.save(DBObject("_id" -> k, "id" -> k, "randomNumber" -> random.nextInt(10000).toDouble))
 
-  get("db") { implicit req =>
-    json {
-      val id = ThreadLocalRandom.current.nextInt(10000)
-      val dbo = collection.findOne(DBObject("_id" -> id), fields)
-      val randomNumber = Math.round(dbo.get("randomNumber").toString.toFloat)
-      Output(id, randomNumber)
-    }
+  get("db") { req =>
+    val id = ThreadLocalRandom.current.nextInt(10000)
+    val dbo = collection.findOne(DBObject("_id" -> id), fields)
+    val randomNumber = Math.round(dbo.get("randomNumber").toString.toFloat)
+    Output(id, randomNumber).json
   }
 }
 

+ 2 - 2
frameworks/Scala/scruffy/src/main/scala/scruffy/examples/Test6Endpoint.scala

@@ -1,10 +1,10 @@
 package scruffy.examples
 
-import com.sksamuel.scruffy.HttpEndpointProvider
+import com.sksamuel.scruffy.HttpModule
 import com.sksamuel.scruffy.http.MediaType
 
 /** @author Stephen Samuel */
-class Test6Endpoint extends HttpEndpointProvider {
+object Test6Endpoint extends HttpModule {
 
   get("plaintext") { req =>
     ok("Hello, World!", MediaType.TextPlain)

+ 1 - 1
frameworks/Scala/scruffy/src/test/scala/BenchmarkVerify.scala

@@ -11,7 +11,7 @@ object BenchmarkVerify extends App {
 
   val sw = Stopwatch()
 
-  val futures = for ( k <- 1 to 10000 ) yield {
+  val futures = for ( k <- 1 to 30000 ) yield {
     client.get("http://localhost:8080/json").execute
   }