From f67ecd79df22a9c6bdbf471f42b4954ae042dcf7 Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Fri, 7 Mar 2025 15:06:53 -0800
Subject: [PATCH 01/17] changes required to release on IntelliJ 2025.1

---
 build.gradle.kts                | 25 ++++++++++++++++++-------
 flutter-idea/build.gradle.kts   | 22 ++++++++++++++++------
 flutter-studio/build.gradle.kts | 22 ++++++++++++++++++----
 product-matrix.json             | 27 +++++++++++++++++++++++----
 tool/plugin/lib/build_spec.dart |  5 ++++-
 tool/plugin/lib/runner.dart     |  1 +
 6 files changed, 80 insertions(+), 22 deletions(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index 6f6455c20..51bcf7049 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -37,6 +37,7 @@ plugins {
   id("org.jetbrains.kotlin.jvm") version "2.1.0"
 }
 
+// TODO(mossmana) These properties are duplicated in flutter-idea/build.gradle.kts and flutter-studio/build.gradle.kts. Should be consolidated.
 val flutterPluginVersion = providers.gradleProperty("flutterPluginVersion").get()
 val ideaProduct = providers.gradleProperty("ideaProduct").get()
 val ideaVersion = providers.gradleProperty("ideaVersion").get()
@@ -45,6 +46,7 @@ val dartPluginVersion = providers.gradleProperty("dartPluginVersion").get()
 val androidPluginVersion = providers.gradleProperty("androidPluginVersion").get()
 val sinceBuildInput = providers.gradleProperty("sinceBuild").get()
 val untilBuildInput = providers.gradleProperty("untilBuild").get()
+val javaVersion = providers.gradleProperty("javaVersion").get()
 group = "io.flutter"
 
 // For debugging purposes:
@@ -55,15 +57,24 @@ println("dartPluginVersion: $dartPluginVersion")
 println("androidPluginVersion: $androidPluginVersion")
 println("sinceBuild: $sinceBuildInput")
 println("untilBuild: $untilBuildInput")
+println("javaVersion: $javaVersion")
 println("group: $group")
 
+var jvmVersion = JvmTarget.JVM_17
+if (javaVersion == "21") {
+  jvmVersion = JvmTarget.JVM_21
+}
 kotlin {
   compilerOptions {
     apiVersion.set(KotlinVersion.KOTLIN_1_9)
-    jvmTarget = JvmTarget.JVM_17
+    jvmTarget = jvmVersion
   }
 }
-val javaCompatibilityVersion = JavaVersion.VERSION_17
+
+var javaCompatibilityVersion = JavaVersion.VERSION_17
+if (javaVersion == "21") {
+  javaCompatibilityVersion = JavaVersion.VERSION_21
+}
 java {
   sourceCompatibility = javaCompatibilityVersion
   targetCompatibility = javaCompatibilityVersion
@@ -71,12 +82,12 @@ java {
 
 dependencies {
   intellijPlatform {
-    // Documentation on the create(...) methods:
-    // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#custom-target-platforms
+    // Documentation on the default target platform methods:
+    // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#default-target-platforms
     if (ideaProduct == "android-studio") {
-      create(IntelliJPlatformType.AndroidStudio, ideaVersion)
-    } else {//if (ide == "ideaIC") {
-      create(IntelliJPlatformType.IntellijIdeaCommunity, ideaVersion)
+      androidStudio(ideaVersion)
+    } else { // if (ideaProduct == "IC") {
+      intellijIdeaCommunity(ideaVersion)
     }
     testFramework(TestFrameworkType.Platform)
 
diff --git a/flutter-idea/build.gradle.kts b/flutter-idea/build.gradle.kts
index dcc97121c..25cd2bbcb 100644
--- a/flutter-idea/build.gradle.kts
+++ b/flutter-idea/build.gradle.kts
@@ -35,28 +35,38 @@ val dartPluginVersion = providers.gradleProperty("dartPluginVersion").get()
 val androidPluginVersion = providers.gradleProperty("androidPluginVersion").get()
 val sinceBuildInput = providers.gradleProperty("sinceBuild").get()
 val untilBuildInput = providers.gradleProperty("untilBuild").get()
+val javaVersion = providers.gradleProperty("javaVersion").get()
 group = "io.flutter"
 
+var jvmVersion = JvmTarget.JVM_17
+if (javaVersion == "21") {
+  jvmVersion = JvmTarget.JVM_21
+}
 kotlin {
   compilerOptions {
     apiVersion.set(KotlinVersion.KOTLIN_1_9)
-    jvmTarget = JvmTarget.JVM_17
+    jvmTarget = jvmVersion
   }
 }
-val javaCompatibilityVersion = JavaVersion.VERSION_17
+
+var javaCompatibilityVersion = JavaVersion.VERSION_17
+if (javaVersion == "21") {
+  javaCompatibilityVersion = JavaVersion.VERSION_21
+}
 java {
   sourceCompatibility = javaCompatibilityVersion
   targetCompatibility = javaCompatibilityVersion
 }
 
+
 dependencies {
   intellijPlatform {
-    // Documentation on the create(...) methods:
-    // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#custom-target-platforms
+    // Documentation on the default target platform methods:
+    // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#default-target-platforms
     if (ideaProduct == "android-studio") {
-      create(IntelliJPlatformType.AndroidStudio, ideaVersion)
+      androidStudio(ideaVersion)
     } else { // if (ideaProduct == "IC") {
-      create(IntelliJPlatformType.IntellijIdeaCommunity, ideaVersion)
+      intellijIdeaCommunity(ideaVersion)
     }
     testFramework(TestFrameworkType.Platform)
 
diff --git a/flutter-studio/build.gradle.kts b/flutter-studio/build.gradle.kts
index 1925d40d1..755293601 100644
--- a/flutter-studio/build.gradle.kts
+++ b/flutter-studio/build.gradle.kts
@@ -36,15 +36,24 @@ val dartPluginVersion = providers.gradleProperty("dartPluginVersion").get()
 val androidPluginVersion = providers.gradleProperty("androidPluginVersion").get()
 val sinceBuildInput = providers.gradleProperty("sinceBuild").get()
 val untilBuildInput = providers.gradleProperty("untilBuild").get()
+val javaVersion = providers.gradleProperty("javaVersion").get()
 group = "io.flutter"
 
+var jvmVersion = JvmTarget.JVM_17
+if (javaVersion == "21") {
+  jvmVersion = JvmTarget.JVM_21
+}
 kotlin {
   compilerOptions {
     apiVersion.set(KotlinVersion.KOTLIN_1_9)
-    jvmTarget = JvmTarget.JVM_17
+    jvmTarget = jvmVersion
   }
 }
-val javaCompatibilityVersion = JavaVersion.VERSION_17
+
+var javaCompatibilityVersion = JavaVersion.VERSION_17
+if (javaVersion == "21") {
+  javaCompatibilityVersion = JavaVersion.VERSION_21
+}
 java {
   sourceCompatibility = javaCompatibilityVersion
   targetCompatibility = javaCompatibilityVersion
@@ -52,12 +61,17 @@ java {
 
 dependencies {
   intellijPlatform {
+    // Documentation on the default target platform methods:
+    // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#default-target-platforms
     if (ideaProduct == "android-studio") {
-      create(IntelliJPlatformType.AndroidStudio, ideaVersion)
+      androidStudio(ideaVersion)
     } else { // if (ideaProduct == "IC") {
-      create(IntelliJPlatformType.IntellijIdeaCommunity, ideaVersion)
+      intellijIdeaCommunity(ideaVersion)
     }
     testFramework(TestFrameworkType.Platform)
+
+    // Plugin dependnecy documentation:
+    // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#plugins
     val bundledPluginList = mutableListOf(
       "com.intellij.java",
       "com.intellij.properties",
diff --git a/product-matrix.json b/product-matrix.json
index c51522b2e..90bcecbf0 100644
--- a/product-matrix.json
+++ b/product-matrix.json
@@ -13,7 +13,8 @@
       "androidPluginVersion": "",
       "sinceBuild": "241",
       "untilBuild": "241.*",
-      "isUnitTestTarget": "false"
+      "isUnitTestTarget": "false",
+      "javaVersion": "17"
     },
     {
       "channel": "stable",
@@ -28,7 +29,8 @@
       "androidPluginVersion": "",
       "sinceBuild": "242",
       "untilBuild": "242.*",
-      "isUnitTestTarget": "false"
+      "isUnitTestTarget": "false",
+      "javaVersion": "17"
     },
     {
       "channel": "stable",
@@ -39,11 +41,28 @@
       "ideaProduct": "android-studio",
       "ideaVersion": "2024.3.1.10",
       "baseVersion": "243.22562.59",
-      "dartPluginVersion": " 243.21565.120",
+      "dartPluginVersion": "243.21565.120",
       "androidPluginVersion": "",
       "sinceBuild": "243",
       "untilBuild": "253.*",
-      "isUnitTestTarget": "true"
+      "isUnitTestTarget": "true",
+      "javaVersion": "17"
+    },
+    {
+      "channel": "stable",
+      "comments": "IntelliJ 2025.1 Beta, Android Studio Meerkat 2024.3 EAP",
+      "name": "2025.1",
+      "version": "2025.1",
+      "ijVersion": "2025.1",
+      "ideaProduct": "IC",
+      "ideaVersion": "251.23774.16",
+      "baseVersion": "251.23774.16",
+      "dartPluginVersion": "251.23774.16",
+      "androidPluginVersion": "251.23774.16",
+      "sinceBuild": "243",
+      "untilBuild": "253.*",
+      "isUnitTestTarget": "true",
+      "javaVersion": "21"
     }
   ]
 }
\ No newline at end of file
diff --git a/tool/plugin/lib/build_spec.dart b/tool/plugin/lib/build_spec.dart
index d9671e496..13286680f 100644
--- a/tool/plugin/lib/build_spec.dart
+++ b/tool/plugin/lib/build_spec.dart
@@ -23,6 +23,7 @@ class BuildSpec {
   final String ideaVersion;
   final String androidPluginVersion;
   final String dartPluginVersion;
+  final String javaVersion;
 
   // TODO (jwren) can baseVersion be removed?
   final String baseVersion;
@@ -50,7 +51,8 @@ class BuildSpec {
       untilBuild = json['untilBuild'] as String,
       filesToSkip = json['filesToSkip'] as List<String>? ?? [],
       isUnitTestTarget = json['isUnitTestTarget'] == 'true',
-      isTestTarget = json['isTestTarget'] == 'true';
+      isTestTarget = json['isTestTarget'] == 'true',
+      javaVersion = json['javaVersion'] as String;
 
   bool get copyIjVersion => isAndroidStudio && ijVersion != null;
 
@@ -106,6 +108,7 @@ class BuildSpec {
         'ideaVersion: $ideaVersion, '
         'baseVersion: $baseVersion, '
         'dartPluginVersion: $dartPluginVersion, '
+        'javaVersion: $javaVersion, '
         'since: $sinceBuild, '
         'until: $untilBuild, '
         'version: "$release")';
diff --git a/tool/plugin/lib/runner.dart b/tool/plugin/lib/runner.dart
index 0e4442490..0887dad1a 100644
--- a/tool/plugin/lib/runner.dart
+++ b/tool/plugin/lib/runner.dart
@@ -73,6 +73,7 @@ androidPluginVersion=${spec.androidPluginVersion}
 sinceBuild=${spec.sinceBuild}
 untilBuild=${spec.untilBuild}
 testing=$testing
+javaVersion=${spec.javaVersion}
 kotlin.stdlib.default.dependency=false
 org.gradle.parallel=true
 org.gradle.jvmargs=-Xms1024m -Xmx4048m

From 6860e1263908c4f01761de0800bd78d244c9a6ea Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Tue, 11 Mar 2025 08:59:10 -0700
Subject: [PATCH 02/17] updated presubmit for latest version

---
 .github/workflows/presubmit.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/presubmit.yaml b/.github/workflows/presubmit.yaml
index 17763b9aa..87afa6d65 100644
--- a/.github/workflows/presubmit.yaml
+++ b/.github/workflows/presubmit.yaml
@@ -21,7 +21,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        version: [2024.1, 2024.2, 2024.3]
+        version: [2024.1, 2024.2, 2024.3, 2025.1]
     steps:
       - name: checkout
         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683

From 4166bb6527943f85ff34cb750a558906f8b7e491 Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Tue, 11 Mar 2025 14:45:11 -0700
Subject: [PATCH 03/17] corrected copied typo, excluding the gemini code assist
 plugin for 2025.1

---
 build.gradle.kts                |  9 ++++++---
 flutter-idea/build.gradle.kts   | 10 ++++++----
 flutter-studio/build.gradle.kts |  9 ++++++---
 3 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index 51bcf7049..34c3334e1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -91,7 +91,7 @@ dependencies {
     }
     testFramework(TestFrameworkType.Platform)
 
-    // Plugin dependnecy documentation:
+    // Plugin dependency documentation:
     // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#plugins
     val bundledPluginList = mutableListOf(
       "com.intellij.java",
@@ -101,8 +101,11 @@ dependencies {
       "org.jetbrains.kotlin",
       "org.jetbrains.plugins.gradle",
       "org.intellij.intelliLang",
-      "com.google.tools.ij.aiplugin",
-    )
+      "org.intellij.intelliLang")
+    // TODO(mossman) - this check should be removed when 2025.1 supports the Gemini Code Assist plugin (https://github.com/flutter/flutter-intellij/issues/7965)
+    if (ideaVersion.startsWith("225.")) {
+      bundledPluginList.add("com.google.tools.ij.aiplugin")
+    }
     if (ideaProduct == "android-studio") {
       bundledPluginList.add("org.jetbrains.android")
       bundledPluginList.add("com.android.tools.idea.smali")
diff --git a/flutter-idea/build.gradle.kts b/flutter-idea/build.gradle.kts
index 25cd2bbcb..305b5c598 100644
--- a/flutter-idea/build.gradle.kts
+++ b/flutter-idea/build.gradle.kts
@@ -70,7 +70,7 @@ dependencies {
     }
     testFramework(TestFrameworkType.Platform)
 
-    // Plugin dependnecy documentation:
+    // Plugin dependency documentation:
     // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#plugins
     val bundledPluginList = mutableListOf(
       "com.intellij.java",
@@ -79,9 +79,11 @@ dependencies {
       "Git4Idea",
       "org.jetbrains.kotlin",
       "org.jetbrains.plugins.gradle",
-      "org.intellij.intelliLang",
-      "com.google.tools.ij.aiplugin",
-    )
+      "org.intellij.intelliLang")
+    // TODO(mossman) - this check should be removed when 2025.1 supports the Gemini Code Assist plugin (https://github.com/flutter/flutter-intellij/issues/7965)
+    if (ideaVersion.startsWith("225.")) {
+      bundledPluginList.add("com.google.tools.ij.aiplugin")
+    }
     if (ideaProduct == "android-studio") {
       bundledPluginList.add("org.jetbrains.android")
       bundledPluginList.add("com.android.tools.idea.smali")
diff --git a/flutter-studio/build.gradle.kts b/flutter-studio/build.gradle.kts
index 755293601..ab766137f 100644
--- a/flutter-studio/build.gradle.kts
+++ b/flutter-studio/build.gradle.kts
@@ -70,7 +70,7 @@ dependencies {
     }
     testFramework(TestFrameworkType.Platform)
 
-    // Plugin dependnecy documentation:
+    // Plugin dependency documentation:
     // https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#plugins
     val bundledPluginList = mutableListOf(
       "com.intellij.java",
@@ -80,8 +80,11 @@ dependencies {
       "org.jetbrains.kotlin",
       "org.jetbrains.plugins.gradle",
       "org.intellij.intelliLang",
-      "com.google.tools.ij.aiplugin",
-    )
+      "org.intellij.intelliLang")
+    // TODO(mossman) - this check should be removed when 2025.1 supports the Gemini Code Assist plugin (https://github.com/flutter/flutter-intellij/issues/7965)
+    if (ideaVersion.startsWith("225.")) {
+      bundledPluginList.add("com.google.tools.ij.aiplugin")
+    }
     if (ideaProduct == "android-studio") {
       bundledPluginList.add("org.jetbrains.android")
       bundledPluginList.add("com.android.tools.idea.smali")

From 959c3d916c98b0f94171363f6750982f29e5762f Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Tue, 11 Mar 2025 15:31:58 -0700
Subject: [PATCH 04/17] attempting to fix invalid source release 21

---
 tool/github.bat | 2 +-
 tool/github.sh  | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/tool/github.bat b/tool/github.bat
index f913ee690..81949e1aa 100755
--- a/tool/github.bat
+++ b/tool/github.bat
@@ -21,7 +21,7 @@ call dart pub get --no-precompile
 cd ..\..
 
 echo "run tests"
-set JAVA_HOME=%JAVA_HOME_11_X64%
+set JAVA_HOME=%JAVA_HOME_21_X64%
 echo "JAVA_HOME=%JAVA_HOME%"
 dart tool\plugin\bin\main.dart test
 
diff --git a/tool/github.sh b/tool/github.sh
index 305f2eb66..4a261863a 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -7,7 +7,8 @@
 # Fast fail the script on failures.
 set -e
 
-export JAVA_HOME=$JAVA_HOME_17_X64
+export JAVA_HOME=$JAVA_HOME_21_X64
+echo "\$JAVA_HOME = $JAVA_HOME"
 
 # Clone and configure Flutter to the latest stable release
 git clone --depth 1 https://github.com/flutter/flutter.git ../flutter

From 59f07580feffc2d41d5c8758a5367a403f62252d Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 08:55:25 -0700
Subject: [PATCH 05/17] second attempt at supporting Java 21

---
 tool/github.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tool/github.sh b/tool/github.sh
index 4a261863a..0ea0727aa 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -7,7 +7,7 @@
 # Fast fail the script on failures.
 set -e
 
-export JAVA_HOME=$JAVA_HOME_21_X64
+export JAVA_HOME=$JAVA_HOME_21_arm64
 echo "\$JAVA_HOME = $JAVA_HOME"
 
 # Clone and configure Flutter to the latest stable release
@@ -17,6 +17,7 @@ flutter config --no-analytics
 flutter doctor
 export FLUTTER_SDK=`pwd`/../flutter
 
+echo "\$IDEA_VERSION = $IDEA_VERSION"
 if [ "$IDEA_VERSION" = "4.0" -o "$IDEA_VERSION" = "4.1" ] ; then
 
   # Install Java 8 if running on 4.0 or 4.1.

From 3aae778f78fe3b20b343a52f73990b9d104527ba Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 09:16:07 -0700
Subject: [PATCH 06/17] attempt to use the JDK21 maybe installed on Kokoro

---
 tool/github.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tool/github.sh b/tool/github.sh
index 0ea0727aa..73c9211d7 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -7,7 +7,7 @@
 # Fast fail the script on failures.
 set -e
 
-export JAVA_HOME=$JAVA_HOME_21_arm64
+export JAVA_HOME=$WAZE_JAVA_21_PATH
 echo "\$JAVA_HOME = $JAVA_HOME"
 
 # Clone and configure Flutter to the latest stable release

From 89d4b7071a922bb42172e884ad2909c85eca1f35 Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 12:22:26 -0700
Subject: [PATCH 07/17] made change just to check that setup.sh is run

---
 tool/kokoro/setup.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index 2ac1cc21f..102d7386d 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -10,6 +10,8 @@ setup() {
   # set -x
 
   export JAVA_HOME_OLD=$JAVA_HOME
+  echo "\$JAVA_HOME_OLD=$JAVA_HOME"
+  echo "curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz"
   curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz
   (cd ..; tar fx java.tar.gz)
 

From a594042d2cfafe8fb5087cfc3a7eee45f61b53ac Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 12:40:59 -0700
Subject: [PATCH 08/17] getting more information to see if java can be
 installed conditionally

---
 tool/github.sh       | 3 +--
 tool/kokoro/setup.sh | 4 ++++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/tool/github.sh b/tool/github.sh
index 73c9211d7..5aa478992 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -7,8 +7,7 @@
 # Fast fail the script on failures.
 set -e
 
-export JAVA_HOME=$WAZE_JAVA_21_PATH
-echo "\$JAVA_HOME = $JAVA_HOME"
+echo "\$JAVA_HOME=$JAVA_HOME"
 
 # Clone and configure Flutter to the latest stable release
 git clone --depth 1 https://github.com/flutter/flutter.git ../flutter
diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index 102d7386d..4c3f23522 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -9,11 +9,15 @@ setup() {
   # that no confidential information is displayed.
   # set -x
 
+  export JAVA_VERSION_OLD=`java -version`
+  echo "\$JAVA_VERSION_OLD=$JAVA_VERSION"
   export JAVA_HOME_OLD=$JAVA_HOME
   echo "\$JAVA_HOME_OLD=$JAVA_HOME"
   echo "curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz"
   curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz
   (cd ..; tar fx java.tar.gz)
+  export JAVA_VERSION=`java -version`
+  echo "\$JAVA_VERSION=$JAVA_VERSION"
 
   export JAVA_HOME=`pwd`/../jdk-17.0.4.1.jdk/Contents/Home
   export PATH=$PATH:$JAVA_HOME/bin

From c13bd5a5c4186f2fe1dd540caabbe546219ba01c Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 12:55:51 -0700
Subject: [PATCH 09/17] more experimentation

---
 tool/kokoro/setup.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index 4c3f23522..c12a60cde 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -9,8 +9,8 @@ setup() {
   # that no confidential information is displayed.
   # set -x
 
-  export JAVA_VERSION_OLD=`java -version`
-  echo "\$JAVA_VERSION_OLD=$JAVA_VERSION"
+  echo "Old java version:"
+  java -version
   export JAVA_HOME_OLD=$JAVA_HOME
   echo "\$JAVA_HOME_OLD=$JAVA_HOME"
   echo "curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz"
@@ -23,6 +23,7 @@ setup() {
   export PATH=$PATH:$JAVA_HOME/bin
   export JAVA_OPTS=" -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true"
   echo "JAVA_HOME=$JAVA_HOME"
+  echo "New java version:"
   java -version
 
   # Clone and configure Flutter to the latest stable release

From c880dae85a71a48e4c5f2f6c2f34e1536095aa4c Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 13:00:19 -0700
Subject: [PATCH 10/17] more experimentation

---
 tool/kokoro/setup.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index c12a60cde..fbf40a155 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -10,13 +10,13 @@ setup() {
   # set -x
 
   echo "Old java version:"
-  java -version
+  java --version
   export JAVA_HOME_OLD=$JAVA_HOME
   echo "\$JAVA_HOME_OLD=$JAVA_HOME"
   echo "curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz"
   curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz
   (cd ..; tar fx java.tar.gz)
-  export JAVA_VERSION=`java -version`
+  export JAVA_VERSION=`java --version`
   echo "\$JAVA_VERSION=$JAVA_VERSION"
 
   export JAVA_HOME=`pwd`/../jdk-17.0.4.1.jdk/Contents/Home
@@ -24,7 +24,7 @@ setup() {
   export JAVA_OPTS=" -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true"
   echo "JAVA_HOME=$JAVA_HOME"
   echo "New java version:"
-  java -version
+  java --version
 
   # Clone and configure Flutter to the latest stable release
   git clone --depth 1 https://github.com/flutter/flutter.git ../flutter

From bd5b004a8e51260fd60381cfccbf7e14c90f3d9f Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 13:17:07 -0700
Subject: [PATCH 11/17] more experimentation

---
 tool/kokoro/setup.sh | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index fbf40a155..3d9824c6e 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -9,22 +9,28 @@ setup() {
   # that no confidential information is displayed.
   # set -x
 
-  echo "Old java version:"
+  # Set to 0 to use the system java, 1 to download/install a different version of java
+  export USE_CUSTOM_JAVA = 0
+
+  echo "System Java version:"
   java --version
+  # JAVA_HOME_OLD is used by runner.dart
   export JAVA_HOME_OLD=$JAVA_HOME
   echo "\$JAVA_HOME_OLD=$JAVA_HOME"
-  echo "curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz"
-  curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz
-  (cd ..; tar fx java.tar.gz)
-  export JAVA_VERSION=`java --version`
-  echo "\$JAVA_VERSION=$JAVA_VERSION"
-
-  export JAVA_HOME=`pwd`/../jdk-17.0.4.1.jdk/Contents/Home
-  export PATH=$PATH:$JAVA_HOME/bin
+
+  if [ "$USE_CUSTOM_JAVA" = 1 ] ; then
+    echo "curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz"
+    curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz
+    (cd ..; tar fx java.tar.gz)
+    echo "Custom java version:"
+    java --version
+
+    export JAVA_HOME=`pwd`/../jdk-17.0.4.1.jdk/Contents/Home
+    echo "JAVA_HOME=$JAVA_HOME"
+    export PATH=$PATH:$JAVA_HOME/bin
+  fi
+
   export JAVA_OPTS=" -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true"
-  echo "JAVA_HOME=$JAVA_HOME"
-  echo "New java version:"
-  java --version
 
   # Clone and configure Flutter to the latest stable release
   git clone --depth 1 https://github.com/flutter/flutter.git ../flutter

From a62afa6cbfecb2983cd8c28d5d8f3e7c757ed2a0 Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 13:22:01 -0700
Subject: [PATCH 12/17] fixed typo

---
 tool/kokoro/setup.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index 3d9824c6e..a6eb3cd32 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -10,7 +10,7 @@ setup() {
   # set -x
 
   # Set to 0 to use the system java, 1 to download/install a different version of java
-  export USE_CUSTOM_JAVA = 0
+  export USE_CUSTOM_JAVA=0
 
   echo "System Java version:"
   java --version

From 3383b079638a1dc9fb91c03d752c7ce37438d35a Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 14:57:15 -0700
Subject: [PATCH 13/17] more logging

---
 tool/github.sh       | 9 ++++++---
 tool/kokoro/setup.sh | 4 +++-
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/tool/github.sh b/tool/github.sh
index 5aa478992..75d728cd6 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -7,7 +7,7 @@
 # Fast fail the script on failures.
 set -e
 
-echo "\$JAVA_HOME=$JAVA_HOME"
+echo "JAVA_HOME=$JAVA_HOME"
 
 # Clone and configure Flutter to the latest stable release
 git clone --depth 1 https://github.com/flutter/flutter.git ../flutter
@@ -16,7 +16,7 @@ flutter config --no-analytics
 flutter doctor
 export FLUTTER_SDK=`pwd`/../flutter
 
-echo "\$IDEA_VERSION = $IDEA_VERSION"
+echo "IDEA_VERSION = $IDEA_VERSION"
 if [ "$IDEA_VERSION" = "4.0" -o "$IDEA_VERSION" = "4.1" ] ; then
 
   # Install Java 8 if running on 4.0 or 4.1.
@@ -27,7 +27,10 @@ if [ "$IDEA_VERSION" = "4.0" -o "$IDEA_VERSION" = "4.1" ] ; then
 
 fi
 
-java -version
+echo "Installed versions of java:"
+/usr/libexec/java_home -V
+echo "java --version"
+java --version
 
 # Get packages for the top-level grind script utilities.
 echo "pub get `pwd`"
diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index a6eb3cd32..94ce8d31c 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -12,11 +12,13 @@ setup() {
   # Set to 0 to use the system java, 1 to download/install a different version of java
   export USE_CUSTOM_JAVA=0
 
+  echo "Installed versions of java:"
+  /usr/libexec/java_home -V
   echo "System Java version:"
   java --version
   # JAVA_HOME_OLD is used by runner.dart
   export JAVA_HOME_OLD=$JAVA_HOME
-  echo "\$JAVA_HOME_OLD=$JAVA_HOME"
+  echo "export JAVA_HOME_OLD=$JAVA_HOME"
 
   if [ "$USE_CUSTOM_JAVA" = 1 ] ; then
     echo "curl https://download.oracle.com/java/17/archive/jdk-17.0.4.1_macos-x64_bin.tar.gz > ../java.tar.gz"

From 8249239f5dfe36935916046aeaf9cd305d880c8c Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 15:08:59 -0700
Subject: [PATCH 14/17] diagnostics

---
 tool/github.sh       | 6 ++++--
 tool/kokoro/setup.sh | 2 --
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tool/github.sh b/tool/github.sh
index 75d728cd6..dfc255f1a 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -27,8 +27,10 @@ if [ "$IDEA_VERSION" = "4.0" -o "$IDEA_VERSION" = "4.1" ] ; then
 
 fi
 
-echo "Installed versions of java:"
-/usr/libexec/java_home -V
+echo "ls /user/lib/jvm"
+ls /user/lib/jvm
+echo "ls /Library/Java"
+ls /Library/Java
 echo "java --version"
 java --version
 
diff --git a/tool/kokoro/setup.sh b/tool/kokoro/setup.sh
index 94ce8d31c..4af2b2ebd 100644
--- a/tool/kokoro/setup.sh
+++ b/tool/kokoro/setup.sh
@@ -12,8 +12,6 @@ setup() {
   # Set to 0 to use the system java, 1 to download/install a different version of java
   export USE_CUSTOM_JAVA=0
 
-  echo "Installed versions of java:"
-  /usr/libexec/java_home -V
   echo "System Java version:"
   java --version
   # JAVA_HOME_OLD is used by runner.dart

From 3993dcf154d816247c3be4b5b9459b6a703a3681 Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 15:11:38 -0700
Subject: [PATCH 15/17] fixed typo

---
 tool/github.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tool/github.sh b/tool/github.sh
index dfc255f1a..8c358bc85 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -28,7 +28,7 @@ if [ "$IDEA_VERSION" = "4.0" -o "$IDEA_VERSION" = "4.1" ] ; then
 fi
 
 echo "ls /user/lib/jvm"
-ls /user/lib/jvm
+ls /usr/lib/jvm
 echo "ls /Library/Java"
 ls /Library/Java
 echo "java --version"

From 65b433eebb03ae5eb37c4c42448b9a2d49e5753e Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 15:22:34 -0700
Subject: [PATCH 16/17] more logging

---
 tool/github.sh | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/tool/github.sh b/tool/github.sh
index 8c358bc85..0b70c2f34 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -7,7 +7,18 @@
 # Fast fail the script on failures.
 set -e
 
-echo "JAVA_HOME=$JAVA_HOME"
+echo "ls /usr/lib/jvm"
+ls /usr/lib/jvm
+echo "System Java version:"
+java --version
+echo "export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64"
+export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64
+echo "ls $JAVA_HOME"
+ls $JAVA_HOME
+echo "export PATH=$JAVA_HOME/jre/bin:\$PATH"
+export PATH=$JAVA_HOME/jre/bin:$PATH
+echo "Updated Java version:"
+java --version
 
 # Clone and configure Flutter to the latest stable release
 git clone --depth 1 https://github.com/flutter/flutter.git ../flutter
@@ -27,10 +38,6 @@ if [ "$IDEA_VERSION" = "4.0" -o "$IDEA_VERSION" = "4.1" ] ; then
 
 fi
 
-echo "ls /user/lib/jvm"
-ls /usr/lib/jvm
-echo "ls /Library/Java"
-ls /Library/Java
 echo "java --version"
 java --version
 

From aff882b902cf0d518350e72848640770f91d9690 Mon Sep 17 00:00:00 2001
From: Ann Mossman <233583+mossmana@users.noreply.github.com>
Date: Wed, 12 Mar 2025 15:42:07 -0700
Subject: [PATCH 17/17] added informational comments and todo

---
 tool/github.sh | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/tool/github.sh b/tool/github.sh
index 0b70c2f34..814db0d6f 100755
--- a/tool/github.sh
+++ b/tool/github.sh
@@ -7,6 +7,7 @@
 # Fast fail the script on failures.
 set -e
 
+# Log Java information that can be used whenever Java needs to be updated
 echo "ls /usr/lib/jvm"
 ls /usr/lib/jvm
 echo "System Java version:"
@@ -15,10 +16,9 @@ echo "export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64"
 export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64
 echo "ls $JAVA_HOME"
 ls $JAVA_HOME
-echo "export PATH=$JAVA_HOME/jre/bin:\$PATH"
-export PATH=$JAVA_HOME/jre/bin:$PATH
-echo "Updated Java version:"
-java --version
+# Path is not used by the build, only by java --version
+echo "export PATH=$JAVA_HOME/bin:\$PATH"
+export PATH=$JAVA_HOME/bin:$PATH
 
 # Clone and configure Flutter to the latest stable release
 git clone --depth 1 https://github.com/flutter/flutter.git ../flutter
@@ -27,7 +27,8 @@ flutter config --no-analytics
 flutter doctor
 export FLUTTER_SDK=`pwd`/../flutter
 
-echo "IDEA_VERSION = $IDEA_VERSION"
+echo "IDEA_VERSION=$IDEA_VERSION"
+# TODO(mossmana): https://github.com/flutter/flutter-intellij/issues/7967
 if [ "$IDEA_VERSION" = "4.0" -o "$IDEA_VERSION" = "4.1" ] ; then
 
   # Install Java 8 if running on 4.0 or 4.1.