Skip to content

Commit 86dcb2d

Browse files
committed
Remove Java 8 support
Signed-off-by: Dan Webb <[email protected]>
1 parent fa3aa9a commit 86dcb2d

11 files changed

+26
-161
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ This file is used to list changes made in each version of the Java cookbook.
66

77
- Update Temurin support
88
- Add script to check for Java updates
9+
- Remove Java 8 support
910

1011
## 12.1.1 - *2024-12-05*
1112

bin/check_java_versions.rb

+10-3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,20 @@
55
require 'uri'
66

77
TEMURIN_REPOS = {
8-
'8' => 'adoptium/temurin8-binaries',
98
'11' => 'adoptium/temurin11-binaries',
109
'17' => 'adoptium/temurin17-binaries',
1110
}.freeze
1211

12+
SEMERU_REPOS = {
13+
'11' => 'ibmruntimes/semeru11-binaries',
14+
'17' => 'ibmruntimes/semeru17-binaries',
15+
}.freeze
16+
17+
CORRETTO_REPOS = {
18+
'11' => 'corretto-11',
19+
'17' => 'corretto-17',
20+
}.freeze
21+
1322
def get_latest_release(repo)
1423
uri = URI("https://api.github.com/repos/#{repo}/releases/latest")
1524
response = Net::HTTP.get_response(uri)
@@ -75,8 +84,6 @@ def current_url_in_cookbook(version)
7584
content = File.read(helpers_file)
7685

7786
case version
78-
when '8'
79-
content.match(/temurin.*when '8'\s+'(.+?)'/m)&.[](1)
8087
when '11'
8188
content.match(/temurin.*when '11'\s+'(.+?)'/m)&.[](1)
8289
when '17'

kitchen.yml

-28
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,6 @@ suites:
4848
inputs: { java_version: "17" }
4949

5050
# Temurin/Semeru
51-
- name: temurin-8-hotspot
52-
run_list:
53-
- recipe[test::openjdk]
54-
attributes:
55-
version: 8
56-
variant: hotspot
57-
verifier:
58-
inspec_tests: [test/integration/openjdk]
59-
inputs: { java_version: "8" }
60-
6151
- name: temurin-11-hotspot
6252
run_list:
6353
- recipe[test::openjdk]
@@ -88,17 +78,6 @@ suites:
8878
inspec_tests: [test/integration/openjdk]
8979
inputs: { java_version: "17" }
9080

91-
- name: temurin-8
92-
run_list:
93-
- recipe[test::openjdk]
94-
attributes:
95-
java:
96-
version: "8"
97-
flavor: "temurin"
98-
verifier:
99-
inspec_tests: [test/integration/openjdk]
100-
inputs: { java_version: "8" }
101-
10281
- name: temurin-11
10382
run_list:
10483
- recipe[test::openjdk]
@@ -122,13 +101,6 @@ suites:
122101
inputs: { java_version: "17" }
123102

124103
# Corretto
125-
- name: corretto-8
126-
run_list:
127-
- recipe[test::corretto]
128-
attributes: { version: "8" }
129-
verifier:
130-
inspec_tests: [test/integration/corretto]
131-
inputs: { java_version: "8" }
132104
- name: corretto-11
133105
run_list:
134106
- recipe[test::corretto]

libraries/certificate_helpers.rb

+4-7
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,13 @@ def default_truststore_path(version, java_home)
55
if version.to_i > 8
66
"#{java_home}/lib/security/cacerts"
77
else
8-
"#{java_home}/jre/lib/security/cacerts"
8+
Chef::Log.fatal('Java 8 is no longer supported')
9+
raise 'Java 8 is no longer supported'
910
end
1011
end
1112

12-
def keystore_argument(version, cacerts, truststore_path)
13-
if version.to_i > 8 && cacerts
14-
'-cacerts'
15-
else
16-
"-keystore #{truststore_path}"
17-
end
13+
def keystore_argument(cacerts, truststore_path)
14+
cacerts ? '-cacerts' : "-keystore #{truststore_path}"
1815
end
1916
end
2017
end

libraries/corretto_helpers.rb

-4
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ def corretto_arch
77

