Skip to content

Commit 18cac85

Browse files
authored
Merge pull request #585 from ekohl/debian-12
Support Debian 12 and refactor to make that easier
2 parents ae84592 + 00c7eb1 commit 18cac85

File tree

3 files changed

+81
-57
lines changed

3 files changed

+81
-57
lines changed

manifests/params.pp

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,23 @@
1111
'AlmaLinux', 'Rocky', 'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL', 'SLC', 'CloudLinux': {
1212
# See PR#160 / c8e46b5 for why >= 6.3 < 7.1
1313
if (versioncmp($facts['os']['release']['full'], '7.1') < 0) {
14-
$jdk_package = 'java-1.7.0-openjdk-devel'
15-
$jre_package = 'java-1.7.0-openjdk'
16-
$java_home = '/usr/lib/jvm/java-1.7.0/'
17-
}
18-
else {
19-
$jdk_package = 'java-1.8.0-openjdk-devel'
20-
$jre_package = 'java-1.8.0-openjdk'
21-
$java_home = '/usr/lib/jvm/java-1.8.0/'
14+
$openjdk = '1.7.0'
15+
} else {
16+
$openjdk = '1.8.0'
2217
}
18+
$jdk_package = "java-${openjdk}-openjdk-devel"
19+
$jre_package = "java-${openjdk}-openjdk"
20+
$java_home = "/usr/lib/jvm/java-${openjdk}/"
2321
}
2422
'Fedora': {
2523
if (versioncmp($facts['os']['release']['full'], '21') < 0) {
26-
$jdk_package = 'java-1.7.0-openjdk-devel'
27-
$jre_package = 'java-1.7.0-openjdk'
28-
$java_home = "/usr/lib/jvm/java-1.7.0-openjdk-${facts['os']['architecture']}/"
29-
}
30-
else {
31-
$jdk_package = 'java-1.8.0-openjdk-devel'
32-
$jre_package = 'java-1.8.0-openjdk'
33-
$java_home = "/usr/lib/jvm/java-1.8.0-openjdk-${facts['os']['architecture']}/"
24+
$openjdk = '1.7.0'
25+
} else {
26+
$openjdk = '1.8.0'
3427
}
28+
$jdk_package = "java-${openjdk}-openjdk-devel"
29+
$jre_package = "java-${openjdk}-openjdk"
30+
$java_home = "/usr/lib/jvm/java-${openjdk}-openjdk-${facts['os']['architecture']}/"
3531
}
3632
'Amazon': {
3733
$jdk_package = 'java-1.7.0-openjdk-devel'
@@ -62,24 +58,28 @@
6258
default => $facts['os']['architecture']
6359
}
6460
case $facts['os']['release']['major'] {
61+
'12': {
62+
$openjdk = 17
63+
}
6564
'10', '11', '18.04', '18.10', '19.04', '19.10', '20.04', '22.04': {
66-
$java = {
67-
'jdk' => {
68-
'package' => 'openjdk-11-jdk',
69-
'alternative' => "java-1.11.0-openjdk-${openjdk_architecture}",
70-
'alternative_path' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/bin/java",
71-
'java_home' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/",
72-
},
73-
'jre' => {
74-
'package' => 'openjdk-11-jre-headless',
75-
'alternative' => "java-1.11.0-openjdk-${openjdk_architecture}",
76-
'alternative_path' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/bin/java",
77-
'java_home' => "/usr/lib/jvm/java-1.11.0-openjdk-${openjdk_architecture}/",
78-
},
79-
}
65+
$openjdk = 11
8066
}
8167
default: { fail("unsupported release ${facts['os']['release']['major']}") }
8268
}
69+
$java = {
70+
'jdk' => {
71+
'package' => "openjdk-${openjdk}-jdk",
72+
'alternative' => "java-1.${openjdk}.0-openjdk-${openjdk_architecture}",
73+
'alternative_path' => "/usr/lib/jvm/java-1.${openjdk}.0-openjdk-${openjdk_architecture}/bin/java",
74+
'java_home' => "/usr/lib/jvm/java-1.${openjdk}.0-openjdk-${openjdk_architecture}/",
75+
},
76+
'jre' => {
77+
'package' => "openjdk-${openjdk}-jre-headless",
78+
'alternative' => "java-1.${openjdk}.0-openjdk-${openjdk_architecture}",
79+
'alternative_path' => "/usr/lib/jvm/java-1.${openjdk}.0-openjdk-${openjdk_architecture}/bin/java",
80+
'java_home' => "/usr/lib/jvm/java-1.${openjdk}.0-openjdk-${openjdk_architecture}/",
81+
},
82+
}
8383
}
8484
'OpenBSD': {
8585
$java = {

metadata.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@
4343
"operatingsystem": "Debian",
4444
"operatingsystemrelease": [
4545
"10",
46-
"11"
46+
"11",
47+
"12"
4748
]
4849
},
4950
{

spec/classes/java_spec.rb

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,72 @@
1010
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.8.0/') }
1111
end
1212

13-
context 'when selecting jdk for Debian Buster (10.0)' do
13+
context 'on Debian Buster (10.0)' do
1414
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'buster' }, release: { major: '10' }, architecture: 'amd64' } } }
15-
let(:params) { { 'distribution' => 'jdk' } }
1615

