This is an automated email from the ASF dual-hosted git repository.
chetanm 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 d9de97d Update Gradle to 5.5 version (#4567)
d9de97d is described below
commit d9de97d6e3b01010a63ee88042febba3c2a3b068
Author: Chetan Mehrotra <[email protected]>
AuthorDate: Mon Aug 12 21:35:19 2019 +0530
Update Gradle to 5.5 version (#4567)
Updates Gradle to 5.5 to enable work with JDK 11. Along with that it also
upgrades the scoverage plugin as the older version does not work with Gradle 5.
Due to various changes in how scoverage works we needed to adapt the way
how instrumented classes are included in test runs
---
build.gradle | 7 ++-
common/scala/build.gradle | 2 -
core/controller/build.gradle | 9 ++-
core/cosmosdb/cache-invalidator/build.gradle | 7 ---
core/invoker/build.gradle | 9 ++-
core/standalone/build.gradle | 1 -
gradle/docker.gradle | 4 +-
gradle/wrapper/gradle-wrapper.jar | Bin 54417 -> 55616 bytes
gradle/wrapper/gradle-wrapper.properties | 2 +-
gradlew | 2 +-
gradlew.bat | 2 +-
settings.gradle | 7 ---
tests/build.gradle | 85 ++++++++++++---------------
tests/src/test/resources/logback-test.xml | 1 +
tools/admin/build.gradle | 1 -
15 files changed, 56 insertions(+), 83 deletions(-)
diff --git a/build.gradle b/build.gradle
index 2f1e076..ef4b1bb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -21,14 +21,15 @@ buildscript {
}
dependencies {
classpath "cz.alenkacz:gradle-scalafmt:${gradle.scalafmt.version}"
- classpath 'org.scoverage:gradle-scoverage:2.3.0'
}
}
plugins {
- id "com.gradle.build-scan" version "1.14"
+ id "com.gradle.build-scan" version "2.3"
+ id "org.scoverage" version "3.1.5" apply false
}
+
buildScan {
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
termsOfServiceAgree = 'yes'
@@ -102,6 +103,8 @@ def configureUnixClasspath(File script) {
// Get original line and append it
// with the configuration directory.
original += ':$APP_HOME/ext-lib/*:$APP_HOME/config'
+ //Ensure classes comes first. Used to refer to instrumented
classes for code coverage
+ original = original.replace('CLASSPATH=',
'CLASSPATH=$APP_HOME/classes:')
}
}
.join('\n')
diff --git a/common/scala/build.gradle b/common/scala/build.gradle
index 2f457fc..f59bedd 100644
--- a/common/scala/build.gradle
+++ b/common/scala/build.gradle
@@ -91,8 +91,6 @@ dependencies {
exclude group: 'com.fasterxml.jackson.dataformat'
}
compile ('com.amazonaws:aws-java-sdk-cloudfront:1.11.517')
- scoverage gradle.scoverage.deps
-
//Following constraints ensure that akka related transitive dependencies
match the
//current version used
constraints {
diff --git a/core/controller/build.gradle b/core/controller/build.gradle
index 0059157..3245121 100644
--- a/core/controller/build.gradle
+++ b/core/controller/build.gradle
@@ -27,11 +27,11 @@ distDocker.dependsOn ':common:scala:distDocker', 'distTar'
project.archivesBaseName = "openwhisk-controller"
-ext.coverageJars = [
- "${buildDir}/libs/${project.archivesBaseName}-$version-scoverage.jar",
-
"${project(':common:scala').buildDir.absolutePath}/libs/openwhisk-common-$version-scoverage.jar"
+ext.coverageDirs = [
+ "${buildDir}/classes/scala/scoverage",
+ "${project(':common:scala').buildDir.absolutePath}/classes/scala/scoverage"
]
-distDockerCoverage.dependsOn ':common:scala:jarScoverage', 'jarScoverage'
+distDockerCoverage.dependsOn ':common:scala:scoverageClasses',
'scoverageClasses'
repositories {
mavenCentral()
@@ -44,7 +44,6 @@ dependencies {
compile
'com.lightbend.akka.discovery:akka-discovery-marathon-api_2.12:0.11.0'
compile project(':common:scala')
compile project(':core:invoker')
- scoverage gradle.scoverage.deps
}
tasks.withType(ScalaCompile) {
diff --git a/core/cosmosdb/cache-invalidator/build.gradle
b/core/cosmosdb/cache-invalidator/build.gradle
index 7044c06..5d2c904 100644
--- a/core/cosmosdb/cache-invalidator/build.gradle
+++ b/core/cosmosdb/cache-invalidator/build.gradle
@@ -27,12 +27,6 @@ distDocker.dependsOn ':common:scala:distDocker', 'distTar'
project.archivesBaseName = "openwhisk-cache-invalidator-cosmosdb"
-ext.coverageJars = [
- "${buildDir}/libs/${project.archivesBaseName}-$version-scoverage.jar",
-
"${project(':common:scala').buildDir.absolutePath}/libs/openwhisk-common-$version-scoverage.jar"
-]
-distDockerCoverage.dependsOn ':common:scala:jarScoverage', 'jarScoverage'
-
repositories {
mavenCentral()
}
@@ -45,7 +39,6 @@ dependencies {
exclude group: 'commons-logging'
}
compile 'com.typesafe.akka:akka-stream-kafka_2.12:1.0'
- scoverage gradle.scoverage.deps
}
tasks.withType(ScalaCompile) {
diff --git a/core/invoker/build.gradle b/core/invoker/build.gradle
index e97ef2d..ec96298 100644
--- a/core/invoker/build.gradle
+++ b/core/invoker/build.gradle
@@ -26,11 +26,11 @@ apply from: '../../gradle/docker.gradle'
distDocker.dependsOn ':common:scala:distDocker', 'distTar'
project.archivesBaseName = "openwhisk-invoker"
-ext.coverageJars = [
- "${buildDir}/libs/${project.archivesBaseName}-$version-scoverage.jar",
-
"${project(':common:scala').buildDir.absolutePath}/libs/openwhisk-common-$version-scoverage.jar"
+ext.coverageDirs = [
+ "${buildDir}/classes/scala/scoverage",
+ "${project(':common:scala').buildDir.absolutePath}/classes/scala/scoverage"
]
-distDockerCoverage.dependsOn ':common:scala:jarScoverage', 'jarScoverage'
+distDockerCoverage.dependsOn ':common:scala:scoverageClasses',
'scoverageClasses'
repositories {
mavenCentral()
@@ -48,7 +48,6 @@ dependencies {
exclude group: 'log4j'
exclude group: 'jline'
}
- scoverage gradle.scoverage.deps
}
tasks.withType(ScalaCompile) {
diff --git a/core/standalone/build.gradle b/core/standalone/build.gradle
index 020f3c6..232a445 100644
--- a/core/standalone/build.gradle
+++ b/core/standalone/build.gradle
@@ -86,6 +86,5 @@ dependencies {
compile project(':core:controller')
compile project(':tools:admin')
compile 'org.rogach:scallop_2.12:3.3.1'
- scoverage gradle.scoverage.deps
}
diff --git a/gradle/docker.gradle b/gradle/docker.gradle
index 1377f0e..398dd50 100644
--- a/gradle/docker.gradle
+++ b/gradle/docker.gradle
@@ -74,8 +74,8 @@ task distDockerCoverage() {
//Copy the scoverage runtime jars
copy {from configurations.scoverage - configurations.compile; into
"build/tmp/docker-coverage/ext-lib"}
//Copy the scoverage prepared jars
- coverageJars.each {jar ->
- copy {from file(jar); into "build/tmp/docker-coverage/lib"; rename
{ it.replace('-scoverage', '')}}
+ coverageDirs.each {dir ->
+ copy {from file(dir); into "build/tmp/docker-coverage/classes"}
}
def buildArgs = [
diff --git a/gradle/wrapper/gradle-wrapper.jar
b/gradle/wrapper/gradle-wrapper.jar
index 758de96..5c2d1cf 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and
b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties
b/gradle/wrapper/gradle-wrapper.properties
index ac3eb70..643b8fa 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -17,6 +17,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index d4ee78f..08282de 100755
--- a/gradlew
+++ b/gradlew
@@ -44,7 +44,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to
pass JVM options to this script.
-DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8'
+DEFAULT_JVM_OPTS='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
diff --git a/gradlew.bat b/gradlew.bat
index ad0ff10..b1d7f4e 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -30,7 +30,7 @@ set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS
to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=-Dfile.encoding=UTF-8
+set DEFAULT_JVM_OPTS=-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/settings.gradle b/settings.gradle
index a6eb3da..4556950 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -43,13 +43,6 @@ gradle.ext.scalafmt = [
config: new File(rootProject.projectDir, '.scalafmt.conf')
]
-gradle.ext.scoverage = [
- deps: [
- 'org.scoverage:scalac-scoverage-plugin_2.12:1.3.1',
- 'org.scoverage:scalac-scoverage-runtime_2.12:1.3.1'
- ]
-]
-
gradle.ext.akka = [version : '2.5.22']
gradle.ext.akka_http = [version : '10.1.8']
diff --git a/tests/build.gradle b/tests/build.gradle
index 8f43ea6..d25813f 100644
--- a/tests/build.gradle
+++ b/tests/build.gradle
@@ -41,6 +41,14 @@ def leanExcludes = [
'invokerShoot/**'
]
+def projectsWithCoverage = [
+ ':common:scala',
+ ':core:controller',
+ ':core:invoker',
+ ':tools:admin',
+ ':core:cosmosdb:cache-invalidator'
+]
+
def systemIncludes = [
"org/apache/openwhisk/core/limits/**",
"org/apache/openwhisk/core/admin/**",
@@ -186,6 +194,7 @@ dependencies {
compile "org.apache.curator:curator-test:${gradle.curator.version}"
compile 'com.atlassian.oai:swagger-request-validator-core:1.4.5'
compile 'com.typesafe.akka:akka-stream-kafka-testkit_2.12:1.0'
+ compile "com.typesafe.akka:akka-stream-testkit_2.12:${gradle.akka.version}"
compile "com.amazonaws:aws-java-sdk-s3:1.11.295"
@@ -195,10 +204,6 @@ dependencies {
compile project(':core:cosmosdb:cache-invalidator')
compile project(':tools:admin')
-
-
- scoverage gradle.scoverage.deps
-
swaggerCodegen 'io.swagger:swagger-codegen-cli:2.3.1'
}
@@ -233,13 +238,13 @@ gradle.projectsEvaluated {
doFirst {
logTestSetInfo()
}
- classpath = getScoverageClasspath(project)
+ classpath = getScoverageClasspath(project, projectsWithCoverage)
exclude getPattern(testSetName, "excludes")
include getPattern(testSetName, "includes")
}
task testCoverage(type: Test) {
- classpath = getScoverageClasspath(project)
+ classpath = getScoverageClasspath(project, projectsWithCoverage)
}
tasks.withType(Test) {
systemProperties(System.getProperties())
@@ -250,8 +255,33 @@ gradle.projectsEvaluated {
showStandardStreams = true
exceptionFormat = 'full'
}
+ maxHeapSize = "1024m" //Gradle 5.5 defaults to 512MB which is low
outputs.upToDateWhen { false } // force tests to run every time
}
+ /**
+ * Task to generate coverage xml report. Requires the
+ * tests to be executed prior to its invocation
+ */
+ task reportCoverage(type: ScoverageReport) {
+ def dependentTasks = []
+ dependentTasks << copyMeasurementFiles
+ projectsWithCoverage.forEach {
+ dependentTasks << it + ':reportScoverage'
+ }
+ dependsOn(dependentTasks)
+ //Need to recreate the logic from
+
//https://github.com/scoverage/gradle-scoverage/blob/924bf49a8f981f119d0604b44a782f3f8eecb359/src/main/groovy/org/scoverage/ScoveragePlugin.groovy#L137
+ //default tasks retrigger the tests. As ours is a multi module
integration
+ //test we have to adapt the classpath and hence cannot use default
reportXXXScoverage tasks
+ runner = new
org.scoverage.ScoverageRunner(project.configurations.scoverage)
+ reportDir = reportTestScoverage.reportDir
+ sources = reportTestScoverage.sources
+ dataDir = reportTestScoverage.dataDir
+ coverageOutputCobertura = reportTestScoverage.coverageOutputCobertura
+ coverageOutputXML = reportTestScoverage.coverageOutputXML
+ coverageOutputHTML = reportTestScoverage.coverageOutputHTML
+ coverageDebug = reportTestScoverage.coverageDebug
+ }
}
task copyMeasurementFiles() {
@@ -273,21 +303,6 @@ task copyMeasurementFiles() {
}
}
-/**
- * Task to generate coverage xml report. Requires the
- * tests to be executed prior to its invocation
- */
-task reportCoverage(type: ScoverageReport) {
- dependsOn([
- copyMeasurementFiles,
- ':common:scala:reportScoverage',
- ':core:controller:reportScoverage',
- ':core:invoker:reportScoverage',
- ':tools:admin:reportScoverage',
- ':core:cosmosdb:cache-invalidator:reportScoverage',
- ])
-
-}
/**
* Scoverage measurement files are named like scoverage.measurements.xxx.
Where xxx is thread id. While
@@ -316,36 +331,10 @@ def loadWhiskProps(){
}
/**
- * Aggregates the scoverage xml reports from various modules into a
- * single report
- */
-task aggregateCoverage(type: JavaExec, dependsOn: reportCoverage) {
- //Taken from ScoverageAggregate
- main = 'org.scoverage.AggregateReportApp'
- classpath = project.extensions.scoverage.pluginClasspath
- args = [
- project.rootProject.projectDir, //Use the root project path so as to
"see" all source paths
- new File(project.buildDir, 'scoverage-aggregate'),
- false, //Clean scoverage report post process
- true, //coverageOutputCobertura
- true, //coverageOutputXML
- true, //coverageOutputHTML
- false //coverageDebug
- ]
-}
-
-/**
* Prepares the classpath which refer to scoverage instrumented classes from
* dependent projects "before" the non instrumented classes
*/
-def getScoverageClasspath(Project project) {
- def projectNames = [
- ':common:scala',
- ':core:controller',
- ':core:invoker',
- ':tools:admin',
- ':core:cosmosdb:cache-invalidator'
- ]
+def getScoverageClasspath(Project project, List<String> projectNames) {
def combinedClasspath = projectNames.inject(project.files([])) { result,
name ->
def cp = project.project(name).sourceSets.scoverage.runtimeClasspath
result + cp.filter {it.name.contains('scoverage')}
diff --git a/tests/src/test/resources/logback-test.xml
b/tests/src/test/resources/logback-test.xml
index 40a1653..98ca59d 100644
--- a/tests/src/test/resources/logback-test.xml
+++ b/tests/src/test/resources/logback-test.xml
@@ -12,6 +12,7 @@
<!-- Kafka -->
<logger name="org.apache.kafka" level="ERROR" />
+ <logger name="kafka.server" level="ERROR" />
<!-- Zookeeper -->
<logger name="org.apache.zookeeper" level="ERROR" />
diff --git a/tools/admin/build.gradle b/tools/admin/build.gradle
index fe9e656..f72e199 100644
--- a/tools/admin/build.gradle
+++ b/tools/admin/build.gradle
@@ -49,5 +49,4 @@ bootJar {
dependencies {
compile project(':common:scala')
compile 'org.rogach:scallop_2.12:3.1.2'
- scoverage gradle.scoverage.deps
}