88
def default_corretto_bin_cmds(version)
99
case version.to_s
10-
when '8'
11-
%w(appletviewer clhsdb extcheck hsdb idlj jar jarsigner java java-rmi.cgi javac javadoc javafxpackager javah javap javapackager jcmd jconsole jdb jdeps jfr jhat jinfo jjs jmap jps jrunscript jsadebugd jstack jstat jstatd keytool native2ascii orbd pack200 policytool rmic rmid rmiregistry schemagen serialver servertool tnameserv unpack200 wsgen wsimport xjc)
1210
when '11'
1311
%w(jaotc jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jfr jhsdb jimage jinfo jjs jlink jmap jmod jps jrunscript jshell jstack jstat jstatd keytool pack200 rmic rmid rmiregistry serialver unpack200)
1412
when '15', '17', '18'
@@ -20,8 +18,6 @@ def default_corretto_bin_cmds(version)
2018

2119
def default_corretto_minor(version)
2220
case version
23-
when '8'
24-
'8.332.08.1'
2521
when '11'
2622
'11.0.15.9.1'
2723
when '17'

libraries/openjdk_helpers.rb

+2-10
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,10 @@ def default_openjdk_install_method(version)
3434
end
3535
end
3636

37-
def default_openjdk_url(version, flavor = 'openjdk')
38-
case flavor.downcase
37+
def default_openjdk_url(version, variant = 'openjdk')
38+
case variant.downcase
3939
when 'temurin'
4040
case version
41-
when '8'
42-
'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u432-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u432b06.tar.gz'
4341
when '11'
4442
'https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.25%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.25_9.tar.gz'
4543
when '17'
@@ -50,8 +48,6 @@ def default_openjdk_url(version, flavor = 'openjdk')
5048
end
5149
when 'semeru'
5250
case version
53-
when '8'
54-
'https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u322-b06_openj9-0.30.0/ibm-semeru-open-jdk_x64_linux_8u322b06_openj9-0.30.0.tar.gz'
5551
when '11'
5652
'https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.14.1%2B1_openj9-0.30.1/ibm-semeru-open-jdk_x64_linux_11.0.14.1_1_openj9-0.30.1.tar.gz'
5753
when '16'
@@ -121,10 +117,6 @@ def default_openjdk_checksum(version)
121117

122118
def default_openjdk_bin_cmds(version)
123119
case version
124-
when '7'
125-
%w(appletviewer apt ControlPanel extcheck idlj jar jarsigner java javac javadoc javafxpackager javah javap javaws jcmd jconsole jcontrol jdb jdeps jhat jinfo jjs jmap jmc jps jrunscript jsadebugd jstack jstat jstatd jvisualvm keytool native2ascii orbd pack200 policytool rmic rmid rmiregistry schemagen serialver servertool tnameserv unpack200 wsgen wsimport xjc)
126-
when '8'
127-
%w(appletviewer apt ControlPanel extcheck idlj jar jarsigner java javac javadoc javafxpackager javah javap javaws jcmd jconsole jcontrol jdb jdeps jhat jinfo jjs jmap jmc jps jrunscript jsadebugd jstack jstat jstatd jvisualvm keytool native2ascii orbd pack200 policytool rmic rmid rmiregistry schemagen serialver servertool tnameserv unpack200 wsgen wsimport xjc)
128120
when '9'
129121
%w(appletviewer idlj jaotc jar jarsigner java javac javadoc javah javap jcmd jconsole jdb jdeprscan jdeps jhsdb jimage jinfo jjs jlink jmap jmod jps jrunscript jshell jstack jstat jstatd keytool orbd pack200 policytool rmic rmid rmiregistry schemagen serialver servertool tnameserv unpack200 wsgen wsimport xjc)
130122
when '10'

resources/certificate.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
action :install do
5757
require 'openssl'
5858

59-
keystore_argument = keystore_argument(new_resource.java_version, new_resource.cacerts, new_resource.keystore_path)
59+
keystore_argument = keystore_argument(new_resource.cacerts, new_resource.keystore_path)
6060

6161
certdata = new_resource.cert_data || fetch_certdata
6262

@@ -107,7 +107,7 @@
107107
end
108108

109109
action :remove do
110-
keystore_argument = keystore_argument(new_resource.java_version, new_resource.cacerts, new_resource.keystore_path)
110+
keystore_argument = keystore_argument(new_resource.cacerts, new_resource.keystore_path)
111111

