Browse Source

Convert undertow tests to docker (attempt 2) (#3337)

* Upgrade java.dockerfile to Java 9

* Add Maven installation for docker

* Convert the undertow tests to docker

* Uncomment Java/undertow for Travis

* Try a hack to fix undertow-postgresl on docker for Travis

* Remove undertow/source_code file with incorrect content

* Remove unnecessary setup_file attributes in undertow benchmark_config

* Remove the unused ringojs-base.dockerfile

* Add Java 8 installation, since java.dockerfile is now Java 9

* Make ringojs depend on Java 8 rather than 9

It seems to be incompatible with 9.
Michael Hixson 7 years ago
parent
commit
5bbe9bdfe6

+ 1 - 1
.travis.yml

@@ -100,7 +100,7 @@ env:
     # - "TESTDIR=Java/spark"
     # - "TESTDIR=Java/spark"
     # - "TESTDIR=Java/spring"
     # - "TESTDIR=Java/spring"
     # - "TESTDIR=Java/tapestry"
     # - "TESTDIR=Java/tapestry"
-    # - "TESTDIR=Java/undertow"
+     - "TESTDIR=Java/undertow"
     # - "TESTDIR=Java/undertow-jersey-c3p0"
     # - "TESTDIR=Java/undertow-jersey-c3p0"
     # - "TESTDIR=Java/undertow-jersey-hikaricp"
     # - "TESTDIR=Java/undertow-jersey-hikaricp"
     # - "TESTDIR=Java/vertx"
     # - "TESTDIR=Java/vertx"

+ 0 - 5
frameworks/Java/undertow/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "undertow",
   "framework": "undertow",
   "tests": [{
   "tests": [{
     "default": {
     "default": {
-      "setup_file": "setup_no_database",
       "json_url": "/json",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
       "plaintext_url": "/plaintext",
       "port": 8080,
       "port": 8080,
@@ -22,7 +21,6 @@
       "versus": ""
       "versus": ""
     },
     },
     "mysql" : {
     "mysql" : {
-      "setup_file": "setup_mysql",
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",
       "fortune_url": "/fortunes",
@@ -44,7 +42,6 @@
       "versus": ""
       "versus": ""
     },
     },
     "postgresql" : {
     "postgresql" : {
-      "setup_file": "setup_postgresql",
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",
       "fortune_url": "/fortunes",
@@ -66,7 +63,6 @@
       "versus": ""
       "versus": ""
     },
     },
     "mongodb" : {
     "mongodb" : {
-      "setup_file": "setup_mongodb",
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",
       "fortune_url": "/fortunes",
@@ -88,7 +84,6 @@
       "versus": ""
       "versus": ""
     },
     },
     "mongodb-async" : {
     "mongodb-async" : {
-      "setup_file": "setup_mongodb_async",
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",
       "fortune_url": "/fortunes",

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

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends java maven
-
-mvn clean package
-
-java -jar target/hello-undertow.jar $UNDERTOW_ARGS

+ 0 - 7
frameworks/Java/undertow/setup_mongodb.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends mongodb
-
-export UNDERTOW_ARGS="MONGODB"
-
-source ./setup.sh

+ 0 - 7
frameworks/Java/undertow/setup_mongodb_async.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends mongodb
-
-export UNDERTOW_ARGS="MONGODB_ASYNC"
-
-source ./setup.sh

+ 0 - 7
frameworks/Java/undertow/setup_mysql.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql
-
-export UNDERTOW_ARGS="MYSQL"
-
-source ./setup.sh

+ 0 - 5
frameworks/Java/undertow/setup_no_database.sh

@@ -1,5 +0,0 @@
-#!/bin/bash
-
-export UNDERTOW_ARGS="NO_DATABASE"
-
-source ./setup.sh

+ 0 - 7
frameworks/Java/undertow/setup_postgresql.sh

@@ -1,7 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql
-
-export UNDERTOW_ARGS="POSTGRESQL"
-
-source ./setup.sh

+ 0 - 4
frameworks/Java/undertow/source_code

@@ -1,4 +0,0 @@
-./undertow/src/main/java/hello/
-./undertow/src/main/java/hello/HelloWebServer.java
-./undertow/src/main/java/hello/World.java
-./undertow/src/main/java/hello/Fortune.java

+ 14 - 1
frameworks/Java/undertow/src/main/java/hello/HelloWebServer.java

@@ -167,7 +167,20 @@ public final class HelloWebServer {
       config.setUsername(username);
       config.setUsername(username);
       config.setPassword(password);
       config.setPassword(password);
       config.setMaximumPoolSize(connections);
       config.setMaximumPoolSize(connections);
-      return new HikariDataSource(config);
+      // Attempt to work around "FATAL: the database system is starting up"
+      // error seen in Travis+Docker+PostgreSQL environment.
+      for (int i = 0;;) {
+        try {
+          return new HikariDataSource(config);
+        } catch (com.zaxxer.hikari.pool.HikariPool.PoolInitializationException e) {
+          if (++i >= 10) throw e;
+          try {
+            Thread.sleep(1000);
+          } catch (InterruptedException e2) {
+            Thread.currentThread().interrupt();
+          }
+        }
+      }
     }
     }
 
 
     /**
     /**

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

@@ -0,0 +1,5 @@
+FROM tfb/maven:latest
+ADD ./ /undertow
+WORKDIR /undertow
+RUN mvn clean package
+EXPOSE 8080

+ 2 - 0
frameworks/Java/undertow/undertow-mongodb-async.dockerfile

@@ -0,0 +1,2 @@
+FROM tfb/undertow-base:latest
+CMD java -jar target/hello-undertow.jar MONGODB_ASYNC

+ 2 - 0
frameworks/Java/undertow/undertow-mongodb.dockerfile

@@ -0,0 +1,2 @@
+FROM tfb/undertow-base:latest
+CMD java -jar target/hello-undertow.jar MONGODB

+ 2 - 0
frameworks/Java/undertow/undertow-mysql.dockerfile

@@ -0,0 +1,2 @@
+FROM tfb/undertow-base:latest
+CMD java -jar target/hello-undertow.jar MYSQL

+ 2 - 0
frameworks/Java/undertow/undertow-postgresql.dockerfile

@@ -0,0 +1,2 @@
+FROM tfb/undertow-base:latest
+CMD java -jar target/hello-undertow.jar POSTGRESQL

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

@@ -0,0 +1,2 @@
+FROM tfb/undertow-base:latest
+CMD java -jar target/hello-undertow.jar NO_DATABASE

+ 1 - 1
frameworks/JavaScript/ringojs/ringo-base.dockerfile

@@ -1,4 +1,4 @@
-FROM tfb/java:latest
+FROM tfb/java8:latest
 
 
 COPY ./ ./
 COPY ./ ./
 
 

+ 0 - 13
frameworks/JavaScript/ringojs/ringojs-base.dockerfile

@@ -1,13 +0,0 @@
-FROM tfb/java:latest
-
-ENV NODE_ENV=production
-
-RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
-RUN apt install -y nodejs
-
-ENV RINGO_VERSION 1.1.0
-
-RUN wget -O https://github.com/ringo/ringojs/releases/download/v$VERSION/ringojs-${RINGO_VERSION}.tar.gz
-RUN tar xvf ringojs-${RINGO_VERSION}.tar.gz
-
-ENV PATH="ringojs-${RINGO_VERSION}/bin:${PATH}"

+ 5 - 10
toolset/setup/linux/docker/languages/java.dockerfile

@@ -1,12 +1,7 @@
 FROM tfb/base:latest
 FROM tfb/base:latest
 
 
-RUN add-apt-repository -y ppa:openjdk-r/ppa
-RUN apt-get update
-RUN apt-get install -qqy -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \
-    openjdk-8-jdk
-
-# https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/1396760
-RUN /var/lib/dpkg/info/ca-certificates-java.postinst configure
-
-ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
-ENV PATH="/usr/lib/jvm/java-8-openjdk-amd64/bin:${PATH}"
+RUN mkdir /java
+WORKDIR /java
+RUN curl https://download.java.net/java/GA/jdk9/9.0.4/binaries/openjdk-9.0.4_linux-x64_bin.tar.gz | tar xz
+ENV JAVA_HOME=/java/jdk-9.0.4
+ENV PATH="${JAVA_HOME}/bin:${PATH}"

+ 12 - 0
toolset/setup/linux/docker/languages/java8.dockerfile

@@ -0,0 +1,12 @@
+FROM tfb/base:latest
+
+RUN add-apt-repository -y ppa:openjdk-r/ppa
+RUN apt-get update
+RUN apt-get install -qqy -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \
+    openjdk-8-jdk
+
+# https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/1396760
+RUN /var/lib/dpkg/info/ca-certificates-java.postinst configure
+
+ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+ENV PATH="/usr/lib/jvm/java-8-openjdk-amd64/bin:${PATH}"

+ 7 - 0
toolset/setup/linux/docker/systools/maven.dockerfile

@@ -0,0 +1,7 @@
+FROM tfb/java:latest
+
+RUN mkdir /maven
+WORKDIR /maven
+RUN curl http://mirrors.advancedhosters.com/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz | tar xz
+ENV MAVEN_HOME=/maven/apache-maven-3.5.2
+ENV PATH="${MAVEN_HOME}/bin:${PATH}"