From d88b2157f08a362fbde783585bdb941d4a3654c6 Mon Sep 17 00:00:00 2001 From: Excavator Bot <33266368+svc-excavator-bot@users.noreply.github.com> Date: Mon, 4 Nov 2024 10:44:05 -0800 Subject: [PATCH] [High Priority] Excavator: Update gradle-jdks infrastructure plugins (#69) --- build.gradle | 2 +- gradle/gradle-jdks-functions.sh | 79 +++++++++++++++++--------------- gradle/gradle-jdks-setup.jar | Bin 111536 -> 111980 bytes settings.gradle | 2 +- 4 files changed, 44 insertions(+), 39 deletions(-) diff --git a/build.gradle b/build.gradle index d22e9439..ed4c222e 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.palantir.gradle.jdks:gradle-jdks:0.53.0' + classpath 'com.palantir.gradle.jdks:gradle-jdks:0.54.0' classpath 'com.palantir.gradle.jdkslatest:gradle-jdks-latest:0.16.0' classpath 'com.palantir.jakartapackagealignment:jakarta-package-alignment:0.6.0' classpath 'com.palantir.gradle.externalpublish:gradle-external-publish-plugin:1.19.0' diff --git a/gradle/gradle-jdks-functions.sh b/gradle/gradle-jdks-functions.sh index 49eb3d10..cd643893 100755 --- a/gradle/gradle-jdks-functions.sh +++ b/gradle/gradle-jdks-functions.sh @@ -123,44 +123,49 @@ install_and_setup_jdks() { # Check if distribution exists in $GRADLE_JDKS_HOME jdk_installation_directory="$GRADLE_JDKS_HOME"/"$distribution_local_path" if [ ! -d "$jdk_installation_directory" ]; then - # Download and extract the distribution into a temporary directory echo "JDK installation '$jdk_installation_directory' does not exist, installing '$distribution_url' in progress ..." - in_progress_dir="$TMP_WORK_DIR/$distribution_local_path.in-progress" - mkdir -p "$in_progress_dir" - cd "$in_progress_dir" || die "failed to change dir to $in_progress_dir" - if command -v curl > /dev/null 2>&1; then - echo "Using curl to download $distribution_url" - case "$distribution_url" in - *.zip) - distribution_name=${distribution_url##*/} - curl -C - "$distribution_url" -o "$distribution_name" - tar -xzf "$distribution_name" - ;; - *) - curl -C - "$distribution_url" | tar -xzf - - ;; - esac - elif command -v wget > /dev/null 2>&1; then - echo "Using wget to download $distribution_url" - case "$distribution_url" in - *.zip) - distribution_name=${distribution_url##*/} - wget -c "$distribution_url" -O "$distribution_name" - tar -xzf "$distribution_name" - ;; - *) - wget -qO- -c "$distribution_url" | tar -xzf - - ;; - esac - else - die "ERROR: Neither curl nor wget are installed, Could not set up JAVA_HOME" - fi - cd - || exit - - # Finding the java_home - java_home=$(get_java_home "$in_progress_dir") - "$java_home"/bin/java -cp "$scripts_dir"/gradle-jdks-setup.jar com.palantir.gradle.jdks.setup.GradleJdkInstallationSetup jdkSetup "$jdk_installation_directory" || die "Failed to set up JDK $jdk_installation_directory" - echo "Successfully installed JDK distribution in $jdk_installation_directory" + elif [ ! -f "$jdk_installation_directory/bin/java" ]; then + echo "Java executable not found in $jdk_installation_directory/bin/java, re-installing the JDK...." + else + echo "JDK installation $jdk_installation_directory was already configured" + continue + fi + # Download and extract the distribution into a temporary directory + in_progress_dir="$TMP_WORK_DIR/$distribution_local_path.in-progress" + mkdir -p "$in_progress_dir" + cd "$in_progress_dir" || die "failed to change dir to $in_progress_dir" + if command -v curl > /dev/null 2>&1; then + echo "Using curl to download $distribution_url" + case "$distribution_url" in + *.zip) + distribution_name=${distribution_url##*/} + curl -C - "$distribution_url" -o "$distribution_name" + tar -xzf "$distribution_name" + ;; + *) + curl -k -C - "$distribution_url" | tar -xzf - + ;; + esac + elif command -v wget > /dev/null 2>&1; then + echo "Using wget to download $distribution_url" + case "$distribution_url" in + *.zip) + distribution_name=${distribution_url##*/} + wget -c "$distribution_url" -O "$distribution_name" + tar -xzf "$distribution_name" + ;; + *) + wget -qO- -c "$distribution_url" | tar -xzf - + ;; + esac + else + die "ERROR: Neither curl nor wget are installed, Could not set up JAVA_HOME" fi + cd - || exit + + # Finding the java_home + java_home=$(get_java_home "$in_progress_dir") + "$java_home"/bin/java -cp "$scripts_dir"/gradle-jdks-setup.jar com.palantir.gradle.jdks.setup.GradleJdkInstallationSetup jdkSetup "$jdk_installation_directory" || die "Failed to set up JDK $jdk_installation_directory" + echo "Successfully installed JDK distribution in $jdk_installation_directory" done } diff --git a/gradle/gradle-jdks-setup.jar b/gradle/gradle-jdks-setup.jar index f1b8b4d170cbc0cb7a4d2cdbf8cff0e6dc0b0499..47180284738c0e37fe92959909150b9af32c75e5 100644 GIT binary patch delta 9744 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 z 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 M(7=aA1OD;<4{j@L&Hw-a delta 9334 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 ORv