Browse Source

Merge branch 'master' into docker

# Conflicts:
#	.travis.yml
Michael Hixson 7 years ago
parent
commit
f7467be48d
100 changed files with 340 additions and 1479 deletions
  1. 3 5
      .travis.yml
  2. 7 2
      README.md
  3. 2 2
      frameworks/CSharp/aspnetcore/Benchmarks/Data/DapperDb.cs
  4. 0 8
      frameworks/CSharp/aspnetcore/Benchmarks/Data/RawDb.cs
  5. 1 1
      frameworks/CSharp/aspnetcore/Benchmarks/appsettings.postgresql.json
  6. 17 1
      frameworks/CSharp/aspnetcore/setup-plaintext.sh
  7. 0 26
      frameworks/Java/comsat-servlet/README.md
  8. 0 47
      frameworks/Java/comsat-servlet/benchmark_config.json
  9. 0 3
      frameworks/Java/comsat-servlet/setup.sh
  10. 0 7
      frameworks/Java/comsat-servlet/source_code
  11. 0 4
      frameworks/Java/comsat-webactors/.gitignore
  12. 0 25
      frameworks/Java/comsat-webactors/README.md
  13. 0 47
      frameworks/Java/comsat-webactors/benchmark_config.json
  14. 0 78
      frameworks/Java/comsat-webactors/build.gradle
  15. BIN
      frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.jar
  16. 0 6
      frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.properties
  17. 0 164
      frameworks/Java/comsat-webactors/gradlew
  18. 0 90
      frameworks/Java/comsat-webactors/gradlew.bat
  19. 0 8
      frameworks/Java/comsat-webactors/setup-generic.sh
  20. 0 3
      frameworks/Java/comsat-webactors/setup.sh
  21. 0 6
      frameworks/Java/comsat-webactors/source_code
  22. 0 6
      frameworks/Java/comsat-webactors/src/main/java/hello/Server.java
  23. 0 10
      frameworks/Java/comsat-webactors/src/main/java/hello/World.java
  24. 0 0
      frameworks/Java/comsat/.gitignore
  25. 39 0
      frameworks/Java/comsat/README.md
  26. 87 0
      frameworks/Java/comsat/benchmark_config.json
  27. 22 4
      frameworks/Java/comsat/build.gradle
  28. 0 0
      frameworks/Java/comsat/gradle/wrapper/gradle-wrapper.jar
  29. 0 0
      frameworks/Java/comsat/gradle/wrapper/gradle-wrapper.properties
  30. 0 0
      frameworks/Java/comsat/gradlew
  31. 0 0
      frameworks/Java/comsat/gradlew.bat
  32. 1 1
      frameworks/Java/comsat/setup-generic.sh
  33. 1 1
      frameworks/Java/comsat/setup-servlet-jetty.sh
  34. 1 1
      frameworks/Java/comsat/setup-servlet-undertow.sh
  35. 1 1
      frameworks/Java/comsat/setup-webactors-netty.sh
  36. 1 1
      frameworks/Java/comsat/setup-webactors-undertow.sh
  37. 0 0
      frameworks/Java/comsat/src/main/java/hello/Server.java
  38. 0 0
      frameworks/Java/comsat/src/main/java/hello/World.java
  39. 3 1
      frameworks/Java/comsat/src/main/java/hello/servlet/JettyServer.java
  40. 4 1
      frameworks/Java/comsat/src/main/java/hello/servlet/JsonServlet.java
  41. 3 1
      frameworks/Java/comsat/src/main/java/hello/servlet/PlaintextServlet.java
  42. 3 1
      frameworks/Java/comsat/src/main/java/hello/servlet/UndertowServer.java
  43. 2 1
      frameworks/Java/comsat/src/main/java/hello/webactors/NettyServer.java
  44. 3 1
      frameworks/Java/comsat/src/main/java/hello/webactors/UndertowServer.java
  45. 1 1
      frameworks/Java/comsat/src/main/java/hello/webactors/WebActor.java
  46. 0 1
      frameworks/Java/dropwizard/hello-world-mysql.yml
  47. 1 1
      frameworks/Java/grizzly-bm/README.md
  48. 25 2
      frameworks/Java/grizzly-bm/benchmark_config.json
  49. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/.gitignore
  50. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/README.md
  51. 1 0
      frameworks/Java/grizzly-bm/grizzly-jersey/pom.xml
  52. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/source_code
  53. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/Common.java
  54. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/DbResource.java
  55. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/FortunesResource.java
  56. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/JerseyWebServer.java
  57. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/JsonMessageBodyWriter.java
  58. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/JsonResource.java
  59. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/MustacheViewProcessor.java
  60. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/PlaintextResource.java
  61. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/ServerHeaderFilter.java
  62. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/SessionFactoryProvider.java
  63. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/domain/Fortune.java
  64. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/domain/World.java
  65. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/resources/fortunes.mustache
  66. 0 0
      frameworks/Java/grizzly-bm/grizzly-jersey/src/main/resources/hibernate.cfg.xml
  67. 1 1
      frameworks/Java/grizzly-bm/setup-grizzly-jersey.sh
  68. 0 28
      frameworks/Java/grizzly-jersey/benchmark_config.json
  69. 0 28
      frameworks/Java/undertow-jersey-c3p0/benchmark_config.json
  70. 0 137
      frameworks/Java/undertow-jersey-c3p0/pom.xml
  71. 0 1
      frameworks/Java/undertow-jersey-hikaricp/.gitignore
  72. 0 29
      frameworks/Java/undertow-jersey-hikaricp/README.md
  73. 0 27
      frameworks/Java/undertow-jersey-hikaricp/benchmark_config.json
  74. 0 18
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/Common.java
  75. 0 80
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/DbResource.java
  76. 0 44
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/FortunesResource.java
  77. 0 79
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/JerseyWebServer.java
  78. 0 50
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/JsonMessageBodyWriter.java
  79. 0 22
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/JsonResource.java
  80. 0 18
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/PlaintextResource.java
  81. 0 20
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/RequestExceptionMapper.java
  82. 0 19
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/ServerResponseFilter.java
  83. 0 45
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/SessionFactoryProvider.java
  84. 0 30
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/domain/Fortune.java
  85. 0 14
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/domain/World.java
  86. 0 75
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/undertow/UndertowContainerResponseWriter.java
  87. 0 111
      frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/undertow/UndertowJerseyContainer.java
  88. 0 20
      frameworks/Java/undertow-jersey-hikaricp/src/main/resources/fortunes.mustache
  89. 0 0
      frameworks/Java/undertow-jersey/.gitignore
  90. 2 2
      frameworks/Java/undertow-jersey/README.md
  91. 48 0
      frameworks/Java/undertow-jersey/benchmark_config.json
  92. 1 1
      frameworks/Java/undertow-jersey/hikaricp.sh
  93. 59 11
      frameworks/Java/undertow-jersey/pom.xml
  94. 0 0
      frameworks/Java/undertow-jersey/setup.sh
  95. 0 0
      frameworks/Java/undertow-jersey/src/main/java/hello/Common.java
  96. 0 0
      frameworks/Java/undertow-jersey/src/main/java/hello/DbResource.java
  97. 0 0
      frameworks/Java/undertow-jersey/src/main/java/hello/FortunesResource.java
  98. 0 0
      frameworks/Java/undertow-jersey/src/main/java/hello/JerseyWebServer.java
  99. 0 0
      frameworks/Java/undertow-jersey/src/main/java/hello/JsonMessageBodyWriter.java
  100. 0 0
      frameworks/Java/undertow-jersey/src/main/java/hello/JsonResource.java

+ 3 - 5
.travis.yml

@@ -75,13 +75,11 @@ env:
     # - "TESTDIR=Java/baratine"
     # - "TESTDIR=Java/baratine"
     # - "TESTDIR=Java/bayou"
     # - "TESTDIR=Java/bayou"
     # - "TESTDIR=Java/blade"
     # - "TESTDIR=Java/blade"
-    # - "TESTDIR=Java/comsat-servlet"
-    # - "TESTDIR=Java/comsat-webactors"
+    # - "TESTDIR=Java/comsat"
     # - "TESTDIR=Java/curacao"
     # - "TESTDIR=Java/curacao"
     # - "TESTDIR=Java/dropwizard"
     # - "TESTDIR=Java/dropwizard"
      - "TESTDIR=Java/gemini"
      - "TESTDIR=Java/gemini"
     # - "TESTDIR=Java/grizzly-bm"
     # - "TESTDIR=Java/grizzly-bm"
-    # - "TESTDIR=Java/grizzly-jersey"
     # - "TESTDIR=Java/jawn"
     # - "TESTDIR=Java/jawn"
     # - "TESTDIR=Java/jetty"
     # - "TESTDIR=Java/jetty"
     # - "TESTDIR=Java/jlhttp"
     # - "TESTDIR=Java/jlhttp"
@@ -101,14 +99,14 @@ env:
     # - "TESTDIR=Java/spring"
     # - "TESTDIR=Java/spring"
     # - "TESTDIR=Java/tapestry"
     # - "TESTDIR=Java/tapestry"
      - "TESTDIR=Java/undertow"
      - "TESTDIR=Java/undertow"
-    # - "TESTDIR=Java/undertow-jersey-c3p0"
-    # - "TESTDIR=Java/undertow-jersey-hikaricp"
+    # - "TESTDIR=Java/undertow-jersey"
     # - "TESTDIR=Java/vertx"
     # - "TESTDIR=Java/vertx"
     # - "TESTDIR=Java/vertx-web"
     # - "TESTDIR=Java/vertx-web"
     # - "TESTDIR=Java/wicket"
     # - "TESTDIR=Java/wicket"
     # - "TESTDIR=Java/wildfly-ee7"
     # - "TESTDIR=Java/wildfly-ee7"
      - "TESTLANG=JavaScript"
      - "TESTLANG=JavaScript"
     # - "TESTDIR=Kotlin/hexagon"
     # - "TESTDIR=Kotlin/hexagon"
