You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ro...@apache.org on 2018/03/07 06:31:03 UTC

[beam] branch release-2.4.0 updated (12fe363 -> 8336466)

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

robertwb pushed a change to branch release-2.4.0
in repository https://gitbox.apache.org/repos/asf/beam.git.


    from 12fe363  [maven-release-plugin] prepare branch release-2.4.0
     new 1b2ba1e  Revert "extracting the scheduled executor service in a factory variable in SDF direct runner factory"
     new 8336466  [maven-release-plugin] prepare release v2.4.0-RC1

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 examples/java/pom.xml                              |   2 +-
 examples/pom.xml                                   |   2 +-
 model/fn-execution/pom.xml                         |   2 +-
 model/job-management/pom.xml                       |   2 +-
 model/pipeline/pom.xml                             |   2 +-
 model/pom.xml                                      |   2 +-
 pom.xml                                            |   4 +-
 runners/apex/pom.xml                               |   2 +-
 runners/core-construction-java/pom.xml             |   2 +-
 runners/core-java/pom.xml                          |   2 +-
 .../org/apache/beam/runners/core/DoFnRunners.java  |   2 +-
 .../apache/beam/runners/core/ProcessFnRunner.java  |  10 +-
 .../apache/beam/runners/core/SimpleDoFnRunner.java |   4 -
 runners/direct-java/pom.xml                        |   2 +-
 ...LifecycleManagerRemovingTransformEvaluator.java |   4 -
 .../direct/ExecutorServiceParallelExecutor.java    |  40 ++------
 .../apache/beam/runners/direct/ParDoEvaluator.java |   8 --
 .../beam/runners/direct/ParDoEvaluatorFactory.java |   2 +-
 .../SplittableProcessElementsEvaluatorFactory.java | 109 +++++++++++----------
 .../beam/runners/direct/DirectRunnerTest.java      |  35 -------
 runners/flink/pom.xml                              |   2 +-
 runners/gcp/gcemd/pom.xml                          |   2 +-
 runners/gcp/gcsproxy/pom.xml                       |   2 +-
 runners/gcp/pom.xml                                |   2 +-
 runners/gearpump/pom.xml                           |   2 +-
 runners/google-cloud-dataflow-java/pom.xml         |   2 +-
 runners/java-fn-execution/pom.xml                  |   2 +-
 runners/local-artifact-service-java/pom.xml        |   2 +-
 runners/local-java/pom.xml                         |   2 +-
 runners/pom.xml                                    |   2 +-
 runners/reference/java/pom.xml                     |   2 +-
 runners/reference/job-server/pom.xml               |   2 +-
 runners/reference/pom.xml                          |   2 +-
 runners/spark/pom.xml                              |   2 +-
 sdks/go/pom.xml                                    |   2 +-
 sdks/java/build-tools/pom.xml                      |   2 +-
 sdks/java/container/pom.xml                        |   2 +-
 sdks/java/core/pom.xml                             |   2 +-
 .../extensions/google-cloud-platform-core/pom.xml  |   2 +-
 sdks/java/extensions/jackson/pom.xml               |   2 +-
 sdks/java/extensions/join-library/pom.xml          |   2 +-
 sdks/java/extensions/pom.xml                       |   2 +-
 sdks/java/extensions/protobuf/pom.xml              |   2 +-
 sdks/java/extensions/sketching/pom.xml             |   2 +-
 sdks/java/extensions/sorter/pom.xml                |   2 +-
 sdks/java/extensions/sql/pom.xml                   |   2 +-
 sdks/java/fn-execution/pom.xml                     |   2 +-
 sdks/java/harness/pom.xml                          |   2 +-
 sdks/java/io/amazon-web-services/pom.xml           |   2 +-
 sdks/java/io/amqp/pom.xml                          |   2 +-
 sdks/java/io/cassandra/pom.xml                     |   2 +-
 sdks/java/io/common/pom.xml                        |   2 +-
 .../elasticsearch-tests-2/pom.xml                  |   2 +-
 .../elasticsearch-tests-5/pom.xml                  |   2 +-
 .../elasticsearch-tests-common/pom.xml             |   2 +-
 sdks/java/io/elasticsearch-tests/pom.xml           |   2 +-
 sdks/java/io/elasticsearch/pom.xml                 |   2 +-
 sdks/java/io/file-based-io-tests/pom.xml           |   2 +-
 sdks/java/io/google-cloud-platform/pom.xml         |   2 +-
 sdks/java/io/hadoop-common/pom.xml                 |   2 +-
 sdks/java/io/hadoop-file-system/pom.xml            |   2 +-
 sdks/java/io/hadoop-input-format/pom.xml           |   2 +-
 sdks/java/io/hbase/pom.xml                         |   2 +-
 sdks/java/io/hcatalog/pom.xml                      |   2 +-
 sdks/java/io/jdbc/pom.xml                          |   2 +-
 sdks/java/io/jms/pom.xml                           |   2 +-
 sdks/java/io/kafka/pom.xml                         |   2 +-
 sdks/java/io/kinesis/pom.xml                       |   2 +-
 sdks/java/io/mongodb/pom.xml                       |   2 +-
 sdks/java/io/mqtt/pom.xml                          |   2 +-
 sdks/java/io/pom.xml                               |   2 +-
 sdks/java/io/redis/pom.xml                         |   2 +-
 sdks/java/io/solr/pom.xml                          |   2 +-
 sdks/java/io/tika/pom.xml                          |   2 +-
 sdks/java/io/xml/pom.xml                           |   2 +-
 sdks/java/javadoc/pom.xml                          |   2 +-
 sdks/java/maven-archetypes/examples/pom.xml        |   2 +-
 sdks/java/maven-archetypes/pom.xml                 |   2 +-
 sdks/java/maven-archetypes/starter/pom.xml         |   2 +-
 sdks/java/nexmark/pom.xml                          |   2 +-
 sdks/java/pom.xml                                  |   2 +-
 sdks/pom.xml                                       |   2 +-
 sdks/python/container/pom.xml                      |   2 +-
 sdks/python/pom.xml                                |   2 +-
 84 files changed, 143 insertions(+), 223 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
robertwb@apache.org.

[beam] 02/02: [maven-release-plugin] prepare release v2.4.0-RC1

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

