+}
+
+dl_zulu() {
+ local OS="$1"
+ local ARCH="$2"
+ local VERSION="$3"
+ local TARFILE="$4"
+ declare -A osmap
+ osmap[mac]=macosx
+ osmap[windows]=win
+ osmap[linux]=linux
+ ZOS="${osmap[$OS]}"
+ echo "- Looking for download from Azul"
+ LATEST_DL_URL_FILE=$(wget -q -O - "${ZULU_BASE}/" | perl -n -e 'm/<a\b[^>]*href="(([^"]*\/)?zulu[^"]*-ca-'"${IMAGE_TYPE}""${VERSION}"'\.[^"]*-'"${ZOS}"'_'"${ARCH}"'.tar.gz)"[^"]*>/ && print "$1\n";' | tail -1)
+ local URL="${ZULU_BASE}/${LATEST_DL_URL_FILE}"
+ if [ -z "${LATEST_DL_URL_FILE}" ]; then
+ echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' found at Azul"
+ return 1
+ fi
+ echo "- Found at Azul. Downloading '${URL}'"
+ wget -q -O "${TARFILE}" "${URL}" "${TARFILE}"
+ echo RETURN=$?
+ if [ "$?" != 0 ]; then
+ echo "- Download from Azul failed"
+ return 1
+ fi
+ return 0
+}
+
+declare -A DOWNLOAD_SUMMARY
+
+for FEATURE_VERSION in 8 11 17; do
+ for OS_ARCH in mac:x64 mac:aarch64 windows:x64 linux:x64 linux:arm linux:aarch64; do
+ OS=${OS_ARCH%:*}
+ ARCH=${OS_ARCH#*:}
+ NAME="${IMAGE_TYPE}-${FEATURE_VERSION}-${OS}-${ARCH}"
+ TARFILE="${NAME}.tgz"
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="None"
+ STRIP_COMPONENTS=1
+ MAC_STRIP_COMPONENTS=3
+ echo "* Downloading ${TARFILE}"
+ URL="${BASE}/${FEATURE_VERSION}/${RELEASE_TYPE}/${OS}/${ARCH}/${IMAGE_TYPE}/${JVM_IMPL}/${HEAP_SIZE}/${VENDOR}"
+ wget -q -O "${TARFILE}" "${URL}"
+ if [ "$?" != 0 ]; then
+ echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' at Adoptium"
+ $RM -f "${TARFILE}"
+
+ # Try Azul Zulu (not an API, a bit messier, but has Java 8 JRE for mac:aarch64
+ dl_zulu "${OS}" "${ARCH}" "${FEATURE_VERSION}" "${TARFILE}"