+    # - "TESTDIR=Kotlin/http4k"
     # - "TESTDIR=Kotlin/ktor"
     # - "TESTDIR=Kotlin/ktor"
     # - "TESTDIR=Kotlin/pronghorn"
     # - "TESTDIR=Kotlin/pronghorn"
     # - "TESTDIR=Lua/lapis"
     # - "TESTDIR=Lua/lapis"

+ 7 - 2
README.md

@@ -54,13 +54,18 @@ Once you open an SSH connection to your vagrant box, start the new test initiali
 This will walk you through the entire process of creating a new test to include in the suite.
 This will walk you through the entire process of creating a new test to include in the suite.
 
 
 
 
-## Official Documentation
+## Resources
 
 
+#### Official Documentation
 Our official documentation can be found at 
 Our official documentation can be found at 
 [frameworkbenchmarks.readthedocs.org](https://frameworkbenchmarks.readthedocs.org/). 
 [frameworkbenchmarks.readthedocs.org](https://frameworkbenchmarks.readthedocs.org/). 
 If you find any errors or areas for improvement within the docs, feel free to either submit a [pull request](https://github.com/TechEmpower/TFB-Documentation/pulls) or [issue](https://github.com/TechEmpower/TFB-Documentation/issues) at the [documentation repository](https://github.com/TechEmpower/TFB-Documentation).
 If you find any errors or areas for improvement within the docs, feel free to either submit a [pull request](https://github.com/TechEmpower/TFB-Documentation/pulls) or [issue](https://github.com/TechEmpower/TFB-Documentation/issues) at the [documentation repository](https://github.com/TechEmpower/TFB-Documentation).
 
 
-If you have a `results.json` file that you would like to visualize, you can [do that here](https://www.techempower.com/benchmarks/#section=test)(these will be visualized using the metadata from the last known round; if you are adding a new test, it will not visualize anything).
+#### Live Results
+Results of continuous benchmarking runs are available in real time [here](https://tfb-status.techempower.com/).
+
+#### Data Visualization
+If you have a `results.json` file that you would like to visualize, you can [do that here](https://www.techempower.com/benchmarks/#section=test)(these will be visualized using the metadata from the last known round; if you are adding a new test, it will not visualize anything). You can also attach a `runid` parameter to that url where `runid` is a run listed on [tfb-status](https://tfb-status.techempower.com) like so: https://www.techempower.com/benchmarks/#section=test&runid=fd07b64e-47ce-411e-8b9b-b13368e988c6
 
 
 ## Contributing
 ## Contributing
 
 

+ 2 - 2
frameworks/CSharp/aspnetcore/Benchmarks/Data/DapperDb.cs

@@ -37,9 +37,9 @@ namespace Benchmarks.Data
             }
             }
         }
         }
 
 
-        async Task<World> ReadSingleRow(DbConnection db)
+        Task<World> ReadSingleRow(DbConnection db)
         {
         {
-            return await db.QueryFirstOrDefaultAsync<World>(
+            return db.QueryFirstOrDefaultAsync<World>(
                     "SELECT id, randomnumber FROM world WHERE id = @Id",
                     "SELECT id, randomnumber FROM world WHERE id = @Id",
                     new { Id = _random.Next(1, 10001) });
                     new { Id = _random.Next(1, 10001) });
         }
         }

+ 0 - 8
frameworks/CSharp/aspnetcore/Benchmarks/Data/RawDb.cs

@@ -63,10 +63,6 @@ namespace Benchmarks.Data
             id.Value = _random.Next(1, 10001);
             id.Value = _random.Next(1, 10001);
             cmd.Parameters.Add(id);
             cmd.Parameters.Add(id);
 
 
-            // Prepared statements improve PostgreSQL performance by 10-15%
-            // Especially if you only call them once, instead of on every execution :)
-            cmd.Prepare();
-
             return cmd;
             return cmd;
         }
         }
 
 
@@ -135,7 +131,6 @@ namespace Benchmarks.Data
                     }
                     }
 
 
                     updateCmd.CommandText = updateCommand.ToString();
                     updateCmd.CommandText = updateCommand.ToString();
-                    updateCmd.Prepare();
                     await updateCmd.ExecuteNonQueryAsync();
                     await updateCmd.ExecuteNonQueryAsync();
                 }
                 }
             }
             }
@@ -155,9 +150,6 @@ namespace Benchmarks.Data
                 db.ConnectionString = _connectionString;
                 db.ConnectionString = _connectionString;
                 await db.OpenAsync();
                 await db.OpenAsync();
 
 
