Java: add jdkDistro option (#172)
* add jdkDistro option * bump version
This commit is contained in:
parent
ceb4544cc3
commit
3a28652790
5 changed files with 42 additions and 9 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"id": "java",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"name": "Java (via SDKMAN!)",
|
||||
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/java",
|
||||
"description": "Installs Java, SDKMAN! (if not installed), and needed dependencies.",
|
||||
|
@ -17,6 +17,17 @@
|
|||
"default": "latest",
|
||||
"description": "Select or enter a Java version to install"
|
||||
},
|
||||
"jdkDistro": {
|
||||
"type": "string",
|
||||
"proposals": [
|
||||
"ms",
|
||||
"open",
|
||||
"oracle",
|
||||
"tem"
|
||||
],
|
||||
"default": "ms",
|
||||
"description": "Select or enter a JDK distribution"
|
||||
},
|
||||
"installGradle": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
JAVA_VERSION=${VERSION:-"lts"}
|
||||
INSTALL_GRADLE=${INSTALLGRADLE:-"false"}
|
||||
INSTALL_MAVEN=${INSTALLMAVEN:-"false"}
|
||||
JDK_DISTRO=${JDKDISTRO}
|
||||
|
||||
export SDKMAN_DIR=${SDKMAN_DIR:-"/usr/local/sdkman"}
|
||||
USERNAME=${USERNAME:-"automatic"}
|
||||
|
@ -76,12 +77,13 @@ check_packages() {
|
|||
fi
|
||||
}
|
||||
|
||||
# Use Microsoft JDK for everything but JDK 8
|
||||
jdk_distro="ms"
|
||||
# Use Microsoft JDK for everything but JDK 8 and 18 (unless specified differently with jdkDistro option)
|
||||
get_jdk_distro() {
|
||||
VERSION="$1"
|
||||
if echo "${VERSION}" | grep -E '^8([\s\.]|$)' > /dev/null 2>&1; then
|
||||
jdk_distro="tem"
|
||||
if [ "${JDK_DISTRO}" = "ms" ]; then
|
||||
if echo "${VERSION}" | grep -E '^8([\s\.]|$)' > /dev/null 2>&1 || echo "${VERSION}" | grep -E '^18([\s\.]|$)' > /dev/null 2>&1; then
|
||||
JDK_DISTRO="tem"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -149,7 +151,7 @@ if [ ! -d "${SDKMAN_DIR}" ]; then
|
|||
fi
|
||||
|
||||
get_jdk_distro ${JAVA_VERSION}
|
||||
sdk_install java ${JAVA_VERSION} "\\s*" "(\\.[a-z0-9]+)*-${jdk_distro}\\s*" ".*-[a-z]+$" "true"
|
||||
sdk_install java ${JAVA_VERSION} "\\s*" "(\\.[a-z0-9]+)*-${JDK_DISTRO}\\s*" ".*-[a-z]+$" "true"
|
||||
|
||||
# Additional java versions to be installed but not be set as default.
|
||||
if [ ! -z "${ADDITIONAL_VERSIONS}" ]; then
|
||||
|
@ -158,7 +160,7 @@ if [ ! -z "${ADDITIONAL_VERSIONS}" ]; then
|
|||
read -a additional_versions <<< "$ADDITIONAL_VERSIONS"
|
||||
for version in "${additional_versions[@]}"; do
|
||||
get_jdk_distro ${version}
|
||||
sdk_install java ${version} "\\s*" "(\\.[a-z0-9]+)*-${jdk_distro}\\s*" ".*-[a-z]+$" "false"
|
||||
sdk_install java ${version} "\\s*" "(\\.[a-z0-9]+)*-${JDK_DISTRO}\\s*" ".*-[a-z]+$" "false"
|
||||
done
|
||||
IFS=$OLDIFS
|
||||
su ${USERNAME} -c ". ${SDKMAN_DIR}/bin/sdkman-init.sh && sdk default java ${JAVA_VERSION}"
|
||||
|
|
|
@ -5,7 +5,7 @@ set -e
|
|||
# Optional: Import test library
|
||||
source dev-container-features-test-lib
|
||||
|
||||
check "java version 17 installed as default" java --version | grep 17
|
||||
check "java version 18 installed as default" java --version | grep 18
|
||||
check "java version 11 installed" ls /usr/local/sdkman/candidates/java | grep 11
|
||||
check "java version 8 installed" ls /usr/local/sdkman/candidates/java | grep 8
|
||||
|
||||
|
|
11
test/java/install_from_non_default_distro.sh
Normal file
11
test/java/install_from_non_default_distro.sh
Normal file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Optional: Import test library
|
||||
source dev-container-features-test-lib
|
||||
|
||||
check "java version 18 installed as default" java --version | grep 18
|
||||
|
||||
# Report result
|
||||
reportResults
|
|
@ -1,9 +1,18 @@
|
|||
{
|
||||
"install_from_non_default_distro": {
|
||||
"image": "ubuntu:focal",
|
||||
"features": {
|
||||
"java": {
|
||||
"version": "18",
|
||||
"jdkDistro": "open"
|
||||
}
|
||||
}
|
||||
},
|
||||
"install_additional_java": {
|
||||
"image": "ubuntu:focal",
|
||||
"features": {
|
||||
"java": {
|
||||
"version": "17",
|
||||
"version": "18",
|
||||
"additionalVersions": "11,8"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue