From 798a8c394803005e6fba394e989ff22be56c5c94 Mon Sep 17 00:00:00 2001 From: Trevor Rea Date: Fri, 5 Jun 2026 14:06:33 +0100 Subject: [PATCH] Add support for Debian 13 and Ubuntu 26.04 Set default OpenJDK to 21 for Ubuntu 26.04 in params.pp Add Ubuntu 26.04 to supported OS releases in metadata.json Extend parameterized tests for Ubuntu 18.04 to include 20.04 and 22.04 (openjdk-11) Add separate tests for Ubuntu 24.04 (openjdk-17) and 26.04 (openjdk-21) --- manifests/params.pp | 2 +- metadata.json | 3 ++- spec/classes/java_spec.rb | 50 ++++++++++++++++++++++++++++++++++----- 3 files changed, 47 insertions(+), 8 deletions(-) diff --git a/manifests/params.pp b/manifests/params.pp index fa352809..6061b0e5 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -58,7 +58,7 @@ default => $facts['os']['architecture'] } case $facts['os']['release']['major'] { - '13': { + '13', '26.04': { $openjdk = 21 } '12', '24.04': { diff --git a/metadata.json b/metadata.json index e0db352c..9e9cbd77 100644 --- a/metadata.json +++ b/metadata.json @@ -55,7 +55,8 @@ "18.04", "20.04", "22.04", - "24.04" + "24.04", + "26.04" ] }, { diff --git a/spec/classes/java_spec.rb b/spec/classes/java_spec.rb index dd51a098..d7ec2d92 100644 --- a/spec/classes/java_spec.rb +++ b/spec/classes/java_spec.rb @@ -64,21 +64,59 @@ end end - context 'on Ubuntu Bionic (18.04)' do - let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'bionic' }, release: { major: '18.04' }, architecture: 'amd64' } } } + ['18.04', '20.04', '22.04'].each do |release| + context "on Ubuntu #{release}" do + let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', release: { major: release }, architecture: 'amd64' } } } + + context 'when selecting jdk' do + let(:params) { { 'distribution' => 'jdk' } } + + it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') } + it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') } + end + + context 'when selecting jre' do + let(:params) { { 'distribution' => 'jre' } } + + it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') } + it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') } + end + end + end + + context 'on Ubuntu 24.04' do + let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', release: { major: '24.04' }, architecture: 'amd64' } } } context 'when selecting jdk' do let(:params) { { 'distribution' => 'jdk' } } - it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') } - it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') } + it { is_expected.to contain_package('java').with_name('openjdk-17-jdk') } + it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64/') } end context 'when selecting jre' do let(:params) { { 'distribution' => 'jre' } } - it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') } - it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') } + it { is_expected.to contain_package('java').with_name('openjdk-17-jre-headless') } + it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64/') } + end + end + + context 'on Ubuntu 26.04' do + let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', release: { major: '26.04' }, architecture: 'amd64' } } } + + context 'when selecting jdk' do + let(:params) { { 'distribution' => 'jdk' } } + + it { is_expected.to contain_package('java').with_name('openjdk-21-jdk') } + it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.21.0-openjdk-amd64/') } + end + + context 'when selecting jre' do + let(:params) { { 'distribution' => 'jre' } } + + it { is_expected.to contain_package('java').with_name('openjdk-21-jre-headless') } + it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.21.0-openjdk-amd64/') } end end