robertwb pushed a commit to branch release-2.4.0
in repository https://gitbox.apache.org/repos/asf/beam.git

commit 8336466825b6340b04f74ed047ab8a10ec30e911
Author: Robert Bradshaw <ro...@google.com>
AuthorDate: Tue Mar 6 22:28:54 2018 -0800

    [maven-release-plugin] prepare release v2.4.0-RC1
---
 examples/java/pom.xml                                               | 2 +-
 examples/pom.xml                                                    | 2 +-
 model/fn-execution/pom.xml                                          | 2 +-
 model/job-management/pom.xml                                        | 2 +-
 model/pipeline/pom.xml                                              | 2 +-
 model/pom.xml                                                       | 2 +-
 pom.xml                                                             | 4 ++--
 runners/apex/pom.xml                                                | 2 +-
 runners/core-construction-java/pom.xml                              | 2 +-
 runners/core-java/pom.xml                                           | 2 +-
 runners/direct-java/pom.xml                                         | 2 +-
 runners/flink/pom.xml                                               | 2 +-
 runners/gcp/gcemd/pom.xml                                           | 2 +-
 runners/gcp/gcsproxy/pom.xml                                        | 2 +-
 runners/gcp/pom.xml                                                 | 2 +-
 runners/gearpump/pom.xml                                            | 2 +-
 runners/google-cloud-dataflow-java/pom.xml                          | 2 +-
 runners/java-fn-execution/pom.xml                                   | 2 +-
 runners/local-artifact-service-java/pom.xml                         | 2 +-
 runners/local-java/pom.xml                                          | 2 +-
 runners/pom.xml                                                     | 2 +-
 runners/reference/java/pom.xml                                      | 2 +-
 runners/reference/job-server/pom.xml                                | 2 +-
 runners/reference/pom.xml                                           | 2 +-
 runners/spark/pom.xml                                               | 2 +-
 sdks/go/pom.xml                                                     | 2 +-
 sdks/java/build-tools/pom.xml                                       | 2 +-
 sdks/java/container/pom.xml                                         | 2 +-
 sdks/java/core/pom.xml                                              | 2 +-
 sdks/java/extensions/google-cloud-platform-core/pom.xml             | 2 +-
 sdks/java/extensions/jackson/pom.xml                                | 2 +-
 sdks/java/extensions/join-library/pom.xml                           | 2 +-
 sdks/java/extensions/pom.xml                                        | 2 +-
 sdks/java/extensions/protobuf/pom.xml                               | 2 +-
 sdks/java/extensions/sketching/pom.xml                              | 2 +-
 sdks/java/extensions/sorter/pom.xml                                 | 2 +-
 sdks/java/extensions/sql/pom.xml                                    | 2 +-
 sdks/java/fn-execution/pom.xml                                      | 2 +-
 sdks/java/harness/pom.xml                                           | 2 +-
 sdks/java/io/amazon-web-services/pom.xml                            | 2 +-
 sdks/java/io/amqp/pom.xml                                           | 2 +-
 sdks/java/io/cassandra/pom.xml                                      | 2 +-
 sdks/java/io/common/pom.xml                                         | 2 +-
 sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/pom.xml      | 2 +-
 sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/pom.xml      | 2 +-
 sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/pom.xml | 2 +-
 sdks/java/io/elasticsearch-tests/pom.xml                            | 2 +-
 sdks/java/io/elasticsearch/pom.xml                                  | 2 +-
 sdks/java/io/file-based-io-tests/pom.xml                            | 2 +-
 sdks/java/io/google-cloud-platform/pom.xml                          | 2 +-
 sdks/java/io/hadoop-common/pom.xml                                  | 2 +-
 sdks/java/io/hadoop-file-system/pom.xml                             | 2 +-
 sdks/java/io/hadoop-input-format/pom.xml                            | 2 +-
 sdks/java/io/hbase/pom.xml                                          | 2 +-
 sdks/java/io/hcatalog/pom.xml                                       | 2 +-
 sdks/java/io/jdbc/pom.xml                                           | 2 +-
 sdks/java/io/jms/pom.xml                                            | 2 +-
 sdks/java/io/kafka/pom.xml                                          | 2 +-
 sdks/java/io/kinesis/pom.xml                                        | 2 +-
 sdks/java/io/mongodb/pom.xml                                        | 2 +-
 sdks/java/io/mqtt/pom.xml                                           | 2 +-
 sdks/java/io/pom.xml                                                | 2 +-
 sdks/java/io/redis/pom.xml                                          | 2 +-
 sdks/java/io/solr/pom.xml                                           | 2 +-
 sdks/java/io/tika/pom.xml                                           | 2 +-
 sdks/java/io/xml/pom.xml                                            | 2 +-
 sdks/java/javadoc/pom.xml                                           | 2 +-
 sdks/java/maven-archetypes/examples/pom.xml                         | 2 +-
 sdks/java/maven-archetypes/pom.xml                                  | 2 +-
 sdks/java/maven-archetypes/starter/pom.xml                          | 2 +-
 sdks/java/nexmark/pom.xml                                           | 2 +-
 sdks/java/pom.xml                                                   | 2 +-
 sdks/pom.xml                                                        | 2 +-
 sdks/python/container/pom.xml                                       | 2 +-
 sdks/python/pom.xml                                                 | 2 +-
 75 files changed, 76 insertions(+), 76 deletions(-)

diff --git a/examples/java/pom.xml b/examples/java/pom.xml
index 46f1f8c..e38cc9e 100644
--- a/examples/java/pom.xml
+++ b/examples/java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-examples-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/examples/pom.xml b/examples/pom.xml
index 3560c3c..922e520 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/model/fn-execution/pom.xml b/model/fn-execution/pom.xml
index 0be535a..37473a2 100644
--- a/model/fn-execution/pom.xml
+++ b/model/fn-execution/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-model-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/model/job-management/pom.xml b/model/job-management/pom.xml
index 7210e9f..af73764 100644
--- a/model/job-management/pom.xml
+++ b/model/job-management/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-model-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/model/pipeline/pom.xml b/model/pipeline/pom.xml
index 11799d2..720c6cb 100644
--- a/model/pipeline/pom.xml
+++ b/model/pipeline/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-model-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/model/pom.xml b/model/pom.xml
index 9446ffe..84b651a 100644
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/pom.xml b/pom.xml
index bb0419e..1334a5b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
   <url>http://beam.apache.org/</url>
   <inceptionYear>2016</inceptionYear>
 
