You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by go...@apache.org on 2019/05/28 20:15:56 UTC

[beam] 01/01: [BEAM-7406] Include slf4j-jdk14 in Dataflow worker uber jar

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

goenka pushed a commit to branch sl4j-jdk14
in repository https://gitbox.apache.org/repos/asf/beam.git

commit e25df676a3f4398aeea1676c4a826f4fb07fa453
Author: Kenn Knowles <ke...@apache.org>
AuthorDate: Fri May 24 15:03:27 2019 -0700

    [BEAM-7406] Include slf4j-jdk14 in Dataflow worker uber jar
---
 .../worker/legacy-worker/build.gradle              | 27 +++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle b/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle
index ef8a8c5..0099635 100644
--- a/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle
+++ b/runners/google-cloud-dataflow-java/worker/legacy-worker/build.gradle
@@ -89,6 +89,8 @@ applyJavaNature(
             "com/google/cloud/dataflow/worker/DataflowRunnerHarness.class",
             // TODO(BEAM-6136): Enable relocation for conscrypt
             "org/conscrypt/**",
+            // Allow slf4j implementation worker for logging during pipeline execution
+            "org/slf4j/impl/**"
         ],
         shadowClosure: DEFAULT_SHADOW_CLOSURE << {
     // Each included dependency must also include all of its necessary transitive dependencies
@@ -102,7 +104,11 @@ applyJavaNature(
     // that the shaded jar is correctly built.
 
     dependencies {
-        include(project(path: ":beam-model-fn-execution", configuration: "shadow"))
+      include(dependency(library.java.slf4j_jdk14))
+    }
+
+    dependencies {
+        include(project(path: ":model:fn-execution", configuration: "shadow"))
     }
     relocate("org.apache.beam.model.fnexecution.v1", getWorkerRelocatedPath("org.apache.beam.model.fnexecution.v1"))
 
@@ -217,6 +223,25 @@ dependencies {
     shadowTest library.java.mockito_core
 }
 
+project.task('validateShadedJarContainsSlf4jJdk14', dependsOn: 'shadowJar') {
+    ext.outFile = project.file("${project.reportsDir}/${name}.out")
+    inputs.files project.configurations.shadow.artifacts.files
+    outputs.files outFile
+    doLast {
+        project.configurations.shadow.artifacts.files.each {
+            FileTree slf4jImpl = project.zipTree(it).matching {
+                include "org/slf4j/impl/JDK14LoggerAdapter.class"
+            }
+            outFile.text = slf4jImpl.files
+            if (slf4jImpl.files.isEmpty()) {
+                throw new GradleException("Did not find slf4j-jdk14 in Dataflow Worker uber jar")
+            }
+        }
+    }
+}
+
+tasks.check.dependsOn project.tasks.validateShadedJarContainsSlf4jJdk14
+
 //TODO(BEAM-5657): checktyle task should be enabled in the future.
 checkstyleMain.enabled = false
 checkstyleTest.enabled = false