You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by pa...@apache.org on 2019/03/13 17:06:38 UTC

[beam] branch master updated: Automatically retrieving JDK 11 containers

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 399786f  Automatically retrieving JDK 11 containers
     new 9b1e580  Merge pull request #8031 from pabloem/j11-automatch
399786f is described below

commit 399786f2ef4e050b6b13cb57b552201eedaf2684
Author: pabloem <pa...@apache.org>
AuthorDate: Mon Mar 11 15:11:07 2019 -0700

    Automatically retrieving JDK 11 containers
---
 .../java/org/apache/beam/runners/dataflow/DataflowRunner.java    | 9 +++++++--
 .../org/apache/beam/runners/dataflow/DataflowRunnerTest.java     | 9 +++++++++
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowRunner.java b/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowRunner.java
index a9b5f41..06bc9bd 100644
--- a/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowRunner.java
+++ b/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowRunner.java
@@ -1797,14 +1797,19 @@ public class DataflowRunner extends PipelineRunner<DataflowPipelineJob> {
   @VisibleForTesting
   static String getContainerImageForJob(DataflowPipelineOptions options) {
     String workerHarnessContainerImage = options.getWorkerHarnessContainerImage();
+
+    String javaVersionId =
+        Float.parseFloat(System.getProperty("java.specification.version")) >= 9 ? "java11" : "java";
     if (!workerHarnessContainerImage.contains("IMAGE")) {
       return workerHarnessContainerImage;
     } else if (hasExperiment(options, "beam_fn_api")) {
       return workerHarnessContainerImage.replace("IMAGE", "java");
     } else if (options.isStreaming()) {
-      return workerHarnessContainerImage.replace("IMAGE", "beam-java-streaming");
+      return workerHarnessContainerImage.replace(
+          "IMAGE", String.format("beam-%s-streaming", javaVersionId));
     } else {
-      return workerHarnessContainerImage.replace("IMAGE", "beam-java-batch");
+      return workerHarnessContainerImage.replace(
+          "IMAGE", String.format("beam-%s-batch", javaVersionId));
     }
   }
 
diff --git a/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowRunnerTest.java b/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowRunnerTest.java
index 00004f3..101d8d5 100644
--- a/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowRunnerTest.java
+++ b/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/runners/dataflow/DataflowRunnerTest.java
@@ -1337,10 +1337,19 @@ public class DataflowRunnerTest implements Serializable {
     options.setWorkerHarnessContainerImage("gcr.io/IMAGE/foo");
     options.setExperiments(null);
     options.setStreaming(false);
+    System.setProperty("java.specification.version", "1.8");
     assertThat(getContainerImageForJob(options), equalTo("gcr.io/beam-java-batch/foo"));
+    // batch, legacy, jdk11
+    options.setStreaming(false);
+    System.setProperty("java.specification.version", "11");
+    assertThat(getContainerImageForJob(options), equalTo("gcr.io/beam-java11-batch/foo"));
     // streaming, legacy
+    System.setProperty("java.specification.version", "1.8");
     options.setStreaming(true);
     assertThat(getContainerImageForJob(options), equalTo("gcr.io/beam-java-streaming/foo"));
+    // streaming, legacy, jdk11
+    System.setProperty("java.specification.version", "11");
+    assertThat(getContainerImageForJob(options), equalTo("gcr.io/beam-java11-streaming/foo"));
     // streaming, fnapi
     options.setExperiments(ImmutableList.of("experiment1", "beam_fn_api"));
     assertThat(getContainerImageForJob(options), equalTo("gcr.io/java/foo"));