diff --git a/bootstrap/roles/appliance-build.bootstrap/tasks/main.yml b/bootstrap/roles/appliance-build.bootstrap/tasks/main.yml index 579a8399..84782a48 100644 --- a/bootstrap/roles/appliance-build.bootstrap/tasks/main.yml +++ b/bootstrap/roles/appliance-build.bootstrap/tasks/main.yml @@ -70,6 +70,7 @@ - make - man - openjdk-8-jdk-headless + - openjdk-17-jdk-headless - pigz - python3-passlib - python3-pip diff --git a/live-build/misc/ansible-roles/appliance-build.buildserver-internal/tasks/main.yml b/live-build/misc/ansible-roles/appliance-build.buildserver-internal/tasks/main.yml index cb623b23..d2bd6146 100644 --- a/live-build/misc/ansible-roles/appliance-build.buildserver-internal/tasks/main.yml +++ b/live-build/misc/ansible-roles/appliance-build.buildserver-internal/tasks/main.yml @@ -19,6 +19,7 @@ ansible.builtin.apt: name: - openjdk-8-jdk-headless + - openjdk-17-jdk-headless - curl - docker.io - fakeroot diff --git a/live-build/misc/ansible-roles/appliance-build.dcenter/tasks/main.yml b/live-build/misc/ansible-roles/appliance-build.dcenter/tasks/main.yml index 76bd1979..327959a5 100644 --- a/live-build/misc/ansible-roles/appliance-build.dcenter/tasks/main.yml +++ b/live-build/misc/ansible-roles/appliance-build.dcenter/tasks/main.yml @@ -24,10 +24,10 @@ update: false when: lookup('env', 'GITHUB_TOKEN') != '' -- name: Set java to java-8-openjdk-amd64 +- name: Set java to java-17-openjdk-amd64 community.general.alternatives: name: java - path: /usr/lib/jvm/java-8-openjdk-amd64/bin/java + path: /usr/lib/jvm/java-17-openjdk-amd64/bin/java # # By default, ubuntu restricts directories where dhcpd and named diff --git a/live-build/variants/internal-package-mirror/package-lists/package-mirror.list.chroot b/live-build/variants/internal-package-mirror/package-lists/package-mirror.list.chroot index b736d3b3..ede5256d 100644 --- a/live-build/variants/internal-package-mirror/package-lists/package-mirror.list.chroot +++ b/live-build/variants/internal-package-mirror/package-lists/package-mirror.list.chroot @@ -34,6 +34,7 @@ python3-venv git openjdk-8-jdk-headless openjdk-11-jdk-headless +openjdk-17-jdk-headless rng-tools # Nginx is used for serving the mirror. nginx diff --git a/upgrade/upgrade-scripts/verify-jar b/upgrade/upgrade-scripts/verify-jar index 06737510..24847be1 100755 --- a/upgrade/upgrade-scripts/verify-jar +++ b/upgrade/upgrade-scripts/verify-jar @@ -18,6 +18,14 @@ # shellcheck disable=SC1090 . "${BASH_SOURCE%/*}/common.sh" +# JDK Upgrade Note: +# These parameters are required to switch from JDK 8 to JDK 17. +# They ensure that the application runs with Java 17, which is needed +# to support jars compiled with JDK 17. +export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64" +export PATH=$JAVA_HOME/bin:$PATH +JAVA_BIN="$JAVA_HOME/bin/java" + # We source the version information to bring in values from # the version.info file, such as # - VERSION : the appliance version @@ -172,6 +180,8 @@ find "$IMAGE_PATH" -name "delphix-upgrade-verification*.deb" | JAVA_PARAMETERS=( "-Dlog.dir=/var/delphix/server/upgrade-verify" "-Dmdsverify=true" + "--add-opens=java.base/java.lang=ALL-UNNAMED" + "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED" "-jar" "/opt/delphix-upgrade-verification/upgrade-verify.jar" ) @@ -219,7 +229,7 @@ trap verify_jar_verify_cleanup EXIT report_progress 20 "Running application upgrade verification" -/usr/bin/java "${JAVA_PARAMETERS[@]}" "${VERIFY_OPTIONS[@]}" || +"$JAVA_BIN" "${JAVA_PARAMETERS[@]}" "${VERIFY_OPTIONS[@]}" || die "'upgrade-verify.jar' failed in verification container" #