-                // Prepared statements improve PostgreSQL performance by 10-15%
-                cmd.Prepare();
-
                 using (var rdr = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection))
                 using (var rdr = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection))
                 {
                 {
                     while (await rdr.ReadAsync())
                     while (await rdr.ReadAsync())

+ 1 - 1
frameworks/CSharp/aspnetcore/Benchmarks/appsettings.postgresql.json

@@ -1,4 +1,4 @@
 {
 {
-  "ConnectionString": "Server={db_server_placeholder};Database=hello_world;User Id=benchmarkdbuser;Password=benchmarkdbpass;Maximum Pool Size=1024;NoResetOnClose=true",
+  "ConnectionString": "Server={db_server_placeholder};Database=hello_world;User Id=benchmarkdbuser;Password=benchmarkdbpass;Maximum Pool Size=1024;NoResetOnClose=true;Max Auto Prepare=3",
   "Database": "postgresql"
   "Database": "postgresql"
 }
 }

+ 17 - 1
frameworks/CSharp/aspnetcore/setup-plaintext.sh

@@ -1,3 +1,19 @@
 #!/bin/bash
 #!/bin/bash
 
 
-source run-linux.sh plaintext $(($(nproc)*3/10))
+if [ "$(nproc)" -eq "80" ]
+then
+    threadCount=24
+fi
+
+if [ "$(nproc)" -eq "4" ]
+then
+    threadCount=2
+fi
+
+if [ -z "$threadCount" ]
+then
+    echo "Invalid thread count ($(nproc)), using default"
+    threadCount=2
+fi
+
+source run-linux.sh plaintext $threadCount

+ 0 - 26
frameworks/Java/comsat-servlet/README.md

@@ -1,26 +0,0 @@
-# Parallel Universe Comsat Servlet Undertow Benchmarking Test
-
-This is the [Parallel Universe Comsat Servlet](http://docs.paralleluniverse.co/comsat/#servlets) version of a [benchmarking test suite](../) comparing a variety of web development platforms. It serves requests in lightweight [Quasar fibers](http://docs.paralleluniverse.co/quasar/#fibers) rather than heavyweight Java threads and it works with any servlet containers (tests are run against embedded Undertow, Jetty and Tomcat). The servlet container used in this benchmark is Undertow.
-
-### JSON Encoding and Plaintext Tests
-
-* [JSON test source](src/main/java/hello/JsonServlet.java)
-* [Plaintext test source](src/main/java/hello/PlaintextServlet.java)
-
-## Versions
-
-* Jackson JSON 2.7.4 (https://github.com/FasterXML/jackson)
-* Quasar 0.7.5 (http://docs.paralleluniverse.co/quasar)
-* Comsat 0.7.0 (http://docs.paralleluniverse.co/comsat)
-* Jetty 9.3.9.v20160517 (https://www.eclipse.org/jetty/)
-* Undertow 1.3.22-final (http://undertow.io)
-
-## Test URLs
-
-### JSON Encoding Test
-
-    http://localhost:8080/json
-
-### Plaintest
-
-    http://localhost:8080/plaintest

+ 0 - 47
frameworks/Java/comsat-servlet/benchmark_config.json

@@ -1,47 +0,0 @@
-{
-  "framework": "comsat-servlet",
-  "tests": [
-    {
-      "default": {
-        "setup_file": "setup-jetty",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "None",
-        "language": "Java",
-        "flavor": "None",
-        "orm": "Raw",
-        "platform": "Servlet",
-        "webserver": "None",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "comsat-servlet-jetty",
-        "notes": "Comsat servlet on embedded Jetty",
-        "versus": ""
-      },
-      "undertow": {
-        "setup_file": "setup-undertow",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "None",
-        "language": "Java",
-        "flavor": "None",
-        "orm": "Raw",
-        "platform": "Servlet",
-        "webserver": "None",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "Comsat",
-        "notes": "Comsat servlet on embedded Undertow",
-        "versus": ""
-      }
-    }
-  ]
-}

+ 0 - 3
frameworks/Java/comsat-servlet/setup.sh

@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-
-. setup-jetty.sh

+ 0 - 7
frameworks/Java/comsat-servlet/source_code

@@ -1,7 +0,0 @@
-./comsat-servlet/src/main/java/hello/
-./comsat-servlet/src/main/java/hello/HelloWorld.java
-./comsat-servlet/src/main/java/hello/JettyServer.java
-./comsat-servlet/src/main/java/hello/UndertowServer.java
-./comsat-servlet/src/main/java/hello/Server.java
-./comsat-servlet/src/main/java/hello/PlaintextServlet.java
-./comsat-servlet/src/main/java/hello/JsonServlet.java

+ 0 - 4
frameworks/Java/comsat-webactors/.gitignore

@@ -1,4 +0,0 @@
-.gradle
-build/
-gradle-app.setting
-!gradle-wrapper.jar

+ 0 - 25
frameworks/Java/comsat-webactors/README.md

@@ -1,25 +0,0 @@
-# Parallel Universe Comsat Web Actors Netty Benchmarking Test
-
-This is the [Parallel Universe Comsat Web Actors](http://docs.paralleluniverse.co/comsat/#servlets) version of a [benchmarking test suite](../) comparing a variety of web development platforms. It serves requests in Erlang-like actors running on lightweight [Quasar Fibers](http://docs.paralleluniverse.co/quasar/#fibers) rather than heavyweight Java threads and it can run on any servlet container (tested regularly on Undertow, Jetty and Tomcat) as well as an Undertow or Netty handler (present configuration).
-
-### JSON and Plaintest Encoding Tests
-
-* [JSON test source](src/main/java/hello/HelloWebActor.java)
-
-## Versions
-
-* Jackson JSON 2.7.0 (https://github.com/FasterXML/jackson)
-* Quasar 0.7.4 (http://docs.paralleluniverse.co/quasar)
-* Comsat 0.7.0 (http://docs.paralleluniverse.co/comsat)
-* Netty 4.0.36.Final (http://netty.io/)
-* Undertow 1.3.19 Final (http://undertow.io)
-
-## Test URLs
-
-### JSON Encoding Test
-
-    http://localhost:8080/json
-
-### Plaintest
-
-    http://localhost:8080/plaintest

+ 0 - 47
frameworks/Java/comsat-webactors/benchmark_config.json

@@ -1,47 +0,0 @@
-{
-  "framework": "comsat-webactors",
-  "tests": [
-    {
-      "default": {
-        "setup_file": "setup",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "None",
-        "language": "Java",
-        "flavor": "None",
-        "orm": "Raw",
-        "platform": "Comsat",
-        "webserver": "None",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "Comsat",
-        "notes": "Comsat Web Actors run as Netty handler",
-        "versus": ""
-      },
-      "undertow": {
-        "setup_file": "setup-undertow",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "None",
-        "language": "Java",
-        "flavor": "None",
-        "orm": "Raw",
-        "platform": "Comsat",
-        "webserver": "None",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "Comsat",
-        "notes": "Comsat Web Actors run as Undertow handler",
-        "versus": ""
-      }
-    }
-  ]
-}

+ 0 - 78
frameworks/Java/comsat-webactors/build.gradle

@@ -1,78 +0,0 @@
-// Capsule plugin
-plugins {
-    id "us.kirchmeier.capsule" version "1.0.2"
-}
-
-apply plugin: 'java'
-
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
-version = '0.3'
-
-ext.jacksonVer  = '2.7.4'
-ext.quasarVer   = '0.7.5'
-ext.comsatVer   = '0.7.0'
-ext.capsuleVer  = '1.0.2'
-
-ext.nettyVer    = '4.0.37.Final'
-ext.undertowVer = '1.3.22.Final'
-
-ext.slf4jVer    = '1.7.21'
-
-[compileJava, compileTestJava]*.options*.encoding = "UTF-8"
-
-repositories {
-    mavenCentral()
-    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
-    // mavenLocal()
-}
-
-configurations {
-    quasar
-}
-
-configurations.all {
-    resolutionStrategy {
-        failOnVersionConflict()
-        force "io.netty:netty-all:$nettyVer"
-        force "io.undertow:undertow-core:$undertowVer"
-        force "org.slf4j:slf4j-api:$slf4jVer"
-        force "co.paralleluniverse:quasar-actors:$quasarVer"
-    }
-}
-
-configurations.capsule.dependencies.clear()
-
-dependencies {
-    compile "co.paralleluniverse:quasar-core:$quasarVer:jdk8"
-    compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVer"
-    compile "co.paralleluniverse:comsat-actors-api:$comsatVer"
-    compile "co.paralleluniverse:comsat-actors-netty:$comsatVer"
-    compile "co.paralleluniverse:comsat-actors-undertow:$comsatVer"
-    compile "co.paralleluniverse:comsat-test-utils:$comsatVer"
-
-    capsule "co.paralleluniverse:capsule:$capsuleVer"
-
-    quasar "co.paralleluniverse:quasar-core:$quasarVer:jdk8"
-}
-
-task capsule(type: FatCapsule) {
-    applicationClass "hello.World"
-
-    capsuleManifest {
-        javaAgents = [configurations.quasar.iterator().next().getName()]
-
-        mode('netty') {
-            systemProperties['serverClass'] = 'hello.NettyServer'
-        }
-
-        mode('undertow') {
-            systemProperties['serverClass'] = 'hello.UndertowServer'
-        }
-    }
-}
-
-task wrapper(type: Wrapper) {
-    gradleVersion = '2.14'
-}

BIN
frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.jar


+ 0 - 6
frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +0,0 @@
-#Wed Jun 15 10:12:59 IDT 2016
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip

+ 0 - 164
frameworks/Java/comsat-webactors/gradlew

@@ -1,164 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-##  Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
-    echo "$*"
-}
-
-die ( ) {
-    echo
-    echo "$*"
-    echo
-    exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
-  CYGWIN* )
-    cygwin=true
-    ;;
-  Darwin* )
-    darwin=true
-    ;;
-  MINGW* )
-    msys=true
-    ;;
-  NONSTOP* )
-    nonstop=true
-    ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-        JAVACMD="$JAVA_HOME/bin/java"
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-    fi
-else
-    JAVACMD="java"
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ] ; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ] ; then
-            warn "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else
-        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
-    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
-    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
-    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-    JAVACMD=`cygpath --unix "$JAVACMD"`
-
-    # We build the pattern for arguments to be converted via cygpath
-    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
-    SEP=""
-    for dir in $ROOTDIRSRAW ; do
-        ROOTDIRS="$ROOTDIRS$SEP$dir"
-        SEP="|"
-    done
-    OURCYGPATTERN="(^($ROOTDIRS))"
-    # Add a user-defined pattern to the cygpath arguments
-    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
-        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
-    fi
-    # Now convert the arguments - kludge to limit ourselves to /bin/sh
-    i=0
-    for arg in "$@" ; do
-        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
-        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
-
-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
-        else
-            eval `echo args$i`="\"$arg\""
-        fi
-        i=$((i+1))
-    done
-    case $i in
-        (0) set -- ;;
-        (1) set -- "$args0" ;;
-        (2) set -- "$args0" "$args1" ;;
-        (3) set -- "$args0" "$args1" "$args2" ;;
-        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
-        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
-        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
-        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
-        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
-        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
-    esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

+ 0 - 90
frameworks/Java/comsat-webactors/gradlew.bat

@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega

+ 0 - 8
frameworks/Java/comsat-webactors/setup-generic.sh

@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-
-fw_depends java8
-
-$TROOT/gradlew clean capsule
-
-CAPSULE=`ls build/libs/comsat-webactors-*-capsule.jar`
-java -Dcapsule.mode=$MODE -jar $CAPSULE

+ 0 - 3
frameworks/Java/comsat-webactors/setup.sh

@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-
-. setup-netty.sh

+ 0 - 6
frameworks/Java/comsat-webactors/source_code

@@ -1,6 +0,0 @@
-./src/main/java/hello/
-./src/main/java/hello/WebActor
-./src/main/java/hello/World
-./src/main/java/hello/NettyServer
-./src/main/java/hello/UndertowServer
-./src/main/java/hello/Server

+ 0 - 6
frameworks/Java/comsat-webactors/src/main/java/hello/Server.java

@@ -1,6 +0,0 @@
-package hello;
-
-@FunctionalInterface
-public interface Server {
-    void run() throws Exception;
-}

+ 0 - 10
frameworks/Java/comsat-webactors/src/main/java/hello/World.java

@@ -1,10 +0,0 @@
-package hello;
-
-public final class World {
-    public static void main(String[] args) throws Exception {
-        final Server s = (Server) Class.forName(System.getProperty("serverClass", "hello.WebActor")).newInstance();
-        s.run();
-    }
-
-    private World() {}
-}

+ 0 - 0
frameworks/Java/comsat-servlet/.gitignore → frameworks/Java/comsat/.gitignore


+ 39 - 0
frameworks/Java/comsat/README.md

@@ -0,0 +1,39 @@
+# Parallel Universe Comsat Benchmarking Test
+
+This is the [Parallel Universe Comsat](http://docs.paralleluniverse.co/comsat/#overview) version of a [benchmarking test suite](../) comparing a variety of web development platforms. It serves requests in lightweight [Quasar fibers](http://docs.paralleluniverse.co/quasar/#fibers) rather than heavyweight Java threads. There are two main flavors: Comsat Servlet and Comsat Web Actors.
+
+## Comsat Servlet
+
+[Parallel Universe Comsat Servlet](http://docs.paralleluniverse.co/comsat/#servlets) works with any servlet containers (tests are run against embedded Undertow and Jetty).
+
+### JSON Encoding and Plaintext Tests
+
+* [JSON test source](src/main/java/hello/servlet/JsonServlet.java)
+* [Plaintext test source](src/main/java/hello/servlet/PlaintextServlet.java)
+
+## Comsat Web Actors
+
+[Parallel Universe Comsat Web Actors](http://docs.paralleluniverse.co/comsat/#web-actors) runs as an Undertow or Netty handler.
+
+### JSON and Plaintest Encoding Tests
+
+* [JSON test source](src/main/java/hello/webactors/HelloWebActor.java)
+
+## Versions
+
+* Jackson JSON 2.7.4 (https://github.com/FasterXML/jackson)
+* Quasar 0.7.5 (http://docs.paralleluniverse.co/quasar)
+* Comsat 0.7.0 (http://docs.paralleluniverse.co/comsat)
+* Jetty 9.3.9.v20160517 (https://www.eclipse.org/jetty/)
+* Netty 4.0.36.Final (http://netty.io/)
+* Undertow 1.3.22-final (http://undertow.io)
+
+## Test URLs
+
+### JSON Encoding Test
+
+    http://localhost:8080/json
+
+### Plaintest
+
+    http://localhost:8080/plaintest

+ 87 - 0
frameworks/Java/comsat/benchmark_config.json

@@ -0,0 +1,87 @@
+{
+  "framework": "comsat",
+  "tests": [
+    {
+      "default": {
+        "setup_file": "setup-servlet-jetty",
+        "json_url": "/json",
+        "plaintext_url": "/plaintext",
+        "port": 8080,
+        "approach": "Realistic",
+        "classification": "Platform",
+        "database": "None",
+        "framework": "None",
+        "language": "Java",
+        "flavor": "None",
+        "orm": "Raw",
+        "platform": "Servlet",
+        "webserver": "None",
+        "os": "Linux",
+        "database_os": "Linux",
+        "display_name": "comsat-servlet-jetty",
+        "notes": "Comsat servlet on embedded Jetty",
+        "versus": ""
+      },
+      "servlet-undertow": {
+        "setup_file": "setup-servlet-undertow",
+        "json_url": "/json",
+        "plaintext_url": "/plaintext",
+        "port": 8080,
+        "approach": "Realistic",
+        "classification": "Platform",
+        "database": "None",
+        "framework": "None",
+        "language": "Java",
+        "flavor": "None",
+        "orm": "Raw",
+        "platform": "Servlet",
+        "webserver": "None",
+        "os": "Linux",
+        "database_os": "Linux",
+        "display_name": "Comsat",
+        "notes": "Comsat servlet on embedded Undertow",
+        "versus": "comsat"
+      },
+      "webactors-netty": {
+        "setup_file": "setup-webactors-netty",
+        "json_url": "/json",
+        "plaintext_url": "/plaintext",
+        "port": 8080,
+        "approach": "Realistic",
+        "classification": "Platform",
+        "database": "None",
+        "framework": "None",
+        "language": "Java",
+        "flavor": "None",
+        "orm": "Raw",
+        "platform": "Comsat",
+        "webserver": "None",
+        "os": "Linux",
+        "database_os": "Linux",
+        "display_name": "Comsat",
+        "notes": "Comsat Web Actors run as Netty handler",
+        "versus": ""
+      },
+      "webactors-undertow": {
+        "setup_file": "setup-webactors-undertow",
+        "json_url": "/json",
+        "plaintext_url": "/plaintext",
+        "port": 8080,
+        "approach": "Realistic",
+        "classification": "Platform",
+        "database": "None",
+        "framework": "None",
+        "language": "Java",
+        "flavor": "None",
+        "orm": "Raw",
+        "platform": "Comsat",
+        "webserver": "None",
+        "os": "Linux",
+        "database_os": "Linux",
+        "display_name": "Comsat",
+        "notes": "Comsat Web Actors run as Undertow handler",
+        "versus": "comsat-webactors-netty"
+      }
+    }
+  ]
+}

+ 22 - 4
frameworks/Java/comsat-servlet/build.gradle → frameworks/Java/comsat/build.gradle

@@ -17,6 +17,9 @@ ext.capsuleVer  = '1.0.2'
 
 
 ext.jettyVer    = '9.3.9.v20160517'
 ext.jettyVer    = '9.3.9.v20160517'
 ext.undertowVer = '1.3.22.Final'
 ext.undertowVer = '1.3.22.Final'
+ext.nettyVer    = '4.0.37.Final'
+
+ext.slf4jVer    = '1.7.21'
 
 
 [compileJava, compileTestJava]*.options*.encoding = "UTF-8"
 [compileJava, compileTestJava]*.options*.encoding = "UTF-8"
 
 
@@ -45,6 +48,9 @@ configurations.all {
         force "org.eclipse.jetty.websocket:websocket-client:$jettyVer"
         force "org.eclipse.jetty.websocket:websocket-client:$jettyVer"
         force "io.undertow:undertow-core:$undertowVer"
         force "io.undertow:undertow-core:$undertowVer"
         force "io.undertow:undertow-servlet:$undertowVer"
         force "io.undertow:undertow-servlet:$undertowVer"
+        force "io.netty:netty-all:$nettyVer"
+        force "org.slf4j:slf4j-api:$slf4jVer"
+        force "co.paralleluniverse:quasar-actors:$quasarVer"
     }
     }
 }
 }
 
 
@@ -55,6 +61,10 @@ dependencies {
     compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVer"
     compile "com.fasterxml.jackson.core:jackson-databind:$jacksonVer"
     compile "co.paralleluniverse:comsat-servlet:$comsatVer"
     compile "co.paralleluniverse:comsat-servlet:$comsatVer"
     compile "co.paralleluniverse:comsat-test-utils:$comsatVer"
     compile "co.paralleluniverse:comsat-test-utils:$comsatVer"
+    compile "co.paralleluniverse:comsat-actors-api:$comsatVer"
+    compile "co.paralleluniverse:comsat-actors-netty:$comsatVer"
+    compile "co.paralleluniverse:comsat-actors-undertow:$comsatVer"
+    compile "co.paralleluniverse:comsat-test-utils:$comsatVer"
 
 
     capsule "co.paralleluniverse:capsule:$capsuleVer"
     capsule "co.paralleluniverse:capsule:$capsuleVer"
 
 
@@ -67,12 +77,20 @@ task capsule(type: FatCapsule) {
     capsuleManifest {
     capsuleManifest {
         javaAgents = [configurations.quasar.iterator().next().getName()]
         javaAgents = [configurations.quasar.iterator().next().getName()]
 
 
-        mode('undertow') {
-            systemProperties['serverClass'] = 'hello.UndertowServer'
+        mode('servlet-undertow') {
+            systemProperties['serverClass'] = 'hello.servlet.UndertowServer'
+        }
+
+        mode('servlet-jetty') {
+            systemProperties['serverClass'] = 'hello.servlet.JettyServer'
+        }
+        
+        mode('webactors-netty') {
+            systemProperties['serverClass'] = 'hello.webactors.NettyServer'
         }
         }
 
 
-        mode('jetty') {
-            systemProperties['serverClass'] = 'hello.JettyServer'
+        mode('webactors-undertow') {
+            systemProperties['serverClass'] = 'hello.webactors.UndertowServer'
         }
         }
     }
     }
 }
 }

+ 0 - 0
frameworks/Java/comsat-servlet/gradle/wrapper/gradle-wrapper.jar → frameworks/Java/comsat/gradle/wrapper/gradle-wrapper.jar


+ 0 - 0
frameworks/Java/comsat-servlet/gradle/wrapper/gradle-wrapper.properties → frameworks/Java/comsat/gradle/wrapper/gradle-wrapper.properties


+ 0 - 0
frameworks/Java/comsat-servlet/gradlew → frameworks/Java/comsat/gradlew


+ 0 - 0
frameworks/Java/comsat-servlet/gradlew.bat → frameworks/Java/comsat/gradlew.bat


+ 1 - 1
frameworks/Java/comsat-servlet/setup-generic.sh → frameworks/Java/comsat/setup-generic.sh

@@ -4,5 +4,5 @@ fw_depends java8
 
 
 $TROOT/gradlew clean capsule
 $TROOT/gradlew clean capsule
 
 
-CAPSULE=`ls build/libs/comsat-servlet-*-capsule.jar`
+CAPSULE=`ls build/libs/comsat-*-capsule.jar`
 java -Dcapsule.mode=$MODE -jar $CAPSULE
 java -Dcapsule.mode=$MODE -jar $CAPSULE

+ 1 - 1
frameworks/Java/comsat-servlet/setup-jetty.sh → frameworks/Java/comsat/setup-servlet-jetty.sh

@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
 
 
-MODE="jetty"
+MODE="servlet-jetty"
 
 
 . $TROOT/setup-generic.sh
 . $TROOT/setup-generic.sh

+ 1 - 1
frameworks/Java/comsat-webactors/setup-undertow.sh → frameworks/Java/comsat/setup-servlet-undertow.sh

@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
 
 
-MODE="undertow"
+MODE="servlet-undertow"
 
 
 . $TROOT/setup-generic.sh
 . $TROOT/setup-generic.sh

+ 1 - 1
frameworks/Java/comsat-servlet/setup-undertow.sh → frameworks/Java/comsat/setup-webactors-netty.sh

@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
 
 
-MODE="undertow"
+MODE="webactors-netty"
 
 
 . $TROOT/setup-generic.sh
 . $TROOT/setup-generic.sh

+ 1 - 1
frameworks/Java/comsat-webactors/setup-netty.sh → frameworks/Java/comsat/setup-webactors-undertow.sh

@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 #!/usr/bin/env bash
 
 
-MODE="netty"
+MODE="webactors-undertow"
 
 
 . $TROOT/setup-generic.sh
 . $TROOT/setup-generic.sh

+ 0 - 0
frameworks/Java/comsat-servlet/src/main/java/hello/Server.java → frameworks/Java/comsat/src/main/java/hello/Server.java


+ 0 - 0
frameworks/Java/comsat-servlet/src/main/java/hello/World.java → frameworks/Java/comsat/src/main/java/hello/World.java


+ 3 - 1
frameworks/Java/comsat-servlet/src/main/java/hello/JettyServer.java → frameworks/Java/comsat/src/main/java/hello/servlet/JettyServer.java

@@ -1,6 +1,8 @@
-package hello;
+package hello.servlet;
 
 
+import hello.Server;
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
+
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.servlet.ServletHolder;

+ 4 - 1
frameworks/Java/comsat-servlet/src/main/java/hello/JsonServlet.java → frameworks/Java/comsat/src/main/java/hello/servlet/JsonServlet.java

@@ -1,14 +1,17 @@
-package hello;
+package hello.servlet;
 
 
 import co.paralleluniverse.fibers.Suspendable;
 import co.paralleluniverse.fibers.Suspendable;
 import co.paralleluniverse.fibers.servlet.FiberHttpServlet;
 import co.paralleluniverse.fibers.servlet.FiberHttpServlet;
+
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 
 import javax.servlet.ServletException;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+
 import java.io.IOException;
 import java.io.IOException;
 
 
+@SuppressWarnings("serial")
 public final class JsonServlet extends FiberHttpServlet {
 public final class JsonServlet extends FiberHttpServlet {
     private static final class HelloWorldData {
     private static final class HelloWorldData {
         @SuppressWarnings("unused")
         @SuppressWarnings("unused")

+ 3 - 1
frameworks/Java/comsat-servlet/src/main/java/hello/PlaintextServlet.java → frameworks/Java/comsat/src/main/java/hello/servlet/PlaintextServlet.java

@@ -1,4 +1,4 @@
-package hello;
+package hello.servlet;
 
 
 import co.paralleluniverse.fibers.Suspendable;
 import co.paralleluniverse.fibers.Suspendable;
 import co.paralleluniverse.fibers.servlet.FiberHttpServlet;
 import co.paralleluniverse.fibers.servlet.FiberHttpServlet;
@@ -6,9 +6,11 @@ import co.paralleluniverse.fibers.servlet.FiberHttpServlet;
 import javax.servlet.ServletException;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+
 import java.io.IOException;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
 
 
+@SuppressWarnings("serial")
 public final class PlaintextServlet extends FiberHttpServlet {
 public final class PlaintextServlet extends FiberHttpServlet {
     private static final byte[] helloWorld = "Hello, World!".getBytes(StandardCharsets.ISO_8859_1);
     private static final byte[] helloWorld = "Hello, World!".getBytes(StandardCharsets.ISO_8859_1);
 
 

+ 3 - 1
frameworks/Java/comsat-servlet/src/main/java/hello/UndertowServer.java → frameworks/Java/comsat/src/main/java/hello/servlet/UndertowServer.java

@@ -1,12 +1,14 @@
-package hello;
+package hello.servlet;
 
 
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
+import hello.Server;
 import io.undertow.Undertow;
 import io.undertow.Undertow;
 import io.undertow.UndertowOptions;
 import io.undertow.UndertowOptions;
 import io.undertow.server.HttpHandler;
 import io.undertow.server.HttpHandler;
 import io.undertow.servlet.Servlets;
 import io.undertow.servlet.Servlets;
 import io.undertow.servlet.api.DeploymentInfo;
 import io.undertow.servlet.api.DeploymentInfo;
 import io.undertow.servlet.api.DeploymentManager;
 import io.undertow.servlet.api.DeploymentManager;
+
 import org.xnio.Options;
 import org.xnio.Options;
 
 
 import java.io.IOException;
 import java.io.IOException;

+ 2 - 1
frameworks/Java/comsat-webactors/src/main/java/hello/NettyServer.java → frameworks/Java/comsat/src/main/java/hello/webactors/NettyServer.java

@@ -1,7 +1,8 @@
-package hello;
+package hello.webactors;
 
 
 import co.paralleluniverse.comsat.webactors.netty.AutoWebActorHandler;
 import co.paralleluniverse.comsat.webactors.netty.AutoWebActorHandler;
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
+import hello.Server;
 import io.netty.bootstrap.ServerBootstrap;
 import io.netty.bootstrap.ServerBootstrap;
 import io.netty.buffer.PooledByteBufAllocator;
 import io.netty.buffer.PooledByteBufAllocator;
 import io.netty.channel.*;
 import io.netty.channel.*;

+ 3 - 1
frameworks/Java/comsat-webactors/src/main/java/hello/UndertowServer.java → frameworks/Java/comsat/src/main/java/hello/webactors/UndertowServer.java

@@ -1,9 +1,11 @@
-package hello;
+package hello.webactors;
 
 
 import co.paralleluniverse.comsat.webactors.undertow.AutoWebActorHandler;
 import co.paralleluniverse.comsat.webactors.undertow.AutoWebActorHandler;
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
 import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
+import hello.Server;
 import io.undertow.Undertow;
 import io.undertow.Undertow;
 import io.undertow.UndertowOptions;
 import io.undertow.UndertowOptions;
+
 import org.xnio.Options;
 import org.xnio.Options;
 
 
 public final class UndertowServer implements Server {
 public final class UndertowServer implements Server {

+ 1 - 1
frameworks/Java/comsat-webactors/src/main/java/hello/WebActor.java → frameworks/Java/comsat/src/main/java/hello/webactors/WebActor.java

@@ -1,4 +1,4 @@
-package hello;
+package hello.webactors;
 
 
 import co.paralleluniverse.actors.BasicActor;
 import co.paralleluniverse.actors.BasicActor;
 import co.paralleluniverse.comsat.webactors.HttpRequest;
 import co.paralleluniverse.comsat.webactors.HttpRequest;

+ 0 - 1
frameworks/Java/dropwizard/hello-world-mysql.yml

@@ -1,6 +1,5 @@
 server:
 server:
   type: simple
   type: simple
-  maxQueuedRequests: 8192 
   applicationContextPath: /
   applicationContextPath: /
   connector:
   connector:
     type: http
     type: http

+ 1 - 1
frameworks/Java/grizzly-bm/README.md

@@ -1,6 +1,6 @@
 # Grizzly Benchmarking Test
 # Grizzly Benchmarking Test
 
 
-This is the Grizzly portion of a [benchmarking test suite](../) comparing a variety of web development platforms.
+This is the Grizzly portion of a [benchmarking test suite](../) comparing a variety of web development platforms. There is a subfolder `grizzly-jersey` where the combination of these two projects is used.
 
 
 ### Plain text serialization test
 ### Plain text serialization test
 * [Plain text test resource](src/main/java/org/glassfish/grizzly/bm/PlainTextHttpHandler.java)
 * [Plain text test resource](src/main/java/org/glassfish/grizzly/bm/PlainTextHttpHandler.java)

+ 25 - 2
frameworks/Java/grizzly-bm/benchmark_config.json

@@ -14,10 +14,33 @@
       "flavor": "None",
       "flavor": "None",
       "orm": "Raw",
       "orm": "Raw",
       "platform": "Servlet",
       "platform": "Servlet",
-      "webserver": "None",
+      "webserver": "Grizzly",
       "os": "Linux",
       "os": "Linux",
       "database_os": "Linux",
       "database_os": "Linux",
-      "display_name": "Grizzly",
+      "display_name": "grizzly",
+      "notes": "",
+      "versus": ""
+    },
+    "jersey": {
+      "setup_file": "setup-grizzly-jersey",
+      "json_url": "/json",
+      "db_url": "/db?single=true",
+      "query_url": "/db?queries=",
+      "fortune_url": "/fortunes",
+      "plaintext_url": "/plaintext",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Micro",
+      "database": "MySQL",
+      "framework": "Grizzly",
+      "language": "Java",
+      "flavor": "None",
+      "orm": "Full",
+      "platform": "JAX-RS",
+      "webserver": "Grizzly",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "grizzly",
       "notes": "",
       "notes": "",
       "versus": ""
       "versus": ""
     }
     }

+ 0 - 0
frameworks/Java/grizzly-jersey/.gitignore → frameworks/Java/grizzly-bm/grizzly-jersey/.gitignore


+ 0 - 0
frameworks/Java/grizzly-jersey/README.md → frameworks/Java/grizzly-bm/grizzly-jersey/README.md


+ 1 - 0
frameworks/Java/grizzly-jersey/pom.xml → frameworks/Java/grizzly-bm/grizzly-jersey/pom.xml

@@ -14,6 +14,7 @@
   </prerequisites>
   </prerequisites>
 
 
   <properties>
   <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
     <maven.compiler.target>1.8</maven.compiler.target>
     <activation.version>1.1.1</activation.version>
     <activation.version>1.1.1</activation.version>

+ 0 - 0
frameworks/Java/grizzly-jersey/source_code → frameworks/Java/grizzly-bm/grizzly-jersey/source_code


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/Common.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/Common.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/DbResource.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/DbResource.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/FortunesResource.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/FortunesResource.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/JerseyWebServer.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/JerseyWebServer.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/JsonMessageBodyWriter.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/JsonMessageBodyWriter.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/JsonResource.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/JsonResource.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/MustacheViewProcessor.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/MustacheViewProcessor.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/PlaintextResource.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/PlaintextResource.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/ServerHeaderFilter.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/ServerHeaderFilter.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/SessionFactoryProvider.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/SessionFactoryProvider.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/domain/Fortune.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/domain/Fortune.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/java/hello/domain/World.java → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/java/hello/domain/World.java


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/resources/fortunes.mustache → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/resources/fortunes.mustache


+ 0 - 0
frameworks/Java/grizzly-jersey/src/main/resources/hibernate.cfg.xml → frameworks/Java/grizzly-bm/grizzly-jersey/src/main/resources/hibernate.cfg.xml


+ 1 - 1
frameworks/Java/grizzly-jersey/setup.sh → frameworks/Java/grizzly-bm/setup-grizzly-jersey.sh

@@ -2,6 +2,6 @@
 
 
 fw_depends mysql java maven
 fw_depends mysql java maven
 
 
+cd grizzly-jersey
 mvn clean package
 mvn clean package
-
 java -jar target/grizzly-jersey-example.jar -dbhost ${DBHOST} &
 java -jar target/grizzly-jersey-example.jar -dbhost ${DBHOST} &

+ 0 - 28
frameworks/Java/grizzly-jersey/benchmark_config.json

@@ -1,28 +0,0 @@
-{
-  "framework": "grizzly-jersey",
-  "tests": [{
-    "default": {
-      "setup_file": "setup",
-      "json_url": "/json",
-      "db_url": "/db?single=true",
-      "query_url": "/db?queries=",
-      "fortune_url": "/fortunes",
-      "plaintext_url": "/plaintext",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Micro",
-      "database": "MySQL",
-      "framework": "Grizzly",
-      "language": "Java",
-      "flavor": "None",
-      "orm": "Full",
-      "platform": "JAX-RS",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "Grizzly",
-      "notes": "",
-      "versus": ""
-    }
-  }]
-}

+ 0 - 28
frameworks/Java/undertow-jersey-c3p0/benchmark_config.json

@@ -1,28 +0,0 @@
-{
-  "framework": "undertow-jersey-c3p0",
-  "tests": [{
-    "default": {
-      "setup_file": "setup",
-      "json_url": "/json",
-      "db_url": "/db?single=true",
-      "query_url": "/db?queries=",
-      "fortune_url": "/fortunes",
-      "plaintext_url": "/plaintext",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "MySQL",
-      "framework": "Jersey",
-      "language": "Java",
-      "flavor": "None",
-      "orm": "Full",
-      "platform": "JAX-RS",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "Undertow",
-      "notes": "",
-      "versus": "undertow-jersey-hikaricp"
-    }
-  }]
-}

+ 0 - 137
frameworks/Java/undertow-jersey-c3p0/pom.xml

@@ -1,137 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>com.techempower</groupId>
-  <artifactId>undertow-jersey</artifactId>
-  <version>0.1</version>
-
-  <packaging>jar</packaging>
-
-  <prerequisites>
-    <maven>3.0</maven>
-  </prerequisites>
-
-
-  <properties>
-    <jersey.version>2.22.1</jersey.version>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-  </properties>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.glassfish.jersey</groupId>
-        <artifactId>jersey-bom</artifactId>
-        <version>${jersey.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.glassfish.jersey.core</groupId>
-      <artifactId>jersey-server</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.glassfish.jersey.core</groupId>
-      <artifactId>jersey-server</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.glassfish.jersey.ext</groupId>
-      <artifactId>jersey-mvc-mustache</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.glassfish.jersey.media</groupId>
-      <artifactId>jersey-media-json-jackson</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-core</artifactId>
-      <version>4.3.11.Final</version>
-    </dependency>
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-c3p0</artifactId>
-      <version>4.3.11.Final</version>
-    </dependency>
-
-    <dependency>
-      <groupId>commons-cli</groupId>
-      <artifactId>commons-cli</artifactId>
-      <version>1.2</version>
-    </dependency>
-
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>5.1.38</version>
-    </dependency>
-
-    <dependency>
-      <groupId>io.undertow</groupId>
-      <artifactId>undertow-core</artifactId>
-      <version>1.3.11.Final</version>
-    </dependency>
-
-    <dependency>
-      <groupId>javax.xml.bind</groupId>
-      <artifactId>jaxb-api</artifactId>
-      <version>2.2.12</version>
-    </dependency>
-
-    <dependency>
-      <groupId>javax.activation</groupId>
-      <artifactId>activation</artifactId>
-      <version>1.1.1</version>
-    </dependency>
-
-  </dependencies>
-
-  <build>
-    <finalName>${project.artifactId}</finalName>
-    <plugins>
-      <plugin>
-        <inherited>true</inherited>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.1</version>
-        <configuration>
-          <source>1.7</source>
-          <target>1.7</target>
-          <optimize>true</optimize>
-          <debug>false</debug>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>2.1</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <transformers>
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
-                  <mainClass>hello.JerseyWebServer</mainClass>
-                </transformer>
-              </transformers>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>

+ 0 - 1
frameworks/Java/undertow-jersey-hikaricp/.gitignore

@@ -1 +0,0 @@
-/dependency-reduced-pom.xml

+ 0 - 29
frameworks/Java/undertow-jersey-hikaricp/README.md

@@ -1,29 +0,0 @@
-# Undertow + Jersey + Hikaricp Benchmarking Test
-### Heavily borrowed from the grizzly-jersey test
-
-This is the Undertow+Jersey portion of a [benchmarking test suite](../) comparing a variety of web development platforms.
-
-### JSON serialization test
-* [JSON test resource](src/main/java/hello/JsonResource.java)
-
-### Database tests
-* [Database tests resource](src/main/java/hello/DbResource.java)
-
-### Fortunes test
-* [Fortunes test resource](src/main/java/hello/FortunesResource.java)
-
-## Test URLs
-
-### JSON serialization test
-
-    http://localhost:8080/json
-
-### Database tests
-
-    http://localhost:8080/db
-
-    http://localhost:8080/db?queries=10
-
-### Fortunes test
-
-    http://localhost:8080/fortunes

+ 0 - 27
frameworks/Java/undertow-jersey-hikaricp/benchmark_config.json

@@ -1,27 +0,0 @@
-{
-  "framework": "undertow-jersey-hikaricp",
-  "tests": [{
-    "default": {
-      "setup_file": "setup",
-      "json_url": "/json",
-      "db_url": "/db?single=true",
-      "query_url": "/db?queries=",
-      "fortune_url": "/fortunes",
-      "plaintext_url": "/plaintext",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "MySQL",
-      "framework": "Jersey",
-      "language": "Java",
-      "orm": "Full",
-      "platform": "JAX-RS",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "Undertow-hikaricp",
-      "notes": "",
-      "versus": "undertow-jersey-c3p0"
-    }
-  }]
-}

+ 0 - 18
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/Common.java

@@ -1,18 +0,0 @@
-package hello;
-
-import java.util.concurrent.*;
-
-/**
- * @author denkab
- */
-public class Common
-{
-
-  private static final int cpuCount = Runtime.getRuntime().availableProcessors();
-
-  public static ExecutorService EXECUTOR = new ThreadPoolExecutor(
-      cpuCount * 2, cpuCount * 25, 200, TimeUnit.MILLISECONDS,
-      new LinkedBlockingQueue<Runnable>(cpuCount * 100),
-      new ThreadPoolExecutor.CallerRunsPolicy());
-
-}

+ 0 - 80
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/DbResource.java

@@ -1,80 +0,0 @@
-package hello;
-
-import hello.domain.*;
-import org.hibernate.*;
-
-import javax.inject.*;
-import javax.ws.rs.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-
-@Singleton
-@Path("/db")
-public class DbResource
-{
-
-  private static final int DB_ROWS = 10000;
-
-  @Inject
-  private SessionFactory sessionFactory;
-
-  @GET
-  @Produces(APPLICATION_JSON)
-  public Object db(@QueryParam("queries") String queryParam,
-      @QueryParam("single") boolean isSingle)
-      throws ExecutionException, InterruptedException
-  {
-
-    final int queries = getQueries(queryParam);
-    final World[] worlds = new World[queries];
-    final Random random = ThreadLocalRandom.current();
-
-    Map<Integer, Future<World>> futureWorlds = new ConcurrentHashMap<>();
-    for (int i = 0; i < queries; i++)
-    {
-      futureWorlds.put(i, Common.EXECUTOR.submit(new Callable<World>()
-      {
-        @Override
-        public World call() throws Exception
-        {
-          Session session = sessionFactory.openSession();
-          session.setDefaultReadOnly(true);
-
-          try
-          {
-            return (World)session.byId(World.class).load(
-                random.nextInt(DB_ROWS) + 1);
-          }
-          finally
-          {
-            session.close();
-          }
-        }
-      }));
-    }
-
-    for (int i = 0; i < queries; i++)
-    {
-      worlds[i] = futureWorlds.get(i).get();
-    }
-    return isSingle ? worlds[0] : worlds;
-  }
-
-  private int getQueries(String proto)
-  {
-    int result = 1;
-    try
-    {
-      if (proto != null && !proto.trim().isEmpty())
-      {
-        result = Integer.parseInt(proto);
-      }
-    }
-    catch (NumberFormatException e)
-    {/* by test contract */}
-
-    return Math.min(500, Math.max(1, result));
-  }
-}

+ 0 - 44
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/FortunesResource.java

@@ -1,44 +0,0 @@
-package hello;
-
-import hello.domain.*;
-import org.glassfish.jersey.server.mvc.*;
-import org.hibernate.*;
-
-import javax.inject.*;
-import javax.ws.rs.*;
-import java.util.*;
-
-import static javax.ws.rs.core.MediaType.TEXT_HTML;
-
-@Singleton
-@Path("/fortunes")
-public class FortunesResource
-{
-
-  @Inject
-  private SessionFactory sessionFactory;
-
-  @GET
-  @Produces(TEXT_HTML + "; charset=utf-8")
-  public Viewable fortunes()
-  {
-    final Session session = sessionFactory.openSession();
-    final List<Fortune> fortunes = new ArrayList<>(
-        session.createCriteria(Fortune.class).list());
-    fortunes.add(new Fortune(0, "Additional fortune added at request time."));
-    Collections.sort(fortunes);
-
-    session.close();
-    return new Viewable("/fortunes.mustache", new Scope(fortunes));
-  }
-
-  public static class Scope
-  {
-    public List fortunes;
-
-    public Scope(final List fortunes)
-    {
-      this.fortunes = fortunes;
-    }
-  }
-}

+ 0 - 79
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/JerseyWebServer.java

@@ -1,79 +0,0 @@
-package hello;
-
-import hello.undertow.*;
-import io.undertow.*;
-import io.undertow.server.handlers.*;
-import org.apache.commons.cli.*;
-import org.glassfish.hk2.utilities.binding.*;
-import org.glassfish.jersey.server.*;
-import org.hibernate.*;
-
-import javax.inject.*;
-import java.util.*;
-
-public class JerseyWebServer
-{
-  private final int    port;
-  private final String dbHost;
-  private final int    dbPort;
-
-  public JerseyWebServer(final int port, final String dbHost,
-      final int dbPort)
-  {
-    this.port = port;
-    this.dbHost = dbHost;
-    this.dbPort = dbPort;
-  }
-
-  public static void main(final String[] args) throws Exception
-  {
-    CommandLineParser parser = new BasicParser();
-    CommandLine cmd = parser.parse(options(), args);
-
-    final int port = Integer.parseInt(cmd.getOptionValue("port", "8080"));
-    final String dbHost = cmd.getOptionValue("dbhost", "localhost");
-    final int dbPort = Integer.parseInt(cmd.getOptionValue("dbport", "3306"));
-
-    ResourceConfig config = new ResourceConfig(DbResource.class,
-        FortunesResource.class, JsonResource.class, PlaintextResource.class,
-        JsonMessageBodyWriter.class, ServerResponseFilter.class, RequestExceptionMapper.class);
-
-    config.setProperties(new HashMap<String, Object>()
-    {{
-      put("dbhost", dbHost);
-
-      put("dbport", dbPort);
-    }});
-
-    config.register(org.glassfish.jersey.server.mvc.MvcFeature.class);
-    config.register(
-        org.glassfish.jersey.server.mvc.mustache.MustacheMvcFeature.class);
-
-    config.register(new AbstractBinder()
-    {
-      @Override
-      protected void configure()
-      {
-        bindFactory(SessionFactoryProvider.class).to(SessionFactory.class).in(
-          Singleton.class);
-      }
-    });
-
-    UndertowJerseyContainer container = new UndertowJerseyContainer(config);
-
-    BlockingHandler bh = new BlockingHandler(container);
-
-    Undertow server = Undertow.builder().addHttpListener(port,
-        "0.0.0.0").setHandler(bh).build();
-    server.start();
-  }
-
-  private static Options options()
-  {
-    Options options = new Options();
-    options.addOption("port", true, "server port");
-    options.addOption("dbhost", true, "database host");
-    options.addOption("dbport", true, "database port");
-    return options;
-  }
-}

+ 0 - 50
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/JsonMessageBodyWriter.java

@@ -1,50 +0,0 @@
-package hello;
-
-import com.fasterxml.jackson.databind.*;
-
-import javax.inject.*;
-import javax.ws.rs.*;
-import javax.ws.rs.core.*;
-import javax.ws.rs.ext.*;
-import javax.ws.rs.ext.Provider;
-import java.io.*;
-import java.lang.annotation.*;
-import java.lang.reflect.*;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-
-@Provider
-@Singleton
-@Produces(APPLICATION_JSON)
-public class JsonMessageBodyWriter
-    implements MessageBodyWriter<Object>
-{
-
-  private final ObjectMapper mapper = new ObjectMapper();
-
-  @Override
-  public boolean isWriteable(final Class<?> type, final Type genericType,
-      final Annotation[] annotations, final MediaType mediaType)
-  {
-    return "json".equals(mediaType.getSubtype());
-  }
-
-  @Override
-  public long getSize(final Object t, final Class<?> type,
-      final Type genericType, final Annotation[] annotations,
-      final MediaType mediaType)
-  {
-    return -1; // We can't predict the output size at this point
-  }
-
-  @Override
-  public void writeTo(final Object t, final Class<?> type,
-      final Type genericType, final Annotation[] annotations,
-      final MediaType mediaType,
-      final MultivaluedMap<String, Object> httpHeaders,
-      final OutputStream entityStream)
-      throws IOException, WebApplicationException
-  {
-    mapper.writeValue(entityStream, t);
-  }
-}

+ 0 - 22
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/JsonResource.java

@@ -1,22 +0,0 @@
-package hello;
-
-import javax.inject.*;
-import javax.ws.rs.*;
-import java.util.*;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-
-@Singleton
-@Path("/json")
-public class JsonResource
-{
-
-  @GET
-  @Produces(APPLICATION_JSON)
-  public Object json()
-  {
-    Map<String, String> data = new HashMap<String, String>(1);
-    data.put("message", "Hello, World!");
-    return data;
-  }
-}

+ 0 - 18
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/PlaintextResource.java

@@ -1,18 +0,0 @@
-package hello;
-
-import javax.inject.*;
-import javax.ws.rs.*;
-import java.util.*;
-
-@Singleton
-@Path("/plaintext")
-public class PlaintextResource
-{
-
-  @GET
-  @Produces("text/plain")
-  public String plaintext()
-  {
-    return "Hello, World!";
-  }
-}

+ 0 - 20
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/RequestExceptionMapper.java

@@ -1,20 +0,0 @@
-package hello;
-
-import javax.ws.rs.core.*;
-import javax.ws.rs.core.Response.*;
-import javax.ws.rs.ext.*;
-
-public class RequestExceptionMapper
-    implements ExceptionMapper<Exception>
-{
-//  private static final Logger LOGGER = LoggerFactory.getLogger(
-//      RequestExceptionMapper.class);
-
-  @Override
-  public Response toResponse(Exception exception)
-  {
-    exception.printStackTrace();
-    System.err.println(exception.toString());
-    return Response.status(Status.NOT_FOUND).build();
-  }
-}

+ 0 - 19
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/ServerResponseFilter.java

@@ -1,19 +0,0 @@
-package hello;
-
-import javax.ws.rs.container.*;
-import java.io.*;
-
-public class ServerResponseFilter
-    implements ContainerResponseFilter
-{
-
-  private static final String SERVER_HEADER = "Server";
-  private static final String SERVER_VALUE  = "Undertow";
-
-  @Override
-  public void filter(ContainerRequestContext requestContext,
-      ContainerResponseContext responseContext) throws IOException
-  {
-    responseContext.getHeaders().add(SERVER_HEADER, SERVER_VALUE);
-  }
-}

+ 0 - 45
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/SessionFactoryProvider.java

@@ -1,45 +0,0 @@
-package hello;
-
-import hello.domain.*;
-import org.glassfish.hk2.api.*;
-import org.hibernate.*;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.service.*;
-
-import javax.ws.rs.core.*;
-import javax.ws.rs.core.Context;
-
-public class SessionFactoryProvider
-    implements Factory<SessionFactory>
-{
-
-  @Context
-  Application application;
-
-  public SessionFactoryProvider()
-  {
-  }
-
-  @Override
-  public SessionFactory provide()
-  {
-    Configuration configuration = new Configuration().configure();
-    String url = configuration.getProperty("hibernate.hikari.dataSource.url");
-    url = url.replace("//localhost:3306/",
-        "//" + this.application.getProperties().get("dbhost") + ":"
-            + this.application.getProperties().get("dbport") + "/");
-    configuration.setProperty("hibernate.hikari.dataSource.url", url);
-    configuration.addAnnotatedClass(World.class);
-    configuration.addAnnotatedClass(Fortune.class);
-    ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(
-        configuration.getProperties());
-    return configuration.buildSessionFactory(
-        serviceRegistryBuilder.buildServiceRegistry());
-  }
-
-  @Override
-  public void dispose(SessionFactory instance)
-  {
-
-  }
-}

+ 0 - 30
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/domain/Fortune.java

@@ -1,30 +0,0 @@
-package hello.domain;
-
-import javax.persistence.*;
-
-@Entity
-public class Fortune
-    implements Comparable<Fortune>
-{
-
-  @Id
-  @GeneratedValue(strategy = GenerationType.IDENTITY)
-  public int    id;
-  public String message;
-
-  public Fortune()
-  {
-  }
-
-  public Fortune(final int id, final String message)
-  {
-    this.id = id;
-    this.message = message;
-  }
-
-  @Override
-  public int compareTo(final Fortune other)
-  {
-    return message.compareTo(other.message);
-  }
-}

+ 0 - 14
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/domain/World.java

@@ -1,14 +0,0 @@
-package hello.domain;
-
-import javax.persistence.*;
-
-@Entity
-public class World
-{
-
-  @Id
-  @GeneratedValue(strategy = GenerationType.IDENTITY)
-  public int id;
-  public int randomNumber;
-
-}

+ 0 - 75
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/undertow/UndertowContainerResponseWriter.java

@@ -1,75 +0,0 @@
-package hello.undertow;
-
-import io.undertow.server.*;
-import io.undertow.util.*;
-import org.glassfish.jersey.server.*;
-import org.glassfish.jersey.server.spi.*;
-
-import java.io.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-public class UndertowContainerResponseWriter
-    implements ContainerResponseWriter
-{
-  private HttpServerExchange httpServerExchange;
-
-  public UndertowContainerResponseWriter(
-      HttpServerExchange httpServerExchange)
-  {
-    this.httpServerExchange = httpServerExchange;
-  }
-
-  @Override
-  public OutputStream writeResponseStatusAndHeaders(long contentLength,
-      ContainerResponse responseContext) throws ContainerException
-  {
-    httpServerExchange.setStatusCode(responseContext.getStatus());
-
-    for (Map.Entry<String, List<String>> mapEntry : responseContext.getStringHeaders().entrySet())
-    {
-      httpServerExchange.getResponseHeaders().putAll(
-          new HttpString(mapEntry.getKey()), mapEntry.getValue());
-    }
-
-    httpServerExchange.setResponseContentLength(contentLength);
-    return httpServerExchange.getOutputStream();
-  }
-
-  @Override
-  public boolean suspend(long timeOut, TimeUnit timeUnit,
-      TimeoutHandler timeoutHandler)
-  {
-    // TODO implement
-    return false;
-  }
-
-  @Override
-  public void setSuspendTimeout(long timeOut, TimeUnit timeUnit)
-      throws IllegalStateException
-  {
-    //TODO implement
-  }
-
-  @Override
-  public void commit()
-  {
-    httpServerExchange.endExchange();
-  }
-
-  @Override
-  public void failure(Throwable error)
-  {
-    // TODO don't print out
-    httpServerExchange.setStatusCode(500);
-    httpServerExchange.endExchange();
-    error.printStackTrace();
-  }
-
-  @Override
-  public boolean enableResponseBuffering()
-  {
-    // TODO not sure
-    return false;
-  }
-}

+ 0 - 111
frameworks/Java/undertow-jersey-hikaricp/src/main/java/hello/undertow/UndertowJerseyContainer.java

@@ -1,111 +0,0 @@
-package hello.undertow;
-
-import io.undertow.server.*;
-import io.undertow.util.*;
-import org.glassfish.jersey.internal.*;
-import org.glassfish.jersey.server.*;
-import org.glassfish.jersey.server.spi.*;
-
-import javax.ws.rs.core.*;
-import java.net.*;
-import java.security.*;
-
-public class UndertowJerseyContainer
-    implements Container, HttpHandler
-{
-
-  /**
-   * Default dummy security context.
-   * Taken from Jersey's ApplicationHandler class
-   */
-  private static final SecurityContext DEFAULT_SECURITY_CONTEXT = new SecurityContext()
-  {
-
-    @Override
-    public boolean isUserInRole(final String role)
-    {
-      return false;
-    }
-
-    @Override
-    public boolean isSecure()
-    {
-      return false;
-    }
-
-    @Override
-    public Principal getUserPrincipal()
-    {
-      return null;
-    }
-
-    @Override
-    public String getAuthenticationScheme()
-    {
-      return null;
-    }
-  };
-  private ApplicationHandler applicationHandler;
-
-  public UndertowJerseyContainer(Application configuration)
-  {
-    this.applicationHandler = new ApplicationHandler(configuration);
-  }
-
-  @Override
-  public ResourceConfig getConfiguration()
-  {
-    return this.applicationHandler.getConfiguration();
-  }
-
-  @Override
-  public ApplicationHandler getApplicationHandler()
-  {
-    return this.applicationHandler;
-  }
-
-  @Override
-  public void reload()
-  {
-    reload(this.applicationHandler.getConfiguration());
-  }
-
-  @Override
-  public void reload(ResourceConfig configuration)
-  {
-
-    this.applicationHandler.onShutdown(this);
-
-    this.applicationHandler = new ApplicationHandler(configuration);
-
-    this.applicationHandler.onStartup(this);
-    this.applicationHandler.onReload(this);
-  }
-
-  @Override
-  public void handleRequest(final HttpServerExchange httpServerExchange)
-      throws Exception
-  {
-    String requestUri = httpServerExchange.getRequestURI();
-    if(httpServerExchange.getQueryString().length() > 0)
-    {
-      requestUri = requestUri + "?" + httpServerExchange.getQueryString();
-    }
-
-    final ContainerRequest request = new ContainerRequest(null,
-        URI.create(requestUri),
-        httpServerExchange.getRequestMethod().toString(),
-        DEFAULT_SECURITY_CONTEXT, new MapPropertiesDelegate());
-
-    request.setWriter(
-        new UndertowContainerResponseWriter(httpServerExchange));
-
-    for (HeaderValues values : httpServerExchange.getRequestHeaders())
-    {
-      request.headers(values.getHeaderName().toString(), values);
-    }
-
-    request.setEntityStream(httpServerExchange.getInputStream());
-    this.applicationHandler.handle(request);
-  }
-}

+ 0 - 20
frameworks/Java/undertow-jersey-hikaricp/src/main/resources/fortunes.mustache

@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>Fortunes</title>
-</head>
-<body>
-<table>
-<tr>
-<th>id</th>
-<th>message</th>
-</tr>
-{{#fortunes}}
-<tr>
-<td>{{id}}</td>
-<td>{{message}}</td>
-</tr>
-{{/fortunes}}
-</table>
-</body>
-</html>

+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/.gitignore → frameworks/Java/undertow-jersey/.gitignore


+ 2 - 2
frameworks/Java/undertow-jersey-c3p0/README.md → frameworks/Java/undertow-jersey/README.md

@@ -1,7 +1,7 @@
-# Undertow + Jersey + c3p0 Benchmarking Test
+# Undertow + Jersey Benchmarking Test
 ### Heavily borrowed from the grizzly-jersey test
 ### Heavily borrowed from the grizzly-jersey test
 
 
-This is the Undertow+Jersey portion of a [benchmarking test suite](../) comparing a variety of web development platforms.
+This is the Undertow+Jersey portion of a [benchmarking test suite](../) comparing a variety of web development platforms. The project is using two SQL connection pools: c3p0 and hikaricp.
 
 
 ### JSON serialization test
 ### JSON serialization test
 * [JSON test resource](src/main/java/hello/JsonResource.java)
 * [JSON test resource](src/main/java/hello/JsonResource.java)

+ 48 - 0
frameworks/Java/undertow-jersey/benchmark_config.json

@@ -0,0 +1,48 @@
+{
+  "framework": "undertow-jersey",
+  "tests": [{
+    "default": {
+      "setup_file": "setup",
+      "json_url": "/json",
+      "db_url": "/db?single=true",
+      "query_url": "/db?queries=",
+      "fortune_url": "/fortunes",
+      "plaintext_url": "/plaintext",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Platform",
+      "database": "MySQL",
+      "framework": "Jersey",
+      "language": "Java",
+      "flavor": "None",
+      "orm": "Full",
+      "platform": "JAX-RS",
+      "webserver": "None",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "undertow-jersey-c3p0",
+      "notes": "",
+      "versus": "servlet-raw"
+    },
+    "hikaricp": {
+      "setup_file": "hikaricp",
+      "db_url": "/db?single=true",
+      "query_url": "/db?queries=",
+      "fortune_url": "/fortunes",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Platform",
+      "database": "MySQL",
+      "framework": "Jersey",
+      "language": "Java",
+      "orm": "Full",
+      "platform": "JAX-RS",
+      "webserver": "None",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "undertow-jersey-hikaricp",
+      "notes": "",
+      "versus": "undertow-jersey"
+    }
+  }]
+}

+ 1 - 1
frameworks/Java/undertow-jersey-hikaricp/setup.sh → frameworks/Java/undertow-jersey/hikaricp.sh

@@ -2,6 +2,6 @@
 
 
 fw_depends mysql java maven
 fw_depends mysql java maven
 
 
-mvn clean package
+mvn clean package -P hikaricp
 
 
 java -jar target/undertow-jersey.jar -dbhost ${DBHOST} &
 java -jar target/undertow-jersey.jar -dbhost ${DBHOST} &

+ 59 - 11
frameworks/Java/undertow-jersey-hikaricp/pom.xml → frameworks/Java/undertow-jersey/pom.xml

@@ -13,12 +13,70 @@
     <maven>3.0</maven>
     <maven>3.0</maven>
   </prerequisites>
   </prerequisites>
 
 
-
   <properties>
   <properties>
     <jersey.version>2.22.1</jersey.version>
     <jersey.version>2.22.1</jersey.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   </properties>
 
 
+  <profiles>
+    <profile>
+      <id>c3p0</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <dependencies>
+        <dependency>
+          <groupId>org.hibernate</groupId>
+          <artifactId>hibernate-c3p0</artifactId>
+          <version>4.3.11.Final</version>
+        </dependency>
+      </dependencies>
+      <build>
+        <resources>
+          <resource>
+            <directory>src/main/resources/</directory>
+            <includes>
+              <include>fortunes.mustache</include>
+              <include>hibernate.cfg.xml</include>
+            </includes>
+            <excludes>
+              <exclude>hikarycp/hibernate.cfg.xml</exclude>
+            </excludes>
+          </resource>
+        </resources>
+      </build>
+    </profile>
+    <profile>
+      <id>hikaricp</id>
+      <dependencies>
+        <dependency>
+          <groupId>org.hibernate</groupId>
+          <artifactId>hibernate-hikaricp</artifactId>
+          <version>4.3.11.Final</version>
+        </dependency>
+      </dependencies>
+      <build>
+        <resources>
+          <resource>
+            <directory>src/main/resources/</directory>
+            <includes>
+              <include>fortunes.mustache</include>
+            </includes>
+            <excludes>
+              <exclude>hibernate.cfg.xml</exclude>
+            </excludes>
+          </resource>
+          <resource>
+            <directory>src/main/resources/hikarycp</directory>
+            <includes>
+              <include>hibernate.cfg.xml</include>
+            </includes>
+          </resource>
+        </resources>
+      </build>
+    </profile>
+  </profiles>
+
   <dependencyManagement>
   <dependencyManagement>
     <dependencies>
     <dependencies>
       <dependency>
       <dependency>
@@ -32,11 +90,6 @@
   </dependencyManagement>
   </dependencyManagement>
 
 
   <dependencies>
   <dependencies>
-    <dependency>
-      <groupId>org.glassfish.jersey.core</groupId>
-      <artifactId>jersey-server</artifactId>
-      <version>${jersey.version}</version>
-    </dependency>
     <dependency>
     <dependency>
       <groupId>org.glassfish.jersey.core</groupId>
       <groupId>org.glassfish.jersey.core</groupId>
       <artifactId>jersey-server</artifactId>
       <artifactId>jersey-server</artifactId>
@@ -58,11 +111,6 @@
       <artifactId>hibernate-core</artifactId>
       <artifactId>hibernate-core</artifactId>
       <version>4.3.11.Final</version>
       <version>4.3.11.Final</version>
     </dependency>
     </dependency>
-    <dependency>
-      <groupId>org.hibernate</groupId>
-      <artifactId>hibernate-hikaricp</artifactId>
-      <version>4.3.11.Final</version>
-    </dependency>
 
 
     <dependency>
     <dependency>
       <groupId>commons-cli</groupId>
       <groupId>commons-cli</groupId>

+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/setup.sh → frameworks/Java/undertow-jersey/setup.sh


+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/src/main/java/hello/Common.java → frameworks/Java/undertow-jersey/src/main/java/hello/Common.java


+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/src/main/java/hello/DbResource.java → frameworks/Java/undertow-jersey/src/main/java/hello/DbResource.java


+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/src/main/java/hello/FortunesResource.java → frameworks/Java/undertow-jersey/src/main/java/hello/FortunesResource.java


+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/src/main/java/hello/JerseyWebServer.java → frameworks/Java/undertow-jersey/src/main/java/hello/JerseyWebServer.java


+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/src/main/java/hello/JsonMessageBodyWriter.java → frameworks/Java/undertow-jersey/src/main/java/hello/JsonMessageBodyWriter.java


+ 0 - 0
frameworks/Java/undertow-jersey-c3p0/src/main/java/hello/JsonResource.java → frameworks/Java/undertow-jersey/src/main/java/hello/JsonResource.java


Some files were not shown because too many files changed in this diff