Bläddra i källkod

Dockerize more Java tests (#3351)

* Docker Multiple Container Support + Dart start/stream as examples (#3321)

Duty, decency, reliability, honor, dignity, respect: these are all qualities that TFBReaper not only held in high esteem, but practiced every day during his time reaping. He was a serious and disciplined program, but he could never resist the opportunity to have a laugh with friends and loved ones, given half the chance, by allowing a process to continue when it should have been killed.

It’s difficult to imagine TFBReaper not being around and I’m not sure how we will all cope. It’s strange to think that I can’t just start him up and feel safe knowing that he is there reaping for me. He was an imposing figure of a program, whose reassuring presence we all felt during difficult times.

As we gather here today to remember and commemorate his life, let us bid him farewell as we mourn the loss of a lively, dignified program. A program that brought joy and fulfillment to many, and whose legacy will live on forever.

Press 'F' to pay respects.

* Add Maven installation for Java 8

* Try to make Maven log output less verbose by disabling interactive mode

* Convert actframework test scripts to docker

* Reenable actframework in Travis

* Erlang and Elixir tests for docker (#3341)

* D tests for docker (#3322)

* Remove unnecessary "EXPOSE 8080" from undertow's dockerfile

* Fix RESIN_HOME to point at a directory that exists

Clear out Resin's webapps directory by default so that each framework
wanting to deploy a webapp there can skip that step.

* Convert activeweb test scripts to Docker

* Convert several Java framework tests to docker

* Revert proteus docker changes since they're failing on Travis
Michael Hixson 7 år sedan
förälder
incheckning
f929f15d1a
54 ändrade filer med 166 tillägg och 363 borttagningar
  1. 13 13
      .travis.yml
  2. 7 0
      frameworks/Java/activeweb/activeweb-base.dockerfile
  3. 2 0
      frameworks/Java/activeweb/activeweb-jackson.dockerfile
  4. 2 0
      frameworks/Java/activeweb/activeweb.dockerfile
  5. 10 12
      frameworks/Java/activeweb/benchmark_config.json
  6. 0 10
      frameworks/Java/activeweb/setup.sh
  7. 5 0
      frameworks/Java/baratine/baratine.dockerfile
  8. 0 1
      frameworks/Java/baratine/benchmark_config.json
  9. 0 7
      frameworks/Java/baratine/setup.sh
  10. 5 0
      frameworks/Java/bayou/bayou.dockerfile
  11. 0 1
      frameworks/Java/bayou/benchmark_config.json
  12. 0 1
      frameworks/Java/blade/benchmark_config.json
  13. 12 0
      frameworks/Java/blade/blade.dockerfile
  14. 0 8
      frameworks/Java/blade/setup.sh
  15. 1 1
      frameworks/Java/blade/src/main/java/hello/DbConfig.java
  16. 3 4
      frameworks/Java/curacao/benchmark_config.json
  17. 8 0
      frameworks/Java/curacao/curacao.dockerfile
  18. 0 8
      frameworks/Java/curacao/setup.sh
  19. 0 1
      frameworks/Java/jawn/benchmark_config.json
  20. 5 0
      frameworks/Java/jawn/jawn.dockerfile
  21. 0 7
      frameworks/Java/jawn/setup.sh
  22. 0 2
      frameworks/Java/jetty/benchmark_config.json
  23. 8 0
      frameworks/Java/jetty/jetty-servlet.dockerfile
  24. 8 0
      frameworks/Java/jetty/jetty.dockerfile
  25. 0 8
      frameworks/Java/jetty/setup.sh
  26. 0 8
      frameworks/Java/jetty/setup_servlet.sh
  27. 0 1
      frameworks/Java/jlhttp/benchmark_config.json
  28. 11 0
      frameworks/Java/jlhttp/jlhttp.dockerfile
  29. 0 11
      frameworks/Java/jlhttp/setup.sh
  30. 0 1
      frameworks/Java/jooby/benchmark_config.json
  31. 9 0
      frameworks/Java/jooby/jooby.dockerfile
  32. 0 8
      frameworks/Java/jooby/setup.sh
  33. 0 2
      frameworks/Java/light-java/benchmark_config.json
  34. 0 165
      frameworks/Java/light-java/dependency-reduced-pom.xml
  35. 0 28
      frameworks/Java/light-java/docker-compose.yml
  36. 10 0
      frameworks/Java/light-java/light-4j-postgresql.dockerfile
  37. 10 0
      frameworks/Java/light-java/light-4j.dockerfile
  38. 0 7
      frameworks/Java/light-java/setup.sh
  39. 0 5
      frameworks/Java/light-java/setup_mysql.sh
  40. 0 5
      frameworks/Java/light-java/setup_postgresql.sh
  41. 0 1
      frameworks/Java/minijax/benchmark_config.json
  42. 8 0
      frameworks/Java/minijax/minijax.dockerfile
  43. 1 1
      frameworks/Java/minijax/minijax.properties
  44. 0 9
      frameworks/Java/minijax/setup.sh
  45. 0 1
      frameworks/Java/netty/benchmark_config.json
  46. 10 0
      frameworks/Java/netty/netty.dockerfile
  47. 0 8
      frameworks/Java/netty/setup.sh
  48. 0 1
      frameworks/Java/ninja-standalone/benchmark_config.json
  49. 5 0
      frameworks/Java/ninja-standalone/ninja-standalone.dockerfile
  50. 0 10
      frameworks/Java/ninja-standalone/setup.sh
  51. 1 1
      frameworks/Java/ninja-standalone/src/main/java/conf/application.conf
  52. 1 1
      frameworks/Java/ninja-standalone/src/main/resources/META-INF/persistence.xml
  53. 0 1
      frameworks/Java/undertow/undertow-base.dockerfile
  54. 11 4
      toolset/setup/linux/docker/webservers/resin.dockerfile

+ 13 - 13
.travis.yml

@@ -71,23 +71,23 @@ env:
     # - "TESTDIR=Haskell/servant"
     # - "TESTDIR=Haskell/spock"
      - "TESTDIR=Java/act"
-    # - "TESTDIR=Java/activeweb"
-    # - "TESTDIR=Java/baratine"
-    # - "TESTDIR=Java/bayou"
-    # - "TESTDIR=Java/blade"
+     - "TESTDIR=Java/activeweb"
+     - "TESTDIR=Java/baratine"
+     - "TESTDIR=Java/bayou"
+     - "TESTDIR=Java/blade"
     # - "TESTDIR=Java/comsat"
-    # - "TESTDIR=Java/curacao"
+     - "TESTDIR=Java/curacao"
     # - "TESTDIR=Java/dropwizard"
      - "TESTDIR=Java/gemini"
     # - "TESTDIR=Java/grizzly-bm"
-    # - "TESTDIR=Java/jawn"
-    # - "TESTDIR=Java/jetty"
-    # - "TESTDIR=Java/jlhttp"
-    # - "TESTDIR=Java/jooby"
-    # - "TESTDIR=Java/light-java"
-    # - "TESTDIR=Java/minijax"
-    # - "TESTDIR=Java/netty"
-    # - "TESTDIR=Java/ninja-standalone"
+     - "TESTDIR=Java/jawn"
+     - "TESTDIR=Java/jetty"
+     - "TESTDIR=Java/jlhttp"
+     - "TESTDIR=Java/jooby"
+     - "TESTDIR=Java/light-java"
+     - "TESTDIR=Java/minijax"
+     - "TESTDIR=Java/netty"
+     - "TESTDIR=Java/ninja-standalone"
     # - "TESTDIR=Java/play1"
     # - "TESTDIR=Java/play2-java"
     # - "TESTDIR=Java/proteus"

+ 7 - 0
frameworks/Java/activeweb/activeweb-base.dockerfile

@@ -0,0 +1,7 @@
+FROM tfb/maven:latest as maven
+ADD ./ /activeweb
+WORKDIR /activeweb
+RUN mvn clean package -DskipTests
+
+FROM tfb/resin:latest
+COPY --from=maven /activeweb/target/activeweb.war /var/resin/webapps/ROOT.war

+ 2 - 0
frameworks/Java/activeweb/activeweb-jackson.dockerfile

@@ -0,0 +1,2 @@
+FROM tfb/activeweb-base:latest
+CMD resinctl console

+ 2 - 0
frameworks/Java/activeweb/activeweb.dockerfile

@@ -0,0 +1,2 @@
+FROM tfb/activeweb-base:latest
+CMD resinctl console

+ 10 - 12
frameworks/Java/activeweb/benchmark_config.json

@@ -2,13 +2,12 @@
   "framework": "activeweb",
   "tests": [{
     "default": {
-      "setup_file": "setup",
-      "json_url": "/activeweb/json",
-      "db_url": "/activeweb/db",
-      "query_url": "/activeweb/queries?queries=",
-      "fortune_url": "/activeweb/fortunes",
-      "update_url": "/activeweb/updates?queries=",
-      "plaintext_url": "/activeweb/plaintext",
+      "json_url": "/json",
+      "db_url": "/db",
+      "query_url": "/queries?queries=",
+      "fortune_url": "/fortunes",
+      "update_url": "/updates?queries=",
+      "plaintext_url": "/plaintext",
       "port": 8080,
       "approach": "Realistic",
       "classification": "Fullstack",
@@ -26,11 +25,10 @@
       "versus": "servlet"
     },
     "jackson": {
-      "setup_file": "setup",
-      "json_url": "/activeweb/json/jackson",
-      "db_url": "/activeweb/db/jackson",
-      "query_url": "/activeweb/queries/jackson?queries=",
-      "update_url": "/activeweb/updates/jackson?queries=",
+      "json_url": "/json/jackson",
+      "db_url": "/db/jackson",
+      "query_url": "/queries/jackson?queries=",
+      "update_url": "/updates/jackson?queries=",
       "port": 8080,
       "approach": "Realistic",
       "classification": "Fullstack",

+ 0 - 10
frameworks/Java/activeweb/setup.sh

@@ -1,10 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql java resin maven
-
-# The tests are broken on Java 9.
-mvn clean package -DskipTests
-
-rm -rf $RESIN_HOME/webapps/*
-cp target/activeweb.war $RESIN_HOME/webapps/
-resinctl console

+ 5 - 0
frameworks/Java/baratine/baratine.dockerfile

@@ -0,0 +1,5 @@
+FROM tfb/maven:latest
+ADD ./ /baratine
+WORKDIR /baratine
+RUN mvn clean package
+CMD java -jar target/testTechempowerBaratine-0.0.1-SNAPSHOT.jar TFB-database

+ 0 - 1
frameworks/Java/baratine/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "baratine",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "port": 8080,

+ 0 - 7
frameworks/Java/baratine/setup.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends java maven
-
-mvn clean package
-
-java -jar target/testTechempowerBaratine-0.0.1-SNAPSHOT.jar ${DBHOST}

+ 5 - 0
frameworks/Java/bayou/bayou.dockerfile

@@ -0,0 +1,5 @@
+FROM tfb/maven:latest
+ADD ./ /bayou
+WORKDIR /bayou
+RUN mvn clean compile assembly:single
+CMD java -jar target/bayou_TFB-0.1-jar-with-dependencies.jar

+ 0 - 1
frameworks/Java/bayou/benchmark_config.json

@@ -2,7 +2,6 @@
     "framework": "bayou",
     "tests": [{
         "default": {
-            "setup_file": "setup",
             "json_url": "/json",
             "plaintext_url": "/plaintext",
             "port": 8080,

+ 0 - 1
frameworks/Java/blade/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "blade",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "db_url": "/db",
       "query_url": "/queries?queries=",

+ 12 - 0
frameworks/Java/blade/blade.dockerfile

@@ -0,0 +1,12 @@
+FROM tfb/maven:latest
+ADD ./ /blade
+WORKDIR /blade
+RUN mvn clean package
+CMD java \
+    -Xms2G \
+    -Xmx2G \
+    -server \
+    -XX:+UseNUMA \
+    -XX:+UseParallelGC \
+    -XX:+AggressiveOpts \
+    -jar target/dist/hello-blade-1.0.0-BUILD-SNAPSHOT/hello-blade-1.0.0-BUILD-SNAPSHOT.jar

+ 0 - 8
frameworks/Java/blade/setup.sh

@@ -1,8 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql java maven
-
-mvn clean package
-cd target/dist/hello-blade-1.0.0-BUILD-SNAPSHOT
-
-java -Xms2G -Xmx2G -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts -jar hello-blade-1.0.0-BUILD-SNAPSHOT.jar &

+ 1 - 1
frameworks/Java/blade/src/main/java/hello/DbConfig.java

@@ -14,7 +14,7 @@ import com.zaxxer.hikari.HikariDataSource;
 @Bean
 public class DbConfig implements BeanProcessor {
 
-    private static final String DB_URL = "jdbc:mysql://TFB-database:3306/hello_world?jdbcCompliantTruncation=false&elideSetAutoCommits=true&useLocalSessionState=true&cachePrepStmts=true&cacheCallableStmts=true&alwaysSendSetIsolation=false&prepStmtCacheSize=4096&cacheServerConfiguration=true&prepStmtCacheSqlLimit=2048&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useUnbufferedInput=false&useReadAheadInput=false&maintainTimeStats=false&useServerPrepStmts&cacheRSMetadata=true&useSSL=false";
+    private static final String DB_URL = "jdbc:mysql://TFB-database:3306/hello_world?jdbcCompliantTruncation=false&elideSetAutoCommits=true&useLocalSessionState=true&cachePrepStmts=true&cacheCallableStmts=true&alwaysSendSetIsolation=false&prepStmtCacheSize=4096&cacheServerConfiguration=true&prepStmtCacheSqlLimit=2048&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useUnbufferedInput=false&useReadAheadInput=false&maintainTimeStats=false&useServerPrepStmts&cacheRSMetadata=true&useSSL=false";
 
     @Override
     public void processor(Blade blade) {

+ 3 - 4
frameworks/Java/curacao/benchmark_config.json

@@ -2,9 +2,8 @@
   "framework": "curacao",
   "tests": [{
     "default": {
-      "setup_file": "setup",
-      "json_url": "/curacao/json",
-      "plaintext_url": "/curacao/plaintext",
+      "json_url": "/json",
+      "plaintext_url": "/plaintext",
       "port": 8080,
       "approach": "Realistic",
       "classification": "Micro",
@@ -22,4 +21,4 @@
       "versus": "servlet"
     }
   }]
-}
+}

+ 8 - 0
frameworks/Java/curacao/curacao.dockerfile

@@ -0,0 +1,8 @@
+FROM tfb/maven:latest as maven
+ADD ./ /curacao
+WORKDIR /curacao
+RUN mvn clean compile war:war
+
+FROM tfb/resin:latest
+COPY --from=maven /curacao/target/curacao.war /var/resin/webapps/ROOT.war
+CMD resinctl console

+ 0 - 8
frameworks/Java/curacao/setup.sh

@@ -1,8 +0,0 @@
-#!/bin/bash
-
-fw_depends java resin maven
-
-mvn clean compile war:war
-rm -rf $RESIN_HOME/webapps/*
-cp target/curacao.war $RESIN_HOME/webapps
-$RESIN_HOME/bin/resinctl console

+ 0 - 1
frameworks/Java/jawn/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "jawn",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "db_url": "/db",
       "query_url": "/queries?queries=",

+ 5 - 0
frameworks/Java/jawn/jawn.dockerfile

@@ -0,0 +1,5 @@
+FROM tfb/java8:latest
+ADD ./ /jawn
+WORKDIR /jawn
+RUN ./gradlew clean
+CMD ./gradlew --no-daemon --refresh-dependencies run -Pargs=8080,production

+ 0 - 7
frameworks/Java/jawn/setup.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql java8
-
-./gradlew clean
-
-./gradlew --no-daemon --refresh-dependencies run -Pargs=8080,production

+ 0 - 2
frameworks/Java/jetty/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "jetty",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "port": 8080,
@@ -22,7 +21,6 @@
       "versus": "servlet"
     },
     "servlet": {
-      "setup_file": "setup_servlet",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "port": 8080,

+ 8 - 0
frameworks/Java/jetty/jetty-servlet.dockerfile

@@ -0,0 +1,8 @@
+FROM tfb/maven:latest
+ADD ./ /jetty
+WORKDIR /jetty
+RUN mvn -P servlet clean compile assembly:single
+CMD java \
+    -XX:+UseNUMA \
+    -XX:+UseParallelGC \
+    -jar target/jetty-example-0.1-jar-with-dependencies.jar

+ 8 - 0
frameworks/Java/jetty/jetty.dockerfile

@@ -0,0 +1,8 @@
+FROM tfb/maven:latest
+ADD ./ /jetty
+WORKDIR /jetty
+RUN mvn clean compile assembly:single
+CMD java \
+    -XX:+UseNUMA \
+    -XX:+UseParallelGC \
+    -jar target/jetty-example-0.1-jar-with-dependencies.jar

+ 0 - 8
frameworks/Java/jetty/setup.sh

@@ -1,8 +0,0 @@
-#!/bin/bash
-
-fw_depends java maven
-
-mvn clean compile assembly:single
-
-cd target
-java -XX:+UseNUMA -XX:+UseParallelGC -jar jetty-example-0.1-jar-with-dependencies.jar &

+ 0 - 8
frameworks/Java/jetty/setup_servlet.sh

@@ -1,8 +0,0 @@
-#!/bin/bash
-
-fw_depends java maven
-
-mvn -P servlet clean compile assembly:single
-
-cd target
-java -XX:+UseNUMA -XX:+UseParallelGC -jar jetty-example-0.1-jar-with-dependencies.jar &

+ 0 - 1
frameworks/Java/jlhttp/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "jlhttp",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "port": 8080,

+ 11 - 0
frameworks/Java/jlhttp/jlhttp.dockerfile

@@ -0,0 +1,11 @@
+FROM tfb/maven:latest
+ADD ./ /jlhttp
+WORKDIR /jlhttp
+RUN mvn clean compile assembly:single
+CMD java \
+    -server \
+    -Xss256k \
+    -XX:+UseNUMA \
+    -XX:+UseParallelGC \
+    -XX:+AggressiveOpts \
+    -jar target/jlhttp-1.0-jar-with-dependencies.jar

+ 0 - 11
frameworks/Java/jlhttp/setup.sh

@@ -1,11 +0,0 @@
-#!/bin/bash
-
-# specify build requirements
-fw_depends java maven
-
-# build project
-mvn clean compile assembly:single
-
-# run server
-cd target
-java -server -Xss256k -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts -jar jlhttp-1.0-jar-with-dependencies.jar &

+ 0 - 1
frameworks/Java/jooby/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "jooby",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "db_url": "/db",

+ 9 - 0
frameworks/Java/jooby/jooby.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/maven:latest
+ADD ./ /jooby
+WORKDIR /jooby
+RUN mvn clean package
+CMD java \
+    -server \
+    -Xms512m \
+    -Xmx2g \
+    -jar target/jooby-1.0.jar

+ 0 - 8
frameworks/Java/jooby/setup.sh

@@ -1,8 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql java maven
-
-mvn clean package
-
-cd target
-java -server -Xms512m -Xmx2g -jar jooby-1.0.jar &

+ 0 - 2
frameworks/Java/light-java/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "light-4j",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "port": 8080,
@@ -22,7 +21,6 @@
       "versus": ""
     },
     "postgresql" : {
-      "setup_file": "setup_postgresql",
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",

+ 0 - 165
frameworks/Java/light-java/dependency-reduced-pom.xml

@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-  <parent>
-    <artifactId>oss-parent</artifactId>
-    <groupId>org.sonatype.oss</groupId>
-    <version>5</version>
-    <relativePath>../pom.xml/pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>com.networknt</groupId>
-  <artifactId>techempower</artifactId>
-  <name>techempower</name>
-  <version>1.0.0</version>
-  <prerequisites>
-    <maven>2.2.0</maven>
-  </prerequisites>
-  <build>
-    <defaultGoal>install</defaultGoal>
-    <directory>target</directory>
-    <finalName>${project.artifactId}-${project.version}</finalName>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <versionRange>[3.7.0,)</versionRange>
-                    <goals>
-                      <goal>compile</goal>
-                      <goal>testCompile</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore />
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>2.4.3</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <transformers>
-                <transformer />
-              </transformers>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>2.6</version>
-        <configuration>
-          <archive>
-            <manifest>
-              <mainClass>com.networknt.server.Server</mainClass>
-            </manifest>
-          </archive>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>exec-maven-plugin</artifactId>
-        <version>1.4.0</version>
-        <configuration>
-          <executable>java</executable>
-          <arguments>
-            <argument>-jar</argument>
-            <argument>target/${project.build.finalName}.jar</argument>
-          </arguments>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.7.0</version>
-        <dependencies>
-          <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-compiler-javac-errorprone</artifactId>
-            <version>2.8.2</version>
-          </dependency>
-          <dependency>
-            <groupId>com.google.errorprone</groupId>
-            <artifactId>error_prone_core</artifactId>
-            <version>2.1.3</version>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <compilerId>javac-with-errorprone</compilerId>
-          <showWarnings>true</showWarnings>
-          <showDeprecation>true</showDeprecation>
-          <compilerArgs />
-          <forceJavacCompilerUse>true</forceJavacCompilerUse>
-          <source>${java.version}</source>
-          <target>${java.version}</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-  <repositories>
-    <repository>
-      <snapshots />
-      <id>sonatype-snapshots</id>
-      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
-    </repository>
-  </repositories>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.12</version>
-      <scope>test</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>hamcrest-core</artifactId>
-          <groupId>org.hamcrest</groupId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-  </dependencies>
-  <properties>
-    <version.hikaricp>2.6.1</version.hikaricp>
-    <version.httpasyncclient>4.1.2</version.httpasyncclient>
-    <version.commons.codec>1.10</version.commons.codec>
-    <version.jsonpath>2.2.0</version.jsonpath>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <version.encoder>1.2</version.encoder>
-    <version.httpclient>4.5.2</version.httpclient>
-    <version.undertow>1.2.5.Final</version.undertow>
-    <version.jose4j>0.5.2</version.jose4j>
-    <version.commons-lang>2.6</version.commons-lang>
-    <java.version>1.8</java.version>
-    <version.jackson>2.8.2</version.jackson>
-    <version.light-java>1.2.5</version.light-java>
-    <version.swagger>1.5.10</version.swagger>
-    <version.mockito>2.1.0-beta.124</version.mockito>
-    <version.slf4j>1.7.22</version.slf4j>
-    <version.commons.io>2.5</version.commons.io>
-    <version.logback>1.1.9</version.logback>
-    <version.junit>4.12</version.junit>
-    <version.postgres>42.1.4</version.postgres>
-    <version.antlr4>4.5.3</version.antlr4>
-    <version.mysql>5.1.41</version.mysql>
-    <version.light-java-rest>1.2.5</version.light-java-rest>
-  </properties>
-</project>
-

+ 0 - 28
frameworks/Java/light-java/docker-compose.yml

@@ -1,28 +0,0 @@
- version: '2'
- services:
-   mysqldb:
-     image: mysql:5.7.16
-     volumes:
-       - ./docker/db/mysql:/var/lib/mysql
-       - ./src/main/resources/script/mysql:/docker-entrypoint-initdb.d
-     environment:
-       MYSQL_ROOT_PASSWORD: my-secret-pw
-   postgresdb:
-     image: postgres:9.6.0
-     volumes:
-       - ./docker/db/postgres:/var/lib/postgresql/data
-       - ./src/main/resources/script/postgres:/docker-entrypoint-initdb.d
-     environment:
-       POSTGRES_PASSWORD: my-secret-pw
-       POSTGRES_DB: hello_world
-
-#   light:
-#     depends_on:
-#       - mysqldb
-#       - postgresdb
-#     image: networknt/example-database:latest
-#     links:
-#       - mysqldb
-#       - postgresdb
-#     ports:
-#       - 8080:8080

+ 10 - 0
frameworks/Java/light-java/light-4j-postgresql.dockerfile

@@ -0,0 +1,10 @@
+FROM tfb/maven:latest
+ADD ./ /light-4j
+WORKDIR /light-4j
+RUN mvn clean package
+CMD java \
+    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \
+    -server \
+    -Xms512m \
+    -Xmx2g \
+    -jar target/techempower-1.0.0.jar

+ 10 - 0
frameworks/Java/light-java/light-4j.dockerfile

@@ -0,0 +1,10 @@
+FROM tfb/maven:latest
+ADD ./ /light-4j
+WORKDIR /light-4j
+RUN mvn clean package
+CMD java \
+    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \
+    -server \
+    -Xms512m \
+    -Xmx2g \
+    -jar target/techempower-1.0.0.jar

+ 0 - 7
frameworks/Java/light-java/setup.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql mysql java maven
-
-mvn clean package
-cd target
-java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -server -Xms512m -Xmx2g -jar techempower-1.0.0.jar &

+ 0 - 5
frameworks/Java/light-java/setup_mysql.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql
-
-source ./setup.sh

+ 0 - 5
frameworks/Java/light-java/setup_postgresql.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql
-
-source ./setup.sh

+ 0 - 1
frameworks/Java/minijax/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "minijax",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "db_url": "/db",

+ 8 - 0
frameworks/Java/minijax/minijax.dockerfile

@@ -0,0 +1,8 @@
+FROM tfb/maven:latest
+ADD ./ /minijax
+WORKDIR /minijax
+RUN mvn clean package
+CMD java \
+    -XX:+UseNUMA \
+    -XX:+UseParallelGC \
+    -jar target/minijax-techempower-0.0.1.jar

+ 1 - 1
frameworks/Java/minijax/minijax.properties

@@ -1,4 +1,4 @@
-javax.persistence.jdbc.url=jdbc:mysql://localhost:3306/hello_world?jdbcCompliantTruncation=false&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useUnbufferedInput=false&useReadAheadInput=false&maintainTimeStats=false&useServerPrepStmts=true&cacheRSMetadata=true&useSSL=false
+javax.persistence.jdbc.url=jdbc:mysql://TFB-database:3306/hello_world?jdbcCompliantTruncation=false&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useUnbufferedInput=false&useReadAheadInput=false&maintainTimeStats=false&useServerPrepStmts=true&cacheRSMetadata=true&useSSL=false
 javax.persistence.jdbc.driver=com.mysql.cj.jdbc.Driver
 javax.persistence.jdbc.user=benchmarkdbuser
 javax.persistence.jdbc.password=benchmarkdbpass

+ 0 - 9
frameworks/Java/minijax/setup.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql java maven
-
-sed -i 's|localhost|'${DBHOST}'|g' minijax.properties
-
-mvn clean package
-
-java -XX:+UseNUMA -XX:+UseParallelGC -jar target/minijax-techempower-0.0.1.jar &

+ 0 - 1
frameworks/Java/netty/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "netty",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "port": 8080,

+ 10 - 0
frameworks/Java/netty/netty.dockerfile

@@ -0,0 +1,10 @@
+FROM tfb/maven:latest
+ADD ./ /netty
+WORKDIR /netty
+RUN mvn clean compile assembly:single
+CMD java \
+    -server \
+    -XX:+UseNUMA \
+    -XX:+UseParallelGC \
+    -XX:+AggressiveOpts \
+    -jar target/netty-example-0.1-jar-with-dependencies.jar

+ 0 - 8
frameworks/Java/netty/setup.sh

@@ -1,8 +0,0 @@
-#!/bin/bash
-
-fw_depends java maven
-
-mvn clean compile assembly:single
-
-cd target
-java -server -XX:+UseNUMA -XX:+UseParallelGC -XX:+AggressiveOpts -jar netty-example-0.1-jar-with-dependencies.jar &

+ 0 - 1
frameworks/Java/ninja-standalone/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "ninja-standalone",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "db_url": "/db",
       "query_url": "/queries?queries=",

+ 5 - 0
frameworks/Java/ninja-standalone/ninja-standalone.dockerfile

@@ -0,0 +1,5 @@
+FROM tfb/maven:latest
+ADD ./ /ninja-standalone
+WORKDIR /ninja-standalone
+RUN mvn clean compile assembly:single
+CMD java -Dninja.port=8080 -jar target/ninja-standalone-0.0.1-SNAPSHOT-jar-with-dependencies.jar

+ 0 - 10
frameworks/Java/ninja-standalone/setup.sh

@@ -1,10 +0,0 @@
-#!/bin/bash
-
-sed -i 's|mysql://.*:3306|mysql://'"${DBHOST}"':3306|g' src/main/java/conf/application.conf
-sed -i 's|mysql://.*:3306|mysql://'"${DBHOST}"':3306|g' src/main/resources/META-INF/persistence.xml
-
-fw_depends mysql java maven
-
-mvn clean compile assembly:single
-
-java -Dninja.port=8080 -jar target/ninja-standalone-0.0.1-SNAPSHOT-jar-with-dependencies.jar &

+ 1 - 1
frameworks/Java/ninja-standalone/src/main/java/conf/application.conf

@@ -31,7 +31,7 @@ application.session.transferred_over_https_only=false
 ninja.migration.run=false
 
 %prod.ninja.jpa.persistence_unit_name = mysql
-%prod.db.connection.url=jdbc:mysql://localhost:3306/hello_world?jdbcCompliantTruncation=false&amp;elideSetAutoCommits=true&amp;useLocalSessionState=true&amp;cachePrepStmts=true&amp;cacheCallableStmts=true&amp;alwaysSendSetIsolation=false&amp;prepStmtCacheSize=4096&amp;cacheServerConfiguration=true&amp;prepStmtCacheSqlLimit=2048&amp;zeroDateTimeBehavior=convertToNull&amp;traceProtocol=false&amp;useUnbufferedInput=false&amp;useReadAheadInput=false&amp;maintainTimeStats=false&amp;useServerPrepStmts&amp;cacheRSMetadata=true&amp;useSSL=false
+%prod.db.connection.url=jdbc:mysql://TFB-database:3306/hello_world?jdbcCompliantTruncation=false&elideSetAutoCommits=true&useLocalSessionState=true&cachePrepStmts=true&cacheCallableStmts=true&alwaysSendSetIsolation=false&prepStmtCacheSize=4096&cacheServerConfiguration=true&prepStmtCacheSqlLimit=2048&zeroDateTimeBehavior=convertToNull&traceProtocol=false&useUnbufferedInput=false&useReadAheadInput=false&maintainTimeStats=false&useServerPrepStmts&cacheRSMetadata=true&useSSL=false
 %prod.db.connection.username=benchmarkdbuser
 %prod.db.connection.password=benchmarkdbpass
 

+ 1 - 1
frameworks/Java/ninja-standalone/src/main/resources/META-INF/persistence.xml

@@ -36,7 +36,7 @@
       <property name="hibernate.hikari.minimumIdle" value="256" />
       <property name="hibernate.hikari.maximumPoolSize" value="256" />
       <property name="hibernate.hikari.idleTimeout" value="30000" />
-      <property name="hibernate.hikari.dataSource.url" value="jdbc:mysql://localhost:3306/hello_world?useSSL=false&amp;jdbcCompliantTruncation=false&amp;elideSetAutoCommits=true&amp;useLocalSessionState=true&amp;cachePrepStmts=true&amp;cacheCallableStmts=true&amp;alwaysSendSetIsolation=false&amp;prepStmtCacheSize=4096&amp;cacheServerConfiguration=true&amp;prepStmtCacheSqlLimit=2048&amp;zeroDateTimeBehavior=convertToNull&amp;traceProtocol=false&amp;useUnbufferedInput=false&amp;useReadAheadInput=false&amp;maintainTimeStats=false&amp;useServerPrepStmts&amp;cacheRSMetadata=true" />
+      <property name="hibernate.hikari.dataSource.url" value="jdbc:mysql://TFB-database:3306/hello_world?useSSL=false&amp;jdbcCompliantTruncation=false&amp;elideSetAutoCommits=true&amp;useLocalSessionState=true&amp;cachePrepStmts=true&amp;cacheCallableStmts=true&amp;alwaysSendSetIsolation=false&amp;prepStmtCacheSize=4096&amp;cacheServerConfiguration=true&amp;prepStmtCacheSqlLimit=2048&amp;zeroDateTimeBehavior=convertToNull&amp;traceProtocol=false&amp;useUnbufferedInput=false&amp;useReadAheadInput=false&amp;maintainTimeStats=false&amp;useServerPrepStmts&amp;cacheRSMetadata=true" />
       <property name="hibernate.hikari.dataSource.user" value="benchmarkdbuser" />
       <property name="hibernate.hikari.dataSource.password" value="benchmarkdbpass" />
     </properties>

+ 0 - 1
frameworks/Java/undertow/undertow-base.dockerfile

@@ -2,4 +2,3 @@ FROM tfb/maven:latest
 ADD ./ /undertow
 WORKDIR /undertow
 RUN mvn clean package
-EXPOSE 8080

+ 11 - 4
toolset/setup/linux/docker/webservers/resin.dockerfile

@@ -1,7 +1,14 @@
 FROM tfb/java:latest
 
-ENV RESIN_HOME=/resin-4.0.55
+RUN mkdir /resin
+WORKDIR /resin
+RUN curl http://www.caucho.com/download/resin-4.0.55.tar.gz | tar xz
+WORKDIR /resin/resin-4.0.55
+RUN ./configure
+RUN make
+RUN make install
 
-RUN curl -sLO http://www.caucho.com/download/resin-4.0.55.tar.gz
-RUN tar xf resin-4.0.55.tar.gz
-RUN cd resin-4.0.55; ./configure; make; make install
+# Remove the default app so that frameworks using Resin don't have to.
+RUN rm -rf /var/resin/webapps/*
+
+ENV RESIN_HOME=/resin/resin-4.0.55