From b966086c296f72f143acfc764f2c14a69f4d77f0 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 deb1d6b4..92b8ffba 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -67,7 +67,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 60caa856..b656d292 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 83537753..fa327bfd 100644 --- a/spec/classes/java_spec.rb +++ b/spec/classes/java_spec.rb @@ -71,21 +71,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