From b9264630e4e04ae8501a6edb7948da1715889175 Mon Sep 17 00:00:00 2001 From: svc-excavator-bot Date: Fri, 18 Oct 2024 13:03:06 +0000 Subject: [PATCH] Excavator: Enabling the new Gradle Toolchains & Daemon JDK Setup --- .gitignore | 3 + build.gradle | 7 +- gradle.properties | 1 + gradle/gradle-daemon-jdk-version | 1 + gradle/gradle-jdks-functions.sh | 166 ++++++++++++++++++ gradle/gradle-jdks-setup.jar | Bin 0 -> 111518 bytes gradle/gradle-jdks-setup.sh | 79 +++++++++ .../jdks/11/linux-glibc/aarch64/download-url | 1 + gradle/jdks/11/linux-glibc/aarch64/local-path | 1 + .../jdks/11/linux-glibc/x86-64/download-url | 1 + gradle/jdks/11/linux-glibc/x86-64/local-path | 1 + gradle/jdks/11/linux-glibc/x86/download-url | 1 + gradle/jdks/11/linux-glibc/x86/local-path | 1 + .../jdks/11/linux-musl/aarch64/download-url | 1 + gradle/jdks/11/linux-musl/aarch64/local-path | 1 + gradle/jdks/11/linux-musl/x86-64/download-url | 1 + gradle/jdks/11/linux-musl/x86-64/local-path | 1 + gradle/jdks/11/macos/aarch64/download-url | 1 + gradle/jdks/11/macos/aarch64/local-path | 1 + gradle/jdks/11/macos/x86-64/download-url | 1 + gradle/jdks/11/macos/x86-64/local-path | 1 + gradle/jdks/11/windows/x86-64/download-url | 1 + gradle/jdks/11/windows/x86-64/local-path | 1 + gradle/jdks/11/windows/x86/download-url | 1 + gradle/jdks/11/windows/x86/local-path | 1 + .../jdks/17/linux-glibc/aarch64/download-url | 1 + gradle/jdks/17/linux-glibc/aarch64/local-path | 1 + .../jdks/17/linux-glibc/x86-64/download-url | 1 + gradle/jdks/17/linux-glibc/x86-64/local-path | 1 + .../jdks/17/linux-musl/aarch64/download-url | 1 + gradle/jdks/17/linux-musl/aarch64/local-path | 1 + gradle/jdks/17/linux-musl/x86-64/download-url | 1 + gradle/jdks/17/linux-musl/x86-64/local-path | 1 + gradle/jdks/17/macos/aarch64/download-url | 1 + gradle/jdks/17/macos/aarch64/local-path | 1 + gradle/jdks/17/macos/x86-64/download-url | 1 + gradle/jdks/17/macos/x86-64/local-path | 1 + gradle/jdks/17/windows/x86-64/download-url | 1 + gradle/jdks/17/windows/x86-64/local-path | 1 + .../jdks/21/linux-glibc/aarch64/download-url | 1 + gradle/jdks/21/linux-glibc/aarch64/local-path | 1 + .../jdks/21/linux-glibc/x86-64/download-url | 1 + gradle/jdks/21/linux-glibc/x86-64/local-path | 1 + .../jdks/21/linux-musl/aarch64/download-url | 1 + gradle/jdks/21/linux-musl/aarch64/local-path | 1 + gradle/jdks/21/linux-musl/x86-64/download-url | 1 + gradle/jdks/21/linux-musl/x86-64/local-path | 1 + gradle/jdks/21/macos/aarch64/download-url | 1 + gradle/jdks/21/macos/aarch64/local-path | 1 + gradle/jdks/21/macos/x86-64/download-url | 1 + gradle/jdks/21/macos/x86-64/local-path | 1 + gradle/jdks/21/windows/x86-64/download-url | 1 + gradle/jdks/21/windows/x86-64/local-path | 1 + gradlew | 11 +- settings.gradle | 10 ++ 55 files changed, 322 insertions(+), 2 deletions(-) create mode 100644 gradle/gradle-daemon-jdk-version create mode 100755 gradle/gradle-jdks-functions.sh create mode 100644 gradle/gradle-jdks-setup.jar create mode 100755 gradle/gradle-jdks-setup.sh create mode 100644 gradle/jdks/11/linux-glibc/aarch64/download-url create mode 100644 gradle/jdks/11/linux-glibc/aarch64/local-path create mode 100644 gradle/jdks/11/linux-glibc/x86-64/download-url create mode 100644 gradle/jdks/11/linux-glibc/x86-64/local-path create mode 100644 gradle/jdks/11/linux-glibc/x86/download-url create mode 100644 gradle/jdks/11/linux-glibc/x86/local-path create mode 100644 gradle/jdks/11/linux-musl/aarch64/download-url create mode 100644 gradle/jdks/11/linux-musl/aarch64/local-path create mode 100644 gradle/jdks/11/linux-musl/x86-64/download-url create mode 100644 gradle/jdks/11/linux-musl/x86-64/local-path create mode 100644 gradle/jdks/11/macos/aarch64/download-url create mode 100644 gradle/jdks/11/macos/aarch64/local-path create mode 100644 gradle/jdks/11/macos/x86-64/download-url create mode 100644 gradle/jdks/11/macos/x86-64/local-path create mode 100644 gradle/jdks/11/windows/x86-64/download-url create mode 100644 gradle/jdks/11/windows/x86-64/local-path create mode 100644 gradle/jdks/11/windows/x86/download-url create mode 100644 gradle/jdks/11/windows/x86/local-path create mode 100644 gradle/jdks/17/linux-glibc/aarch64/download-url create mode 100644 gradle/jdks/17/linux-glibc/aarch64/local-path create mode 100644 gradle/jdks/17/linux-glibc/x86-64/download-url create mode 100644 gradle/jdks/17/linux-glibc/x86-64/local-path create mode 100644 gradle/jdks/17/linux-musl/aarch64/download-url create mode 100644 gradle/jdks/17/linux-musl/aarch64/local-path create mode 100644 gradle/jdks/17/linux-musl/x86-64/download-url create mode 100644 gradle/jdks/17/linux-musl/x86-64/local-path create mode 100644 gradle/jdks/17/macos/aarch64/download-url create mode 100644 gradle/jdks/17/macos/aarch64/local-path create mode 100644 gradle/jdks/17/macos/x86-64/download-url create mode 100644 gradle/jdks/17/macos/x86-64/local-path create mode 100644 gradle/jdks/17/windows/x86-64/download-url create mode 100644 gradle/jdks/17/windows/x86-64/local-path create mode 100644 gradle/jdks/21/linux-glibc/aarch64/download-url create mode 100644 gradle/jdks/21/linux-glibc/aarch64/local-path create mode 100644 gradle/jdks/21/linux-glibc/x86-64/download-url create mode 100644 gradle/jdks/21/linux-glibc/x86-64/local-path create mode 100644 gradle/jdks/21/linux-musl/aarch64/download-url create mode 100644 gradle/jdks/21/linux-musl/aarch64/local-path create mode 100644 gradle/jdks/21/linux-musl/x86-64/download-url create mode 100644 gradle/jdks/21/linux-musl/x86-64/local-path create mode 100644 gradle/jdks/21/macos/aarch64/download-url create mode 100644 gradle/jdks/21/macos/aarch64/local-path create mode 100644 gradle/jdks/21/macos/x86-64/download-url create mode 100644 gradle/jdks/21/macos/x86-64/local-path create mode 100644 gradle/jdks/21/windows/x86-64/download-url create mode 100644 gradle/jdks/21/windows/x86-64/local-path diff --git a/.gitignore b/.gitignore index 0f1f887cc..844a3b331 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,6 @@ generated_testSrc/ # Mac .DS_Store build/ + +# Gradle JDKs setup +!gradle/* diff --git a/build.gradle b/build.gradle index 780d1a3cb..ccdc82fba 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { dependencies { classpath 'com.palantir.jakartapackagealignment:jakarta-package-alignment:0.6.0' - classpath 'com.palantir.gradle.jdks:gradle-jdks:0.37.0' + classpath 'com.palantir.gradle.jdks:gradle-jdks:0.51.0' classpath 'com.palantir.gradle.jdkslatest:gradle-jdks-latest:0.14.0' classpath 'com.palantir.baseline:gradle-baseline-java:5.50.0' classpath 'com.palantir.gradle.consistentversions:gradle-consistent-versions:2.27.0' @@ -26,6 +26,7 @@ apply plugin: 'com.palantir.baseline' apply plugin: 'com.palantir.baseline-java-versions' apply plugin: 'com.palantir.consistent-versions' apply plugin: 'com.palantir.git-version' +apply plugin: 'com.palantir.jdks' apply plugin: 'com.palantir.jdks.latest' allprojects { @@ -56,3 +57,7 @@ javaVersions { libraryTarget = 17 runtime = 21 } + +jdks { + daemonTarget = 17 +} diff --git a/gradle.properties b/gradle.properties index 85d6c5edf..5affd3ece 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ https.protocols="TLSv1.2" org.gradle.parallel=true org.gradle.jvmargs = --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED +palantir.jdk.setup.enabled=true diff --git a/gradle/gradle-daemon-jdk-version b/gradle/gradle-daemon-jdk-version new file mode 100644 index 000000000..98d9bcb75 --- /dev/null +++ b/gradle/gradle-daemon-jdk-version @@ -0,0 +1 @@ +17 diff --git a/gradle/gradle-jdks-functions.sh b/gradle/gradle-jdks-functions.sh new file mode 100755 index 000000000..49eb3d106 --- /dev/null +++ b/gradle/gradle-jdks-functions.sh @@ -0,0 +1,166 @@ +#!/bin/sh + +set -e +# Set pipefail if it works in a subshell, disregard if unsupported +# shellcheck disable=SC3040 +if (set -o pipefail 2>/dev/null); then + set -o pipefail +fi +# +# (c) Copyright 2024 Palantir Technologies Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +TMP_WORK_DIR=$(mktemp -d) +export TMP_WORK_DIR + +cleanup() { + [ -d "$TMP_WORK_DIR" ] && rm -rf "$TMP_WORK_DIR" +} + +die() { + echo + echo "$*" + echo + cleanup + exit 1 +} >&2 + +read_value() { + if [ ! -f "$1" ]; then + die "ERROR: $1 not found, aborting Gradle JDK setup" + fi + read -r value < "$1" || die "ERROR: Unable to read value from $1. Make sure the file ends with a newline." + echo "$value" +} + +get_os() { + # OS specific support; same as gradle-jdks:com.palantir.gradle.jdks.setup.common.CurrentOs.java + case "$( uname )" in #( + Linux* ) os_name="linux" ;; #( + Darwin* ) os_name="macos" ;; #( + * ) die "ERROR Unsupported OS: $( uname )" ;; + esac + + if [ "$os_name" = "linux" ]; then + ldd_output=$(ldd --version 2>&1 || true) + if echo "$ldd_output" | grep -qi glibc; then + os_name="linux-glibc" + elif echo "$ldd_output" | grep -qi "gnu libc"; then + os_name="linux-glibc" + elif echo "$ldd_output" | grep -qi musl; then + os_name="linux-musl" + else + die "Unable to determine glibc or musl based Linux distribution: ldd_output: $ldd_output" + fi + fi + + echo "$os_name" +} + +get_arch() { + # Arch specific support, see: gradle-jdks:com.palantir.gradle.jdks.setup.common.CurrentArch.java + case "$(uname -m)" in #( + x86_64* ) arch_name="x86-64" ;; #( + x64* ) arch_name="x86-64" ;; #( + amd64* ) arch_name="x86-64" ;; #( + arm64* ) arch_name="aarch64" ;; #( + arm* ) arch_name="aarch64" ;; #( + aarch64* ) arch_name="aarch64" ;; #( + x86* ) arch_name="x86" ;; #( + i686* ) arch_name="x86" ;; #( + * ) die "ERROR Unsupported architecture: $( uname -m )" ;; + esac + + echo "$arch_name" +} + +get_gradle_jdks_home() { + gradle_user_home=${GRADLE_USER_HOME:-"$HOME"/.gradle} + gradle_jdks_home="$gradle_user_home"/gradle-jdks + echo "$gradle_jdks_home" +} + +get_java_home() { + java_bin=$(find "$1" -type f -name "java" -path "*/bin/java" ! -type l -print -quit) + echo "${java_bin%/*/*}" +} + +GRADLE_JDKS_HOME=$(get_gradle_jdks_home) +mkdir -p "$GRADLE_JDKS_HOME" +export GRADLE_JDKS_HOME + +OS=$(get_os) +export OS + +ARCH=$(get_arch) +export ARCH + +install_and_setup_jdks() { + gradle_dir=$1 + scripts_dir=${2:-"$1"} + + for dir in "$gradle_dir"/jdks/*/; do + major_version_dir=${dir%*/} + major_version=${major_version_dir##*/} + if [ "$major_version" = "8" ]; then + echo "Skipping JDK 8 installation as it is not supported by Gradle JDKs Setup." + continue + fi + distribution_local_path=$(read_value "$major_version_dir"/"$OS"/"$ARCH"/local-path) + distribution_url=$(read_value "$major_version_dir"/"$OS"/"$ARCH"/download-url) + # 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" + fi + done +} diff --git a/gradle/gradle-jdks-setup.jar b/gradle/gradle-jdks-setup.jar new file mode 100644 index 0000000000000000000000000000000000000000..b6386839c858b023de6109488262cbc144b56ba1 GIT binary patch literal 111518 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 literal 0 HcmV?d00001 diff --git a/gradle/gradle-jdks-setup.sh b/gradle/gradle-jdks-setup.sh new file mode 100755 index 000000000..f8cd65782 --- /dev/null +++ b/gradle/gradle-jdks-setup.sh @@ -0,0 +1,79 @@ +#!/bin/sh +# +# (c) Copyright 2024 Palantir Technologies Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle jdk set up script for POSIX generated by gradle-jdks. +# +# This script does the following: +# (1) Downloads all the JDK distributions that are present in `gradle/jdks` +# (2) Installs the distributions in a temporary directory +# (3) Calls the java class `GradleJdkInstallationSetup` that will move each distribution to +# `$GRADLE_USER_HOME/${local_path}` based on the local_path=`gradle/jdks/${majorVersion}/${os}/${arch}/local_path` +# and it will set up the certificates based on `gradle/certs` entries for the locally installed distribution +# (4) Sets `org.gradle.java.home` to the JDK distribution that is used by the Gradle Daemon +# +# +# Important for running: +# This script requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command» and «set». +# +############################################################################## + +set -e +# Set pipefail if it works in a subshell, disregard if unsupported +# shellcheck disable=SC3040 +if (set -o pipefail 2>/dev/null); then + set -o pipefail +fi + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +APP_HOME=${APP_HOME%/gradle} +APP_GRADLE_DIR="$APP_HOME"/gradle + +# Loading gradle jdk functions +. "$APP_GRADLE_DIR"/gradle-jdks-functions.sh + +install_and_setup_jdks "$APP_GRADLE_DIR" + +gradle_daemon_jdk_version=$(read_value "$APP_GRADLE_DIR"/gradle-daemon-jdk-version) +gradle_daemon_jdk_distribution_local_path=$(read_value "$APP_GRADLE_DIR"/jdks/"$gradle_daemon_jdk_version"/"$OS"/"$ARCH"/local-path) +"$GRADLE_JDKS_HOME"/"$gradle_daemon_jdk_distribution_local_path"/bin/java -cp "$APP_GRADLE_DIR"/gradle-jdks-setup.jar com.palantir.gradle.jdks.setup.GradleJdkInstallationSetup daemonSetup "$APP_HOME" "$GRADLE_JDKS_HOME/$gradle_daemon_jdk_distribution_local_path" + +# [Used by ./gradlew only] Setting the Gradle Daemon Java Home to the JDK distribution +set -- "-Dorg.gradle.java.home=$GRADLE_JDKS_HOME/$gradle_daemon_jdk_distribution_local_path" "$@" + +cleanup diff --git a/gradle/jdks/11/linux-glibc/aarch64/download-url b/gradle/jdks/11/linux-glibc/aarch64/download-url new file mode 100644 index 000000000..7b0723b19 --- /dev/null +++ b/gradle/jdks/11/linux-glibc/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-linux-aarch64.tar.gz diff --git a/gradle/jdks/11/linux-glibc/aarch64/local-path b/gradle/jdks/11/linux-glibc/aarch64/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/linux-glibc/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/linux-glibc/x86-64/download-url b/gradle/jdks/11/linux-glibc/x86-64/download-url new file mode 100644 index 000000000..85def2855 --- /dev/null +++ b/gradle/jdks/11/linux-glibc/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-linux-x64.tar.gz diff --git a/gradle/jdks/11/linux-glibc/x86-64/local-path b/gradle/jdks/11/linux-glibc/x86-64/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/linux-glibc/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/linux-glibc/x86/download-url b/gradle/jdks/11/linux-glibc/x86/download-url new file mode 100644 index 000000000..85a73767e --- /dev/null +++ b/gradle/jdks/11/linux-glibc/x86/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-linux-i386.tar.gz diff --git a/gradle/jdks/11/linux-glibc/x86/local-path b/gradle/jdks/11/linux-glibc/x86/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/linux-glibc/x86/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/linux-musl/aarch64/download-url b/gradle/jdks/11/linux-musl/aarch64/download-url new file mode 100644 index 000000000..f41195b18 --- /dev/null +++ b/gradle/jdks/11/linux-musl/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-alpine-linux-aarch64.tar.gz diff --git a/gradle/jdks/11/linux-musl/aarch64/local-path b/gradle/jdks/11/linux-musl/aarch64/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/linux-musl/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/linux-musl/x86-64/download-url b/gradle/jdks/11/linux-musl/x86-64/download-url new file mode 100644 index 000000000..7f8c4ba4f --- /dev/null +++ b/gradle/jdks/11/linux-musl/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-alpine-linux-x64.tar.gz diff --git a/gradle/jdks/11/linux-musl/x86-64/local-path b/gradle/jdks/11/linux-musl/x86-64/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/linux-musl/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/macos/aarch64/download-url b/gradle/jdks/11/macos/aarch64/download-url new file mode 100644 index 000000000..aa77a6548 --- /dev/null +++ b/gradle/jdks/11/macos/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-macosx-aarch64.tar.gz diff --git a/gradle/jdks/11/macos/aarch64/local-path b/gradle/jdks/11/macos/aarch64/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/macos/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/macos/x86-64/download-url b/gradle/jdks/11/macos/x86-64/download-url new file mode 100644 index 000000000..440142228 --- /dev/null +++ b/gradle/jdks/11/macos/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-macosx-x64.tar.gz diff --git a/gradle/jdks/11/macos/x86-64/local-path b/gradle/jdks/11/macos/x86-64/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/macos/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/windows/x86-64/download-url b/gradle/jdks/11/windows/x86-64/download-url new file mode 100644 index 000000000..baa0f2436 --- /dev/null +++ b/gradle/jdks/11/windows/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-windows-x64-jdk.zip diff --git a/gradle/jdks/11/windows/x86-64/local-path b/gradle/jdks/11/windows/x86-64/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/windows/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/11/windows/x86/download-url b/gradle/jdks/11/windows/x86/download-url new file mode 100644 index 000000000..cd428b052 --- /dev/null +++ b/gradle/jdks/11/windows/x86/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/11.0.23.9.1/amazon-corretto-11.0.23.9.1-windows-i386-jdk.zip diff --git a/gradle/jdks/11/windows/x86/local-path b/gradle/jdks/11/windows/x86/local-path new file mode 100644 index 000000000..572b61684 --- /dev/null +++ b/gradle/jdks/11/windows/x86/local-path @@ -0,0 +1 @@ +amazon-corretto-11.0.23.9.1 diff --git a/gradle/jdks/17/linux-glibc/aarch64/download-url b/gradle/jdks/17/linux-glibc/aarch64/download-url new file mode 100644 index 000000000..0e194451f --- /dev/null +++ b/gradle/jdks/17/linux-glibc/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/17.0.11.9.1/amazon-corretto-17.0.11.9.1-linux-aarch64.tar.gz diff --git a/gradle/jdks/17/linux-glibc/aarch64/local-path b/gradle/jdks/17/linux-glibc/aarch64/local-path new file mode 100644 index 000000000..6a425d6db --- /dev/null +++ b/gradle/jdks/17/linux-glibc/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-17.0.11.9.1 diff --git a/gradle/jdks/17/linux-glibc/x86-64/download-url b/gradle/jdks/17/linux-glibc/x86-64/download-url new file mode 100644 index 000000000..8074d52e0 --- /dev/null +++ b/gradle/jdks/17/linux-glibc/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/17.0.11.9.1/amazon-corretto-17.0.11.9.1-linux-x64.tar.gz diff --git a/gradle/jdks/17/linux-glibc/x86-64/local-path b/gradle/jdks/17/linux-glibc/x86-64/local-path new file mode 100644 index 000000000..6a425d6db --- /dev/null +++ b/gradle/jdks/17/linux-glibc/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-17.0.11.9.1 diff --git a/gradle/jdks/17/linux-musl/aarch64/download-url b/gradle/jdks/17/linux-musl/aarch64/download-url new file mode 100644 index 000000000..6f5a98028 --- /dev/null +++ b/gradle/jdks/17/linux-musl/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/17.0.11.9.1/amazon-corretto-17.0.11.9.1-alpine-linux-aarch64.tar.gz diff --git a/gradle/jdks/17/linux-musl/aarch64/local-path b/gradle/jdks/17/linux-musl/aarch64/local-path new file mode 100644 index 000000000..6a425d6db --- /dev/null +++ b/gradle/jdks/17/linux-musl/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-17.0.11.9.1 diff --git a/gradle/jdks/17/linux-musl/x86-64/download-url b/gradle/jdks/17/linux-musl/x86-64/download-url new file mode 100644 index 000000000..2323523a7 --- /dev/null +++ b/gradle/jdks/17/linux-musl/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/17.0.11.9.1/amazon-corretto-17.0.11.9.1-alpine-linux-x64.tar.gz diff --git a/gradle/jdks/17/linux-musl/x86-64/local-path b/gradle/jdks/17/linux-musl/x86-64/local-path new file mode 100644 index 000000000..6a425d6db --- /dev/null +++ b/gradle/jdks/17/linux-musl/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-17.0.11.9.1 diff --git a/gradle/jdks/17/macos/aarch64/download-url b/gradle/jdks/17/macos/aarch64/download-url new file mode 100644 index 000000000..9db318778 --- /dev/null +++ b/gradle/jdks/17/macos/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/17.0.11.9.1/amazon-corretto-17.0.11.9.1-macosx-aarch64.tar.gz diff --git a/gradle/jdks/17/macos/aarch64/local-path b/gradle/jdks/17/macos/aarch64/local-path new file mode 100644 index 000000000..6a425d6db --- /dev/null +++ b/gradle/jdks/17/macos/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-17.0.11.9.1 diff --git a/gradle/jdks/17/macos/x86-64/download-url b/gradle/jdks/17/macos/x86-64/download-url new file mode 100644 index 000000000..d5194d587 --- /dev/null +++ b/gradle/jdks/17/macos/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/17.0.11.9.1/amazon-corretto-17.0.11.9.1-macosx-x64.tar.gz diff --git a/gradle/jdks/17/macos/x86-64/local-path b/gradle/jdks/17/macos/x86-64/local-path new file mode 100644 index 000000000..6a425d6db --- /dev/null +++ b/gradle/jdks/17/macos/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-17.0.11.9.1 diff --git a/gradle/jdks/17/windows/x86-64/download-url b/gradle/jdks/17/windows/x86-64/download-url new file mode 100644 index 000000000..e98309580 --- /dev/null +++ b/gradle/jdks/17/windows/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/17.0.11.9.1/amazon-corretto-17.0.11.9.1-windows-x64-jdk.zip diff --git a/gradle/jdks/17/windows/x86-64/local-path b/gradle/jdks/17/windows/x86-64/local-path new file mode 100644 index 000000000..6a425d6db --- /dev/null +++ b/gradle/jdks/17/windows/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-17.0.11.9.1 diff --git a/gradle/jdks/21/linux-glibc/aarch64/download-url b/gradle/jdks/21/linux-glibc/aarch64/download-url new file mode 100644 index 000000000..72c1eb923 --- /dev/null +++ b/gradle/jdks/21/linux-glibc/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/21.0.3.9.1/amazon-corretto-21.0.3.9.1-linux-aarch64.tar.gz diff --git a/gradle/jdks/21/linux-glibc/aarch64/local-path b/gradle/jdks/21/linux-glibc/aarch64/local-path new file mode 100644 index 000000000..166147743 --- /dev/null +++ b/gradle/jdks/21/linux-glibc/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-21.0.3.9.1 diff --git a/gradle/jdks/21/linux-glibc/x86-64/download-url b/gradle/jdks/21/linux-glibc/x86-64/download-url new file mode 100644 index 000000000..6ae2663d3 --- /dev/null +++ b/gradle/jdks/21/linux-glibc/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/21.0.3.9.1/amazon-corretto-21.0.3.9.1-linux-x64.tar.gz diff --git a/gradle/jdks/21/linux-glibc/x86-64/local-path b/gradle/jdks/21/linux-glibc/x86-64/local-path new file mode 100644 index 000000000..166147743 --- /dev/null +++ b/gradle/jdks/21/linux-glibc/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-21.0.3.9.1 diff --git a/gradle/jdks/21/linux-musl/aarch64/download-url b/gradle/jdks/21/linux-musl/aarch64/download-url new file mode 100644 index 000000000..41afa2778 --- /dev/null +++ b/gradle/jdks/21/linux-musl/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/21.0.3.9.1/amazon-corretto-21.0.3.9.1-alpine-linux-aarch64.tar.gz diff --git a/gradle/jdks/21/linux-musl/aarch64/local-path b/gradle/jdks/21/linux-musl/aarch64/local-path new file mode 100644 index 000000000..166147743 --- /dev/null +++ b/gradle/jdks/21/linux-musl/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-21.0.3.9.1 diff --git a/gradle/jdks/21/linux-musl/x86-64/download-url b/gradle/jdks/21/linux-musl/x86-64/download-url new file mode 100644 index 000000000..44bf00181 --- /dev/null +++ b/gradle/jdks/21/linux-musl/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/21.0.3.9.1/amazon-corretto-21.0.3.9.1-alpine-linux-x64.tar.gz diff --git a/gradle/jdks/21/linux-musl/x86-64/local-path b/gradle/jdks/21/linux-musl/x86-64/local-path new file mode 100644 index 000000000..166147743 --- /dev/null +++ b/gradle/jdks/21/linux-musl/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-21.0.3.9.1 diff --git a/gradle/jdks/21/macos/aarch64/download-url b/gradle/jdks/21/macos/aarch64/download-url new file mode 100644 index 000000000..8f0e3bbe6 --- /dev/null +++ b/gradle/jdks/21/macos/aarch64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/21.0.3.9.1/amazon-corretto-21.0.3.9.1-macosx-aarch64.tar.gz diff --git a/gradle/jdks/21/macos/aarch64/local-path b/gradle/jdks/21/macos/aarch64/local-path new file mode 100644 index 000000000..166147743 --- /dev/null +++ b/gradle/jdks/21/macos/aarch64/local-path @@ -0,0 +1 @@ +amazon-corretto-21.0.3.9.1 diff --git a/gradle/jdks/21/macos/x86-64/download-url b/gradle/jdks/21/macos/x86-64/download-url new file mode 100644 index 000000000..424e33edd --- /dev/null +++ b/gradle/jdks/21/macos/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/21.0.3.9.1/amazon-corretto-21.0.3.9.1-macosx-x64.tar.gz diff --git a/gradle/jdks/21/macos/x86-64/local-path b/gradle/jdks/21/macos/x86-64/local-path new file mode 100644 index 000000000..166147743 --- /dev/null +++ b/gradle/jdks/21/macos/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-21.0.3.9.1 diff --git a/gradle/jdks/21/windows/x86-64/download-url b/gradle/jdks/21/windows/x86-64/download-url new file mode 100644 index 000000000..f3e592432 --- /dev/null +++ b/gradle/jdks/21/windows/x86-64/download-url @@ -0,0 +1 @@ +https://corretto.aws/downloads/resources/21.0.3.9.1/amazon-corretto-21.0.3.9.1-windows-x64-jdk.zip diff --git a/gradle/jdks/21/windows/x86-64/local-path b/gradle/jdks/21/windows/x86-64/local-path new file mode 100644 index 000000000..166147743 --- /dev/null +++ b/gradle/jdks/21/windows/x86-64/local-path @@ -0,0 +1 @@ +amazon-corretto-21.0.3.9.1 diff --git a/gradlew b/gradlew index 1aa94a426..a6efe2202 100755 --- a/gradlew +++ b/gradlew @@ -61,6 +61,15 @@ # You can find Gradle at https://github.com/gradle/gradle/. # ############################################################################## +# >>> Gradle JDK setup >>> +# !! Contents within this block are managed by 'palantir/gradle-jdks' !! +if [ -f gradle/gradle-jdks-setup.sh ]; then + if ! . gradle/gradle-jdks-setup.sh; then + echo "Failed to set up JDK, running gradle/gradle-jdks-setup.sh failed with non-zero exit code" + exit 1 + fi +fi +# <<< Gradle JDK setup <<< # Attempt to set APP_HOME @@ -246,4 +255,4 @@ eval "set -- $( tr '\n' ' ' )" '"$@"' -exec "$JAVACMD" "$@" +exec "$JAVACMD" "$@" \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 6eeaec703..293ed73b0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,13 @@ +buildscript { + repositories { + mavenCentral() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } } + gradlePluginPortal() { metadataSources { mavenPom(); ignoreGradleMetadataRedirection() } } + } + dependencies { + classpath 'com.palantir.gradle.jdks:gradle-jdks-settings:0.51.0' + } +} +apply plugin: 'com.palantir.jdks.settings' rootProject.name = 'hadoop-crypto-root' include 'crypto-core'