aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/java/devcontainer-feature.json2
-rw-r--r--src/java/install.sh4
-rw-r--r--test/java/install_from_non_default_distro.sh2
-rw-r--r--test/java/install_non_conventional_version.sh11
-rw-r--r--test/java/scenarios.json9
5 files changed, 24 insertions, 4 deletions
diff --git a/src/java/devcontainer-feature.json b/src/java/devcontainer-feature.json
index 7bdec6a..d4aede8 100644
--- a/src/java/devcontainer-feature.json
+++ b/src/java/devcontainer-feature.json
@@ -1,6 +1,6 @@
{
"id": "java",
- "version": "1.2.1",
+ "version": "1.2.2",
"name": "Java (via SDKMAN!)",
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/java",
"description": "Installs Java, SDKMAN! (if not installed), and needed dependencies.",
diff --git a/src/java/install.sh b/src/java/install.sh
index ea43dd3..2decc31 100644
--- a/src/java/install.sh
+++ b/src/java/install.sh
@@ -111,13 +111,13 @@ sdk_install() {
elif echo "${requested_version}" | grep -oE "${full_version_check}" > /dev/null 2>&1; then
echo "${requested_version}"
else
- local regex="${prefix}\\K[0-9]+\\.[0-9]+\\.[0-9]+${suffix}"
+ local regex="${prefix}\\K[0-9]+\\.?[0-9]*\\.?[0-9]*${suffix}"
local version_list=$(su ${USERNAME} -c ". \${SDKMAN_DIR}/bin/sdkman-init.sh && sdk list ${install_type} 2>&1 | grep -oP \"${regex}\" | tr -d ' ' | sort -rV")
if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ]; then
requested_version="$(echo "${version_list}" | head -n 1)"
else
set +e
- requested_version="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")"
+ requested_version="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|-|$)")"
set -e
fi
if [ -z "${requested_version}" ] || ! echo "${version_list}" | grep "^${requested_version//./\\.}$" > /dev/null 2>&1; then
diff --git a/test/java/install_from_non_default_distro.sh b/test/java/install_from_non_default_distro.sh
index d4f5381..021a72a 100644
--- a/test/java/install_from_non_default_distro.sh
+++ b/test/java/install_from_non_default_distro.sh
@@ -5,7 +5,7 @@ set -e
# Optional: Import test library
source dev-container-features-test-lib
-check "java version openjdk 11 installed" grep "openjdk 11." <(java --version)
+check "java version openjdk 19 installed" grep "openjdk 19." <(java --version)
# Report result
reportResults
diff --git a/test/java/install_non_conventional_version.sh b/test/java/install_non_conventional_version.sh
new file mode 100644
index 0000000..3ab648c
--- /dev/null
+++ b/test/java/install_non_conventional_version.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+set -e
+
+# Optional: Import test library
+source dev-container-features-test-lib
+
+check "java version openjdk 21 installed" grep "openjdk 21." <(java --version)
+
+# Report result
+reportResults
diff --git a/test/java/scenarios.json b/test/java/scenarios.json
index 11fb7ba..5d7e684 100644
--- a/test/java/scenarios.json
+++ b/test/java/scenarios.json
@@ -56,5 +56,14 @@
"mavenVersion": "3.6.3"
}
}
+ },
+ "install_non_conventional_version": {
+ "image": "ubuntu:focal",
+ "features":{
+ "java": {
+ "version": "21",
+ "jdkDistro": "graalce"
+ }
+ }
}
}