112112
cmd = Mixlib::ShellOut.new("#{new_resource.java_home}/bin/keytool -list #{keystore_argument} -storepass #{new_resource.keystore_passwd} -v | grep \"#{new_resource.cert_alias}\"")
113113
cmd.run_command

spec/libraries/certificate_helpers_spec.rb

+4-25
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,6 @@ class DummyClass < Chef::Node
88
subject { DummyClass.new }
99

1010
describe '#default_truststore_path' do
11-
context 'Java 8' do
12-
let(:version) { '8' }
13-
let(:java_home) { '/usr/lib/jvm/corretto-8' }
14-
15-
it 'returns the correct path' do
16-
expect(subject.default_truststore_path(version, java_home)).to eq('/usr/lib/jvm/corretto-8/jre/lib/security/cacerts')
17-
end
18-
end
19-
2011
context 'Java 9' do
2112
let(:version) { '9' }
2213
let(:java_home) { '/usr/lib/jvm/corretto-9' }
@@ -28,33 +19,21 @@ class DummyClass < Chef::Node
2819
end
2920

3021
describe '#keystore_argument' do
31-
context 'Java 8 and cacerts' do
32-
let(:version) { '8' }
33-
let(:cacerts) { true }
34-
let(:truststore_path) { '/usr/lib/jvm/corretto-8/jre/lib/security/cacerts' }
35-
36-
it 'returns the correct argument' do
37-
expect(subject.keystore_argument(version, cacerts, truststore_path)).to eq('-keystore /usr/lib/jvm/corretto-8/jre/lib/security/cacerts')
38-
end
39-
end
40-
41-
context 'Java 9 and cacerts' do
42-
let(:version) { '9' }
22+
context 'cacerts set ' do
4323
let(:cacerts) { true }
4424
let(:truststore_path) { '/usr/lib/jvm/corretto-9/jre/lib/security/cacerts' }
4525

4626
it 'returns the correct argument' do
47-
expect(subject.keystore_argument(version, cacerts, truststore_path)).to eq('-cacerts')
27+
expect(subject.keystore_argument(cacerts, truststore_path)).to eq('-cacerts')
4828
end
4929
end
5030

51-
context 'Java 9 and no cacerts' do
52-
let(:version) { '9' }
31+
context 'no cacerts' do
5332
let(:cacerts) { false }
5433
let(:truststore_path) { '/mycertstore.jks' }
5534

5635
it 'returns the correct argument' do
57-
expect(subject.keystore_argument(version, cacerts, truststore_path)).to eq('-keystore /mycertstore.jks')
36+
expect(subject.keystore_argument(cacerts, truststore_path)).to eq('-keystore /mycertstore.jks')
5837
end
5938
end
6039
end

spec/libraries/corretto_helpers_spec.rb

-65
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,6 @@ class DummyClass < Chef::Node
1313
allow(subject).to receive(:[]).with('kernel').and_return('machine' => machine)
1414
end
1515

16-
context 'Corretto 8 x64' do
17-
let(:version) { '8' }
18-
let(:machine) { 'x86_64' }
19-
20-
it 'returns the correct URL' do
21-
expect(subject.default_corretto_url(version)).to match /corretto-8.+\.tar.gz/
22-
end
23-
end
24-
2516
context 'Corretto 11 x64' do
2617
let(:version) { '11' }
2718
let(:machine) { 'x86_64' }
@@ -49,15 +40,6 @@ class DummyClass < Chef::Node
4940
end
5041
end
5142

52-
context 'Corretto 8 aarch64' do
53-
let(:version) { '8' }
54-
let(:machine) { 'aarch64' }
55-
56-
it 'returns the correct URL' do
57-
expect(subject.default_corretto_url(version)).to match /corretto-8.+\.tar.gz/
58-
end
59-
end
60-
6143
context 'Corretto 11 aarch64' do
6244
let(:version) { '11' }
6345
let(:machine) { 'aarch64' }
@@ -91,15 +73,6 @@ class DummyClass < Chef::Node
9173
allow(subject).to receive(:[]).with('version').and_return(version)
9274
end
9375

94-
context 'Corretto 8' do
95-
let(:version) { '8' }
96-
97-
it 'returns the correct bin command array' do
98-
expect(subject.default_corretto_bin_cmds(version)).to include 'appletviewer'
99-
expect(subject.default_corretto_bin_cmds(version)).to_not include 'jaotc'
100-
end
101-
end
102-
10376
context 'Corretto 11' do
10477
let(:version) { '11' }
10578

