diff --git a/.github/workflows/beam_PostCommit_XVR_Flink.yml b/.github/workflows/beam_PostCommit_XVR_Flink.yml index e93fe82f48ad..ac52e88f529c 100644 --- a/.github/workflows/beam_PostCommit_XVR_Flink.yml +++ b/.github/workflows/beam_PostCommit_XVR_Flink.yml @@ -75,6 +75,9 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: + java-version: | + 17 + 11 python-version: ${{ matrix.python_version }} - name: run PostCommit XVR Flink script env: @@ -83,6 +86,7 @@ jobs: with: gradle-command: :runners:flink:${{ env.FlinkVersion }}:job-server:validatesCrossLanguageRunner arguments: | + -Pjava17Home=$JAVA_HOME_17_X64 \ -PpythonVersion=${{ matrix.python_version }} \ -PskipNonPythonTask=${{ (matrix.python_version == '3.10' && true) || false }} \ - name: Archive JUnit Test Results diff --git a/.github/workflows/beam_PostCommit_XVR_GoUsingJava_Dataflow.yml b/.github/workflows/beam_PostCommit_XVR_GoUsingJava_Dataflow.yml index 90d1eb786522..78e5c8afc3f0 100644 --- a/.github/workflows/beam_PostCommit_XVR_GoUsingJava_Dataflow.yml +++ b/.github/workflows/beam_PostCommit_XVR_GoUsingJava_Dataflow.yml @@ -76,6 +76,9 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: + java-version: | + 17 + 11 python-version: default - name: Set up Docker Buildx uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 @@ -86,6 +89,7 @@ jobs: with: gradle-command: :runners:google-cloud-dataflow-java:validatesCrossLanguageRunnerGoUsingJava arguments: | + -Pjava17Home=$JAVA_HOME_17_X64 \ -PuseDockerBuildx - name: Archive JUnit Test Results uses: actions/upload-artifact@v7 diff --git a/.github/workflows/beam_PostCommit_XVR_JavaUsingPython_Dataflow.yml b/.github/workflows/beam_PostCommit_XVR_JavaUsingPython_Dataflow.yml index c282f6c47069..32dbbee7842a 100644 --- a/.github/workflows/beam_PostCommit_XVR_JavaUsingPython_Dataflow.yml +++ b/.github/workflows/beam_PostCommit_XVR_JavaUsingPython_Dataflow.yml @@ -74,6 +74,9 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: + java-version: | + 17 + 11 python-version: | 3.10 ${{ matrix.python_version }} @@ -82,6 +85,7 @@ jobs: with: gradle-command: :runners:google-cloud-dataflow-java:validatesCrossLanguageRunnerJavaUsingPython arguments: | + -Pjava17Home=$JAVA_HOME_17_X64 \ -PpythonVersion=${{ matrix.python_version }} \ - name: Archive JUnit Test Results uses: actions/upload-artifact@v7 diff --git a/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml b/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml index 95496621f9ce..8ec8a941ed48 100644 --- a/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml +++ b/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml @@ -73,12 +73,16 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: + java-version: | + 17 + 11 python-version: 3.14 - name: run PostCommit XVR PythonUsingJavaSQL Dataflow script uses: ./.github/actions/gradle-command-self-hosted-action with: gradle-command: :runners:google-cloud-dataflow-java:validatesCrossLanguageRunnerPythonUsingSql arguments: | + -Pjava17Home=$JAVA_HOME_17_X64 \ -PpythonVersion=3.14 \ - name: Archive Python Test Results uses: actions/upload-artifact@v7 diff --git a/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml b/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml index 0cd9790e6793..acf4c47ad2c1 100644 --- a/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml +++ b/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml @@ -74,6 +74,9 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: + java-version: | + 17 + 11 python-version: | 3.10 ${{ matrix.python_version }} @@ -82,6 +85,7 @@ jobs: with: gradle-command: :runners:google-cloud-dataflow-java:validatesCrossLanguageRunnerPythonUsingJava arguments: | + -Pjava17Home=$JAVA_HOME_17_X64 \ -PpythonVersion=${{ matrix.python_version }} \ - name: Archive Python Test Results uses: actions/upload-artifact@v7 diff --git a/.github/workflows/beam_PostCommit_XVR_Spark3.yml b/.github/workflows/beam_PostCommit_XVR_Spark3.yml index 2c7104df6115..2db33583a317 100644 --- a/.github/workflows/beam_PostCommit_XVR_Spark3.yml +++ b/.github/workflows/beam_PostCommit_XVR_Spark3.yml @@ -74,6 +74,9 @@ jobs: - name: Setup environment uses: ./.github/actions/setup-environment-action with: + java-version: | + 17 + 11 python-version: ${{ matrix.python_version }} - name: run PostCommit XVR Spark3 script env: @@ -82,6 +85,7 @@ jobs: with: gradle-command: :runners:spark:3:job-server:validatesCrossLanguageRunner arguments: | + -Pjava17Home=$JAVA_HOME_17_X64 \ -PpythonVersion=${{ matrix.python_version }} \ -PskipNonPythonTask=${{ (matrix.python_version == '3.10' && true) || false }} \ - name: Archive JUnit Test Results diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 344cf66e01fc..b5aef5d23ad4 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -978,6 +978,9 @@ class BeamModulePlugin implements Plugin { // set compiler options for java version overrides to compile with a different java version project.ext.setJavaVerOptions = { CompileOptions options, String ver -> + if (!project.findProperty("java${ver}Home")) { + return + } if (ver == '8') { def java8Home = project.findProperty("java8Home") options.fork = true @@ -1161,16 +1164,16 @@ class BeamModulePlugin implements Plugin { // If compiled on older SDK, compile with JDK configured with compatible javaXXHome // The order is intended here if (requireJavaVersion.compareTo(JavaVersion.VERSION_11) <= 0 && - project.hasProperty('java11Home')) { + project.findProperty('java11Home')) { forkJavaVersion = '11' } else if (requireJavaVersion.compareTo(JavaVersion.VERSION_17) <= 0 && - project.hasProperty('java17Home')) { + project.findProperty('java17Home')) { forkJavaVersion = '17' } else if (requireJavaVersion.compareTo(JavaVersion.VERSION_21) <= 0 && - project.hasProperty('java21Home')) { + project.findProperty('java21Home')) { forkJavaVersion = '21' } else if (requireJavaVersion.compareTo(JavaVersion.VERSION_25) <= 0 && - project.hasProperty('java25Home')) { + project.findProperty('java25Home')) { forkJavaVersion = '25' } else { logger.config("Module ${project.name} disabled. To enable, either " + @@ -1628,7 +1631,7 @@ class BeamModulePlugin implements Plugin { } // if specified test java version, modify the compile and runtime versions accordingly if (['11', '17', '21', '25'].contains(testJavaVersion)) { - def testJavaHome = project.getProperty("java${testJavaVersion}Home") + def testJavaHome = project.findProperty("java${testJavaVersion}Home") // redirect java compiler to specified version for compileTestJava only project.tasks.compileTestJava { @@ -2710,7 +2713,8 @@ class BeamModulePlugin implements Plugin { def pythonDir = project.project(":sdks:python").projectDir def usesDataflowRunner = config.pythonPipelineOptions.contains("--runner=TestDataflowRunner") || config.pythonPipelineOptions.contains("--runner=DataflowRunner") - def javaContainerSuffix = getSupportedJavaVersion() + String ver = project.findProperty('testJavaVersion') + def javaContainerSuffix = ver ? getSupportedJavaVersion(ver) : getSupportedJavaVersion() // Sets up, collects, and runs Python pipeline tests project.tasks.register(config.name+"PythonUsingJava") { @@ -2790,7 +2794,8 @@ class BeamModulePlugin implements Plugin { ] def serviceArgs = project.project(':sdks:python').mapToArgString(expansionServiceOpts) def pythonContainerSuffix = project.project(':sdks:python').pythonVersion.replace('.', '') - def javaContainerSuffix = getSupportedJavaVersion() + String ver = project.findProperty('testJavaVersion') + def javaContainerSuffix = ver ? getSupportedJavaVersion(ver) : getSupportedJavaVersion() def setupTask = project.tasks.register(config.name+"Setup", Exec) { dependsOn ':sdks:java:container:'+javaContainerSuffix+':docker' dependsOn ':sdks:python:container:py'+pythonContainerSuffix+':docker' @@ -2979,10 +2984,11 @@ class BeamModulePlugin implements Plugin { ] def serviceArgs = project.project(':sdks:python').mapToArgString(transformServiceOpts) def pythonContainerSuffix = project.project(':sdks:python').pythonVersion.replace('.', '') - def javaContainerSuffix = getSupportedJavaVersion() + String ver = project.findProperty('testJavaVersion') + def javaContainerSuffix = ver ? getSupportedJavaVersion(ver) : getSupportedJavaVersion() // Transform service delivers transforms that refer to SDK harness containers with following sufixes. - def transformServiceJavaContainerSuffix = 'java11' + def transformServiceJavaContainerSuffix = 'java17' def transformServicePythonContainerSuffix = pythonContainerSuffix def setupTask = project.tasks.register(config.name+"Setup", Exec) { diff --git a/sdks/java/transform-service/controller-container/Dockerfile b/sdks/java/transform-service/controller-container/Dockerfile index 8aca2d7fb7c8..4efa7bdc42c3 100644 --- a/sdks/java/transform-service/controller-container/Dockerfile +++ b/sdks/java/transform-service/controller-container/Dockerfile @@ -16,7 +16,7 @@ # limitations under the License. ############################################################################### -FROM eclipse-temurin:11 +FROM eclipse-temurin:17 LABEL Author "Apache Beam " ARG TARGETOS ARG TARGETARCH