Преглед на файлове

:arrow_up: Upgrade dependencies, simplify code, optimize, remove non-default modes

circlespainter преди 9 години
родител
ревизия
051d759303
променени са 22 файла, в които са добавени 178 реда и са изтрити 384 реда
  1. 6 9
      frameworks/Java/comsat-webactors/README.md
  2. 1 77
      frameworks/Java/comsat-webactors/benchmark_config.json
  3. 11 34
      frameworks/Java/comsat-webactors/build.gradle
  4. BIN
      frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.jar
  5. 2 2
      frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.properties
  6. 3 7
      frameworks/Java/comsat-webactors/gradlew
  7. 1 1
      frameworks/Java/comsat-webactors/gradlew.bat
  8. 0 9
      frameworks/Java/comsat-webactors/setup-generic.sh
  9. 0 5
      frameworks/Java/comsat-webactors/setup-netty.sh
  10. 0 5
      frameworks/Java/comsat-webactors/setup-servlet-jetty.sh
  11. 0 5
      frameworks/Java/comsat-webactors/setup-servlet-tomcat.sh
  12. 0 5
      frameworks/Java/comsat-webactors/setup-servlet-undertow.sh
  13. 0 5
      frameworks/Java/comsat-webactors/setup-undertow.sh
  14. 0 1
      frameworks/Java/comsat-webactors/setup.sh
  15. 9 0
      frameworks/Java/comsat-webactors/setup.sh
  16. 0 6
      frameworks/Java/comsat-webactors/source_code
  17. 145 54
      frameworks/Java/comsat-webactors/src/main/java/hello/HelloWebActor.java
  18. 0 37
      frameworks/Java/comsat-webactors/src/main/java/servers/Main.java
  19. 0 60
      frameworks/Java/comsat-webactors/src/main/java/servers/NettyServer.java
  20. 0 6
      frameworks/Java/comsat-webactors/src/main/java/servers/Server.java
  21. 0 29
      frameworks/Java/comsat-webactors/src/main/java/servers/ServletServer.java
  22. 0 27
      frameworks/Java/comsat-webactors/src/main/java/servers/UndertowServer.java

+ 6 - 9
frameworks/Java/comsat-webactors/README.md

@@ -1,6 +1,6 @@
-# Parallel Universe Comsat Web Actors Benchmarking Test
+# 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 (configurations provided for embedded Undertow, Jetty and Tomcat) as well as a Netty and Undertow handler (default configuration).
+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
 