-  <version>2.4.0-SNAPSHOT</version>
+  <version>2.4.0</version>
 
   <licenses>
     <license>
@@ -48,7 +48,7 @@
     <connection>scm:git:https://gitbox.apache.org/repos/asf/beam.git</connection>
     <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/beam.git</developerConnection>
     <url>https://gitbox.apache.org/repos/asf?p=beam.git;a=summary</url>
-    <tag>release-2.4.0</tag>
+    <tag>v2.4.0-RC1</tag>
   </scm>
 
   <issueManagement>
diff --git a/runners/apex/pom.xml b/runners/apex/pom.xml
index 9a7db04..57c1ef4 100644
--- a/runners/apex/pom.xml
+++ b/runners/apex/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/core-construction-java/pom.xml b/runners/core-construction-java/pom.xml
index 38157d2..7dc8ebc 100644
--- a/runners/core-construction-java/pom.xml
+++ b/runners/core-construction-java/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <artifactId>beam-runners-parent</artifactId>
     <groupId>org.apache.beam</groupId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/core-java/pom.xml b/runners/core-java/pom.xml
index 96e1c0a..b8ff402 100644
--- a/runners/core-java/pom.xml
+++ b/runners/core-java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/direct-java/pom.xml b/runners/direct-java/pom.xml
index d934d80..effca4e 100644
--- a/runners/direct-java/pom.xml
+++ b/runners/direct-java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/flink/pom.xml b/runners/flink/pom.xml
index cd4d8c3..96ff1fb 100644
--- a/runners/flink/pom.xml
+++ b/runners/flink/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/gcp/gcemd/pom.xml b/runners/gcp/gcemd/pom.xml
index 8b82127..d44bd84 100644
--- a/runners/gcp/gcemd/pom.xml
+++ b/runners/gcp/gcemd/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-gcp-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/gcp/gcsproxy/pom.xml b/runners/gcp/gcsproxy/pom.xml
index 2e45bd0..aa5c2a6 100644
--- a/runners/gcp/gcsproxy/pom.xml
+++ b/runners/gcp/gcsproxy/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-gcp-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/gcp/pom.xml b/runners/gcp/pom.xml
index 7ed484f..2c84b37 100644
--- a/runners/gcp/pom.xml
+++ b/runners/gcp/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/gearpump/pom.xml b/runners/gearpump/pom.xml
index 54348d9..ed20520 100644
--- a/runners/gearpump/pom.xml
+++ b/runners/gearpump/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/google-cloud-dataflow-java/pom.xml b/runners/google-cloud-dataflow-java/pom.xml
index ab66211..8041fec 100644
--- a/runners/google-cloud-dataflow-java/pom.xml
+++ b/runners/google-cloud-dataflow-java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/java-fn-execution/pom.xml b/runners/java-fn-execution/pom.xml
index cd637cb..1b93b52 100644
--- a/runners/java-fn-execution/pom.xml
+++ b/runners/java-fn-execution/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/local-artifact-service-java/pom.xml b/runners/local-artifact-service-java/pom.xml
index a7174ee..d24cb02 100644
--- a/runners/local-artifact-service-java/pom.xml
+++ b/runners/local-artifact-service-java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/local-java/pom.xml b/runners/local-java/pom.xml
index 04ead0b..85bb89a 100644
--- a/runners/local-java/pom.xml
+++ b/runners/local-java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/pom.xml b/runners/pom.xml
index aed5b82..5f53490 100644
--- a/runners/pom.xml
+++ b/runners/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/reference/java/pom.xml b/runners/reference/java/pom.xml
index d07d7c9..f597bb6 100644
--- a/runners/reference/java/pom.xml
+++ b/runners/reference/java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-reference-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/reference/job-server/pom.xml b/runners/reference/job-server/pom.xml
index cea1e7d..d7a67b0 100644
--- a/runners/reference/job-server/pom.xml
+++ b/runners/reference/job-server/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-reference-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/reference/pom.xml b/runners/reference/pom.xml
index 6f11969..114449d 100644
--- a/runners/reference/pom.xml
+++ b/runners/reference/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/runners/spark/pom.xml b/runners/spark/pom.xml
index 16cec1c..7c12721 100644
--- a/runners/spark/pom.xml
+++ b/runners/spark/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-runners-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/go/pom.xml b/sdks/go/pom.xml
index 88079db..5566f8e 100644
--- a/sdks/go/pom.xml
+++ b/sdks/go/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/build-tools/pom.xml b/sdks/java/build-tools/pom.xml
index ac7f9dd..79041d3 100644
--- a/sdks/java/build-tools/pom.xml
+++ b/sdks/java/build-tools/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/container/pom.xml b/sdks/java/container/pom.xml
index 11a213d..fabc500 100644
--- a/sdks/java/container/pom.xml
+++ b/sdks/java/container/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/core/pom.xml b/sdks/java/core/pom.xml
index bb90f43..7ebb59f 100644
--- a/sdks/java/core/pom.xml
+++ b/sdks/java/core/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/google-cloud-platform-core/pom.xml b/sdks/java/extensions/google-cloud-platform-core/pom.xml
index 29ab535..f84e398 100644
--- a/sdks/java/extensions/google-cloud-platform-core/pom.xml
+++ b/sdks/java/extensions/google-cloud-platform-core/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-extensions-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/jackson/pom.xml b/sdks/java/extensions/jackson/pom.xml
index 1b3fcc0..cf98dbc 100644
--- a/sdks/java/extensions/jackson/pom.xml
+++ b/sdks/java/extensions/jackson/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-extensions-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/join-library/pom.xml b/sdks/java/extensions/join-library/pom.xml
index 4f3892e..95640f1 100644
--- a/sdks/java/extensions/join-library/pom.xml
+++ b/sdks/java/extensions/join-library/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-extensions-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/pom.xml b/sdks/java/extensions/pom.xml
index 0117501..a921cca 100644
--- a/sdks/java/extensions/pom.xml
+++ b/sdks/java/extensions/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/protobuf/pom.xml b/sdks/java/extensions/protobuf/pom.xml
index 099a7f0..159081f 100644
--- a/sdks/java/extensions/protobuf/pom.xml
+++ b/sdks/java/extensions/protobuf/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-extensions-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/sketching/pom.xml b/sdks/java/extensions/sketching/pom.xml
index d5ca7af..3746c5a 100755
--- a/sdks/java/extensions/sketching/pom.xml
+++ b/sdks/java/extensions/sketching/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-extensions-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/sorter/pom.xml b/sdks/java/extensions/sorter/pom.xml
index 86601c3..cd47c1f 100644
--- a/sdks/java/extensions/sorter/pom.xml
+++ b/sdks/java/extensions/sorter/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-extensions-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/extensions/sql/pom.xml b/sdks/java/extensions/sql/pom.xml
index 2de6f0e..f854ae5 100644
--- a/sdks/java/extensions/sql/pom.xml
+++ b/sdks/java/extensions/sql/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-extensions-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/fn-execution/pom.xml b/sdks/java/fn-execution/pom.xml
index 0535f7e..2d354eb 100644
--- a/sdks/java/fn-execution/pom.xml
+++ b/sdks/java/fn-execution/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/harness/pom.xml b/sdks/java/harness/pom.xml
index 6d83017..fb221b6 100644
--- a/sdks/java/harness/pom.xml
+++ b/sdks/java/harness/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/amazon-web-services/pom.xml b/sdks/java/io/amazon-web-services/pom.xml
index 5fdf6a7..4a27e7c 100644
--- a/sdks/java/io/amazon-web-services/pom.xml
+++ b/sdks/java/io/amazon-web-services/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/amqp/pom.xml b/sdks/java/io/amqp/pom.xml
index 90cb4f1..88e7abc 100644
--- a/sdks/java/io/amqp/pom.xml
+++ b/sdks/java/io/amqp/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/cassandra/pom.xml b/sdks/java/io/cassandra/pom.xml
index 7aa4911..0e2aeec 100644
--- a/sdks/java/io/cassandra/pom.xml
+++ b/sdks/java/io/cassandra/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/common/pom.xml b/sdks/java/io/common/pom.xml
index 3491ff5..831621d 100644
--- a/sdks/java/io/common/pom.xml
+++ b/sdks/java/io/common/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.beam</groupId>
         <artifactId>beam-sdks-java-io-parent</artifactId>
