Thank you! Yes, that is my understanding too. I tried to force Java 17, in Debezium IOs build.gradle, but I failed so far. I even tried to completely clear the arguments and manually construct them for the gradle command line [0], however then this clashed with ErrorProne. I will give it another shot in the coming days.
[0] https://github.com/apache/beam/pull/34763/commits/a779e201941ba10672e8225229bc59e0afd01e21 On Wed, Apr 30, 2025 at 5:18 PM Yi Hu <ya...@google.com> wrote: > The purpose of the fallback [0] is to make other Beam components build on > Java11, while only `:sdks:java:io:debezium` should be configured to build > on Java17, in its build.gradle file. > > On Wed, Apr 30, 2025 at 11:14 AM XQ Hu via dev <dev@beam.apache.org> > wrote: > >> I think we can remove 11. Looks like we always do this: JAVA_HOME: >> /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/11.0.27-6/x64 >> >> However, we probably need to change that direct github workflow to >> remove :sdks:java:container:java8 and :sdks:java:container:java11 and >> add :sdks:java:container:java17. >> >> On Wed, Apr 30, 2025 at 10:23 AM Tobi Kaymak <kay...@google.com> wrote: >> >>> I do have a silly question, I am struggling to find the reason for the >>> fallback need of Java 11 in the beam_PreCommit_Java_Debezium_IO_Direct.yml >>> [0] >>> I was trying to not interfere with the build system outside of the >>> module by doing some tricks within the build.gradle of Debzium IO in the >>> second PR. [1] >>> However, it seems that the CI always picks up Java 11 and therefore >>> fails the build. It builds completely fine with Java 17 on my machine >>> though. >>> Is there a way to force Java 17 for the module by, for example, removing >>> the 11 fallback from the PreCommit Workflow or does this have known >>> side-effects? >>> >>> Thank you! >>> >>> [0] >>> https://github.com/apache/beam/pull/34751/files#diff-de752bcab62398ee28adb75a8fdb1933d8d855f2ae46417ec1d47180174a1800R91 >>> [1] https://github.com/apache/beam/pull/34763 >>> >>> On Mon, Apr 28, 2025 at 5:04 PM Tobi Kaymak <kay...@google.com> wrote: >>> >>>> I did the second PR and removed the enforcement of proto3 in the >>>> build.gradle ( >>>> https://github.com/apache/beam/pull/34763/files#diff-1572bcc322ede7d3a757381b84791a29b691df4d8947f6ad39ce4597653787edL95) >>>> - >>>> All tests are green on my local machine, but they will of course fail >>>> on the CI since the first PR has not been merged yet. >>>> >>>> I would be very happy about a review by Danny McCormick, who did work >>>> on this a few months ago in his PR and added the enforcement ( >>>> https://github.com/apache/beam/pull/33526). >>>> >>>> >>>> On Sun, Apr 27, 2025 at 5:00 PM Tobi Kaymak <kay...@google.com> wrote: >>>> >>>>> I did create the first PR, after building the IO on my local machine >>>>> with gradle and Java 17. This should not have an effect other than >>>>> changing >>>>> the build system. Feedback is very welcome: >>>>> https://github.com/apache/beam/pull/34751 >>>>> >>>>> On Sat, Apr 26, 2025 at 12:49 AM Tobi Kaymak <kay...@google.com> >>>>> wrote: >>>>> >>>>>> Thank you both! >>>>>> I have checked and couldn't find a matching issue, so I created this >>>>>> one: https://github.com/apache/beam/issues/34747 >>>>>> >>>>>> On Sat, Apr 26, 2025 at 12:32 AM XQ Hu via dev <dev@beam.apache.org> >>>>>> wrote: >>>>>> >>>>>>> Can we create the GitHub issue to track this work if we haven't? >>>>>>> >>>>>>> On Fri, Apr 25, 2025, 4:39 PM Yi Hu via dev <dev@beam.apache.org> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Tobi, >>>>>>>> >>>>>>>> Thanks for your interest and willing to take on the task. First of >>>>>>>> all, could you please create a GitHub Issue to track the effort? >>>>>>>> >>>>>>>> I would like to share some comments if find useful >>>>>>>> >>>>>>>> - We already have infrastructure for the goal of "PR 1". We use >>>>>>>> BeamPluginModulePlugin [1] to initialize java modules and there is a >>>>>>>> setJavaVerOptions method. Here is a module could be an example how >>>>>>>> compiling with different Java version works in Beam: [2]. >>>>>>>> >>>>>>>> - We'll need to handle Debezium with newer Java version as well >>>>>>>> (That's the reason test currently failing on #34733). We'll need to >>>>>>>> modify >>>>>>>> test workflow file [3]. However due to GitHub limitation changes to >>>>>>>> .github/workflows won't be effective on unsubmitted PRs. You'd need to >>>>>>>> test >>>>>>>> your change locally. >>>>>>>> >>>>>>>> - Given that current Debezium (1.x) is already old I'm +1 with the >>>>>>>> change. >>>>>>>> >>>>>>>> [1] >>>>>>>> https://github.com/apache/beam/blob/master/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy >>>>>>>> >>>>>>>> [2] >>>>>>>> https://github.com/apache/beam/blob/master/sdks/java/container/agent/build.gradle >>>>>>>> >>>>>>>> [3] >>>>>>>> https://github.com/apache/beam/blob/master/.github/workflows/beam_PreCommit_Java_Debezium_IO_Direct.yml >>>>>>>> >>>>>>>> >>>>>>>> Thanks. >>>>>>>> >>>>>>>> Yi >>>>>>>> >>>>>>>> On Fri, Apr 25, 2025 at 3:06 PM Tobi Kaymak via dev < >>>>>>>> dev@beam.apache.org> wrote: >>>>>>>> >>>>>>>>> Hi Beam Devs, >>>>>>>>> >>>>>>>>> I'm interested in helping to upgrade the Debezium IO connector ( >>>>>>>>> sdks:java:io:debezium) to Debezium version 3.1.1.Final. This >>>>>>>>> version of Debezium requires its dependencies (like debezium-core) >>>>>>>>> to be compiled against Java 17 >>>>>>>>> <https://debezium.io/releases/3.0/release-notes#breaking_changes_14> >>>>>>>>> bytecode. >>>>>>>>> >>>>>>>>> I took the work from Danny McCormick who started doing something >>>>>>>>> similar for Debezium 2.7.4 and created a WIP branch >>>>>>>>> <https://github.com/apache/beam/pull/34733> to get my feet wet >>>>>>>>> with Java and Gradle's build system again. >>>>>>>>> >>>>>>>>> To manage this upgrade gracefully and make the review process >>>>>>>>> smoother, I was thinking to split the work into a two-step PR: >>>>>>>>> >>>>>>>>> 1. >>>>>>>>> >>>>>>>>> *PR 1 (Build Infrastructure):* A smaller, focused PR to enable >>>>>>>>> Java 17 compilation specifically for the sdks:java:io:debezium >>>>>>>>> module. This would likely involve: >>>>>>>>> - Modifying the sdks:java:io:debezium/build.gradle to allow >>>>>>>>> forking its compileJava (and compileTestJava) tasks using a >>>>>>>>> JDK 17 (e.g., via a java17Home Gradle property derived from >>>>>>>>> a CI environment variable like JAVA_HOME_17_X64). >>>>>>>>> - Updating the relevant PreCommit workflow ( >>>>>>>>> beam_PreCommit_Java_Debezium_IO_Direct.yml) >>>>>>>>> >>>>>>>>> <https://github.com/apache/beam/blob/master/.github/workflows/beam_PreCommit_Java_Debezium_IO_Direct.yml#L87> >>>>>>>>> to ensure a JDK 17 is available and its path is passed to >>>>>>>>> Gradle for this >>>>>>>>> module. >>>>>>>>> - The goal of this first PR would be to get the module to >>>>>>>>> compile successfully with Java 17 against the existing (older) >>>>>>>>> Debezium >>>>>>>>> version. >>>>>>>>> 2. >>>>>>>>> >>>>>>>>> *PR 2 (Debezium 3.1.1 Upgrade & API Adaptation):* A subsequent >>>>>>>>> PR that would: >>>>>>>>> - Actually update the Debezium dependencies to 3.1.1.Final. >>>>>>>>> - Incorporate the necessary code changes within >>>>>>>>> sdks:java:io:debezium to adapt to any API changes in >>>>>>>>> Debezium 3.1.1. >>>>>>>>> - Address any new functionality or considerations with >>>>>>>>> Debezium 3.1.1 (which I understand uses now libprotoc-dev >>>>>>>>> 1.5, >>>>>>>>> >>>>>>>>> <https://github.com/debezium/container-images/pull/427/files#diff-bf3b0b8b023cf3cd20ca9d862bb8301523cdb9c934dec1ce96cd9640a613ae7e> >>>>>>>>> - >>>>>>>>> according to its release notes >>>>>>>>> <https://debezium.io/releases/3.1/release-notes#other_changes_5> >>>>>>>>> . >>>>>>>>> >>>>>>>>> My reasoning for this split is to isolate the build system changes >>>>>>>>> from the actual library upgrade and code adaptation, allowing for >>>>>>>>> smaller >>>>>>>>> code reviews. >>>>>>>>> >>>>>>>>> I'd appreciate any feedback or suggestions on the best way to >>>>>>>>> upgrade Debezium IO. >>>>>>>>> >>>>>>>>> Best >>>>>>>>> Tobi >>>>>>>>> >>>>>>>>