From 3cfada2574df6913d4a7a1d0b76ecf4cccc78243 Mon Sep 17 00:00:00 2001
From: Matt Gogerly <matt.gogerly@jpmchase.com>
Date: Wed, 12 Jun 2024 09:56:58 +0100
Subject: [PATCH] chore(build): enable cross compilation plugin for Java 17

---
 .github/workflows/build.yml   |  4 ++--
 .github/workflows/pr.yml      |  4 ++--
 .github/workflows/release.yml |  6 +++---
 Dockerfile.compile            |  2 +-
 build.gradle                  | 11 -----------
 gradle.properties             |  2 +-
 6 files changed, 9 insertions(+), 20 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 15d669384..3fc2621c2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -26,8 +26,8 @@ jobs:
       - uses: actions/setup-java@v4
         with:
           java-version: |
-            17
             11
+            17
           distribution: 'zulu'
           cache: 'gradle'
       - name: Prepare build variables
@@ -38,7 +38,7 @@ jobs:
       - name: Build
         env:
           ORG_GRADLE_PROJECT_version: ${{ steps.build_variables.outputs.VERSION }}
-        run: ./gradlew build --stacktrace ${{ steps.build_variables.outputs.REPO }}-web:installDist
+        run: ./gradlew -PenableCrossCompilerPlugin=true build --stacktrace ${{ steps.build_variables.outputs.REPO }}-web:installDist
       - name: Build local slim container image for testing
         uses: docker/build-push-action@v5
         with:
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index aa20afd75..7cc698945 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -20,8 +20,8 @@ jobs:
       - uses: actions/setup-java@v4
         with:
           java-version: |
-            17
             11
+            17
           distribution: 'zulu'
           cache: 'gradle'
       - name: Prepare build variables
@@ -32,7 +32,7 @@ jobs:
       - name: Build
         env:
           ORG_GRADLE_PROJECT_version: ${{ steps.build_variables.outputs.VERSION }}
-        run: ./gradlew build ${{ steps.build_variables.outputs.REPO }}-web:installDist
+        run: ./gradlew -PenableCrossCompilerPlugin=true build ${{ steps.build_variables.outputs.REPO }}-web:installDist
       - name: Build slim container image
         uses: docker/build-push-action@v5
         with:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d9e198666..600845a7d 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -44,8 +44,8 @@ jobs:
       - uses: actions/setup-java@v4
         with:
           java-version: |
-            17
             11
+            17
           distribution: 'zulu'
           cache: 'gradle'
       - name: Assemble release info
@@ -72,14 +72,14 @@ jobs:
           ORG_GRADLE_PROJECT_nexusPgpSigningKey: ${{ secrets.NEXUS_PGP_SIGNING_KEY }}
           ORG_GRADLE_PROJECT_nexusPgpSigningPassword: ${{ secrets.NEXUS_PGP_SIGNING_PASSWORD }}
         run: |
-          ./gradlew --info build ${{ steps.build_variables.outputs.REPO }}-web:installDist publishToNexus closeAndReleaseNexusStagingRepository
+          ./gradlew -PenableCrossCompilerPlugin=true --info build ${{ steps.build_variables.outputs.REPO }}-web:installDist publishToNexus closeAndReleaseNexusStagingRepository
       - name: Publish apt packages to Google Artifact Registry
         env:
           ORG_GRADLE_PROJECT_version: ${{ steps.release_info.outputs.RELEASE_VERSION }}
           ORG_GRADLE_PROJECT_artifactRegistryPublishEnabled: true
           GAR_JSON_KEY: ${{ secrets.GAR_JSON_KEY }}
         run: |
-          ./gradlew --info publish
+          ./gradlew -PenableCrossCompilerPlugin=true --info publish
       - name: Login to Google Cloud
         # Only run this on repositories in the 'spinnaker' org, not on forks.
         if: startsWith(github.repository, 'spinnaker/')
diff --git a/Dockerfile.compile b/Dockerfile.compile
index 04b38dd72..09ad60c9c 100644
--- a/Dockerfile.compile
+++ b/Dockerfile.compile
@@ -5,4 +5,4 @@ RUN apt-get update && apt-get install -y \
 LABEL maintainer="sig-platform@spinnaker.io"
 ENV GRADLE_USER_HOME /workspace/.gradle
 ENV GRADLE_OPTS -Xmx4g
-CMD ./gradlew --no-daemon fiat-web:installDist -x test
+CMD ./gradlew -PenableCrossCompilerPlugin=true --no-daemon fiat-web:installDist -x test
diff --git a/build.gradle b/build.gradle
index c73916267..ad4dafd39 100644
--- a/build.gradle
+++ b/build.gradle
@@ -49,17 +49,6 @@ subprojects {
       failOnError = false
     }
 
-    tasks.withType(JavaCompile).configureEach {
-      javaCompiler = javaToolchains.compilerFor {
-        languageVersion = JavaLanguageVersion.of(11)
-      }
-    }
-    tasks.withType(Test).configureEach {
-      javaLauncher = javaToolchains.launcherFor {
-        languageVersion = JavaLanguageVersion.of(17)
-      }
-    }
-
     tasks.withType(JavaExec) {
       if (System.getProperty('DEBUG', 'false') == 'true') {
         jvmArgs '-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7103'
diff --git a/gradle.properties b/gradle.properties
index bac0e0d38..89a4e4d3f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,7 +2,7 @@ includeProviders=file,github,google-groups,ldap
 korkVersion=7.230.0
 org.gradle.parallel=true
 spinnakerGradleVersion=8.32.1
-targetJava11=true
+targetJava17=false
 kotlinVersion=1.6.21
 # To enable a composite reference to a project, set the
 #  project property `'<projectName>Composite=true'`.