@@ -8,13 +8,10 @@ This is the [Parallel Universe Comsat Web Actors](http://docs.paralleluniverse.c
 
 ## Versions
 
-* Jackson JSON 2.5.4 (https://github.com/FasterXML/jackson)
-* Quasar 0.7.3 (http://docs.paralleluniverse.co/quasar)
-* Comsat 0.5.0 (http://docs.paralleluniverse.co/comsat)
-* Undertow 1.2.10-final (http://undertow.io)
-* Netty 4.0.30.Final (http://undertow.io)
-* Tomcat 8.0.26 (http://tomcat.apache.org)
-* Jetty 9.2.13.v20150730 (http://www.eclipse.org/jetty/)
+* Jackson JSON 2.7.0 (https://github.com/FasterXML/jackson)
+* Quasar 0.7.4 (http://docs.paralleluniverse.co/quasar)
+* Comsat 0.6.0-SNAPSHOT (http://docs.paralleluniverse.co/comsat)
+* Netty 4.0.33.Final (http://undertow.io)
 
 ## Test URLs
 

+ 1 - 77
frameworks/Java/comsat-webactors/benchmark_config.json

@@ -17,84 +17,8 @@
         "webserver": "Undertow",
         "os": "Linux",
         "database_os": "Linux",
-        "display_name": "comsat-actors-undertow",
-        "notes": "Comsat Web Actors run as an Undertow handler",
-        "versus": ""
-      },
-      "netty": {
-        "setup_file": "setup-netty",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "comsat-webactors",
-        "language": "Java",
-        "orm": "Raw",
-        "platform": "Comsat Web Actors",
-        "webserver": "Netty",
-        "os": "Linux",
-        "database_os": "Linux",
         "display_name": "comsat-actors-netty",
-        "notes": "Comsat Web Actors run as a Netty handler",
-        "versus": ""
-      },
-      "servlet-undertow": {
-        "setup_file": "setup-servlet-undertow",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "comsat-webactors",
-        "language": "Java",
-        "orm": "Raw",
-        "platform": "Comsat Web Actors",
-        "webserver": "Undertow",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "comsat-actors-servlet-undertow",
-        "notes": "Comsat Web Actors run as a servlet on embedded Undertow",
-        "versus": ""
-      },
-      "servlet-jetty": {
-        "setup_file": "setup-servlet-jetty",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "comsat-webactors",
-        "language": "Java",
-        "orm": "Raw",
-        "platform": "Comsat Web Actors",
-        "webserver": "Jetty",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "comsat-actors-servlet-jetty",
-        "notes": "Comsat Web Actors run as a servlet on embedded Jetty",
-        "versus": ""
-      },
-      "servlet-tomcat": {
-        "setup_file": "setup-servlet-tomcat",
-        "json_url": "/json",
-        "plaintext_url": "/plaintext",
-        "port": 8080,
-        "approach": "Realistic",
-        "classification": "Platform",
-        "database": "None",
-        "framework": "comsat-webactors",
-        "language": "Java",
-        "orm": "Raw",
-        "platform": "Comsat Web Actors",
-        "webserver": "Tomcat",
-        "os": "Linux",
-        "database_os": "Linux",
-        "display_name": "comsat-actors-servlet-tomcat",
-        "notes": "Comsat Web Actors run as a servlet on embedded Tomcat",
+        "notes": "Comsat Web Actors run as Netty handler",
         "versus": ""
       }
     }

+ 11 - 34
frameworks/Java/comsat-webactors/build.gradle

@@ -1,6 +1,6 @@
 // Capsule plugin
 plugins {
-    id "us.kirchmeier.capsule" version "1.0.0"
+    id "us.kirchmeier.capsule" version "1.0.2"
 }
 
 apply plugin: 'java'
@@ -8,17 +8,19 @@ apply plugin: 'java'
 sourceCompatibility = 1.8
 targetCompatibility = 1.8
 
-version = '1.0'
+version = '0.2'
 
-ext.jacksonVer = '2.5.4'
-ext.quasarVer  = '0.7.3'
-ext.comsatVer  = '0.5.0'
+ext.jacksonVer = '2.7.0'
+ext.quasarVer  = '0.7.4'
+ext.comsatVer  = '0.6.0-SNAPSHOT'
+ext.capsuleVer = '1.0.1'
 
 [compileJava, compileTestJava]*.options*.encoding = "UTF-8"
 
 repositories {
-    // mavenLocal()
     mavenCentral()
+    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
+    // mavenLocal()
 }
 
 configurations {
@@ -31,47 +33,22 @@ 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-servlet:$comsatVer"
-    compile "co.paralleluniverse:comsat-actors-undertow:$comsatVer"
     compile "co.paralleluniverse:comsat-actors-netty:$comsatVer"
     compile "co.paralleluniverse:comsat-test-utils:$comsatVer"
 
-    capsule "co.paralleluniverse:capsule:1.0"
+    capsule "co.paralleluniverse:capsule:$capsuleVer"
 
     quasar "co.paralleluniverse:quasar-core:$quasarVer:jdk8"
 }
 
 task capsule(type: FatCapsule) {
-    applicationClass "servers.Main"
+    applicationClass "hello.HelloWebActor"
 
     capsuleManifest {
         javaAgents = [configurations.quasar.iterator().next().getName()]
-
-        mode('undertow') {
-            systemProperties['serverClass'] = 'servers.UndertowServer'
-        }
-
-        mode('netty') {
-            systemProperties['serverClass'] = 'servers.NettyServer'
-        }
-
-        mode('servlet-undertow') {
-            systemProperties['serverClass'] = 'servers.ServletServer'
-            systemProperties['servletServerClass'] = 'co.paralleluniverse.embedded.containers.UndertowServer'
-        }
-
-        mode('servlet-jetty') {
-            systemProperties['serverClass'] = 'servers.ServletServer'
-            systemProperties['servletServerClass'] = 'co.paralleluniverse.embedded.containers.JettyServer'
-        }
-
-        mode('servlet-tomcat') {
-            systemProperties['serverClass'] = 'servers.ServletServer'
-            systemProperties['servletServerClass'] = 'co.paralleluniverse.embedded.containers.TomcatServer'
-        }
     }
 }
 
 task wrapper(type: Wrapper) {
-    gradleVersion = '2.7'
+    gradleVersion = '2.11'
 }

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


+ 2 - 2
frameworks/Java/comsat-webactors/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
-#Fri Sep 18 13:54:26 IDT 2015
+#Tue Feb 09 20:07:28 IST 2016
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.7-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-bin.zip

+ 3 - 7
frameworks/Java/comsat-webactors/gradlew

@@ -42,11 +42,6 @@ case "`uname`" in
     ;;
 esac
 
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
-    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
 # Attempt to set APP_HOME
 # Resolve links: $0 may be a link
 PRG="$0"
@@ -61,9 +56,9 @@ while [ -h "$PRG" ] ; do
     fi
 done
 SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
+cd "`dirname \"$PRG\"`/" >/dev/null
 APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
+cd "$SAVED" >/dev/null
 
 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 
@@ -114,6 +109,7 @@ fi
 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`

+ 1 - 1
frameworks/Java/comsat-webactors/gradlew.bat

@@ -46,7 +46,7 @@ echo location of your Java installation.
 goto fail
 
 :init
-@rem Get command-line arguments, handling Windowz variants
+@rem Get command-line arguments, handling Windows variants
 
 if not "%OS%" == "Windows_NT" goto win9xME_args
 if "%@eval[2+2]" == "4" goto 4NT_args

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

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

+ 0 - 5
frameworks/Java/comsat-webactors/setup-netty.sh

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

+ 0 - 5
frameworks/Java/comsat-webactors/setup-servlet-jetty.sh

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

+ 0 - 5
frameworks/Java/comsat-webactors/setup-servlet-tomcat.sh

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

+ 0 - 5
frameworks/Java/comsat-webactors/setup-servlet-undertow.sh

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

+ 0 - 5
frameworks/Java/comsat-webactors/setup-undertow.sh

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

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

@@ -1 +0,0 @@
-setup-undertow.sh

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

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

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

@@ -1,8 +1,2 @@
 ./src/main/java/hello/
 ./src/main/java/hello/HelloWebActor
-./src/main/java/server/
-./src/main/java/server/Server
-./src/main/java/server/ServletServer
-./src/main/java/server/UndertowServer
-./src/main/java/server/NettyServer
-./src/main/java/server/Main

+ 145 - 54
frameworks/Java/comsat-webactors/src/main/java/hello/HelloWebActor.java

@@ -1,68 +1,159 @@
 package hello;
 
+import co.paralleluniverse.actors.Actor;
+import co.paralleluniverse.actors.ActorRef;
 import co.paralleluniverse.actors.BasicActor;
 import co.paralleluniverse.comsat.webactors.HttpRequest;
 import co.paralleluniverse.comsat.webactors.HttpResponse;
-import co.paralleluniverse.comsat.webactors.WebActor;
+
+import co.paralleluniverse.comsat.webactors.WebMessage;
+import co.paralleluniverse.comsat.webactors.netty.WebActorHandler;
+import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
 import co.paralleluniverse.fibers.SuspendExecution;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import io.netty.bootstrap.ServerBootstrap;
+import io.netty.buffer.PooledByteBufAllocator;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.ChannelOption;
+import io.netty.channel.ChannelPipeline;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.channel.socket.nio.NioServerSocketChannel;
+import io.netty.handler.codec.http.FullHttpRequest;
+import io.netty.handler.codec.http.HttpObjectAggregator;
+import io.netty.handler.codec.http.HttpRequestDecoder;
+import io.netty.handler.codec.http.HttpResponseEncoder;
 
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.nio.ByteBuffer;
+// import java.text.SimpleDateFormat;
+// import java.util.Locale;
+// import java.util.TimeZone;
 
 import static co.paralleluniverse.comsat.webactors.HttpResponse.error;
 import static co.paralleluniverse.comsat.webactors.HttpResponse.ok;
 
-@WebActor(httpUrlPatterns = {"/plaintext", "/json"})
-public class HelloWebActor extends BasicActor<Object, Void> {
-	private static final class HelloWorldData {
-		@SuppressWarnings("unused")
-		public final String message = "Hello, World!";
-	}
-
-	private static final ObjectMapper mapper = new ObjectMapper();
-
-	private static final Calendar calendar = Calendar.getInstance();
-	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
-	static {
-		dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
-	}
-
-	@Override
-	protected Void doRun() throws InterruptedException, SuspendExecution {
-		//noinspection InfiniteLoopStatement
-		for (;;) {
-			final Object message = receive();
-			if (message instanceof HttpRequest) {
-				final HttpRequest req = (HttpRequest) message;
-				HttpResponse.Builder res;
-				switch (req.getRequestURI()) {
-					case "/plaintext":
-						res = ok(self(), req, "Hello, World!").setContentType("text/plain");
-						break;
-					case "/json":
-						try {
-							res = ok(self(), req, mapper.writeValueAsString(new HelloWorldData())).setContentType("application/json");
-						} catch (JsonProcessingException e) {
-							throw new RuntimeException(e);
-						}
-						break;
-					default:
-						res = error(self(), req, 404, "Not found");
-						break;
-				}
-				req.getFrom().send (
-					res
-						.addHeader("Server", "comsat-webactors")
-						.addHeader("Date", dateFormat.format(calendar.getTime()))
-						.build()
-				);
-			}
-		}
-	}
+public final class HelloWebActor extends BasicActor<Object, Void> {
+    /////////////////// WEB ACTOR PART ///////////////////
+
+    private static final String HELLO_WORLD = "Hello, World!";
+    private static final byte[] HELLO_WORLD_A = HELLO_WORLD.getBytes();
+
+    private static final class HelloWorldData {
+        @SuppressWarnings("unused")
+        public final String message = HELLO_WORLD;
+    }
+
+    private static final ObjectMapper mapper = new ObjectMapper();
+
+//    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
+//    static {
+//        dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
+//    }
+
+    @Override
+    protected final Void doRun() throws InterruptedException, SuspendExecution {
+        //noinspection InfiniteLoopStatement
+        for (; ; ) {
+            final Object message = receive();
+            if (message instanceof HttpRequest) {
+                final HttpRequest req = (HttpRequest) message;
+                HttpResponse.Builder res;
+                final String s = req.getRequestURI();
+                if ("/plaintext".equals(s)) {
+                    final ByteBuffer b = ByteBuffer.wrap(HELLO_WORLD_A);
+                    res = ok(self(), req, b).setContentType("text/plain");
+                } else if ("/json".equals(s)) {
+                    try {
+                        res = ok(self(), req, mapper.writeValueAsString(new HelloWorldData())).setContentType("application/json");
+                    } catch (final JsonProcessingException e) {
+                        throw new RuntimeException(e);
+                    }
+                } else {
+                    res = error(self(), req, 404, "Not found");
+                }
+                req.getFrom().send(
+                    res
+                        .addHeader("Server", "comsat-webactors")
+//                        .addHeader("Date", dateFormat.format(calendar.getTime()))
+                        .build()
+                );
+            }
+        }
+    }
+
+    /////////////////// SERVER PART ///////////////////
+
+    private static final Actor actor = new HelloWebActor();
+    @SuppressWarnings("unchecked")
+    private static final ActorRef<? extends WebMessage> actorRef = actor.spawn();
+
+    private static final WebActorHandler.DefaultContextImpl context = new MyDefaultContextImpl();
+
+    private static class SocketChannelChannelInitializer extends ChannelInitializer<SocketChannel> {
+        @Override
+        public void initChannel(SocketChannel ch) throws Exception {
+            final ChannelPipeline pipeline = ch.pipeline();
+            pipeline.addLast(new HttpRequestDecoder());
+            pipeline.addLast(new HttpResponseEncoder());
+            pipeline.addLast(new HttpObjectAggregator(65536));
+            pipeline.addLast(new WebActorHandler(new MyWebActorContextProvider()));
+        }
+
+        private static class MyWebActorContextProvider implements WebActorHandler.WebActorContextProvider {
+            @Override
+            public WebActorHandler.Context get(ChannelHandlerContext ctx, FullHttpRequest req) {
+                return context;
+            }
+        }
+    }
+
+    private static class MyDefaultContextImpl extends WebActorHandler.DefaultContextImpl {
+        @SuppressWarnings("unchecked")
+        @Override
+        public ActorRef<? extends WebMessage> getRef() {
+            return actorRef;
+        }
+
+        @Override
+        public final boolean handlesWithWebSocket(String uri) {
+            return false;
+        }
+
+        @Override
+        public final boolean handlesWithHttp(String uri) {
+            return true;
+        }
+
+        @Override
+        public final boolean watch() {
+            return false;
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        final ServerBootstrap b = new ServerBootstrap();
+
+        b.option(ChannelOption.SO_BACKLOG, 65535);
+        b.childOption(ChannelOption.CONNECT_TIMEOUT_MILLIS, 0);
+        b.childOption(ChannelOption.TCP_NODELAY, true);
+        b.childOption(ChannelOption.SO_REUSEADDR, true);
+        b.childOption(ChannelOption.SO_LINGER, 0);
+        // b.childOption(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 32 * 1024);
+        // b.childOption(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 8 * 1024);
+        b.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
+
+        final ChannelInitializer<SocketChannel> childHandler = new SocketChannelChannelInitializer();
+        final NioEventLoopGroup group = new NioEventLoopGroup();
+        b.group(group)
+            .channel(NioServerSocketChannel.class)
+            .childHandler(childHandler);
+
+        b.bind(8080).sync();
+        System.err.println("Server is up.");
+        AbstractEmbeddedServer.waitUrlAvailable("http://localhost:8080/plaintext");
+        AbstractEmbeddedServer.waitUrlAvailable("http://localhost:8080/json");
+        System.err.println("Server test cases are instrumented and bootstrapped.");
+    }
 }

+ 0 - 37
frameworks/Java/comsat-webactors/src/main/java/servers/Main.java

@@ -1,37 +0,0 @@
-package servers;
-
-import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
-
-import java.io.IOException;
-
-public class Main {
-	public static void main(String[] args) throws Exception {
-		final Server server = (Server) Class.forName(System.getProperty("serverClass")).newInstance();
-
-		Runtime.getRuntime().addShutdownHook(new Thread() {
-			@Override
-			public void run() {
-				try {
-					server.stop();
-				} catch (Exception ignored) {
-				}
-			}
-		});
-
-		new Thread() {
-			@Override
-			public void run() {
-				try {
-					AbstractEmbeddedServer.waitUrlAvailable("http://localhost:8080/plaintext");
-					AbstractEmbeddedServer.waitUrlAvailable("http://localhost:8080/json");
-
-					System.err.println("Server test cases are instrumented and bootstrapped.");
-				} catch (InterruptedException | IOException e) {
-					throw new RuntimeException(e);
-				}
-			}
-		}.start();
-
-		server.start();
-	}
-}

+ 0 - 60
frameworks/Java/comsat-webactors/src/main/java/servers/NettyServer.java

@@ -1,60 +0,0 @@
-package servers;
-
-import co.paralleluniverse.comsat.webactors.netty.AutoWebActorHandler;
-import io.netty.bootstrap.ServerBootstrap;
-import io.netty.buffer.PooledByteBufAllocator;
-import io.netty.channel.*;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
-import io.netty.handler.codec.http.HttpObjectAggregator;
-import io.netty.handler.codec.http.HttpRequestDecoder;
-import io.netty.handler.codec.http.HttpResponseEncoder;
-
-public class NettyServer implements Server {
-	private NioEventLoopGroup group = new NioEventLoopGroup();
-	private ChannelFuture ch;
-
-	@Override
-	public void start() throws Exception {
-		final ServerBootstrap b = new ServerBootstrap();
-		b.option(ChannelOption.SO_BACKLOG, 65535);
-		b.childOption(ChannelOption.CONNECT_TIMEOUT_MILLIS, 0);
-		b.childOption(ChannelOption.TCP_NODELAY, true);
-		b.childOption(ChannelOption.SO_REUSEADDR, true);
-		b.childOption(ChannelOption.SO_LINGER, 0);
-		b.childOption(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 32 * 1024);
-		b.childOption(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 8 * 1024);
-		b.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
-
-		final ChannelInitializer<SocketChannel> childHandler = new SocketChannelChannelInitializer();
-		b.group(group)
-			.channel(NioServerSocketChannel.class)
-			.childHandler(childHandler);
-
-		ch = b.bind(8080).sync();
-
-		System.err.println("Server is up.");
-	}
-
-	@Override
-	public void stop() throws Exception {
-		if (ch != null && ch.channel().isOpen())
-			ch.channel().close();
-		if (group != null)
-			group.shutdownGracefully().sync();
-
-		System.err.println("Server is down.");
-	}
-
-	private static class SocketChannelChannelInitializer extends ChannelInitializer<SocketChannel> {
-		@Override
-		public void initChannel(SocketChannel ch) throws Exception {
-			final ChannelPipeline pipeline = ch.pipeline();
-			pipeline.addLast(new HttpRequestDecoder());
-			pipeline.addLast(new HttpResponseEncoder());
-			pipeline.addLast(new HttpObjectAggregator(65536));
-			pipeline.addLast(new AutoWebActorHandler());
-		}
-	}
-}

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

@@ -1,6 +0,0 @@
-package servers;
-
-public interface Server {
-	void start() throws Exception;
-	void stop() throws Exception;
-}

+ 0 - 29
frameworks/Java/comsat-webactors/src/main/java/servers/ServletServer.java

@@ -1,29 +0,0 @@
-package servers;
-
-import co.paralleluniverse.comsat.webactors.servlet.WebActorInitializer;
-import co.paralleluniverse.embedded.containers.AbstractEmbeddedServer;
-import co.paralleluniverse.embedded.containers.EmbeddedServer;
-
-public class ServletServer implements Server {
-	private EmbeddedServer server;
-
-	@Override
-	public void start() throws Exception {
-		server = (EmbeddedServer) Class.forName(System.getProperty("servletServerClass")).newInstance();
-		WebActorInitializer.setUserClassLoader(ClassLoader.getSystemClassLoader());
-		server.addServletContextListener(WebActorInitializer.class);
-		server.enableWebsockets();
-		server.start();
-
-		System.err.println("Server is up.");
-	}
-
-	@Override
-	public void stop() throws Exception {
-		if (server != null) {
-			server.stop();
-
-			System.err.println("Server is down.");
-		}
-	}
-}

+ 0 - 27
frameworks/Java/comsat-webactors/src/main/java/servers/UndertowServer.java

@@ -1,27 +0,0 @@
-package servers;
-
-import co.paralleluniverse.comsat.webactors.undertow.AutoWebActorHandler;
-import io.undertow.Undertow;
-
-public class UndertowServer implements Server {
-	private Undertow server;
-
-	@Override
-	public void start() throws Exception {
-		server = Undertow.builder()
-			.addHttpListener(8080, "localhost")
-			.setHandler(new AutoWebActorHandler()).build();
-		server.start();
-
-		System.err.println("Server is up.");
-	}
-
-	@Override
-	public void stop() throws Exception {
-		if (server != null) {
-			server.stop();
-
-			System.err.println("Server is down.");
-		}
-	}
-}