Переглянути джерело

Merge comsat-servlet and comsat-webactors (#3338)

* Merge comsat-servlet and comsat-webactors. Rename to comsat

* Fix setup scripts

* Add single setup-generic.sh script

* Update TravisCI build matrix
Radoslav Petrov 7 роки тому
батько
коміт
975ac31a3f
40 змінених файлів з 173 додано та 548 видалено
  1. 1 2
      .travis.yml
  2. 0 26
      frameworks/Java/comsat-servlet/README.md
  3. 0 47
      frameworks/Java/comsat-servlet/benchmark_config.json
  4. 0 3
      frameworks/Java/comsat-servlet/setup.sh
  5. 0 7
      frameworks/Java/comsat-servlet/source_code
  6. 0 4
      frameworks/Java/comsat-webactors/.gitignore
  7. 0 25
      frameworks/Java/comsat-webactors/README.md
  8. 0 47
      frameworks/Java/comsat-webactors/benchmark_config.json
  9. 0 78
      frameworks/Java/comsat-webactors/build.gradle
  10. BIN
      frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.jar
  11. 0 6
      frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.properties
  12. 0 164
      frameworks/Java/comsat-webactors/gradlew
  13. 0 90
      frameworks/Java/comsat-webactors/gradlew.bat
  14. 0 8
      frameworks/Java/comsat-webactors/setup-generic.sh
  15. 0 3
      frameworks/Java/comsat-webactors/setup.sh
  16. 0 6
      frameworks/Java/comsat-webactors/source_code
  17. 0 6
      frameworks/Java/comsat-webactors/src/main/java/hello/Server.java
  18. 0 10
      frameworks/Java/comsat-webactors/src/main/java/hello/World.java
  19. 0 0
      frameworks/Java/comsat/.gitignore
  20. 39 0
      frameworks/Java/comsat/README.md
  21. 87 0
      frameworks/Java/comsat/benchmark_config.json
  22. 22 4
      frameworks/Java/comsat/build.gradle
  23. 0 0
      frameworks/Java/comsat/gradle/wrapper/gradle-wrapper.jar
  24. 0 0
      frameworks/Java/comsat/gradle/wrapper/gradle-wrapper.properties
  25. 0 0
      frameworks/Java/comsat/gradlew
  26. 0 0
      frameworks/Java/comsat/gradlew.bat
  27. 1 1
      frameworks/Java/comsat/setup-generic.sh
  28. 1 1
      frameworks/Java/comsat/setup-servlet-jetty.sh
  29. 1 1
      frameworks/Java/comsat/setup-servlet-undertow.sh
  30. 1 1
      frameworks/Java/comsat/setup-webactors-netty.sh
  31. 1 1
      frameworks/Java/comsat/setup-webactors-undertow.sh
  32. 0 0
      frameworks/Java/comsat/src/main/java/hello/Server.java
  33. 0 0
      frameworks/Java/comsat/src/main/java/hello/World.java
  34. 3 1
      frameworks/Java/comsat/src/main/java/hello/servlet/JettyServer.java
  35. 4 1
      frameworks/Java/comsat/src/main/java/hello/servlet/JsonServlet.java
  36. 3 1
      frameworks/Java/comsat/src/main/java/hello/servlet/PlaintextServlet.java
  37. 3 1
      frameworks/Java/comsat/src/main/java/hello/servlet/UndertowServer.java
  38. 2 1
      frameworks/Java/comsat/src/main/java/hello/webactors/NettyServer.java
  39. 3 1
      frameworks/Java/comsat/src/main/java/hello/webactors/UndertowServer.java
  40. 1 1
      frameworks/Java/comsat/src/main/java/hello/webactors/WebActor.java

+ 1 - 2
.travis.yml

@@ -80,8 +80,7 @@ env:
     - "TESTDIR=Java/baratine"
     - "TESTDIR=Java/bayou"
     - "TESTDIR=Java/blade"
-    - "TESTDIR=Java/comsat-servlet"
-    - "TESTDIR=Java/comsat-webactors"
+    - "TESTDIR=Java/comsat"
     - "TESTDIR=Java/curacao"
     - "TESTDIR=Java/dropwizard"
     - "TESTDIR=Java/gemini"

+ 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.undertowVer = '1.3.22.Final'
+ext.nettyVer    = '4.0.37.Final'
+
+ext.slf4jVer    = '1.7.21'
 
 [compileJava, compileTestJava]*.options*.encoding = "UTF-8"
 
@@ -45,6 +48,9 @@ configurations.all {
         force "org.eclipse.jetty.websocket:websocket-client:$jettyVer"
         force "io.undertow:undertow-core:$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 "co.paralleluniverse:comsat-servlet:$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"
 
@@ -67,12 +77,20 @@ task capsule(type: FatCapsule) {
     capsuleManifest {
         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
 
-CAPSULE=`ls build/libs/comsat-servlet-*-capsule.jar`
+CAPSULE=`ls build/libs/comsat-*-capsule.jar`
 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
 
-MODE="jetty"
+MODE="servlet-jetty"
 
 . $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
 
-MODE="undertow"
+MODE="servlet-undertow"
 
 . $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
 
-MODE="undertow"
+MODE="webactors-netty"
 
 . $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
 
-MODE="netty"
+MODE="webactors-undertow"
 
 . $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 org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 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.servlet.FiberHttpServlet;
+
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.io.IOException;
 
+@SuppressWarnings("serial")
 public final class JsonServlet extends FiberHttpServlet {
     private static final class HelloWorldData {
         @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.servlet.FiberHttpServlet;
@@ -6,9 +6,11 @@ import co.paralleluniverse.fibers.servlet.FiberHttpServlet;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 
+@SuppressWarnings("serial")
 public final class PlaintextServlet extends FiberHttpServlet {
     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 hello.Server;
 import io.undertow.Undertow;
 import io.undertow.UndertowOptions;
 import io.undertow.server.HttpHandler;
 import io.undertow.servlet.Servlets;
 import io.undertow.servlet.api.DeploymentInfo;
 import io.undertow.servlet.api.DeploymentManager;
+
 import org.xnio.Options;
 
 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.embedded.containers.AbstractEmbeddedServer;
+import hello.Server;
 import io.netty.bootstrap.ServerBootstrap;
 import io.netty.buffer.PooledByteBufAllocator;
 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.embedded.containers.AbstractEmbeddedServer;
+import hello.Server;
 import io.undertow.Undertow;
 import io.undertow.UndertowOptions;
+
 import org.xnio.Options;
 
 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.comsat.webactors.HttpRequest;