17-
it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') }
18-
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
19-
end
16+
context 'when selecting jdk' do
17+
let(:params) { { 'distribution' => 'jdk' } }
2018

21-
context 'when selecting jre for Debian Buster (10.0)' do
22-
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'buster' }, release: { major: '10' }, architecture: 'amd64' } } }
23-
let(:params) { { 'distribution' => 'jre' } }
19+
it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') }
20+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
21+
end
22+
23+
context 'when selecting jre' do
24+
let(:params) { { 'distribution' => 'jre' } }
2425

25-
it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') }
26-
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
26+
it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') }
27+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
28+
end
2729
end
2830

29-
context 'when selecting jdk for Ubuntu Bionic (18.04)' do
30-
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'bionic' }, release: { major: '18.04' }, architecture: 'amd64' } } }
31-
let(:params) { { 'distribution' => 'jdk' } }
31+
context 'on Debian Bookworm (12)' do
32+
let(:facts) { { os: { family: 'Debian', name: 'Debian', lsb: { distcodename: 'bookworm' }, release: { major: '12' }, architecture: 'amd64' } } }
33+
34+
context 'when selecting jdk' do
35+
let(:params) { { 'distribution' => 'jdk' } }
36+
37+
it { is_expected.to contain_package('java').with_name('openjdk-17-jdk') }
38+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64/') }
39+
end
40+
41+
context 'when selecting jre' do
42+
let(:params) { { 'distribution' => 'jre' } }
3243

33-
it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') }
34-
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
44+
it { is_expected.to contain_package('java').with_name('openjdk-17-jre-headless') }
45+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64/') }
46+
end
3547
end
3648

37-
context 'when selecting jre for Ubuntu Bionic (18.04)' do
49+
context 'on Ubuntu Bionic (18.04)' do
3850
let(:facts) { { os: { family: 'Debian', name: 'Ubuntu', lsb: { distcodename: 'bionic' }, release: { major: '18.04' }, architecture: 'amd64' } } }
39-
let(:params) { { 'distribution' => 'jre' } }
4051

41-
it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') }
42-
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
43-
end
52+
context 'when selecting jdk' do
53+
let(:params) { { 'distribution' => 'jdk' } }
4454

45-
context 'when selecting openjdk for Oracle Linux' do
46-
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '7.0' }, architecture: 'x86_64' } } }
55+
it { is_expected.to contain_package('java').with_name('openjdk-11-jdk') }
56+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
57+
end
58+
59+
context 'when selecting jre' do
60+
let(:params) { { 'distribution' => 'jre' } }
4761

48-
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
62+
it { is_expected.to contain_package('java').with_name('openjdk-11-jre-headless') }
63+
it { is_expected.to contain_file_line('java-home-environment').with_line('JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/') }
64+
end
4965
end
5066

51-
context 'when selecting passed value for Oracle Linux' do
67+
context 'on Oracle Linux 7.0' do
5268
let(:facts) { { os: { family: 'RedHat', name: 'OracleLinux', release: { full: '7.0' }, architecture: 'x86_64' } } }
53-
let(:params) { { 'distribution' => 'jre' } }
5469

55-
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
70+
context 'when selecting openjdk' do
71+
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
72+
end
73+
74+
context 'when selecting passed value for Oracle Linux' do
75+
let(:params) { { 'distribution' => 'jre' } }
76+
77+
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
78+
end
5679
end
5780

5881
context 'when selecting passed value for Scientific Linux' do

0 commit comments

Comments
 (0)