This is an automated email from the ASF dual-hosted git repository.

rabbah pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new 70f7d44  Move to Java 11 for building and running (#4706)
70f7d44 is described below

commit 70f7d4434c05d38da4459f70d0aa6f6d212dec88
Author: dan mcweeney <[email protected]>
AuthorDate: Wed Feb 19 12:54:35 2020 -0500

    Move to Java 11 for building and running (#4706)
    
    * Move to use JDK11 containers for running
    * Switch to JDK11 for build
    * Remove timestamps from generated code to work with JDK11
    * Update gatling to support JDK11
    * Fix up gradle tests to work with later version and JDK11
    * Allow for gradle to target correct JDK
    
    Co-authored-by: Chetan Mehrotra <[email protected]>
---
 .travis.yml                                          |  9 +++++++--
 common/scala/Dockerfile                              |  3 +--
 tests/performance/gatling_tests/build.gradle         |  9 ++++++++-
 tests/performance/gatling_tests/build.sh             | 14 ++++----------
 .../src/gatling/resources/data/src/java/build.gradle |  5 +++++
 .../BlockingInvokeOneActionSimulation.scala          | 15 ++++++---------
 .../openwhisk/ColdBlockingInvokeSimulation.scala     |  9 ++++-----
 .../org/apache/openwhisk/LatencySimulation.scala     | 20 ++++++++++----------
 .../extension/whisk/OpenWhiskProtocolBuilder.scala   |  4 ++--
 tests/src/test/resources/swagger-config.json         |  3 ++-
 10 files changed, 49 insertions(+), 42 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 40d85f8..7d9cfd6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,8 +18,13 @@
 sudo: required
 
 dist: xenial
-jdk: openjdk8
-language: java
+
+language: scala
+scala:
+   - 2.12.7
+
+jdk:
+  - openjdk11
 
 services:
   - docker
diff --git a/common/scala/Dockerfile b/common/scala/Dockerfile
index 6aa9637..8f52eff 100644
--- a/common/scala/Dockerfile
+++ b/common/scala/Dockerfile
@@ -14,8 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-
-FROM adoptopenjdk/openjdk8:x86_64-alpine-jdk8u172-b11
+FROM adoptopenjdk/openjdk11:x86_64-alpine-jdk-11.0.3_7
 
 ENV LANG en_US.UTF-8
 ENV LANGUAGE en_US:en
diff --git a/tests/performance/gatling_tests/build.gradle 
b/tests/performance/gatling_tests/build.gradle
index 04c1b05..2600776 100644
--- a/tests/performance/gatling_tests/build.gradle
+++ b/tests/performance/gatling_tests/build.gradle
@@ -16,11 +16,18 @@
  */
 
 plugins {
-    id 'com.github.lkishalmi.gatling' version '0.7.2'
+    id 'com.github.lkishalmi.gatling' version '3.2.1'
     id 'eclipse'
     id 'scala'
 }
 
+sourceSets {
+    gatling {
+        scala.srcDirs = ["src/gatling/scala/"]
+        resources.srcDirs = ["src/gatling/resources/"]
+    }
+}
+
 dependencies {
     gatling "io.spray:spray-json_${gradle.scala.depVersion}:1.3.4"
     gatling "commons-io:commons-io:2.6"
diff --git a/tests/performance/gatling_tests/build.sh 
b/tests/performance/gatling_tests/build.sh
index 02cd3fa..8c60dea 100755
--- a/tests/performance/gatling_tests/build.sh
+++ b/tests/performance/gatling_tests/build.sh
@@ -25,13 +25,7 @@ if [ -f ".built" ]; then
   exit 0
 fi
 
-# need java 8 to build java actions since that's the version of the runtime 
currently
-jv=$(java -version 2>&1 | head -1 | awk -F'"' '{print $2}')
-if [[ $jv == 1.8.* ]]; then
-  echo "java version is $jv (ok)"
-  (cd src/gatling/resources/data/src/java && "$GRADLEW_PATH/gradlew" build && 
cp build/libs/gatling-1.0.jar ../../javaAction.jar)
-  touch .built
-else
-  echo "java version is $jv (not ok)"
-  echo "skipping java actions"
-fi
+# Let gradle set the source and target versions to let it sort out if it can 
produce
+# byte code that is compatible with java8.
+(cd src/gatling/resources/data/src/java && "$GRADLEW_PATH/gradlew" build && cp 
build/libs/gatling-1.0.jar ../../javaAction.jar)
+touch .built
diff --git 
a/tests/performance/gatling_tests/src/gatling/resources/data/src/java/build.gradle
 
b/tests/performance/gatling_tests/src/gatling/resources/data/src/java/build.gradle
index c6df5f6..390d17d 100644
--- 
a/tests/performance/gatling_tests/src/gatling/resources/data/src/java/build.gradle
+++ 
b/tests/performance/gatling_tests/src/gatling/resources/data/src/java/build.gradle
@@ -19,6 +19,11 @@ plugins {
     id 'java'
 }
 
+compileJava   {
+  sourceCompatibility = '1.8'
+  targetCompatibility = '1.8'
+}
+
 version = '1.0'
 
 repositories {
diff --git 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/BlockingInvokeOneActionSimulation.scala
 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/BlockingInvokeOneActionSimulation.scala
index 4fb2540..fc053d6 100644
--- 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/BlockingInvokeOneActionSimulation.scala
+++ 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/BlockingInvokeOneActionSimulation.scala
@@ -23,8 +23,7 @@ import 
org.apache.openwhisk.extension.whisk.OpenWhiskProtocolBuilder
 import org.apache.openwhisk.extension.whisk.Predef._
 import io.gatling.core.Predef._
 import io.gatling.core.structure.ScenarioBuilder
-import io.gatling.core.util.Resource
-import org.apache.commons.io.FileUtils
+import io.gatling.core.util.ClasspathPackagedResource
 
 import scala.concurrent.duration._
 
@@ -51,17 +50,15 @@ class BlockingInvokeOneActionSimulation extends Simulation {
   val async = sys.env.getOrElse("ASYNC", "false").toBoolean
 
   val actionName = "testActionForBlockingInvokeOneAction"
-  val actionfile = if (async) "nodeJSAsyncAction.js" else "nodeJSAction.js"
+  val actionfile = if (async) "/data/nodeJSAsyncAction.js" else 
"/data/nodeJSAction.js"
 
   // Define scenario
   val test: ScenarioBuilder = scenario(s"Invoke one ${if (async) "async" else 
"sync"} action blocking")
     .doIf(_.userId == 1) {
-      exec(
-        openWhisk("Create action")
-          .authenticate(uuid, key)
-          .action(actionName)
-          .create(FileUtils
-            .readFileToString(Resource.body(actionfile).get.file, 
StandardCharsets.UTF_8)))
+      exec(openWhisk("Create action")
+        .authenticate(uuid, key)
+        .action(actionName)
+        .create(ClasspathPackagedResource(actionfile, 
getClass.getResource(actionfile)).string(StandardCharsets.UTF_8)))
     }
     .rendezVous(connections)
     .during(5.seconds) {
diff --git 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/ColdBlockingInvokeSimulation.scala
 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/ColdBlockingInvokeSimulation.scala
index 81acdb0..610c8ed 100644
--- 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/ColdBlockingInvokeSimulation.scala
+++ 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/ColdBlockingInvokeSimulation.scala
@@ -24,8 +24,7 @@ import org.apache.openwhisk.extension.whisk.Predef._
 import io.gatling.core.Predef._
 import io.gatling.core.session.Expression
 import io.gatling.core.structure.ScenarioBuilder
-import io.gatling.core.util.Resource
-import org.apache.commons.io.FileUtils
+import io.gatling.core.util.ClasspathPackagedResource
 
 import scala.concurrent.duration._
 
@@ -47,7 +46,7 @@ class ColdBlockingInvokeSimulation extends Simulation {
   // Generate the OpenWhiskProtocol
   val openWhiskProtocol: OpenWhiskProtocolBuilder = openWhisk.apiHost(host)
 
-  val feeder = csv("users.csv").queue
+  val feeder = csv("data/users.csv").queue
 
   // Define scenario
   val test: ScenarioBuilder = scenario("Invoke one action blocking")
@@ -84,8 +83,8 @@ class ColdBlockingInvokeSimulation extends Simulation {
     }
 
   private def actionCode = {
-    val code = FileUtils
-      .readFileToString(Resource.body("nodeJSAction.js").get.file, 
StandardCharsets.UTF_8)
+    val code = ClasspathPackagedResource("nodeJSAction.js", 
getClass.getResource("/data/nodeJSAction.js"))
+      .string(StandardCharsets.UTF_8)
     //Pad the code with empty space to increase the stored code size
     if (codeSize > 0) code + " " * codeSize else code
   }
diff --git 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/LatencySimulation.scala
 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/LatencySimulation.scala
index 34eeee2..c3c4d79 100644
--- 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/LatencySimulation.scala
+++ 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/LatencySimulation.scala
@@ -23,8 +23,7 @@ import java.util.Base64
 import org.apache.openwhisk.extension.whisk.Predef._
 import io.gatling.core.Predef._
 import io.gatling.core.session.Expression
-import io.gatling.core.util.Resource
-import org.apache.commons.io.FileUtils
+import io.gatling.core.util.ClasspathPackagedResource
 
 import scala.concurrent.duration._
 
@@ -65,14 +64,15 @@ class LatencySimulation extends Simulation {
    * `main` is only needed for java. This is the name of the class where the 
main method is located.
    */
   val actions: Seq[(String, String, String, String)] = Map(
-    "nodejs:default" -> (FileUtils
-      .readFileToString(Resource.body("nodeJSAction.js").get.file, 
StandardCharsets.UTF_8), "latencyTest_node", ""),
-    "python:default" -> (FileUtils
-      .readFileToString(Resource.body("pythonAction.py").get.file, 
StandardCharsets.UTF_8), "latencyTest_python", ""),
-    "swift:default" -> (FileUtils
-      .readFileToString(Resource.body("swiftAction.swift").get.file, 
StandardCharsets.UTF_8), "latencyTest_swift", ""),
-    "java:default" -> (Base64.getEncoder.encodeToString(
-      
FileUtils.readFileToByteArray(Resource.body("javaAction.jar").get.file)), 
"latencyTest_java", "JavaAction"))
+    "nodejs:default" -> (ClasspathPackagedResource("nodeJSAction.js", 
getClass.getResource("/data/nodeJSAction.js"))
+      .string(StandardCharsets.UTF_8), "latencyTest_node", ""),
+    "python:default" -> (ClasspathPackagedResource("pythonAction.py", 
getClass.getResource("/data/pythonAction.py"))
+      .string(StandardCharsets.UTF_8), "latencyTest_python", ""),
+    "swift:default" -> (ClasspathPackagedResource("swiftAction.swift", 
getClass.getResource("/data/swiftAction.swift"))
+      .string(StandardCharsets.UTF_8), "latencyTest_swift", ""),
+    "java:default" -> 
(Base64.getEncoder.encodeToString(ClasspathPackagedResource(
+      "javaAction.jar",
+      getClass.getResource("/data/javaAction.jar")).bytes), 
"latencyTest_java", "JavaAction"))
     .filterNot(e => excludedKinds.contains(e._1))
     .map {
       case (kind, (code, name, main)) =>
diff --git 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/extension/whisk/OpenWhiskProtocolBuilder.scala
 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/extension/whisk/OpenWhiskProtocolBuilder.scala
index a3564e9..8a0ac13 100644
--- 
a/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/extension/whisk/OpenWhiskProtocolBuilder.scala
+++ 
b/tests/performance/gatling_tests/src/gatling/scala/org/apache/openwhisk/extension/whisk/OpenWhiskProtocolBuilder.scala
@@ -20,9 +20,9 @@ package org.apache.openwhisk.extension.whisk
 import java.net.URL
 
 import com.softwaremill.quicklens._
-import io.gatling.core.Predef._
 import io.gatling.core.config.GatlingConfiguration
 import io.gatling.http.Predef._
+import io.gatling.core.Predef._
 import io.gatling.http.protocol.HttpProtocol
 
 import scala.language.implicitConversions
@@ -72,7 +72,7 @@ case class OpenWhiskProtocolBuilder(private val protocol: 
OpenWhiskProtocol) {
   /** build the http protocol with the parameters provided by the 
openwhisk-protocol. */
   def build(implicit configuration: GatlingConfiguration) = {
     http
-      .baseURL(s"${protocol.protocol}://${protocol.apiHost}:${protocol.port}")
+      .baseUrl(s"${protocol.protocol}://${protocol.apiHost}:${protocol.port}")
       .contentTypeHeader("application/json")
       .userAgentHeader("gatlingLoadTest")
       .warmUp("http://google.com";)
diff --git a/tests/src/test/resources/swagger-config.json 
b/tests/src/test/resources/swagger-config.json
index f8696d3..3bb7d7e 100644
--- a/tests/src/test/resources/swagger-config.json
+++ b/tests/src/test/resources/swagger-config.json
@@ -1,4 +1,5 @@
 {
     "library": "okhttp-gson",
-    "dateLibrary": "java8"
+    "dateLibrary": "java8",
+    "hideGenerationTimestamp": true
 }

Reply via email to