-        <version>2.4.0-SNAPSHOT</version>
+        <version>2.4.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/pom.xml b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/pom.xml
index 1a5439b..c42e3e6 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/pom.xml
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-2/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-elasticsearch-tests-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/pom.xml b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/pom.xml
index 6fd24c4..d301324 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/pom.xml
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-5/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.beam</groupId>
         <artifactId>beam-sdks-java-io-elasticsearch-tests-parent</artifactId>
-        <version>2.4.0-SNAPSHOT</version>
+        <version>2.4.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/pom.xml b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/pom.xml
index ec3ce91..028d2db 100644
--- a/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/pom.xml
+++ b/sdks/java/io/elasticsearch-tests/elasticsearch-tests-common/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <groupId>org.apache.beam</groupId>
         <artifactId>beam-sdks-java-io-elasticsearch-tests-parent</artifactId>
-        <version>2.4.0-SNAPSHOT</version>
+        <version>2.4.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sdks/java/io/elasticsearch-tests/pom.xml b/sdks/java/io/elasticsearch-tests/pom.xml
index f30e133..4d154ab 100644
--- a/sdks/java/io/elasticsearch-tests/pom.xml
+++ b/sdks/java/io/elasticsearch-tests/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.beam</groupId>
         <artifactId>beam-sdks-java-io-parent</artifactId>
-        <version>2.4.0-SNAPSHOT</version>
+        <version>2.4.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sdks/java/io/elasticsearch/pom.xml b/sdks/java/io/elasticsearch/pom.xml
index b4a2e4c..603857f 100644
--- a/sdks/java/io/elasticsearch/pom.xml
+++ b/sdks/java/io/elasticsearch/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.beam</groupId>
         <artifactId>beam-sdks-java-io-parent</artifactId>
-        <version>2.4.0-SNAPSHOT</version>
+        <version>2.4.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sdks/java/io/file-based-io-tests/pom.xml b/sdks/java/io/file-based-io-tests/pom.xml
index 740def8..6241ead 100644
--- a/sdks/java/io/file-based-io-tests/pom.xml
+++ b/sdks/java/io/file-based-io-tests/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.beam</groupId>
         <artifactId>beam-sdks-java-io-parent</artifactId>
-        <version>2.4.0-SNAPSHOT</version>
+        <version>2.4.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sdks/java/io/google-cloud-platform/pom.xml b/sdks/java/io/google-cloud-platform/pom.xml
index 9b783ee..f3cd48c 100644
--- a/sdks/java/io/google-cloud-platform/pom.xml
+++ b/sdks/java/io/google-cloud-platform/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/hadoop-common/pom.xml b/sdks/java/io/hadoop-common/pom.xml
index a9c181b..d51e32a 100644
--- a/sdks/java/io/hadoop-common/pom.xml
+++ b/sdks/java/io/hadoop-common/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/hadoop-file-system/pom.xml b/sdks/java/io/hadoop-file-system/pom.xml
index e890cf6..a4f6bfa 100644
--- a/sdks/java/io/hadoop-file-system/pom.xml
+++ b/sdks/java/io/hadoop-file-system/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/hadoop-input-format/pom.xml b/sdks/java/io/hadoop-input-format/pom.xml
index 4d86f45..e46ff85 100644
--- a/sdks/java/io/hadoop-input-format/pom.xml
+++ b/sdks/java/io/hadoop-input-format/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/hbase/pom.xml b/sdks/java/io/hbase/pom.xml
index e363834..3bfa838 100644
--- a/sdks/java/io/hbase/pom.xml
+++ b/sdks/java/io/hbase/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/hcatalog/pom.xml b/sdks/java/io/hcatalog/pom.xml
index f5c15ba..351162c 100644
--- a/sdks/java/io/hcatalog/pom.xml
+++ b/sdks/java/io/hcatalog/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/jdbc/pom.xml b/sdks/java/io/jdbc/pom.xml
index c4cc9c5..22f78ac 100644
--- a/sdks/java/io/jdbc/pom.xml
+++ b/sdks/java/io/jdbc/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/jms/pom.xml b/sdks/java/io/jms/pom.xml
index 71aaeb4..4608ffd 100644
--- a/sdks/java/io/jms/pom.xml
+++ b/sdks/java/io/jms/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/kafka/pom.xml b/sdks/java/io/kafka/pom.xml
index e8292c4..a032667 100644
--- a/sdks/java/io/kafka/pom.xml
+++ b/sdks/java/io/kafka/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/kinesis/pom.xml b/sdks/java/io/kinesis/pom.xml
index acc462a..0497386 100644
--- a/sdks/java/io/kinesis/pom.xml
+++ b/sdks/java/io/kinesis/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/mongodb/pom.xml b/sdks/java/io/mongodb/pom.xml
index 0fab9b4..40d548c 100644
--- a/sdks/java/io/mongodb/pom.xml
+++ b/sdks/java/io/mongodb/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/mqtt/pom.xml b/sdks/java/io/mqtt/pom.xml
index ea58135..02986b7 100644
--- a/sdks/java/io/mqtt/pom.xml
+++ b/sdks/java/io/mqtt/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/pom.xml b/sdks/java/io/pom.xml
index e57abe0..ed4af96 100644
--- a/sdks/java/io/pom.xml
+++ b/sdks/java/io/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/redis/pom.xml b/sdks/java/io/redis/pom.xml
index fdc177f..03d25ad 100644
--- a/sdks/java/io/redis/pom.xml
+++ b/sdks/java/io/redis/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/io/solr/pom.xml b/sdks/java/io/solr/pom.xml
index b6027d5..5dbddba 100644
--- a/sdks/java/io/solr/pom.xml
+++ b/sdks/java/io/solr/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <artifactId>beam-sdks-java-io-parent</artifactId>
         <groupId>org.apache.beam</groupId>
-        <version>2.4.0-SNAPSHOT</version>
+        <version>2.4.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
diff --git a/sdks/java/io/tika/pom.xml b/sdks/java/io/tika/pom.xml
index 4aa481b..56f9e3c 100644
--- a/sdks/java/io/tika/pom.xml
+++ b/sdks/java/io/tika/pom.xml
@@ -19,7 +19,7 @@
     <parent>
       <groupId>org.apache.beam</groupId>
       <artifactId>beam-sdks-java-io-parent</artifactId>
-      <version>2.4.0-SNAPSHOT</version>
+      <version>2.4.0</version>
       <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/sdks/java/io/xml/pom.xml b/sdks/java/io/xml/pom.xml
index f478344..8ce4b12 100644
--- a/sdks/java/io/xml/pom.xml
+++ b/sdks/java/io/xml/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-io-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/javadoc/pom.xml b/sdks/java/javadoc/pom.xml
index 17b11cd..8d148aa 100644
--- a/sdks/java/javadoc/pom.xml
+++ b/sdks/java/javadoc/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../../../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/maven-archetypes/examples/pom.xml b/sdks/java/maven-archetypes/examples/pom.xml
index 8e25e73..b07914e 100644
--- a/sdks/java/maven-archetypes/examples/pom.xml
+++ b/sdks/java/maven-archetypes/examples/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-maven-archetypes-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/maven-archetypes/pom.xml b/sdks/java/maven-archetypes/pom.xml
index ab772f7..005d17b 100644
--- a/sdks/java/maven-archetypes/pom.xml
+++ b/sdks/java/maven-archetypes/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/maven-archetypes/starter/pom.xml b/sdks/java/maven-archetypes/starter/pom.xml
index e84b7d0..76f67c4 100644
--- a/sdks/java/maven-archetypes/starter/pom.xml
+++ b/sdks/java/maven-archetypes/starter/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-maven-archetypes-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/nexmark/pom.xml b/sdks/java/nexmark/pom.xml
index 77f88f2..ba1bb20 100644
--- a/sdks/java/nexmark/pom.xml
+++ b/sdks/java/nexmark/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-java-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/java/pom.xml b/sdks/java/pom.xml
index 78b7c21..c79c845 100644
--- a/sdks/java/pom.xml
+++ b/sdks/java/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/pom.xml b/sdks/pom.xml
index 770fac8..9890ab5 100644
--- a/sdks/pom.xml
+++ b/sdks/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/python/container/pom.xml b/sdks/python/container/pom.xml
index e852123..98b1970 100644
--- a/sdks/python/container/pom.xml
+++ b/sdks/python/container/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-python</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/sdks/python/pom.xml b/sdks/python/pom.xml
index 10ea136..ed1b7a1 100644
--- a/sdks/python/pom.xml
+++ b/sdks/python/pom.xml
@@ -22,7 +22,7 @@
   <parent>
     <groupId>org.apache.beam</groupId>
     <artifactId>beam-sdks-parent</artifactId>
-    <version>2.4.0-SNAPSHOT</version>
+    <version>2.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 

-- 
To stop receiving notification emails like this one, please contact
robertwb@apache.org.

[beam] 01/02: Revert "extracting the scheduled executor service in a factory variable in SDF direct runner factory"

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

robertwb pushed a commit to branch release-2.4.0
in repository https://gitbox.apache.org/repos/asf/beam.git

commit 1b2ba1e2b1a183010ee1ce4d317592ea0386b41b
Author: Thomas Groh <tg...@google.com>
AuthorDate: Fri Mar 2 09:27:48 2018 -0800

    Revert "extracting the scheduled executor service in a factory variable in SDF direct runner factory"
    
    This reverts commit 0044cbf385a4991a7d5191a91b881d8525d747c0.
    
    Breaks FlinkRunner Compilation
---
 .../org/apache/beam/runners/core/DoFnRunners.java  |   2 +-
 .../apache/beam/runners/core/ProcessFnRunner.java  |  10 +-
 .../apache/beam/runners/core/SimpleDoFnRunner.java |   4 -
 ...LifecycleManagerRemovingTransformEvaluator.java |   4 -
 .../direct/ExecutorServiceParallelExecutor.java    |  40 ++------
 .../apache/beam/runners/direct/ParDoEvaluator.java |   8 --
 .../beam/runners/direct/ParDoEvaluatorFactory.java |   2 +-
 .../SplittableProcessElementsEvaluatorFactory.java | 109 +++++++++++----------
 .../beam/runners/direct/DirectRunnerTest.java      |  35 -------
 9 files changed, 67 insertions(+), 147 deletions(-)

diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/DoFnRunners.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/DoFnRunners.java
index 41116f1..80c830a 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/DoFnRunners.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/DoFnRunners.java
@@ -52,7 +52,7 @@ public class DoFnRunners {
    * compressed {@link WindowedValue}. It is the responsibility of the runner to perform any key
    * partitioning needed, etc.
    */
-  public static <InputT, OutputT> SimpleDoFnRunner<InputT, OutputT> simpleRunner(
+  public static <InputT, OutputT> DoFnRunner<InputT, OutputT> simpleRunner(
       PipelineOptions options,
       DoFn<InputT, OutputT> fn,
       SideInputReader sideInputReader,
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/ProcessFnRunner.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/ProcessFnRunner.java
index 6690f58..e4dfd13 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/ProcessFnRunner.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/ProcessFnRunner.java
@@ -25,7 +25,6 @@ import java.util.Collections;
 import org.apache.beam.runners.core.StateNamespaces.WindowNamespace;
 import org.apache.beam.runners.core.TimerInternals.TimerData;
 import org.apache.beam.sdk.state.TimeDomain;
-import org.apache.beam.sdk.transforms.DoFn;
 import org.apache.beam.sdk.transforms.windowing.BoundedWindow;
 import org.apache.beam.sdk.transforms.windowing.GlobalWindow;
 import org.apache.beam.sdk.util.WindowedValue;
@@ -40,13 +39,12 @@ import org.joda.time.Instant;
 public class ProcessFnRunner<InputT, OutputT, RestrictionT>
     implements PushbackSideInputDoFnRunner<
         KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT> {
-  private final SimpleDoFnRunner<KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT>
-    underlying;
+  private final DoFnRunner<KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT> underlying;
   private final Collection<PCollectionView<?>> views;
   private final ReadyCheckingSideInputReader sideInputReader;
 
   public ProcessFnRunner(
-      SimpleDoFnRunner<KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT> underlying,
+      DoFnRunner<KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT> underlying,
       Collection<PCollectionView<?>> views,
       ReadyCheckingSideInputReader sideInputReader) {
     this.underlying = underlying;
@@ -54,10 +52,6 @@ public class ProcessFnRunner<InputT, OutputT, RestrictionT>
     this.sideInputReader = sideInputReader;
   }
 
-  public DoFn<KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT> getFn() {
-    return underlying.getFn();
-  }
-
   @Override
   public void startBundle() {
     underlying.startBundle();
diff --git a/runners/core-java/src/main/java/org/apache/beam/runners/core/SimpleDoFnRunner.java b/runners/core-java/src/main/java/org/apache/beam/runners/core/SimpleDoFnRunner.java
index 36b42ef..d4c5775 100644
--- a/runners/core-java/src/main/java/org/apache/beam/runners/core/SimpleDoFnRunner.java
+++ b/runners/core-java/src/main/java/org/apache/beam/runners/core/SimpleDoFnRunner.java
@@ -120,10 +120,6 @@ public class SimpleDoFnRunner<InputT, OutputT> implements DoFnRunner<InputT, Out
     this.allowedLateness = windowingStrategy.getAllowedLateness();
   }
 
-  public DoFn<InputT, OutputT> getFn() {
-    return fn;
-  }
-
   @Override
   public void startBundle() {
     // This can contain user code. Wrap it in case it throws an exception.
diff --git a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DoFnLifecycleManagerRemovingTransformEvaluator.java b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DoFnLifecycleManagerRemovingTransformEvaluator.java
index eed81b3..e537962 100644
--- a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DoFnLifecycleManagerRemovingTransformEvaluator.java
+++ b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/DoFnLifecycleManagerRemovingTransformEvaluator.java
@@ -45,10 +45,6 @@ class DoFnLifecycleManagerRemovingTransformEvaluator<InputT> implements Transfor
     this.lifecycleManager = lifecycleManager;
   }
 
-  public ParDoEvaluator<InputT> getParDoEvaluator() {
-    return underlying;
-  }
-
   @Override
   public void processElement(WindowedValue<InputT> element) throws Exception {
     try {
diff --git a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ExecutorServiceParallelExecutor.java b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ExecutorServiceParallelExecutor.java
index 4a1afc6..652f388 100644
--- a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ExecutorServiceParallelExecutor.java
+++ b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ExecutorServiceParallelExecutor.java
@@ -25,7 +25,6 @@ import com.google.common.cache.RemovalListener;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Map;
 import java.util.concurrent.BlockingQueue;
@@ -35,7 +34,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
 import javax.annotation.Nullable;
 import org.apache.beam.runners.local.ExecutionDriver;
 import org.apache.beam.runners.local.ExecutionDriver.DriverState;
@@ -274,41 +272,17 @@ final class ExecutorServiceParallelExecutor
       return;
     }
     LOG.debug("Pipeline has terminated. Shutting down.");
-
-    final Collection<Exception> errors = new ArrayList<>();
+    pipelineState.compareAndSet(State.RUNNING, newState);
     // Stop accepting new work before shutting down the executor. This ensures that thread don't try
     // to add work to the shutdown executor.
-    try {
-      serialExecutorServices.invalidateAll();
-    } catch (final RuntimeException re) {
-      errors.add(re);
-    }
-    try {
-      serialExecutorServices.cleanUp();
-    } catch (final RuntimeException re) {
-      errors.add(re);
-    }
-    try {
-      parallelExecutorService.shutdown();
-    } catch (final RuntimeException re) {
-      errors.add(re);
-    }
-    try {
-      executorService.shutdown();
-    } catch (final RuntimeException re) {
-      errors.add(re);
-    }
+    serialExecutorServices.invalidateAll();
+    serialExecutorServices.cleanUp();
+    parallelExecutorService.shutdown();
+    executorService.shutdown();
     try {
       registry.cleanup();
-    } catch (final Exception e) {
-      errors.add(e);
-    }
-    pipelineState.compareAndSet(State.RUNNING, newState); // ensure we hit a terminal node
-    if (!errors.isEmpty()) {
-      throw new IllegalStateException(
-        "Error" + (errors.size() == 1 ? "" : "s") + " during executor shutdown:\n"
-        + errors.stream().map(Exception::getMessage)
-          .collect(Collectors.joining("\n- ", "- ", "")));
+    } catch (Exception e) {
+      visibleUpdates.failed(e);
     }
   }
 
diff --git a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluator.java b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluator.java
index c2b877f..7694b94 100644
--- a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluator.java
+++ b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluator.java
@@ -169,14 +169,6 @@ class ParDoEvaluator<InputT> implements TransformEvaluator<InputT> {
     }
   }
 
-  public PushbackSideInputDoFnRunner<InputT, ?> getFnRunner() {
-    return fnRunner;
-  }
-
-  public DirectStepContext getStepContext() {
-    return stepContext;
-  }
-
   public BundleOutputManager getOutputManager() {
     return outputManager;
   }
diff --git a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluatorFactory.java b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluatorFactory.java
index 2963118..5774f17 100644
--- a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluatorFactory.java
+++ b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/ParDoEvaluatorFactory.java
@@ -42,7 +42,7 @@ final class ParDoEvaluatorFactory<InputT, OutputT> implements TransformEvaluator
 
   private static final Logger LOG = LoggerFactory.getLogger(ParDoEvaluatorFactory.class);
   private final LoadingCache<AppliedPTransform<?, ?, ?>, DoFnLifecycleManager> fnClones;
-  final EvaluationContext evaluationContext;
+  private final EvaluationContext evaluationContext;
   private final ParDoEvaluator.DoFnRunnerFactory<InputT, OutputT> runnerFactory;
 
   ParDoEvaluatorFactory(
diff --git a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/SplittableProcessElementsEvaluatorFactory.java b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/SplittableProcessElementsEvaluatorFactory.java
index cd38c8c..f4c4895 100644
--- a/runners/direct-java/src/main/java/org/apache/beam/runners/direct/SplittableProcessElementsEvaluatorFactory.java
+++ b/runners/direct-java/src/main/java/org/apache/beam/runners/direct/SplittableProcessElementsEvaluatorFactory.java
@@ -17,22 +17,18 @@
  */
 package org.apache.beam.runners.direct;
 
-import static com.google.common.base.Preconditions.checkArgument;
-
-import com.google.common.cache.CacheLoader;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import java.util.Collection;
 import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
 import org.apache.beam.runners.core.DoFnRunners;
 import org.apache.beam.runners.core.DoFnRunners.OutputManager;
 import org.apache.beam.runners.core.KeyedWorkItem;
 import org.apache.beam.runners.core.OutputAndTimeBoundedSplittableProcessElementInvoker;
 import org.apache.beam.runners.core.OutputWindowedValue;
-import org.apache.beam.runners.core.ProcessFnRunner;
 import org.apache.beam.runners.core.SplittableParDoViaKeyedWorkItems.ProcessElements;
 import org.apache.beam.runners.core.SplittableParDoViaKeyedWorkItems.ProcessFn;
+import org.apache.beam.runners.core.StateInternals;
 import org.apache.beam.sdk.runners.AppliedPTransform;
 import org.apache.beam.sdk.transforms.splittabledofn.RestrictionTracker;
 import org.apache.beam.sdk.transforms.windowing.BoundedWindow;
@@ -54,30 +50,16 @@ class SplittableProcessElementsEvaluatorFactory<
     implements TransformEvaluatorFactory {
   private final ParDoEvaluatorFactory<KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT>
       delegateFactory;
-  private final ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor(
-            new ThreadFactoryBuilder()
-                    .setThreadFactory(MoreExecutors.platformThreadFactory())
-                    .setNameFormat("direct-splittable-process-element-checkpoint-executor")
-                    .build());
+  private final EvaluationContext evaluationContext;
 
   SplittableProcessElementsEvaluatorFactory(EvaluationContext evaluationContext) {
+    this.evaluationContext = evaluationContext;
     this.delegateFactory =
-      new ParDoEvaluatorFactory<>(
-        evaluationContext,
-        SplittableProcessElementsEvaluatorFactory.
-          <InputT, OutputT, RestrictionT>processFnRunnerFactory(),
-          new CacheLoader<AppliedPTransform<?, ?, ?>, DoFnLifecycleManager>() {
-            @Override
-            public DoFnLifecycleManager load(final AppliedPTransform<?, ?, ?> application) {
-              checkArgument(
-                ProcessElements.class.isInstance(application.getTransform()),
-                "No know extraction of the fn from " + application);
-              final ProcessElements<InputT, OutputT, RestrictionT, TrackerT> transform =
-                (ProcessElements<InputT, OutputT, RestrictionT, TrackerT>)
-                  application.getTransform();
-              return DoFnLifecycleManager.of(transform.newProcessFn(transform.getFn()));
-            }
-          });
+        new ParDoEvaluatorFactory<>(
+            evaluationContext,
+            SplittableProcessElementsEvaluatorFactory
+                .<InputT, OutputT, RestrictionT>processFnRunnerFactory(),
+            ParDoEvaluatorFactory.basicDoFnCacheLoader());
   }
 
   @Override
@@ -86,14 +68,12 @@ class SplittableProcessElementsEvaluatorFactory<
     @SuppressWarnings({"unchecked", "rawtypes"})
     TransformEvaluator<T> evaluator =
         (TransformEvaluator<T>)
-            createEvaluator((AppliedPTransform) application,
-                    (CommittedBundle) inputBundle);
+            createEvaluator((AppliedPTransform) application, (CommittedBundle) inputBundle);
     return evaluator;
   }
 
   @Override
   public void cleanup() throws Exception {
-    ses.shutdownNow(); // stop before cleaning
     delegateFactory.cleanup();
   }
 
@@ -106,29 +86,43 @@ class SplittableProcessElementsEvaluatorFactory<
       CommittedBundle<InputT> inputBundle)
       throws Exception {
     final ProcessElements<InputT, OutputT, RestrictionT, TrackerT> transform =
-      application.getTransform();
-    final DoFnLifecycleManagerRemovingTransformEvaluator
-      <KeyedWorkItem<String, KV<InputT, RestrictionT>>> evaluator =
-      delegateFactory.createEvaluator(
-        (AppliedPTransform) application,
-        (PCollection<KeyedWorkItem<String, KV<InputT, RestrictionT>>>) inputBundle.getPCollection(),
-        inputBundle.getKey(),
-        application.getTransform().getSideInputs(),
-        application.getTransform().getMainOutputTag(),
-        application.getTransform().getAdditionalOutputTags().getAll());
-
-    final ParDoEvaluator<KeyedWorkItem<String, KV<InputT, RestrictionT>>> pde =
-      evaluator.getParDoEvaluator();
-    final ProcessFn<InputT, OutputT, RestrictionT, TrackerT> processFn =
-      (ProcessFn<InputT, OutputT, RestrictionT, TrackerT>)
-        ProcessFnRunner.class.cast(pde.getFnRunner()).getFn();
-    final DirectExecutionContext.DirectStepContext stepContext = pde.getStepContext();
-    processFn.setStateInternalsFactory(key -> stepContext.stateInternals());
+        application.getTransform();
+
+    ProcessFn<InputT, OutputT, RestrictionT, TrackerT> processFn =
+        transform.newProcessFn(transform.getFn());
+
+    DoFnLifecycleManager fnManager = DoFnLifecycleManager.of(processFn);
+    processFn =
+        ((ProcessFn<InputT, OutputT, RestrictionT, TrackerT>)
+            fnManager.<KeyedWorkItem<String, KV<InputT, RestrictionT>>, OutputT>get());
+
+    String stepName = evaluationContext.getStepName(application);
+    final DirectExecutionContext.DirectStepContext stepContext =
+        evaluationContext
+            .getExecutionContext(application, inputBundle.getKey())
+            .getStepContext(stepName);
+
+    final ParDoEvaluator<KeyedWorkItem<String, KV<InputT, RestrictionT>>>
+        parDoEvaluator =
+            delegateFactory.createParDoEvaluator(
+                application,
+                inputBundle.getKey(),
+                (PCollection<KeyedWorkItem<String, KV<InputT, RestrictionT>>>)
+                    inputBundle.getPCollection(),
+                transform.getSideInputs(),
+                transform.getMainOutputTag(),
+                transform.getAdditionalOutputTags().getAll(),
+                stepContext,
+                processFn,
+                fnManager);
+
+    processFn.setStateInternalsFactory(key -> (StateInternals) stepContext.stateInternals());
+
     processFn.setTimerInternalsFactory(key -> stepContext.timerInternals());
 
     OutputWindowedValue<OutputT> outputWindowedValue =
         new OutputWindowedValue<OutputT>() {
-          private final OutputManager outputManager = pde.getOutputManager();
+          private final OutputManager outputManager = parDoEvaluator.getOutputManager();
 
           @Override
           public void outputWindowedValue(
@@ -150,18 +144,27 @@ class SplittableProcessElementsEvaluatorFactory<
             outputManager.output(tag, WindowedValue.of(output, timestamp, windows, pane));
           }
         };
-      processFn.setProcessElementInvoker(
+    processFn.setProcessElementInvoker(
         new OutputAndTimeBoundedSplittableProcessElementInvoker<>(
             transform.getFn(),
-            delegateFactory.evaluationContext.getPipelineOptions(),
+            evaluationContext.getPipelineOptions(),
             outputWindowedValue,
-            delegateFactory.evaluationContext.createSideInputReader(transform.getSideInputs()),
-            ses,
+            evaluationContext.createSideInputReader(transform.getSideInputs()),
+            // TODO: For better performance, use a higher-level executor?
+            // TODO: (BEAM-723) Create a shared ExecutorService for maintenance tasks in the
+            // DirectRunner.
+            Executors.newSingleThreadScheduledExecutor(
+                new ThreadFactoryBuilder()
+                    .setThreadFactory(MoreExecutors.platformThreadFactory())
+                    .setDaemon(true)
+                    .setNameFormat("direct-splittable-process-element-checkpoint-executor")
+                    .build()),
             // Setting small values here to stimulate frequent checkpointing and better exercise
             // splittable DoFn's in that respect.
             100,
             Duration.standardSeconds(1)));
-    return evaluator;
+
+    return DoFnLifecycleManagerRemovingTransformEvaluator.wrapping(parDoEvaluator, fnManager);
   }
 
   private static <InputT, OutputT, RestrictionT>
diff --git a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerTest.java b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerTest.java
index 1c8b144..830d0c1 100644
--- a/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerTest.java
+++ b/runners/direct-java/src/test/java/org/apache/beam/runners/direct/DirectRunnerTest.java
@@ -19,7 +19,6 @@ package org.apache.beam.runners.direct;
 
 import static com.google.common.base.Preconditions.checkState;
 import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.greaterThan;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.isA;
 import static org.junit.Assert.assertThat;
@@ -40,7 +39,6 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
 import org.apache.beam.runners.direct.DirectRunner.DirectPipelineResult;
 import org.apache.beam.sdk.Pipeline;
 import org.apache.beam.sdk.PipelineResult;
@@ -301,39 +299,6 @@ public class DirectRunnerTest implements Serializable {
     assertThat(result.getState(), is(State.RUNNING));
   }
 
-  private static final AtomicLong TEARDOWN_CALL = new AtomicLong(-1);
-
-  @Test
-  public void tearsDownFnsBeforeFinishing() {
-    TEARDOWN_CALL.set(-1);
-    final Pipeline pipeline = getPipeline();
-    pipeline.apply(Create.of("a"))
-      .apply(ParDo.of(new DoFn<String, String>() {
-        @ProcessElement
-        public void onElement(final ProcessContext ctx) {
-          // no-op
-        }
-
-        @Teardown
-        public void teardown() {
-          // just to not have a fast execution hiding an issue until we have a shutdown callback
-          try {
-              Thread.sleep(1000);
-          } catch (final InterruptedException e) {
-              fail();
-          }
-          TEARDOWN_CALL.set(System.nanoTime());
-        }
-      }));
-    final PipelineResult pipelineResult = pipeline.run();
-    pipelineResult.waitUntilFinish();
-
-    final long doneTs = System.nanoTime();
-    final long tearDownTs = TEARDOWN_CALL.get();
-    assertThat(tearDownTs, greaterThan(0L));
-    assertThat(doneTs, greaterThan(tearDownTs));
-  }
-
   @Test
   public void transformDisplayDataExceptionShouldFail() {
     DoFn<Integer, Integer> brokenDoFn = new DoFn<Integer, Integer>() {

-- 
To stop receiving notification emails like this one, please contact
robertwb@apache.org.