From f3555b7924d9e6e1f0e6e88b81f857833cede39b Mon Sep 17 00:00:00 2001 From: svc-excavator-bot Date: Fri, 4 Oct 2024 20:36:49 +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 16f1fc9d3..a38c18b4d 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.48.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.26.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..6f3e775a6c5a966fd76d0195c0deca7b091c0cce GIT binary patch literal 111518 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

vB|$QOBWCE@d%CL81~%Q2 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

Dvg~!lFv3+;4XbPj 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

hpz=@n`?(dwlY1+Z%l`ggd@KtfFyd&pI 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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..0370d887d 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.48.0' + } +} +apply plugin: 'com.palantir.jdks.settings' rootProject.name = 'hadoop-crypto-root' include 'crypto-core'