Parcourir la source

Remove many techempower/* docker dependencies in JVM tests (#3523)

* [ci lang-only CSharp Clojure Groovy Java Scala] remove TE docker deps

* [ci lang-only CSharp Clojure Groovy Java Scala] fix up pedestal CMD

* [ci lang-only CSharp Clojure Groovy Java Scala] fix baratine and jawn
Michael Hixson il y a 7 ans
Parent
commit
d54afe50af
100 fichiers modifiés avec 557 ajouts et 1096 suppressions
  1. 11 6
      frameworks/CSharp/revenj/revenj.dockerfile
  2. 1 1
      frameworks/Clojure/aleph/aleph.dockerfile
  3. 1 1
      frameworks/Clojure/compojure/compojure-raw.dockerfile
  4. 1 1
      frameworks/Clojure/compojure/compojure.dockerfile
  5. 1 1
      frameworks/Clojure/http-kit/http-kit-raw.dockerfile
  6. 1 1
      frameworks/Clojure/http-kit/http-kit.dockerfile
  7. 2 2
      frameworks/Clojure/luminus/luminus.dockerfile
  8. 1 1
      frameworks/Clojure/macchiato/macchiato.dockerfile
  9. 1 1
      frameworks/Clojure/pedestal/pedestal.dockerfile
  10. 1 1
      frameworks/Clojure/reitit/reitit.dockerfile
  11. 8 7
      frameworks/Groovy/grails/grails.dockerfile
  12. 0 8
      frameworks/Groovy/hot/hot-base.dockerfile
  13. 9 3
      frameworks/Groovy/hot/hot-mongodb.dockerfile
  14. 9 3
      frameworks/Groovy/hot/hot.dockerfile
  15. 0 16
      frameworks/Java/act/act-base.dockerfile
  16. 6 19
      frameworks/Java/act/act-ebean-mysql-rythm.dockerfile
  17. 6 19
      frameworks/Java/act/act-ebean-mysql.dockerfile
  18. 6 19
      frameworks/Java/act/act-ebean-pgsql-rythm.dockerfile
  19. 6 19
      frameworks/Java/act/act-ebean-pgsql.dockerfile
  20. 6 19
      frameworks/Java/act/act-eclipselink-mysql-rythm.dockerfile
  21. 6 19
      frameworks/Java/act/act-eclipselink-mysql.dockerfile
  22. 6 19
      frameworks/Java/act/act-eclipselink-pgsql-rythm.dockerfile
  23. 6 19
      frameworks/Java/act/act-eclipselink-pgsql.dockerfile
  24. 6 19
      frameworks/Java/act/act-hibernate-mysql-rythm.dockerfile
  25. 6 19
      frameworks/Java/act/act-hibernate-mysql.dockerfile
  26. 6 19
      frameworks/Java/act/act-hibernate-pgsql-rythm.dockerfile
  27. 6 19
      frameworks/Java/act/act-hibernate-pgsql.dockerfile
  28. 6 19
      frameworks/Java/act/act-morphia-mongo-rythm.dockerfile
  29. 6 19
      frameworks/Java/act/act-morphia-mongo.dockerfile
  30. 6 18
      frameworks/Java/act/act.dockerfile
  31. 0 15
      frameworks/Java/act/pipeline.lua
  32. 0 7
      frameworks/Java/activeweb/activeweb-base.dockerfile
  33. 8 1
      frameworks/Java/activeweb/activeweb-jackson.dockerfile
  34. 8 1
      frameworks/Java/activeweb/activeweb.dockerfile
  35. 8 4
      frameworks/Java/baratine/baratine.dockerfile
  36. 8 4
      frameworks/Java/bayou/bayou.dockerfile
  37. 6 12
      frameworks/Java/blade/blade.dockerfile
  38. 0 5
      frameworks/Java/comsat/comsat-base.dockerfile
  39. 10 2
      frameworks/Java/comsat/comsat-servlet-undertow.dockerfile
  40. 10 2
      frameworks/Java/comsat/comsat-webactors-netty.dockerfile
  41. 10 2
      frameworks/Java/comsat/comsat-webactors-undertow.dockerfile
  42. 10 2
      frameworks/Java/comsat/comsat.dockerfile
  43. 4 5
      frameworks/Java/curacao/curacao.dockerfile
  44. 9 4
      frameworks/Java/dropwizard/dropwizard-jdbi-postgres.dockerfile
  45. 9 4
      frameworks/Java/dropwizard/dropwizard-mongodb.dockerfile
  46. 9 4
      frameworks/Java/dropwizard/dropwizard-postgres.dockerfile
  47. 9 4
      frameworks/Java/dropwizard/dropwizard.dockerfile
  48. 8 4
      frameworks/Java/grizzly-jersey/grizzly-jersey.dockerfile
  49. 8 8
      frameworks/Java/grizzly/grizzly.dockerfile
  50. 6 6
      frameworks/Java/jawn/jawn.dockerfile
  51. 8 7
      frameworks/Java/jetty/jetty-servlet.dockerfile
  52. 8 7
      frameworks/Java/jetty/jetty.dockerfile
  53. 8 10
      frameworks/Java/jlhttp/jlhttp.dockerfile
  54. 10 8
      frameworks/Java/jooby/jooby.dockerfile
  55. 0 17
      frameworks/Java/light-java/benchmark_config.json
  56. 0 11
      frameworks/Java/light-java/light-4j-postgresql.dockerfile
  57. 8 9
      frameworks/Java/light-java/light-4j.dockerfile
  58. 34 110
      frameworks/Java/light-java/pom.xml
  59. 4 0
      frameworks/Java/light-java/src/main/java/com/networknt/techempower/PathHandlerProvider.java
  60. 4 0
      frameworks/Java/light-java/src/main/java/com/networknt/techempower/db/postgres/PostgresStartupHookProvider.java
  61. 0 13
      frameworks/Java/light-java/src/main/resources/config/mysql.json
  62. 0 7
      frameworks/Java/light-java/src/main/resources/config/postgres.json
  63. 4 0
      frameworks/Java/light-java/src/main/resources/config/postgres.yml
  64. 0 15
      frameworks/Java/light-java/src/main/resources/config/security.json
  65. 0 16
      frameworks/Java/light-java/src/main/resources/config/server.json
  66. 10 0
      frameworks/Java/light-java/src/main/resources/config/server.yml
  67. 3 0
      frameworks/Java/light-java/src/main/resources/config/service.yml
  68. 0 176
      frameworks/Java/light-java/src/main/resources/config/swagger.json
  69. BIN
      frameworks/Java/light-java/src/main/resources/config/tls/server.keystore
  70. 0 74
      frameworks/Java/light-java/src/main/resources/logback.xml
  71. 9 11
      frameworks/Java/minijax/minijax.dockerfile
  72. 8 9
      frameworks/Java/netty/netty.dockerfile
  73. 8 4
      frameworks/Java/ninja-standalone/ninja-standalone.dockerfile
  74. 6 4
      frameworks/Java/play1/play1.dockerfile
  75. 4 6
      frameworks/Java/play2-java/play2-java-ebean-hikaricp-netty.dockerfile
  76. 4 6
      frameworks/Java/play2-java/play2-java-ebean-hikaricp.dockerfile
  77. 4 6
      frameworks/Java/play2-java/play2-java-jooq-hikaricp-netty.dockerfile
  78. 4 6
      frameworks/Java/play2-java/play2-java-jooq-hikaricp.dockerfile
  79. 4 6
      frameworks/Java/play2-java/play2-java-jpa-hikaricp-netty.dockerfile
  80. 4 6
      frameworks/Java/play2-java/play2-java-jpa-hikaricp.dockerfile
  81. 4 6
      frameworks/Java/play2-java/play2-java-netty.dockerfile
  82. 4 6
      frameworks/Java/play2-java/play2-java.dockerfile
  83. 0 5
      frameworks/Java/proteus/proteus-base.dockerfile
  84. 11 2
      frameworks/Java/proteus/proteus-mysql.dockerfile
  85. 11 2
      frameworks/Java/proteus/proteus.dockerfile
  86. 8 8
      frameworks/Java/rapidoid/pom.xml
  87. 0 5
      frameworks/Java/rapidoid/rapidoid-base.dockerfile
  88. 9 9
      frameworks/Java/rapidoid/rapidoid-http-fast.dockerfile
  89. 9 10
      frameworks/Java/rapidoid/rapidoid-mysql.dockerfile
  90. 9 10
      frameworks/Java/rapidoid/rapidoid-postgres.dockerfile
  91. 9 9
      frameworks/Java/rapidoid/rapidoid.dockerfile
  92. 0 11
      frameworks/Java/restexpress/restexpress-base.dockerfile
  93. 12 3
      frameworks/Java/restexpress/restexpress-mysql-raw.dockerfile
  94. 12 3
      frameworks/Java/restexpress/restexpress.dockerfile
  95. 6 5
      frameworks/Java/revenj-jvm/revenj-jvm.dockerfile
  96. 4 5
      frameworks/Java/servlet/servlet-afterburner.dockerfile
  97. 4 5
      frameworks/Java/servlet/servlet-cjs.dockerfile
  98. 4 5
      frameworks/Java/servlet/servlet-mysql.dockerfile
  99. 4 5
      frameworks/Java/servlet/servlet-postgresql.dockerfile
  100. 4 5
      frameworks/Java/servlet/servlet.dockerfile

+ 11 - 6
frameworks/CSharp/revenj/revenj.dockerfile

@@ -1,11 +1,16 @@
-FROM techempower/java:0.1 as java
 FROM techempower/mono:0.1
-COPY --from=java /java /java
-ENV JAVA_HOME=/java/jdk-9.0.4
-ENV PATH="${JAVA_HOME}/bin:${PATH}"
 
-ADD ./ /revenj
+RUN mkdir /java
+WORKDIR /java
+RUN curl -sL -O https://download.java.net/java/GA/jdk10/10/binaries/openjdk-10_linux-x64_bin.tar.gz
+RUN tar xf openjdk-10_linux-x64_bin.tar.gz
+ENV JAVA_HOME=/java/jdk-10
+ENV PATH ${JAVA_HOME}/bin:${PATH}
+
 WORKDIR /revenj
+COPY Revenj.Bench Revenj.Bench
+COPY Revenj.Bench.sln Reveng.Bench.sln
+COPY Revenj.Http.exe.config Revenj.Http.exe.config
 
 RUN curl -sL -O https://github.com/ngs-doo/revenj/releases/download/1.4.2/dsl-compiler.zip
 RUN unzip dsl-compiler.zip
@@ -29,4 +34,4 @@ RUN xbuild /revenj/Revenj.Bench/Revenj.Bench.csproj /t:Rebuild /p:Configuration=
 
 RUN mv /revenj/Revenj.Http.exe.config /revenj/exe/Revenj.Http.exe.config
 
-CMD mono /revenj/exe/Revenj.Http.exe
+CMD ["mono", "/revenj/exe/Revenj.Http.exe"]

+ 1 - 1
frameworks/Clojure/aleph/aleph.dockerfile

@@ -1,6 +1,6 @@
 FROM clojure:lein-2.8.1
 WORKDIR /aleph
-COPY project.clj project.clj
 COPY src src
+COPY project.clj project.clj
 RUN lein uberjar
 CMD ["java", "-server", "-Xmx2g", "-XX:+UseG1GC", "-XX:MaxGCPauseMillis=10", "-jar", "target/hello-aleph-standalone.jar"]

+ 1 - 1
frameworks/Clojure/compojure/compojure-raw.dockerfile

@@ -1,7 +1,7 @@
 FROM clojure:lein-2.8.1 as lein
 WORKDIR /compojure
-COPY project.clj project.clj
 COPY src src
+COPY project.clj project.clj
 RUN lein ring uberwar
 
 FROM techempower/resin-java8:0.1

+ 1 - 1
frameworks/Clojure/compojure/compojure.dockerfile

@@ -1,7 +1,7 @@
 FROM clojure:lein-2.8.1 as lein
 WORKDIR /compojure
-COPY project.clj project.clj
 COPY src src
+COPY project.clj project.clj
 RUN lein ring uberwar
 
 FROM techempower/resin-java8:0.1

+ 1 - 1
frameworks/Clojure/http-kit/http-kit-raw.dockerfile

@@ -1,7 +1,7 @@
 FROM clojure:lein-2.8.1
 WORKDIR /http-kit
-COPY project.clj project.clj
 COPY src src
+COPY project.clj project.clj
 RUN lein deps
 RUN lein uberjar
 CMD ["java", "-server", "-jar", "target/http-kit-standalone.jar"]

+ 1 - 1
frameworks/Clojure/http-kit/http-kit.dockerfile

@@ -1,7 +1,7 @@
 FROM clojure:lein-2.8.1
 WORKDIR /http-kit
-COPY project.clj project.clj
 COPY src src
+COPY project.clj project.clj
 RUN lein deps
 RUN lein uberjar
 CMD ["java", "-server", "-jar", "target/http-kit-standalone.jar"]

+ 2 - 2
frameworks/Clojure/luminus/luminus.dockerfile

@@ -1,10 +1,10 @@
 FROM clojure:lein-2.8.1
 WORKDIR /luminus
-COPY project.clj project.clj
-COPY Procfile Procfile
 COPY env env
 COPY resources resources
 COPY src src
 COPY test test
+COPY Procfile Procfile
+COPY project.clj project.clj
 RUN lein uberjar
 CMD ["java", "-server", "-jar", "target/hello.jar"]

+ 1 - 1
frameworks/Clojure/macchiato/macchiato.dockerfile

@@ -1,8 +1,8 @@
 FROM clojure:lein-2.8.1
 WORKDIR /macchiato
-COPY project.clj project.clj
 COPY env env
 COPY src src
+COPY project.clj project.clj
 ENV NODE_ENV=production
 RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
 RUN apt install -y nodejs

+ 1 - 1
frameworks/Clojure/pedestal/pedestal.dockerfile

@@ -1,8 +1,8 @@
 FROM clojure:lein-2.8.1
 WORKDIR /pedestal
-COPY project.clj project.clj
 COPY config config
 COPY src src
 COPY test test
+COPY project.clj project.clj
 RUN lein uberjar
 CMD ["java", "-jar", "-Dio.pedestal.log.defaultMetricsRecorder=nil", "-Dio.pedestal.log.overrideLogger=nil", "target/pedestal-standalone.jar"]

+ 1 - 1
frameworks/Clojure/reitit/reitit.dockerfile

@@ -1,6 +1,6 @@
 FROM clojure:lein-2.8.1
 WORKDIR /reitit
-COPY project.clj project.clj
 COPY src src
+COPY project.clj project.clj
 RUN lein uberjar
 CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "target/hello-reitit-standalone.jar"]

+ 8 - 7
frameworks/Groovy/grails/grails.dockerfile

@@ -1,16 +1,17 @@
 FROM techempower/resin-java8:0.1
-
-ADD ./ /grails
 WORKDIR /grails
+COPY grails-app grails-app
+COPY web-app web-app
+COPY application.properties application.properties
 
-ENV GRAILS_VERSION=2.4.4
-ENV GRAILS_HOME=/grails/grails-${GRAILS_VERSION}
-ENV GRAILS_WORK_DIR=${GRAILS_HOME}/.grails
-ENV GRAILS_AGENT_CACHE_DIR=${GRAILS_WORK_DIR}/.slcache
+ENV GRAILS_VERSION 2.4.4
+ENV GRAILS_HOME /grails/grails-${GRAILS_VERSION}
+ENV GRAILS_WORK_DIR ${GRAILS_HOME}/.grails
+ENV GRAILS_AGENT_CACHE_DIR ${GRAILS_WORK_DIR}/.slcache
 
 RUN curl -sL -O http://dist.springframework.org.s3.amazonaws.com/release/GRAILS/grails-${GRAILS_VERSION}.zip
 RUN unzip -q grails-${GRAILS_VERSION}.zip
-ENV PATH="${GRAILS_HOME}/bin:${PATH}"
+ENV PATH ${GRAILS_HOME}/bin:${PATH}
 
 RUN grails -Dgrails.work.dir=${GRAILS_WORK_DIR} -non-interactive -plain-output refresh-dependencies
 RUN grails -Dgrails.work.dir=${GRAILS_WORK_DIR} -non-interactive -plain-output compile

+ 0 - 8
frameworks/Groovy/hot/hot-base.dockerfile

@@ -1,8 +0,0 @@
-FROM techempower/java8:0.1
-
-ADD ./ /hot
-WORKDIR /hot
-ENV HOT_VERSION=0.9.2-SNAPSHOT
-RUN curl -sL https://github.com/dsolimando/Hot/releases/download/${HOT_VERSION}/hot-${HOT_VERSION}.tar.gz | tar xz
-ENV HOT_HOME=/hot/hot-${HOT_VERSION}
-ENV PATH="${HOT_HOME}:${PATH}"

+ 9 - 3
frameworks/Groovy/hot/hot-mongodb.dockerfile

@@ -1,3 +1,9 @@
-FROM techempower/hot-base:0.1
-
-CMD hot run
+FROM openjdk:8-jdk
+WORKDIR /hot
+COPY shows shows
+COPY config.json config.json
+ENV HOT_VERSION 0.9.2-SNAPSHOT
+RUN curl -sL https://github.com/dsolimando/Hot/releases/download/${HOT_VERSION}/hot-${HOT_VERSION}.tar.gz | tar xz
+ENV HOT_HOME /hot/hot-${HOT_VERSION}
+ENV PATH ${HOT_HOME}:${PATH}
+CMD ["hot", "run"]

+ 9 - 3
frameworks/Groovy/hot/hot.dockerfile

@@ -1,3 +1,9 @@
-FROM techempower/hot-base:0.1
-
-CMD hot run
+FROM openjdk:8-jdk
+WORKDIR /hot
+COPY shows shows
+COPY config.json config.json
+ENV HOT_VERSION 0.9.2-SNAPSHOT
+RUN curl -sL https://github.com/dsolimando/Hot/releases/download/${HOT_VERSION}/hot-${HOT_VERSION}.tar.gz | tar xz
+ENV HOT_HOME /hot/hot-${HOT_VERSION}
+ENV PATH ${HOT_HOME}:${PATH}
+CMD ["hot", "run"]

+ 0 - 16
frameworks/Java/act/act-base.dockerfile

@@ -1,16 +0,0 @@
-FROM techempower/maven-java8:0.1
-
-RUN apt-get install -y unzip
-ADD ./ /act
-WORKDIR /act
-
-#
-# This part isn't strictly necessary.  Its purpose is to download everything
-# actframework might need from Maven ONCE rather than repeating the downloads
-# for each actframework permutation.
-#
-# An even more ideal solution would be to share the .m2 directory with the host
-# machine across all frameworks, but this doesn't seem to be possible right now.
-# See: https://github.com/moby/moby/issues/14080
-#
-RUN mvn package clean -P mongo,ebean_mysql,hibernate_mysql,eclipselink_mysql,ebean_pgsql,hibernate_pgsql,eclipselink_pgsql

+ 6 - 19
frameworks/Java/act/act-ebean-mysql-rythm.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Pebean_mysql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P ebean_mysql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=ebean_mysql_rythm \
-    -Dxio.worker_threads.max=256 \
-    -Dmysql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=ebean_mysql_rythm", "-Dxio.worker_threads.max=256", "-Dmysql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-ebean-mysql.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Pebean_mysql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P ebean_mysql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=ebean_mysql \
-    -Dxio.worker_threads.max=256 \
-    -Dmysql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=ebean_mysql", "-Dxio.worker_threads.max=256", "-Dmysql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-ebean-pgsql-rythm.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Pebean_pgsql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P ebean_pgsql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=ebean_pgsql_rythm \
-    -Dxio.worker_threads.max=256 \
-    -Dpgsql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=ebean_pgsql_rythm", "-Dxio.worker_threads.max=256", "-Dpgsql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-ebean-pgsql.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Pebean_pgsql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P ebean_pgsql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=ebean_pgsql \
-    -Dxio.worker_threads.max=256 \
-    -Dpgsql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=ebean_pgsql", "-Dxio.worker_threads.max=256", "-Dpgsql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-eclipselink-mysql-rythm.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Peclipselink_mysql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P eclipselink_mysql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=eclipselink_mysql_rythm \
-    -Dxio.worker_threads.max=256 \
-    -Dmysql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=eclipselink_mysql_rythm", "-Dxio.worker_threads.max=256", "-Dmysql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-eclipselink-mysql.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Peclipselink_mysql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P eclipselink_mysql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=eclipselink_mysql \
-    -Dxio.worker_threads.max=256 \
-    -Dmysql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=eclipselink_mysql", "-Dxio.worker_threads.max=256", "-Dmysql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-eclipselink-pgsql-rythm.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Peclipselink_pgsql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P eclipselink_pgsql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=eclipselink_pgsql_rythm \
-    -Dxio.worker_threads.max=256 \
-    -Dpgsql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=eclipselink_pgsql_rythm", "-Dxio.worker_threads.max=256", "-Dpgsql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-eclipselink-pgsql.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Peclipselink_pgsql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P eclipselink_pgsql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=eclipselink_pgsql \
-    -Dxio.worker_threads.max=256 \
-    -Dpgsql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=eclipselink_pgsql", "-Dxio.worker_threads.max=256", "-Dpgsql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-hibernate-mysql-rythm.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Phibernate_mysql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P hibernate_mysql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=hibernate_mysql_rythm \
-    -Dxio.worker_threads.max=256 \
-    -Dmysql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=hibernate_mysql_rythm", "-Dxio.worker_threads.max=256", "-Dmysql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-hibernate-mysql.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Phibernate_mysql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P hibernate_mysql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=hibernate_mysql \
-    -Dxio.worker_threads.max=256 \
-    -Dmysql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=hibernate_mysql", "-Dxio.worker_threads.max=256", "-Dmysql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-hibernate-pgsql-rythm.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Phibernate_pgsql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P hibernate_pgsql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=hibernate_pgsql_rythm \
-    -Dxio.worker_threads.max=256 \
-    -Dpgsql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=hibernate_pgsql_rythm", "-Dxio.worker_threads.max=256", "-Dpgsql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-hibernate-pgsql.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Phibernate_pgsql clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P hibernate_pgsql
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=hibernate_pgsql \
-    -Dxio.worker_threads.max=256 \
-    -Dpgsql.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=hibernate_pgsql", "-Dxio.worker_threads.max=256", "-Dpgsql.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-morphia-mongo-rythm.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Pmongo clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P mongo
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=mongo_rythm \
-    -Dxio.worker_threads.max=256 \
-    -Dmongo.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=mongo_rythm", "-Dxio.worker_threads.max=256", "-Dmongo.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 19
frameworks/Java/act/act-morphia-mongo.dockerfile

@@ -1,21 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn -Pmongo clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P mongo
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=mongo \
-    -Dxio.worker_threads.max=256 \
-    -Dmongo.host=tfb-database \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=mongo", "-Dxio.worker_threads.max=256", "-Dmongo.host=tfb-database", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 6 - 18
frameworks/Java/act/act.dockerfile

@@ -1,20 +1,8 @@
-FROM techempower/act-base:0.1
-
-RUN mvn clean package
+FROM maven:3.5.3-jdk-8
+WORKDIR /act
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q
 WORKDIR /act/target/dist
 RUN unzip -q *.zip
-CMD java \
-    -server \
-    -Djava.security.egd=file:/dev/./urandom \
-    -Xms1G \
-    -Xmx1G \
-    -Xss320k \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -Dapp.mode=prod \
-    -Dapp.nodeGroup= \
-    -Dprofile=json_plaintext \
-    -Dxio.worker_threads.max=256 \
-    -cp "/act/target/dist/classes:/act/target/dist/lib/*" \
-    com.techempower.act.AppEntry
+CMD ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-Xms1G", "-Xmx1G", "-Xss320k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dapp.mode=prod", "-Dapp.nodeGroup=", "-Dprofile=json_plaintext", "-Dxio.worker_threads.max=256", "-cp", "/act/target/dist/classes:/act/target/dist/lib/*", "com.techempower.act.AppEntry"]

+ 0 - 15
frameworks/Java/act/pipeline.lua

@@ -1,15 +0,0 @@
-init = function(args)
-   request_uri = args[1]
-   depth = tonumber(args[2]) or 1
-
-   local r = {}
-   for i=1,depth do
-     r[i] = wrk.format(nil, request_uri)
-   end
-   req = table.concat(r)
-end
-
-request = function()
-   wrk.headers["J-Tenant-Id"] = "1007"
-   return req
-end

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

@@ -1,7 +0,0 @@
-FROM techempower/maven:0.1 as maven
-ADD ./ /activeweb
-WORKDIR /activeweb
-RUN mvn clean package -DskipTests
-
-FROM techempower/resin:0.1
-COPY --from=maven /activeweb/target/activeweb.war ${RESIN_HOME}/webapps/ROOT.war

+ 8 - 1
frameworks/Java/activeweb/activeweb-jackson.dockerfile

@@ -1,3 +1,10 @@
-FROM techempower/activeweb-base:0.1
+FROM maven:3.5.3-jdk-9-slim as maven
+WORKDIR /activeweb
+COPY pom.xml pom.xml
+COPY scripts scripts
+COPY src src
+RUN mvn package -DskipTests -q
 
+FROM techempower/resin:0.1
+COPY --from=maven /activeweb/target/activeweb.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 8 - 1
frameworks/Java/activeweb/activeweb.dockerfile

@@ -1,3 +1,10 @@
-FROM techempower/activeweb-base:0.1
+FROM maven:3.5.3-jdk-9-slim as maven
+WORKDIR /activeweb
+COPY pom.xml pom.xml
+COPY scripts scripts
+COPY src src
+RUN mvn package -DskipTests -q
 
+FROM techempower/resin:0.1
+COPY --from=maven /activeweb/target/activeweb.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 8 - 4
frameworks/Java/baratine/baratine.dockerfile

@@ -1,6 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-9-slim as maven
+WORKDIR /baratine
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q
 
-ADD ./ /baratine
+FROM openjdk:9-jre-slim
 WORKDIR /baratine
-RUN mvn clean package
-CMD java -jar target/testTechempowerBaratine-0.0.1-SNAPSHOT.jar tfb-database
+COPY --from=maven /baratine/target/testTechempowerBaratine-0.0.1-SNAPSHOT.jar app.jar
+CMD ["java", "-jar", "app.jar", "tfb-database"]

+ 8 - 4
frameworks/Java/bayou/bayou.dockerfile

@@ -1,6 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /bayou
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-ADD ./ /bayou
+FROM openjdk:10-jre-slim
 WORKDIR /bayou
-RUN mvn clean compile assembly:single
-CMD java -jar target/bayou_TFB-0.1-jar-with-dependencies.jar
+COPY --from=maven /bayou/target/bayou_TFB-0.1-jar-with-dependencies.jar app.jar
+CMD ["java", "-jar", "app.jar"]

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

@@ -1,13 +1,7 @@
-FROM techempower/maven:0.1
-
-ADD ./ /blade
+FROM maven:3.5.3-jdk-10-slim as maven
 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
+COPY package.xml package.xml
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q
+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 - 5
frameworks/Java/comsat/comsat-base.dockerfile

@@ -1,5 +0,0 @@
-FROM techempower/java8:0.1
-
-ADD ./ /comsat
-WORKDIR /comsat
-RUN gradle clean capsule

+ 10 - 2
frameworks/Java/comsat/comsat-servlet-undertow.dockerfile

@@ -1,3 +1,11 @@
-FROM techempower/comsat-base:0.1
+FROM gradle:4.6.0-jdk8 as gradle
+USER root
+WORKDIR /comsat
+COPY build.gradle build.gradle
+COPY src src
+RUN gradle capsule -q
 
-CMD java -Dcapsule.mode=servlet-undertow -jar build/libs/comsat-0.3-capsule.jar
+FROM openjdk:8-jre-slim
+WORKDIR /comsat
+COPY --from=gradle /comsat/build/libs/comsat-0.3-capsule.jar app.jar
+CMD ["java", "-Dcapsule.mode=servlet-undertow", "-jar", "app.jar"]

+ 10 - 2
frameworks/Java/comsat/comsat-webactors-netty.dockerfile

@@ -1,3 +1,11 @@
-FROM techempower/comsat-base:0.1
+FROM gradle:4.6.0-jdk8 as gradle
+USER root
+WORKDIR /comsat
+COPY build.gradle build.gradle
+COPY src src
+RUN gradle capsule -q
 
-CMD java -Dcapsule.mode=webactors-netty -jar build/libs/comsat-0.3-capsule.jar
+FROM openjdk:8-jre-slim
+WORKDIR /comsat
+COPY --from=gradle /comsat/build/libs/comsat-0.3-capsule.jar app.jar
+CMD ["java", "-Dcapsule.mode=webactors-netty", "-jar", "app.jar"]

+ 10 - 2
frameworks/Java/comsat/comsat-webactors-undertow.dockerfile

@@ -1,3 +1,11 @@
-FROM techempower/comsat-base:0.1
+FROM gradle:4.6.0-jdk8 as gradle
+USER root
+WORKDIR /comsat
+COPY build.gradle build.gradle
+COPY src src
+RUN gradle capsule -q
 
-CMD java -Dcapsule.mode=webactors-undertow -jar build/libs/comsat-0.3-capsule.jar
+FROM openjdk:8-jre-slim
+WORKDIR /comsat
+COPY --from=gradle /comsat/build/libs/comsat-0.3-capsule.jar app.jar
+CMD ["java", "-Dcapsule.mode=webactors-undertow", "-jar", "app.jar"]

+ 10 - 2
frameworks/Java/comsat/comsat.dockerfile

@@ -1,3 +1,11 @@
-FROM techempower/comsat-base:0.1
+FROM gradle:4.6.0-jdk8 as gradle
+USER root
+WORKDIR /comsat
+COPY build.gradle build.gradle
+COPY src src
+RUN gradle capsule -q
 
-CMD java -Dcapsule.mode=servlet-jetty -jar build/libs/comsat-0.3-capsule.jar
+FROM openjdk:8-jre-slim
+WORKDIR /comsat
+COPY --from=gradle /comsat/build/libs/comsat-0.3-capsule.jar app.jar
+CMD ["java", "-Dcapsule.mode=servlet-jetty", "-jar", "app.jar"]

+ 4 - 5
frameworks/Java/curacao/curacao.dockerfile

@@ -1,10 +1,9 @@
-FROM techempower/maven:0.1 as maven
-
-ADD ./ /curacao
+FROM maven:3.5.3-jdk-9-slim as maven
 WORKDIR /curacao
-RUN mvn clean compile war:war
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile war:war -q
 
 FROM techempower/resin:0.1
-
 COPY --from=maven /curacao/target/curacao.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 9 - 4
frameworks/Java/dropwizard/dropwizard-jdbi-postgres.dockerfile

@@ -1,6 +1,11 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /dropwizard
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P postgres,jdbi
 
-ADD ./ /dropwizard
+FROM openjdk:10-jre-slim
 WORKDIR /dropwizard
-RUN mvn clean package -P postgres,jdbi
-CMD java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-jdbi-postgres.yml
+COPY --from=maven /dropwizard/target/hello-world-0.0.1-SNAPSHOT.jar app.jar
+COPY hello-world-jdbi-postgres.yml hello-world-jdbi-postgres.yml
+CMD ["java", "-jar", "app.jar", "server", "hello-world-jdbi-postgres.yml"]

+ 9 - 4
frameworks/Java/dropwizard/dropwizard-mongodb.dockerfile

@@ -1,6 +1,11 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /dropwizard
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P mongo
 
-ADD ./ /dropwizard
+FROM openjdk:10-jre-slim
 WORKDIR /dropwizard
-RUN mvn clean package -P mongo
-CMD java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-mongo.yml
+COPY --from=maven /dropwizard/target/hello-world-0.0.1-SNAPSHOT.jar app.jar
+COPY hello-world-mongo.yml hello-world-mongo.yml
+CMD ["java", "-jar", "app.jar", "server", "hello-world-mongo.yml"]

+ 9 - 4
frameworks/Java/dropwizard/dropwizard-postgres.dockerfile

@@ -1,6 +1,11 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /dropwizard
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P postgres
 
-ADD ./ /dropwizard
+FROM openjdk:10-jre-slim
 WORKDIR /dropwizard
-RUN mvn clean package -P postgres
-CMD java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-postgres.yml
+COPY --from=maven /dropwizard/target/hello-world-0.0.1-SNAPSHOT.jar app.jar
+COPY hello-world-postgres.yml hello-world-postgres.yml
+CMD ["java", "-jar", "app.jar", "server", "hello-world-postgres.yml"]

+ 9 - 4
frameworks/Java/dropwizard/dropwizard.dockerfile

@@ -1,6 +1,11 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /dropwizard
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q -P mysql
 
-ADD ./ /dropwizard
+FROM openjdk:10-jre-slim
 WORKDIR /dropwizard
-RUN mvn clean package -P mysql
-CMD java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world-mysql.yml
+COPY --from=maven /dropwizard/target/hello-world-0.0.1-SNAPSHOT.jar app.jar
+COPY hello-world-mysql.yml hello-world-mysql.yml
+CMD ["java", "-jar", "app.jar", "server", "hello-world-mysql.yml"]

+ 8 - 4
frameworks/Java/grizzly-jersey/grizzly-jersey.dockerfile

@@ -1,6 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /grizzly-jersey
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q
 
-ADD ./ /grizzly-jersey
+FROM openjdk:10-jre-slim
 WORKDIR /grizzly-jersey
-RUN mvn clean package
-CMD java -jar target/grizzly-jersey-example.jar
+COPY --from=maven /grizzly-jersey/target/grizzly-jersey-example.jar app.jar
+CMD ["java", "-jar", "app.jar"]

+ 8 - 8
frameworks/Java/grizzly/grizzly.dockerfile

@@ -1,10 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /grizzly
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-ADD ./ /grizzly
+FROM openjdk:10-jre-slim
 WORKDIR /grizzly
-RUN mvn clean compile assembly:single
-CMD java \
-    -Dorg.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size=16384 \
-    -Dorg.glassfish.grizzly.http.io.OutputBuffer.default-buffer-size=1024 \
-    -Dorg.glassfish.grizzly.memory.BuffersBuffer.bb-cache-size=32 \
-    -jar target/grizzly-bm-0.1-jar-with-dependencies.jar
+COPY --from=maven /grizzly/target/grizzly-bm-0.1-jar-with-dependencies.jar app.jar
+CMD ["java", "-Dorg.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size=16384", "-Dorg.glassfish.grizzly.http.io.OutputBuffer.default-buffer-size=1024", "-Dorg.glassfish.grizzly.memory.BuffersBuffer.bb-cache-size=32", "-jar", "app.jar"]

+ 6 - 6
frameworks/Java/jawn/jawn.dockerfile

@@ -1,7 +1,7 @@
-FROM techempower/java8:0.1
-FROM techempower/gradle-java8:0.1
-
-ADD ./ /jawn
+FROM gradle:4.6.0-jdk8
+USER root
 WORKDIR /jawn
-RUN gradle clean
-CMD gradle --no-daemon --refresh-dependencies run -Pargs=8080,production
+COPY build.gradle build.gradle
+COPY src src
+COPY webapp webapp
+CMD ["gradle", "--no-daemon", "--refresh-dependencies", "run", "-Pargs=8080,production"]

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

@@ -1,9 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /jetty
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q -P servlet
 
-ADD ./ /jetty
+FROM openjdk:10-jre-slim
 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
+COPY --from=maven /jetty/target/jetty-example-0.1-jar-with-dependencies.jar app.jar
+CMD ["java", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]

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

@@ -1,9 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /jetty
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-ADD ./ /jetty
+FROM openjdk:10-jre-slim
 WORKDIR /jetty
-RUN mvn clean compile assembly:single
-CMD java \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -jar target/jetty-example-0.1-jar-with-dependencies.jar
+COPY --from=maven /jetty/target/jetty-example-0.1-jar-with-dependencies.jar app.jar
+CMD ["java", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]

+ 8 - 10
frameworks/Java/jlhttp/jlhttp.dockerfile

@@ -1,12 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /jlhttp
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-ADD ./ /jlhttp
+FROM openjdk:10-jre-slim
 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
+COPY --from=maven /jlhttp/target/jlhttp-1.0-jar-with-dependencies.jar app.jar
+CMD ["java", "-server", "-Xss256k", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar"]

+ 10 - 8
frameworks/Java/jooby/jooby.dockerfile

@@ -1,10 +1,12 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-9-slim as maven
+WORKDIR /jooby
+COPY pom.xml pom.xml
+COPY src src
+COPY public public
+RUN mvn package -q
 
-ADD ./ /jooby
+FROM openjdk:9-jre-slim
 WORKDIR /jooby
-RUN mvn clean package
-CMD java \
-    -server \
-    -Xms512m \
-    -Xmx2g \
-    -jar target/jooby-1.0.jar
+COPY --from=maven /jooby/target/jooby-1.0.jar app.jar
+COPY conf conf
+CMD ["java", "-server", "-Xms512m", "-Xmx2g", "-jar", "app.jar"]

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

@@ -4,23 +4,6 @@
     "default": {
       "json_url": "/json",
       "plaintext_url": "/plaintext",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "None",
-      "framework": "None",
-      "language": "Java",
-      "flavor": "None",
-      "orm": "Raw",
-      "platform": "Light-4J",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "light-4j",
-      "notes": "",
-      "versus": ""
-    },
-    "postgresql" : {
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",

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

@@ -1,11 +0,0 @@
-FROM techempower/maven:0.1
-
-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

+ 8 - 9
frameworks/Java/light-java/light-4j.dockerfile

@@ -1,11 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /light-4j
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q
 
-ADD ./ /light-4j
+FROM openjdk:10-jre-slim
 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
+COPY --from=maven /light-4j/target/techempower-1.0.0.jar app.jar
+CMD ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005", "-server", "-Xms512m", "-Xmx2g", "-jar", "app.jar"]

+ 34 - 110
frameworks/Java/light-java/pom.xml

@@ -1,47 +1,52 @@
-<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">
+<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>
         <groupId>org.sonatype.oss</groupId>
         <artifactId>oss-parent</artifactId>
         <version>5</version>
     </parent>
+
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.networknt</groupId>
     <artifactId>techempower</artifactId>
     <packaging>jar</packaging>
     <name>techempower</name>
     <version>1.0.0</version>
+
     <prerequisites>
         <maven>2.2.0</maven>
     </prerequisites>
 
     <properties>
-        <java.version>1.8</java.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <version.light-java>1.2.5</version.light-java>
-        <version.light-java-rest>1.2.5</version.light-java-rest>
-        <version.jackson>2.8.2</version.jackson>
-        <version.slf4j>1.7.22</version.slf4j>
-        <version.jose4j>0.5.2</version.jose4j>
-        <version.antlr4>4.5.3</version.antlr4>
-        <version.commons-lang>2.6</version.commons-lang>
-        <version.commons.io>2.5</version.commons.io>
-        <version.commons.codec>1.10</version.commons.codec>
-        <version.encoder>1.2</version.encoder>
-        <version.logback>1.1.9</version.logback>
-        <version.junit>4.12</version.junit>
-        <version.mockito>2.1.0-beta.124</version.mockito>
-        <!--<version.undertow>1.4.10.Final</version.undertow>-->
-        <version.undertow>1.2.5.Final</version.undertow>
+        <version.java>1.8</version.java>
+        <version.light-java>1.5.10</version.light-java>
+        <version.logback>1.2.3</version.logback>
+        <version.undertow>2.0.3.Final</version.undertow>
         <version.jsonpath>2.2.0</version.jsonpath>
         <version.httpclient>4.5.2</version.httpclient>
         <version.httpasyncclient>4.1.2</version.httpasyncclient>
         <version.swagger>1.5.10</version.swagger>
-        <version.hikaricp>2.6.1</version.hikaricp>
-        <version.mysql>5.1.41</version.mysql>
-        <version.postgres>42.1.4</version.postgres>
+        <version.hikaricp>2.7.8</version.hikaricp>
+        <version.mysql>5.1.46</version.mysql>
+        <version.postgres>42.2.2</version.postgres>
+        <version.dsl-json>1.7.0</version.dsl-json>
+        <version.mustache>0.9.5</version.mustache>
+        <version.guava>24.1-jre</version.guava>
+        <version.maven-compiler-plugin>3.7.0</version.maven-compiler-plugin>
+        <version.maven-jar-plugin>3.0.2</version.maven-jar-plugin>
+        <version.maven-shade-plugin>3.1.0</version.maven-shade-plugin>
+        <version.exec-maven-plugin>1.6.0</version.exec-maven-plugin>
     </properties>
 
     <dependencies>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>${version.guava}</version>
+        </dependency>
         <dependency>
             <groupId>com.networknt</groupId>
             <artifactId>config</artifactId>
@@ -77,7 +82,6 @@
             <artifactId>server</artifactId>
             <version>${version.light-java}</version>
         </dependency>
-
         <dependency>
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-classic</artifactId>
@@ -105,25 +109,16 @@
         </dependency>
         <dependency>
             <groupId>com.dslplatform</groupId>
-            <artifactId>dsl-json-java8</artifactId>
-            <version>1.4.0</version>
+            <artifactId>dsl-json-processor</artifactId>
+            <version>${version.dsl-json}</version>
         </dependency>
         <dependency>
             <groupId>com.github.spullara.mustache.java</groupId>
             <artifactId>compiler</artifactId>
-            <version>0.9.0</version>
-        </dependency>
-
-        <!-- Test Dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>${version.junit}</version>
-            <scope>test</scope>
+            <version>${version.mustache}</version>
         </dependency>
     </dependencies>
 
-
     <build>
         <defaultGoal>install</defaultGoal>
         <directory>target</directory>
@@ -132,7 +127,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-shade-plugin</artifactId>
-                <version>2.4.3</version>
+                <version>${version.maven-shade-plugin}</version>
                 <executions>
                     <execution>
                         <phase>package</phase>
@@ -150,7 +145,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>2.6</version>
+                <version>${version.maven-jar-plugin}</version>
                 <configuration>
                     <archive>
                         <manifest>
@@ -162,7 +157,7 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>exec-maven-plugin</artifactId>
-                <version>1.4.0</version>
+                <version>${version.exec-maven-plugin}</version>
                 <configuration>
                     <executable>java</executable>
                     <arguments>
@@ -171,89 +166,18 @@
                     </arguments>
                 </configuration>
             </plugin>
-            <!-- Google error-prone compiles -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.7.0</version>
+                <version>${version.maven-compiler-plugin}</version>
                 <configuration>
-                    <compilerId>javac-with-errorprone</compilerId>
                     <showWarnings>true</showWarnings>
                     <showDeprecation>true</showDeprecation>
-                    <compilerArgs>
-                        <!-- add command line validation here -->
-                    </compilerArgs>
                     <forceJavacCompilerUse>true</forceJavacCompilerUse>
-                    <!-- maven-compiler-plugin defaults to targeting Java 5, but our javac
-                         only supports >=6 -->
-                    <source>${java.version}</source>
-                    <target>${java.version}</target>
+                    <source>${version.java}</source>
+                    <target>${version.java}</target>
                 </configuration>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.codehaus.plexus</groupId>
-                        <artifactId>plexus-compiler-javac-errorprone</artifactId>
-                        <version>2.8.2</version>
-                    </dependency>
-                    <!-- override plexus-compiler-javac-errorprone's dependency on
-                         Error Prone with the latest version -->
-                    <dependency>
-                        <groupId>com.google.errorprone</groupId>
-                        <artifactId>error_prone_core</artifactId>
-                        <version>2.1.3</version>
-                    </dependency>
-                </dependencies>
             </plugin>
-
-            <!-- end Google error-proce compiles -->
         </plugins>
-
-        <pluginManagement>
-        	<plugins>
-        		<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-        		<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></ignore>
-        							</action>
-        						</pluginExecution>
-        					</pluginExecutions>
-        				</lifecycleMappingMetadata>
-        			</configuration>
-        		</plugin>
-        	</plugins>
-        </pluginManagement>
-
     </build>
-
-    <repositories>
-        <repository>
-            <id>sonatype-snapshots</id>
-            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
 </project>

+ 4 - 0
frameworks/Java/light-java/src/main/java/com/networknt/techempower/PathHandlerProvider.java

@@ -21,5 +21,9 @@ public class PathHandlerProvider implements HandlerProvider {
             .addExactPath("/updates", new BlockingHandler(new UpdatesPostgresqlGetHandler()))
         ;
     }
+
+    public static PathHandlerProvider create() {
+        return new PathHandlerProvider();
+    }
 }
 

+ 4 - 0
frameworks/Java/light-java/src/main/java/com/networknt/techempower/db/postgres/PostgresStartupHookProvider.java

@@ -25,4 +25,8 @@ public class PostgresStartupHookProvider implements StartupHookProvider {
         ds.setPassword(config.getPassword());
         ds.setMaximumPoolSize(config.getMaximumPoolSize());
     }
+
+    public static PostgresStartupHookProvider create() {
+        return new PostgresStartupHookProvider();
+    }
 }

+ 0 - 13
frameworks/Java/light-java/src/main/resources/config/mysql.json

@@ -1,13 +0,0 @@
-{
-  "description": "mysql connection",
-  "jdbcUrl": "jdbc:mysql://tfb-database:3306/hello_world",
-  "username": "benchmarkdbuser",
-  "password": "benchmarkdbpass",
-  "maximumPoolSize": 256,
-  "useServerPrepStmts": true,
-  "cachePrepStmts": true,
-  "cacheCallableStmts": true,
-  "prepStmtCacheSize": 4096,
-  "prepStmtCacheSqlLimit": 2048,
-  "useSSL": false
-}

+ 0 - 7
frameworks/Java/light-java/src/main/resources/config/postgres.json

@@ -1,7 +0,0 @@
-{
-  "description": "postgresql connection",
-  "jdbcUrl": "jdbc:postgresql://tfb-database:5432/hello_world",
-  "username": "benchmarkdbuser",
-  "password": "benchmarkdbpass",
-  "maximumPoolSize": 256
-}

+ 4 - 0
frameworks/Java/light-java/src/main/resources/config/postgres.yml

@@ -0,0 +1,4 @@
+jdbcUrl: "jdbc:postgresql://tfb-database:5432/hello_world"
+username: "benchmarkdbuser"
+password: "benchmarkdbpass"
+maximumPoolSize: 256

+ 0 - 15
frameworks/Java/light-java/src/main/resources/config/security.json

@@ -1,15 +0,0 @@
-{
-  "description": "security configuration",
-  "enableVerifyJwt": false,
-  "enableVerifyScope": true,
-  "enableMockJwt": false,
-  "jwt": {
-    "certificate": {
-      "100": "oauth/primary.crt",
-      "101": "oauth/secondary.crt"
-    },
-    "clockSkewInSeconds": 60
-  },
-  "logJwtToken": true,
-  "logClientUserScope": false
-}

+ 0 - 16
frameworks/Java/light-java/src/main/resources/config/server.json

@@ -1,16 +0,0 @@
-{
-  "description": "server config",
-  "ip": "0.0.0.0",
-  "httpPort": 8080,
-  "enableHttp": true,
-  "httpsPort": 8443,
-  "enableHttps": false,
-  "keystoreName": "tls/server.keystore",
-  "keystorePass": "secret",
-  "keyPass": "secret",
-  "enableTwoWayTls": false,
-  "truststoreName": "tls/server.truststore",
-  "truststorePass": "password",
-  "serviceId": "com.networknt.techempower-1.0.0",
-  "enableRegistry": false
-}

+ 10 - 0
frameworks/Java/light-java/src/main/resources/config/server.yml

@@ -0,0 +1,10 @@
+ip: "0.0.0.0"
+httpPort: 8080
+enableHttp: true
+httpsPort: 8443
+enableHttps: false
+keystoreName: "tls/server.keystore"
+enableTwoWayTls: false
+truststoreName: "tls/server.truststore"
+serviceId: "com.networknt.techempower-1.0.0"
+enableRegistry: false

+ 3 - 0
frameworks/Java/light-java/src/main/resources/config/service.yml

@@ -0,0 +1,3 @@
+singletons:
+ - com.networknt.server.HandlerProvider: "com.networknt.techempower.PathHandlerProvider::create"
+ - com.networknt.server.StartupHookProvider: "com.networknt.techempower.db.postgres.PostgresStartupHookProvider::create"

+ 0 - 176
frameworks/Java/light-java/src/main/resources/config/swagger.json

@@ -1,176 +0,0 @@
-{
-  "swagger" : "2.0",
-  "info" : {
-    "description" : "A light-java implementation of benchmark",
-    "version" : "1.0.0",
-    "title" : "Tech Empower Performance Benchmark",
-    "contact" : {
-      "email" : "[email protected]"
-    },
-    "license" : {
-      "name" : "Apache 2.0",
-      "url" : "http://www.apache.org/licenses/LICENSE-2.0.html"
-    }
-  },
-  "host" : "benchmark.networknt.com",
-  "schemes" : [ "http" ],
-  "consumes" : [ "application/json" ],
-  "produces" : [ "application/json" ],
-  "paths" : {
-    "/cache" : {
-      "get" : {
-        "description" : "cache serialization",
-        "operationId" : "getCache",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/db/mysql" : {
-      "get" : {
-        "description" : "mysql single query",
-        "operationId" : "getQueryMysql",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/db/postgresql" : {
-      "get" : {
-        "description" : "postgres single query",
-        "operationId" : "getQueryPostgres",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/fortunes/mysql" : {
-      "get" : {
-        "description" : "mysql fortunes",
-        "operationId" : "getFortunesMysql",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/fortunes/postgresql" : {
-      "get" : {
-        "description" : "postgres fortunes",
-        "operationId" : "getFortunesPostgres",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/json" : {
-      "get" : {
-        "description" : "json serialization",
-        "operationId" : "getJson",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/plaintext" : {
-      "get" : {
-        "description" : "plain text serialization",
-        "operationId" : "getPlainText",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/queries/mysql" : {
-      "get" : {
-        "description" : "mysql multiple query",
-        "operationId" : "getQueriesMysql",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/queries/postgresql" : {
-      "get" : {
-        "description" : "postgres multiple query",
-        "operationId" : "getQueriesPostgres",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/updates/mysql" : {
-      "get" : {
-        "description" : "mysql updates",
-        "operationId" : "getUpdatesMysql",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    },
-    "/updates/postgresql" : {
-      "get" : {
-        "description" : "postgres updates",
-        "operationId" : "getUpdatesPostgres",
-        "parameters" : [ ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful response"
-          }
-        },
-        "x-accepts" : "application/json",
-        "x-contentType" : "application/json"
-      }
-    }
-  },
-  "definitions" : { }
-}

BIN
frameworks/Java/light-java/src/main/resources/config/tls/server.keystore


+ 0 - 74
frameworks/Java/light-java/src/main/resources/logback.xml

@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright (c) 2016 Network New Technologies Inc.
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ You may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<configuration>
-    TODO create logger for audit only.
-    http://stackoverflow.com/questions/2488558/logback-to-log-different-messages-to-two-files
-    <turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
-        <Marker>PROFILER</Marker>
-        <!--<OnMatch>DENY</OnMatch>-->
-        <OnMatch>NEUTRAL</OnMatch>
-    </turboFilter>
-
-    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
-        <!-- encoders are assigned the type
-             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
-        <encoder>
-            <pattern>%d{HH:mm:ss.SSS} [%thread] %X{cId} %-5level %logger{36} - %msg%n</pattern>
-        </encoder>
-    </appender>
-
-    <appender name="log" class="ch.qos.logback.core.FileAppender">
-        <File>target/test.log</File>
-        <Append>false</Append>
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{HH:mm:ss.SSS} [%thread] %X{cId} %-5level %class{36}:%L %M - %msg%n</Pattern>
-        </layout>
-    </appender>
-
-    <!--audit log-->
-    <appender name="audit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>target/audit.log</file> <!-- logfile location -->
-        <encoder>
-            <pattern>%-5level [%thread] %date{ISO8601} %F:%L - %msg%n
-            </pattern> <!-- the layout pattern used to format log entries -->
-            <immediateFlush>true</immediateFlush>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>target/audit.log.%i.zip</fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>5</maxIndex> <!-- max number of archived logs that are kept -->
-        </rollingPolicy>
-        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>200MB
-            </maxFileSize> <!-- The size of the logfile that triggers a switch to a new logfile, and the current one archived -->
-        </triggeringPolicy>
-    </appender>
-
-    <root level="error">
-        <appender-ref ref="stdout"/>
-    </root>
-
-    <logger name="com.networknt" level="error">
-        <appender-ref ref="log"/>
-    </logger>
-
-    <logger name="Audit" level="error" additivity="false">
-        <appender-ref ref="audit"/>
-    </logger>
-
-</configuration>

+ 9 - 11
frameworks/Java/minijax/minijax.dockerfile

@@ -1,13 +1,11 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /minijax
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q
 
-ADD ./ /minijax
+FROM openjdk:10-jre-slim
 WORKDIR /minijax
-RUN mvn clean package
-CMD java \
-    -server \
-    -Xms512m \
-    -Xmx2g \
-    -XX:+AggressiveOpts \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -jar target/minijax-techempower-0.0.1.jar
+COPY --from=maven /minijax/target/minijax-techempower-0.0.1.jar app.jar
+COPY minijax.properties minijax.properties
+CMD ["java", "-server", "-Xms512m", "-Xmx2g", "-XX:+AggressiveOpts", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]

+ 8 - 9
frameworks/Java/netty/netty.dockerfile

@@ -1,11 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /netty
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-ADD ./ /netty
+FROM openjdk:10-jre-slim
 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
+COPY --from=maven /netty/target/netty-example-0.1-jar-with-dependencies.jar app.jar
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar"]

+ 8 - 4
frameworks/Java/ninja-standalone/ninja-standalone.dockerfile

@@ -1,6 +1,10 @@
-FROM techempower/maven:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /ninja-standalone
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-ADD ./ /ninja-standalone
+FROM openjdk:10-jre-slim
 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
+COPY --from=maven /ninja-standalone/target/ninja-standalone-0.0.1-SNAPSHOT-jar-with-dependencies.jar app.jar
+CMD ["java", "-Dninja.port=8080", "-jar", "app.jar"]

+ 6 - 4
frameworks/Java/play1/play1.dockerfile

@@ -1,8 +1,10 @@
-FROM techempower/java:0.1
-
-ADD ./ /play1
+FROM openjdk:10-jdk
 WORKDIR /play1
+COPY app app
+COPY conf conf
+COPY public public
+COPY test test
 RUN wget -nv https://downloads.typesafe.com/play/1.5.0/play-1.5.0.zip
 RUN unzip -q play-1.5.0.zip
 RUN apt-get install -y python
-CMD play-1.5.0/play run --%prod
+CMD ["play-1.5.0/play", "run", "--%prod"]

+ 4 - 6
frameworks/Java/play2-java/play2-java-ebean-hikaricp-netty.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java-ebean-hikaricp /play2-java-ebean-hikaricp
-WORKDIR /play2-java-ebean-hikaricp
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java-ebean-hikaricp .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java-ebean-hikaricp \
-    -Dplay.server.provider=play.core.server.NettyServerProvider
+CMD ["target/universal/stage/bin/play2-java-ebean-hikaricp", "-Dplay.server.provider=play.core.server.NettyServerProvider"]

+ 4 - 6
frameworks/Java/play2-java/play2-java-ebean-hikaricp.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java-ebean-hikaricp /play2-java-ebean-hikaricp
-WORKDIR /play2-java-ebean-hikaricp
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java-ebean-hikaricp .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java-ebean-hikaricp \
-    -Dplay.server.provider=play.core.server.AkkaHttpServerProvider
+CMD ["target/universal/stage/bin/play2-java-ebean-hikaricp", "-Dplay.server.provider=play.core.server.AkkaHttpServerProvider"]

+ 4 - 6
frameworks/Java/play2-java/play2-java-jooq-hikaricp-netty.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java-jooq-hikaricp /play2-java-jooq-hikaricp
-WORKDIR /play2-java-jooq-hikaricp
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java-jooq-hikaricp .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java-jooq-hikaricp \
-    -Dplay.server.provider=play.core.server.NettyServerProvider
+CMD ["target/universal/stage/bin/play2-java-jooq-hikaricp", "-Dplay.server.provider=play.core.server.NettyServerProvider"]

+ 4 - 6
frameworks/Java/play2-java/play2-java-jooq-hikaricp.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java-jooq-hikaricp /play2-java-jooq-hikaricp
-WORKDIR /play2-java-jooq-hikaricp
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java-jooq-hikaricp .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java-jooq-hikaricp \
-    -Dplay.server.provider=play.core.server.AkkaHttpServerProvider
+CMD ["target/universal/stage/bin/play2-java-jooq-hikaricp", "-Dplay.server.provider=play.core.server.AkkaHttpServerProvider"]

+ 4 - 6
frameworks/Java/play2-java/play2-java-jpa-hikaricp-netty.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java-jpa-hikaricp /play2-java-jpa-hikaricp
-WORKDIR /play2-java-jpa-hikaricp
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java-jpa-hikaricp .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java-jpa-hikaricp \
-    -Dplay.server.provider=play.core.server.NettyServerProvider
+CMD ["target/universal/stage/bin/play2-java-jpa-hikaricp", "-Dplay.server.provider=play.core.server.NettyServerProvider"]

+ 4 - 6
frameworks/Java/play2-java/play2-java-jpa-hikaricp.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java-jpa-hikaricp /play2-java-jpa-hikaricp
-WORKDIR /play2-java-jpa-hikaricp
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java-jpa-hikaricp .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java-jpa-hikaricp \
-    -Dplay.server.provider=play.core.server.AkkaHttpServerProvider
+CMD ["target/universal/stage/bin/play2-java-jpa-hikaricp", "-Dplay.server.provider=play.core.server.AkkaHttpServerProvider"]

+ 4 - 6
frameworks/Java/play2-java/play2-java-netty.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java /play2-java
-WORKDIR /play2-java
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java \
-    -Dplay.server.provider=play.core.server.NettyServerProvider
+CMD target/universal/stage/bin/play2-java -Dplay.server.provider=play.core.server.NettyServerProvider

+ 4 - 6
frameworks/Java/play2-java/play2-java.dockerfile

@@ -1,7 +1,5 @@
-FROM techempower/sbt:0.1
-
-ADD ./play2-java /play2-java
-WORKDIR /play2-java
+FROM hseeberger/scala-sbt:8u151-2.12.5-1.1.2
+WORKDIR /play2
+COPY play2-java .
 RUN sbt stage
-CMD target/universal/stage/bin/play2-java \
-    -Dplay.server.provider=play.core.server.AkkaHttpServerProvider
+CMD ["target/universal/stage/bin/play2-java", "-Dplay.server.provider=play.core.server.AkkaHttpServerProvider"]

+ 0 - 5
frameworks/Java/proteus/proteus-base.dockerfile

@@ -1,5 +0,0 @@
-FROM techempower/maven-java8:0.1
-
-ADD ./ /proteus
-WORKDIR /proteus
-RUN mvn -U clean package

+ 11 - 2
frameworks/Java/proteus/proteus-mysql.dockerfile

@@ -1,3 +1,12 @@
-FROM techempower/proteus-base:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /proteus
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q --update-snapshots
 
-CMD bash run.sh
+FROM openjdk:10-jre-slim
+WORKDIR /proteus
+COPY --from=maven /proteus/target/proteus-techempower-1.0.0.jar app.jar
+COPY --from=maven /proteus/target/lib lib
+COPY conf conf
+CMD ["java", "-Dlogback.configurationFile=conf/logback.xml", "-Dconfig.file=conf/application.conf", "-Xms2g", "-Xmx2g", "-XX:+AggressiveOpts", "-server", "-XX:-UseBiasedLocking", "-XX:+UseStringDeduplication", "-Djava.net.preferIPv4Stack=true", "-classpath", "app.jar:lib/*", "io.sinistral.ExampleApplication"]

+ 11 - 2
frameworks/Java/proteus/proteus.dockerfile

@@ -1,3 +1,12 @@
-FROM techempower/proteus-base:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /proteus
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn package -q --update-snapshots
 
-CMD bash run.sh
+FROM openjdk:10-jre-slim
+WORKDIR /proteus
+COPY --from=maven /proteus/target/proteus-techempower-1.0.0.jar app.jar
+COPY --from=maven /proteus/target/lib lib
+COPY conf conf
+CMD ["java", "-Dlogback.configurationFile=conf/logback.xml", "-Dconfig.file=conf/application.conf", "-Xms2g", "-Xmx2g", "-XX:+AggressiveOpts", "-server", "-XX:-UseBiasedLocking", "-XX:+UseStringDeduplication", "-Djava.net.preferIPv4Stack=true", "-classpath", "app.jar:lib/*", "io.sinistral.ExampleApplication"]

+ 8 - 8
frameworks/Java/rapidoid/pom.xml

@@ -1,5 +1,5 @@
 <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">
+				 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
 	<modelVersion>4.0.0</modelVersion>
 
@@ -16,27 +16,27 @@
 		<dependency>
 			<groupId>org.rapidoid</groupId>
 			<artifactId>rapidoid-web</artifactId>
-			<version>5.3.4</version>
+			<version>5.5.4</version>
 		</dependency>
 		<dependency>
 			<groupId>mysql</groupId>
 			<artifactId>mysql-connector-java</artifactId>
-			<version>5.1.38</version>
+			<version>5.1.46</version>
 		</dependency>
 		<dependency>
 			<groupId>org.postgresql</groupId>
 			<artifactId>postgresql</artifactId>
-			<version>42.1.4</version>
+			<version>42.2.2</version>
 		</dependency>
 		<dependency>
 			<groupId>com.zaxxer</groupId>
 			<artifactId>HikariCP</artifactId>
-			<version>2.6.1</version>
+			<version>2.7.8</version>
 		</dependency>
 		<dependency>
 			<groupId>javax.xml.bind</groupId>
 			<artifactId>jaxb-api</artifactId>
-			<version>2.2.12</version>
+			<version>2.3.0</version>
 		</dependency>
 		<dependency>
 			<groupId>org.javassist</groupId>
@@ -52,7 +52,7 @@
 				<inherited>true</inherited>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.1</version>
+				<version>3.7.0</version>
 				<configuration>
 					<source>1.8</source>
 					<target>1.8</target>
@@ -63,7 +63,7 @@
 
 			<plugin>
 				<artifactId>maven-assembly-plugin</artifactId>
-				<version>2.6</version>
+				<version>3.1.0</version>
 				<configuration>
 					<descriptorRefs>
 						<descriptorRef>jar-with-dependencies</descriptorRef>

+ 0 - 5
frameworks/Java/rapidoid/rapidoid-base.dockerfile

@@ -1,5 +0,0 @@
-FROM techempower/maven:0.1
-
-ADD ./ /rapidoid
-WORKDIR /rapidoid
-RUN mvn clean compile assembly:single

+ 9 - 9
frameworks/Java/rapidoid/rapidoid-http-fast.dockerfile

@@ -1,10 +1,10 @@
-FROM techempower/rapidoid-base:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /rapidoid
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-CMD java \
-    -server \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -cp target/rapidoid-1.0-jar-with-dependencies.jar \
-    lowlevel.Main \
-    profiles=production
+FROM openjdk:10-jre-slim
+WORKDIR /rapidoid
+COPY --from=maven /rapidoid/target/rapidoid-1.0-jar-with-dependencies.jar app.jar
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-cp", "app.jar", "lowlevel.Main", "profiles=production"]

+ 9 - 10
frameworks/Java/rapidoid/rapidoid-mysql.dockerfile

@@ -1,11 +1,10 @@
-FROM techempower/rapidoid-base:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /rapidoid
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-CMD java \
-    -server \
-    -Xms512m \
-    -Xmx2g \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -cp target/rapidoid-1.0-jar-with-dependencies.jar \
-    highlevel.Main \
-    profiles=mysql,production
+FROM openjdk:10-jre-slim
+WORKDIR /rapidoid
+COPY --from=maven /rapidoid/target/rapidoid-1.0-jar-with-dependencies.jar app.jar
+CMD ["java", "-server", "-Xms512m", "-Xmx2g", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-cp", "app.jar", "highlevel.Main", "profiles=mysql,production"]

+ 9 - 10
frameworks/Java/rapidoid/rapidoid-postgres.dockerfile

@@ -1,11 +1,10 @@
-FROM techempower/rapidoid-base:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /rapidoid
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-CMD java \
-    -server \
-    -Xms512m \
-    -Xmx2g \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -cp target/rapidoid-1.0-jar-with-dependencies.jar \
-    highlevel.Main \
-    profiles=postgres,production
+FROM openjdk:10-jre-slim
+WORKDIR /rapidoid
+COPY --from=maven /rapidoid/target/rapidoid-1.0-jar-with-dependencies.jar app.jar
+CMD ["java", "-server", "-Xms512m", "-Xmx2g", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-cp", "app.jar", "highlevel.Main", "profiles=postgres,production"]

+ 9 - 9
frameworks/Java/rapidoid/rapidoid.dockerfile

@@ -1,10 +1,10 @@
-FROM techempower/rapidoid-base:0.1
+FROM maven:3.5.3-jdk-10-slim as maven
+WORKDIR /rapidoid
+COPY pom.xml pom.xml
+COPY src src
+RUN mvn compile assembly:single -q
 
-CMD java \
-    -server \
-    -XX:+UseNUMA \
-    -XX:+UseParallelGC \
-    -XX:+AggressiveOpts \
-    -cp target/rapidoid-1.0-jar-with-dependencies.jar \
-    highlevel.Main \
-    profiles=production
+FROM openjdk:10-jre-slim
+WORKDIR /rapidoid
+COPY --from=maven /rapidoid/target/rapidoid-1.0-jar-with-dependencies.jar app.jar
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-cp", "app.jar", "highlevel.Main", "profiles=production"]

+ 0 - 11
frameworks/Java/restexpress/restexpress-base.dockerfile

@@ -1,11 +0,0 @@
-FROM techempower/maven:0.1
-
-ADD ./ /restexpress
-WORKDIR /restexpress
-RUN mvn clean package
-RUN mvn assembly:single
-WORKDIR /restexpress/target
-RUN unzip world-1.0-SNAPSHOT-zip-with-dependencies.zip
-WORKDIR /restexpress/target/world-1.0-SNAPSHOT
-CMD java -jar world-1.0-SNAPSHOT.jar
-

+ 12 - 3
frameworks/Java/restexpress/restexpress-mysql-raw.dockerfile

@@ -1,3 +1,12 @@
-FROM techempower/restexpress-base:0.1
-
-CMD java -jar world-1.0-SNAPSHOT.jar
+FROM maven:3.5.3-jdk-10 as maven
+WORKDIR /restexpress
+COPY config config
+COPY src src
+COPY pom.xml pom.xml
+COPY zip-with-dependencies.xml zip-with-dependencies.xml
+RUN mvn package -q
+RUN mvn assembly:single -q
+WORKDIR target
+RUN unzip -q world-1.0-SNAPSHOT-zip-with-dependencies.zip
+WORKDIR world-1.0-SNAPSHOT
+CMD ["java", "-jar", "world-1.0-SNAPSHOT.jar"]

+ 12 - 3
frameworks/Java/restexpress/restexpress.dockerfile

@@ -1,3 +1,12 @@
-FROM techempower/restexpress-base:0.1
-
-CMD java -jar world-1.0-SNAPSHOT.jar
+FROM maven:3.5.3-jdk-10 as maven
+WORKDIR /restexpress
+COPY config config
+COPY src src
+COPY pom.xml pom.xml
+COPY zip-with-dependencies.xml zip-with-dependencies.xml
+RUN mvn package -q
+RUN mvn assembly:single -q
+WORKDIR target
+RUN unzip -q world-1.0-SNAPSHOT-zip-with-dependencies.zip
+WORKDIR world-1.0-SNAPSHOT
+CMD ["java", "-jar", "world-1.0-SNAPSHOT.jar"]

+ 6 - 5
frameworks/Java/revenj-jvm/revenj-jvm.dockerfile

@@ -1,18 +1,19 @@
-FROM techempower/maven-java8:0.1 as maven
+FROM maven:3.5.3-jdk-8 as maven
+WORKDIR /revenj-jvm
+COPY src src
+COPY pom.xml pom.xml
+COPY web.xml web.xml
 
 RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
 RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list
 RUN apt-get update
 RUN apt-get install -y mono-complete mono-fastcgi-server
 
-ADD ./ /revenj-jvm
-WORKDIR /revenj-jvm
 RUN wget -q https://github.com/ngs-doo/revenj/releases/download/1.4.2/dsl-compiler.zip
 RUN unzip -o dsl-compiler.zip
 RUN rm dsl-compiler.zip
-RUN mvn clean compile war:war
+RUN mvn compile war:war -q
 
 FROM techempower/resin-java8:0.1
-
 COPY --from=maven /revenj-jvm/target/revenj.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 4 - 5
frameworks/Java/servlet/servlet-afterburner.dockerfile

@@ -1,10 +1,9 @@
-FROM techempower/maven:0.1 as maven
-
-ADD ./ /servlet
+FROM maven:3.5.3-jdk-9-slim as maven
 WORKDIR /servlet
-RUN mvn clean compile war:war -P afterburner
+COPY src src
+COPY pom.xml pom.xml
+RUN mvn compile war:war -q -P afterburner
 
 FROM techempower/resin:0.1
-
 COPY --from=maven /servlet/target/servlet.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 4 - 5
frameworks/Java/servlet/servlet-cjs.dockerfile

@@ -1,10 +1,9 @@
-FROM techempower/maven:0.1 as maven
-
-ADD ./ /servlet
+FROM maven:3.5.3-jdk-9-slim as maven
 WORKDIR /servlet
-RUN mvn clean compile war:war -P cjs
+COPY src src
+COPY pom.xml pom.xml
+RUN mvn compile war:war -q -P cjs
 
 FROM techempower/resin:0.1
-
 COPY --from=maven /servlet/target/servlet.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 4 - 5
frameworks/Java/servlet/servlet-mysql.dockerfile

@@ -1,10 +1,9 @@
-FROM techempower/maven:0.1 as maven
-
-ADD ./ /servlet
+FROM maven:3.5.3-jdk-9-slim as maven
 WORKDIR /servlet
-RUN mvn clean compile war:war -P mysql
+COPY src src
+COPY pom.xml pom.xml
+RUN mvn compile war:war -q -P mysql
 
 FROM techempower/resin:0.1
-
 COPY --from=maven /servlet/target/servlet.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 4 - 5
frameworks/Java/servlet/servlet-postgresql.dockerfile

@@ -1,10 +1,9 @@
-FROM techempower/maven:0.1 as maven
-
-ADD ./ /servlet
+FROM maven:3.5.3-jdk-9-slim as maven
 WORKDIR /servlet
-RUN mvn clean compile war:war -P postgresql
+COPY src src
+COPY pom.xml pom.xml
+RUN mvn compile war:war -q -P postgresql
 
 FROM techempower/resin:0.1
-
 COPY --from=maven /servlet/target/servlet.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

+ 4 - 5
frameworks/Java/servlet/servlet.dockerfile

@@ -1,10 +1,9 @@
-FROM techempower/maven:0.1 as maven
-
-ADD ./ /servlet
+FROM maven:3.5.3-jdk-9-slim as maven
 WORKDIR /servlet
-RUN mvn clean compile war:war
+COPY src src
+COPY pom.xml pom.xml
+RUN mvn compile war:war -q
 
 FROM techempower/resin:0.1
-
 COPY --from=maven /servlet/target/servlet.war ${RESIN_HOME}/webapps/ROOT.war
 CMD java -jar ${RESIN_HOME}/lib/resin.jar console

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff