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

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


The following commit(s) were added to refs/heads/addjava21 by this push:
     new 1e1e72e1410 Disable Debezium test on Java17-
1e1e72e1410 is described below

commit 1e1e72e141070c885ca962bf7b6f85b9e9aaadec
Author: Yi Hu <[email protected]>
AuthorDate: Thu Jun 12 11:19:39 2025 -0400

    Disable Debezium test on Java17-
---
 .../io/external/xlang_debeziumio_it_test.py        | 22 ++++++++++++++++++++
 sdks/python/test-suites/portable/common.gradle     | 24 +++++++++++++---------
 2 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/sdks/python/apache_beam/io/external/xlang_debeziumio_it_test.py 
b/sdks/python/apache_beam/io/external/xlang_debeziumio_it_test.py
index f343f88ec80..4c883447a0a 100644
--- a/sdks/python/apache_beam/io/external/xlang_debeziumio_it_test.py
+++ b/sdks/python/apache_beam/io/external/xlang_debeziumio_it_test.py
@@ -16,6 +16,7 @@
 #
 
 import logging
+import subprocess
 import unittest
 
 from apache_beam.io.debezium import DriverClassName
@@ -24,6 +25,7 @@ from apache_beam.options.pipeline_options import 
StandardOptions
 from apache_beam.testing.test_pipeline import TestPipeline
 from apache_beam.testing.util import assert_that
 from apache_beam.testing.util import equal_to
+from apache_beam.utils import subprocess_server
 
 # pylint: disable=wrong-import-order, wrong-import-position, ungrouped-imports
 try:
@@ -34,12 +36,32 @@ except ImportError:
 NUM_RECORDS = 1
 
 
+def _disable_debezium_test():
+  # disable if run on <Java17
+  try:
+    java = subprocess_server.JavaHelper.get_java()
+    result = subprocess.run([java, '-version'],
+                            check=True,
+                            capture_output=True,
+                            text=True)
+    version_line = result.stderr.splitlines()[0]
+
+    version = version_line.split()[2].strip('\"')
+    if int(version.split(".")[0]) < 17:
+      return True
+  except:  # pylint: disable=bare-except
+    return False
+
+
 @unittest.skipIf(
     PostgresContainer is None, 'testcontainers package is not installed')
 @unittest.skipIf(
     TestPipeline().get_pipeline_options().view_as(StandardOptions).runner
     is None,
     'Do not run this test on precommit suites.')
[email protected](
+    _disable_debezium_test(),
+    'Debezium test requires Java17+ in PATH or JAVA_HOME')
 class CrossLanguageDebeziumIOTest(unittest.TestCase):
   def setUp(self):
     self.username = 'debezium'
diff --git a/sdks/python/test-suites/portable/common.gradle 
b/sdks/python/test-suites/portable/common.gradle
index a6bff7f4fbd..cc57a5942d2 100644
--- a/sdks/python/test-suites/portable/common.gradle
+++ b/sdks/python/test-suites/portable/common.gradle
@@ -369,11 +369,24 @@ project.tasks.register("prismExamples") {
 }
 
 project.tasks.register("postCommitPy${pythonVersionSuffix}IT") {
+  String fork_java_home = null
+  String fork_java_version = currentJavaVersion
+  // DebeziumIO needs Java17+
+  if (JavaVersion.current() < JavaVersion.VERSION_17) {
+    if (project.hasProperty("java17Home")) {
+      fork_java_version = 'java17'
+      fork_java_home = project.getProperty("java17Home")
+    } else if (project.hasProperty("java21Home")) {
+      fork_java_version = 'java21'
+      fork_java_home = project.getProperty("java21Home")
+    }
+  }
+
   dependsOn = [
           'setupVirtualenv',
           'installGcpTest',
           ":runners:flink:${latestFlinkVersion}:job-server:shadowJar",
-          ":sdks:java:container:${currentJavaVersion}:docker",
+          ":sdks:java:container:${fork_java_version}:docker",
           ':sdks:java:testing:kafka-service:buildTestKafkaServiceJar',
           ':sdks:java:io:expansion-service:shadowJar',
           ':sdks:java:io:google-cloud-platform:expansion-service:shadowJar',
@@ -413,15 +426,6 @@ 
project.tasks.register("postCommitPy${pythonVersionSuffix}IT") {
     ])
     def kafkaJar = 
project(":sdks:java:testing:kafka-service:").buildTestKafkaServiceJar.archivePath
 
-    String fork_java_home = null
-    if (JavaVersion.current() < JavaVersion.VERSION_17) {
-      if (project.hasProperty("java17Home")) {
-        fork_java_home = project.getProperty("java17Home")
-      } else if (project.hasProperty("java21Home")) {
-        fork_java_home = project.getProperty("java21Home")
-      }
-    }
-
     exec {
       if (fork_java_home != null) {
         environment "JAVA_HOME", fork_java_home

Reply via email to