Skip to content

Commit 6cf36d0

Browse files
committed
Add support for Oracle JDK 1.8.0 (closes sous-chefs#147)
1 parent e0c858f commit 6cf36d0

File tree

6 files changed

+58
-3
lines changed

6 files changed

+58
-3
lines changed

.kitchen.yml

+9
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,15 @@ suites:
6262
oracle:
6363
accept_oracle_download_terms: true
6464
install_flavor: oracle
65+
- name: oracle-8
66+
run_list:
67+
- recipe[java::default]
68+
attributes:
69+
java:
70+
jdk_version: "8"
71+
oracle:
72+
accept_oracle_download_terms: true
73+
install_flavor: oracle
6574
- name: oracle-direct
6675
run_list:
6776
- recipe[java::oracle]

attributes/default.rb

+20
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,23 @@
9090
# i586
9191
default['java']['jdk']['7']['i586']['url'] = 'http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-i586.tar.gz'
9292
default['java']['jdk']['7']['i586']['checksum'] = '909d353c1caf6b3b54cc20767a7778ef'
93+
94+
# jdk8 attributes
95+
96+
default['java']['jdk']['8']['bin_cmds'] = [ "appletviewer", "apt", "ControlPanel", "extcheck", "idlj", "jar", "jarsigner", "java", "javac",
97+
"javadoc", "javafxpackager", "javah", "javap", "javaws", "jcmd", "jconsole", "jcontrol", "jdb",
98+
"jdeps", "jhat", "jinfo", "jjs", "jmap", "jmc", "jps", "jrunscript", "jsadebugd", "jstack",
99+
"jstat", "jstatd", "jvisualvm", "keytool", "native2ascii", "orbd", "pack200", "policytool",
100+
"rmic", "rmid", "rmiregistry", "schemagen", "serialver", "servertool", "tnameserv",
101+
"unpack200", "wsgen", "wsimport", "xjc" ]
102+
103+
# Oracle doesn't seem to publish SHA256 checksums for Java releases, so we use MD5 instead.
104+
# Official checksums for the latest release can be found at http://www.oracle.com/technetwork/java/javase/downloads/javase8-binaries-checksum-2133161.html
105+
106+
# x86_64
107+
default['java']['jdk']['8']['x86_64']['url'] = 'http://download.oracle.com/otn-pub/java/jdk/8-b132/jdk-8-linux-x64.tar.gz'
108+
default['java']['jdk']['8']['x86_64']['checksum'] = '7e9e5e5229c6603a4d8476050bbd98b1'
109+
110+
# i586
111+
default['java']['jdk']['8']['i586']['url'] = 'http://download.oracle.com/otn-pub/java/jdk/8-b132/jdk-8-linux-i586.tar.gz'
112+
default['java']['jdk']['8']['i586']['checksum'] = '45556e463a561b470bd9d0c07a73effb'

providers/ark.rb

+7-3
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,18 @@ def parse_app_dir_name url
3030
# for jdk1.6
3131
if file_name =~ /^(jre|jdk).*$/
3232
major_num = file_name.scan(/\d/)[0]
33-
update_num = file_name.scan(/\d+/)[1]
33+
update_token = file_name.scan(/u(\d+)/)[0]
34+
update_num = update_token ? update_token[0] : "0"
3435
# pad a single digit number with a zero
3536
if update_num.length < 2
3637
update_num = "0" + update_num
3738
end
3839
package_name = file_name.scan(/[a-z]+/)[0]
39-
app_dir_name = "#{package_name}1.#{major_num}.0_#{update_num}"
40+
if update_num == "00"
41+
app_dir_name = "#{package_name}1.#{major_num}.0"
42+
else
43+
app_dir_name = "#{package_name}1.#{major_num}.0_#{update_num}"
44+
end
4045
else
4146
app_dir_name = file_name.split(/(.tgz|.tar.gz|.zip)/)[0]
4247
app_dir_name = app_dir_name.split("-bin")[0]
@@ -61,7 +66,6 @@ def oracle_downloaded?(download_path, new_resource)
6166

6267
def download_direct_from_oracle(tarball_name, new_resource)
6368
download_path = "#{Chef::Config[:file_cache_path]}/#{tarball_name}"
64-
jdk_id = new_resource.url.scan(/\/([6789]u[0-9][0-9]?-b[0-9][0-9])\//)[0][0]
6569
cookie = "oraclelicense=accept-securebackup-cookie"
6670
if node['java']['oracle']['accept_oracle_download_terms']
6771
# install the curl package

recipes/oracle.rb

+4
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
tarball_url = node['java']['jdk']['7'][arch]['url']
3939
tarball_checksum = node['java']['jdk']['7'][arch]['checksum']
4040
bin_cmds = node['java']['jdk']['7']['bin_cmds']
41+
when "8"
42+
tarball_url = node['java']['jdk']['8'][arch]['url']
43+
tarball_checksum = node['java']['jdk']['8'][arch]['checksum']
44+
bin_cmds = node['java']['jdk']['8']['bin_cmds']
4145
end
4246

4347
if tarball_url =~ /example.com/

recipes/oracle_i386.rb

+4
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@
3737
tarball_url = node['java']['jdk']['7']['i586']['url']
3838
tarball_checksum = node['java']['jdk']['7']['i586']['checksum']
3939
bin_cmds = node['java']['jdk']['7']['bin_cmds']
40+
when "8"
41+
tarball_url = node['java']['jdk']['8']['i586']['url']
42+
tarball_checksum = node['java']['jdk']['8']['i586']['checksum']
43+
bin_cmds = node['java']['jdk']['8']['bin_cmds']
4044
end
4145

4246
include_recipe "java::set_java_home"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
@test "installs the correct version of the jdk" {
2+
java -version 2>&1 | grep 1.8
3+
}
4+
5+
@test "properly sets JAVA_HOME environment variable" {
6+
source /etc/profile.d/jdk.sh
7+
run test -d $JAVA_HOME
8+
[ "$status" -eq 0 ]
9+
}
10+
11+
@test "properly links jar" {
12+
run test -L /usr/bin/jar
13+
[ "$status" -eq 0 ]
14+
}

0 commit comments

Comments
 (0)