From aa49aa36602c360b1e48b30f959417a780a11604 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Fri, 16 Mar 2018 09:34:10 -0700 Subject: [PATCH 1/6] Bump dependencies and gradle versions --- build.gradle | 4 ++-- gradle/dependencies.gradle | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 5e4c35643c2a1..73e7a58871050 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ buildscript { classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0' classpath 'org.scoverage:gradle-scoverage:2.1.0' classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2' - classpath 'org.owasp:dependency-check-gradle:3.0.2' + classpath 'org.owasp:dependency-check-gradle:3.1.1' } } @@ -79,7 +79,7 @@ allprojects { } ext { - gradleVersion = "4.5.1" + gradleVersion = "4.6" buildVersionFileName = "kafka-version.properties" maxPermSizeArgs = [] diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index b7a03dcd7528f..5c659d76d804f 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -50,30 +50,30 @@ versions += [ apacheda: "1.0.0", apacheds: "2.0.0-M24", argparse4j: "0.7.0", - bcpkix: "1.58", + bcpkix: "1.59", easymock: "3.5.1", jackson: "2.9.4", jetty: "9.2.24.v20180105", jersey: "2.25.1", - jmh: "1.19", + jmh: "1.20", log4j: "1.2.17", - scalaLogging: "3.7.2", + scalaLogging: "3.8.0", jopt: "5.0.4", junit: "4.12", - lz4: "1.4", + lz4: "1.4.1", metrics: "2.2.0", // PowerMock 1.x doesn't support Java 9, so use PowerMock 2.0.0 beta powermock: "2.0.0-beta.5", reflections: "0.9.11", rocksDB: "5.7.3", - scalatest: "3.0.4", + scalatest: "3.0.5", scoverage: "1.3.1", slf4j: "1.7.25", snappy: "1.1.7.1", zkclient: "0.10", zookeeper: "3.4.10", jfreechart: "1.0.0", - mavenArtifact: "3.5.2" + mavenArtifact: "3.5.3" ] libs += [ From e8d266abd88f81c669f32a6f1a961cbfea324ae5 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Fri, 16 Mar 2018 09:34:40 -0700 Subject: [PATCH 2/6] Disable jacoco with Java 10 --- build.gradle | 83 +++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 37 deletions(-) diff --git a/build.gradle b/build.gradle index 73e7a58871050..cf7c7de776774 100644 --- a/build.gradle +++ b/build.gradle @@ -41,7 +41,9 @@ allprojects { } apply plugin: 'idea' - apply plugin: "jacoco" + // jacoco is not compatible with Java 10 or 11 at the moment, see https://github.com/jacoco/jacoco/issues/629 + if (!JavaVersion.current().isJava10Compatible()) + apply plugin: "jacoco" apply plugin: 'org.owasp.dependencycheck' apply plugin: 'com.github.ben-manes.versions' @@ -385,26 +387,28 @@ subprojects { // Ignore core since its a scala project if (it.path != ':core') { - jacoco { - toolVersion = "0.8.0" - } + if (!JavaVersion.current().isJava10Compatible()) { + jacoco { + toolVersion = "0.8.0" + } - // NOTE: Jacoco Gradle plugin does not support "offline instrumentation" this means that classes mocked by PowerMock - // may report 0 coverage, since the source was modified after initial instrumentation. - // See https://github.com/jacoco/jacoco/issues/51 - jacocoTestReport { - dependsOn tasks.test - sourceSets sourceSets.main - reports { - html.enabled = true - xml.enabled = true - csv.enabled = false + // NOTE: Jacoco Gradle plugin does not support "offline instrumentation" this means that classes mocked by PowerMock + // may report 0 coverage, since the source was modified after initial instrumentation. + // See https://github.com/jacoco/jacoco/issues/51 + jacocoTestReport { + dependsOn tasks.test + sourceSets sourceSets.main + reports { + html.enabled = true + xml.enabled = true + csv.enabled = false + } } } - } - def coverageGen = it.path == ':core' ? 'reportScoverage' : 'jacocoTestReport' - task reportCoverage(dependsOn: [coverageGen]) + def coverageGen = it.path == ':core' ? 'reportScoverage' : 'jacocoTestReport' + task reportCoverage(dependsOn: [coverageGen]) + } } @@ -445,31 +449,34 @@ def fineTuneEclipseClasspathFile(eclipse, project) { } } -// Aggregates all jacoco results into the root project directory -task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) { - def javaProjects = subprojects.findAll { it.path != ':core' } - description = 'Generates an aggregate report from all subprojects' - dependsOn(javaProjects.test) +if (!JavaVersion.current().isJava10Compatible()) { + // Aggregates all jacoco results into the root project directory + task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) { + def javaProjects = subprojects.findAll { it.path != ':core' } - additionalSourceDirs = files(javaProjects.sourceSets.main.allSource.srcDirs) - sourceDirectories = files(javaProjects.sourceSets.main.allSource.srcDirs) - classDirectories = files(javaProjects.sourceSets.main.output) - executionData = files(javaProjects.jacocoTestReport.executionData) + description = 'Generates an aggregate report from all subprojects' + dependsOn(javaProjects.test) - reports { - html.enabled = true - xml.enabled = true - } + additionalSourceDirs = files(javaProjects.sourceSets.main.allSource.srcDirs) + sourceDirectories = files(javaProjects.sourceSets.main.allSource.srcDirs) + classDirectories = files(javaProjects.sourceSets.main.output) + executionData = files(javaProjects.jacocoTestReport.executionData) - // workaround to ignore projects that don't have any tests at all - onlyIf = { true } - doFirst { - executionData = files(executionData.findAll { it.exists() }) + reports { + html.enabled = true + xml.enabled = true + } + + // workaround to ignore projects that don't have any tests at all + onlyIf = { true } + doFirst { + executionData = files(executionData.findAll { it.exists() }) + } } -} -task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage']) + task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage']) +} for ( sv in availableScalaVersions ) { String taskSuffix = sv.replaceAll("\\.", "_") @@ -592,7 +599,9 @@ project(':core') { scoverage libs.scoverageRuntime } - jacocoTestReport.enabled = false + if (!JavaVersion.current().isJava10Compatible()) + jacocoTestReport.enabled = false + scoverage { reportDir = file("${rootProject.buildDir}/scoverage") highlighting = false From b79dd83ecb67295574895ff8890abb226c41543b Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Fri, 16 Mar 2018 09:35:13 -0700 Subject: [PATCH 3/6] Add dependencies so that trogdor works with Java 9 and 10 --- build.gradle | 2 ++ gradle/dependencies.gradle | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/build.gradle b/build.gradle index cf7c7de776774..ea93a2b065437 100644 --- a/build.gradle +++ b/build.gradle @@ -883,6 +883,8 @@ project(':tools') { compile libs.jacksonJaxrsJsonProvider compile libs.jerseyContainerServlet + compile libs.jaxbApi // Jersey dependency that was available in the JDK before Java 9 + compile libs.activation // Jersey dependency that was available in the JDK before Java 9 compile libs.jettyServer compile libs.jettyServlet compile libs.jettyServlets diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 5c659d76d804f..789ed980ea2e5 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -47,6 +47,7 @@ if (hasProperty('scalaVersion')) { versions["baseScala"] = versions.scala.substring(0, versions.scala.lastIndexOf(".")) versions += [ + activation: "1.1.1", apacheda: "1.0.0", apacheds: "2.0.0-M24", argparse4j: "0.7.0", @@ -58,6 +59,7 @@ versions += [ jmh: "1.20", log4j: "1.2.17", scalaLogging: "3.8.0", + jaxb: "2.3.0", jopt: "5.0.4", junit: "4.12", lz4: "1.4.1", @@ -77,6 +79,7 @@ versions += [ ] libs += [ + activation: "javax.activation:activation:$versions.activation", argparse4j: "net.sourceforge.argparse4j:argparse4j:$versions.argparse4j", apacheda: "org.apache.directory.api:api-all:$versions.apacheda", apachedsCoreApi: "org.apache.directory.server:apacheds-core-api:$versions.apacheds", @@ -91,6 +94,7 @@ libs += [ easymock: "org.easymock:easymock:$versions.easymock", jacksonDatabind: "com.fasterxml.jackson.core:jackson-databind:$versions.jackson", jacksonJaxrsJsonProvider: "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$versions.jackson", + jaxbApi: "javax.xml.bind:jaxb-api:$versions.jaxb", jettyServer: "org.eclipse.jetty:jetty-server:$versions.jetty", jettyClient: "org.eclipse.jetty:jetty-client:$versions.jetty", jettyServlet: "org.eclipse.jetty:jetty-servlet:$versions.jetty", From b40669cbdfd963d17ed0c4ecb0eb335f3a85c04c Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Thu, 22 Mar 2018 15:55:06 -0700 Subject: [PATCH 4/6] Revert "Disable jacoco with Java 10" This reverts commit e8d266abd88f81c669f32a6f1a961cbfea324ae5. --- build.gradle | 83 +++++++++++++++++++++++----------------------------- 1 file changed, 37 insertions(+), 46 deletions(-) diff --git a/build.gradle b/build.gradle index ea93a2b065437..b5be05dcf67a4 100644 --- a/build.gradle +++ b/build.gradle @@ -41,9 +41,7 @@ allprojects { } apply plugin: 'idea' - // jacoco is not compatible with Java 10 or 11 at the moment, see https://github.com/jacoco/jacoco/issues/629 - if (!JavaVersion.current().isJava10Compatible()) - apply plugin: "jacoco" + apply plugin: "jacoco" apply plugin: 'org.owasp.dependencycheck' apply plugin: 'com.github.ben-manes.versions' @@ -387,29 +385,27 @@ subprojects { // Ignore core since its a scala project if (it.path != ':core') { - if (!JavaVersion.current().isJava10Compatible()) { - jacoco { - toolVersion = "0.8.0" - } + jacoco { + toolVersion = "0.8.0" + } - // NOTE: Jacoco Gradle plugin does not support "offline instrumentation" this means that classes mocked by PowerMock - // may report 0 coverage, since the source was modified after initial instrumentation. - // See https://github.com/jacoco/jacoco/issues/51 - jacocoTestReport { - dependsOn tasks.test - sourceSets sourceSets.main - reports { - html.enabled = true - xml.enabled = true - csv.enabled = false - } + // NOTE: Jacoco Gradle plugin does not support "offline instrumentation" this means that classes mocked by PowerMock + // may report 0 coverage, since the source was modified after initial instrumentation. + // See https://github.com/jacoco/jacoco/issues/51 + jacocoTestReport { + dependsOn tasks.test + sourceSets sourceSets.main + reports { + html.enabled = true + xml.enabled = true + csv.enabled = false } } - - def coverageGen = it.path == ':core' ? 'reportScoverage' : 'jacocoTestReport' - task reportCoverage(dependsOn: [coverageGen]) } + def coverageGen = it.path == ':core' ? 'reportScoverage' : 'jacocoTestReport' + task reportCoverage(dependsOn: [coverageGen]) + } gradle.taskGraph.whenReady { taskGraph -> @@ -449,35 +445,32 @@ def fineTuneEclipseClasspathFile(eclipse, project) { } } +// Aggregates all jacoco results into the root project directory +task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) { + def javaProjects = subprojects.findAll { it.path != ':core' } -if (!JavaVersion.current().isJava10Compatible()) { - // Aggregates all jacoco results into the root project directory - task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) { - def javaProjects = subprojects.findAll { it.path != ':core' } - - description = 'Generates an aggregate report from all subprojects' - dependsOn(javaProjects.test) + description = 'Generates an aggregate report from all subprojects' + dependsOn(javaProjects.test) - additionalSourceDirs = files(javaProjects.sourceSets.main.allSource.srcDirs) - sourceDirectories = files(javaProjects.sourceSets.main.allSource.srcDirs) - classDirectories = files(javaProjects.sourceSets.main.output) - executionData = files(javaProjects.jacocoTestReport.executionData) + additionalSourceDirs = files(javaProjects.sourceSets.main.allSource.srcDirs) + sourceDirectories = files(javaProjects.sourceSets.main.allSource.srcDirs) + classDirectories = files(javaProjects.sourceSets.main.output) + executionData = files(javaProjects.jacocoTestReport.executionData) - reports { - html.enabled = true - xml.enabled = true - } - - // workaround to ignore projects that don't have any tests at all - onlyIf = { true } - doFirst { - executionData = files(executionData.findAll { it.exists() }) - } + reports { + html.enabled = true + xml.enabled = true } - task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage']) + // workaround to ignore projects that don't have any tests at all + onlyIf = { true } + doFirst { + executionData = files(executionData.findAll { it.exists() }) + } } +task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage']) + for ( sv in availableScalaVersions ) { String taskSuffix = sv.replaceAll("\\.", "_") @@ -599,9 +592,7 @@ project(':core') { scoverage libs.scoverageRuntime } - if (!JavaVersion.current().isJava10Compatible()) - jacocoTestReport.enabled = false - + jacocoTestReport.enabled = false scoverage { reportDir = file("${rootProject.buildDir}/scoverage") highlighting = false From f3c467adc017c2854fd99d2dedbedd301dd8ba12 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Thu, 22 Mar 2018 16:13:52 -0700 Subject: [PATCH 5/6] Upgrade jacoco --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b5be05dcf67a4..786c97e6b6426 100644 --- a/build.gradle +++ b/build.gradle @@ -386,7 +386,7 @@ subprojects { if (it.path != ':core') { jacoco { - toolVersion = "0.8.0" + toolVersion = "0.8.1" } // NOTE: Jacoco Gradle plugin does not support "offline instrumentation" this means that classes mocked by PowerMock From 2a95817e6457d37e19dd884621ca17a3c3666204 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Thu, 22 Mar 2018 16:16:12 -0700 Subject: [PATCH 6/6] Also add jaxbApi and activation to connect-runtime --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index 786c97e6b6426..8de03efeba088 100644 --- a/build.gradle +++ b/build.gradle @@ -1205,6 +1205,8 @@ project(':connect:runtime') { compile libs.jacksonJaxrsJsonProvider compile libs.jerseyContainerServlet + compile libs.jaxbApi // Jersey dependency that was available in the JDK before Java 9 + compile libs.activation // Jersey dependency that was available in the JDK before Java 9 compile libs.jettyServer compile libs.jettyServlet compile libs.jettyServlets