@@ -133,24 +106,6 @@ class DummyClass < Chef::Node
133106
allow(subject).to receive(:[]).with('kernel').and_return('machine' => machine)
134107
end
135108

136-
context 'No full_version passed for Corretto 8 x64' do
137-
let(:version) { '8' }
138-
let(:machine) { 'x86_64' }
139-
140-
it 'returns the default directory value for Corrretto 8 x64' do
141-
expect(subject.corretto_sub_dir(version)).to include '8.332.08.1'
142-
end
143-
end
144-
145-
context 'No full_version passed for Corretto 8 aarch64' do
146-
let(:version) { '8' }
147-
let(:machine) { 'aarch64' }
148-
149-
it 'returns the default directory value for Corrretto 8 aarch64' do
150-
expect(subject.corretto_sub_dir(version)).to include '8.332.08.1'
151-
end
152-
end
153-
154109
context 'No full_version passed for Corretto 11 x64' do
155110
let(:version) { '11' }
156111
let(:machine) { 'x86_64' }
@@ -204,26 +159,6 @@ class DummyClass < Chef::Node
204159
expect(subject.corretto_sub_dir(version)).to include '18.0.1.10.1'
205160
end
206161
end
207-
208-
context 'A full version passed for for Corretto 8 x64' do
209-
let(:version) { '8' }
210-
let(:full_version) { '8.123.45.6' }
211-
let(:machine) { 'x86_64' }
212-
213-
it 'returns the default directory value for Corrretto 8 x64' do
214-
expect(subject.corretto_sub_dir(version, full_version)).to include '8.123.45.6'
215-
end
216-
end
217-
218-
context 'A full version passed for for Corretto 8 aarch64' do
219-
let(:version) { '8' }
220-
let(:full_version) { '8.123.45.6' }
221-
let(:machine) { 'aarch64' }
222-
223-
it 'returns the default directory value for Corrretto 8 aarch64' do
224-
expect(subject.corretto_sub_dir(version, full_version)).to include '8.123.45.6'
225-
end
226-
end
227162
end
228163
end
229164
end

spec/libraries/openjdk_helpers_spec.rb

-5
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,6 @@ class DummyClass < Chef::Node
4747
expect(subject.default_openjdk_url('11', 'temurin'))
4848
.to eq 'https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.25%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.25_9.tar.gz'
4949
end
50-
51-
it 'returns the correct download URL for Temurin 8' do
52-
expect(subject.default_openjdk_url('8', 'temurin'))
53-
.to eq 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u432-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u432b06.tar.gz'
54-
end
5550
end
5651
end
5752

spec/libraries/semeru_helpers_spec.rb

+3-12
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ class DummyClass < Chef::Node
1212
allow(subject).to receive(:[]).with('url').and_return(url)
1313
end
1414

15-
context 'OpenJDK Semeru 8' do
16-
let(:url) { 'https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u322-b06_openj9-0.30.0/ibm-semeru-open-jdk_x64_linux_8u322b06_openj9-0.30.0.tar.gz' }
15+
context 'OpenJDK Semeru 17' do
16+
let(:url) { 'https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.2%2B8_openj9-0.30.0/ibm-semeru-open-jdk_x64_linux_17.0.2_8_openj9-0.30.0.tar.gz' }
1717

1818
it 'returns the correct folder name' do
19-
expect(subject.sub_dir(url)).to eq 'jdk8u322-b06'
19+
expect(subject.sub_dir(url)).to eq 'jdk-17.0.2-b8'
2020
end
2121
end
2222

@@ -34,15 +34,6 @@ class DummyClass < Chef::Node
3434
allow(subject).to receive(:[]).with('version').and_return(version)
3535
end
3636

37-
context 'Semeru 8' do
38-
let(:version) { '8' }
39-
let(:variant) { 'semeru' }
40-
41-
it 'returns the correct URL' do
42-
expect(subject.default_openjdk_url(version, variant)).to eq 'https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u322-b06_openj9-0.30.0/ibm-semeru-open-jdk_x64_linux_8u322b06_openj9-0.30.0.tar.gz'
43-
end
44-
end
45-
4637
context 'Semeru 11' do
4738
let(:version) { '11' }
4839
let(:variant) { 'semeru' }

0 commit comments

Comments
 (0)