|
17 | 17 | # See the License for the specific language governing permissions and |
18 | 18 | # limitations under the License. |
19 | 19 |
|
20 | | -jdk_version = node['java']['jdk_version'].to_i |
21 | | -java_home = node['java']['java_home'] |
22 | | -java_home_parent = ::File.dirname java_home |
23 | | -jdk_home = "" |
| 20 | +java_location = Opscode::OpenJDK.new(node).java_location |
24 | 21 |
|
25 | | -pkgs = value_for_platform_family( |
26 | | - ["rhel","fedora"] => ["java-1.#{jdk_version}.0-openjdk", "java-1.#{jdk_version}.0-openjdk-devel"], |
27 | | - "debian" => ["openjdk-#{jdk_version}-jdk", "default-jre-headless"], |
28 | | - ["arch","freebsd"] => ["openjdk#{jdk_version}"], |
29 | | - "default" => ["openjdk-#{jdk_version}-jdk"] |
30 | | -) |
| 22 | +include_recipe 'java::set_java_home' |
31 | 23 |
|
32 | | -include_recipe "java::set_java_home" |
| 24 | +if platform_family?('debian', 'rhel', 'fedora') |
33 | 25 |
|
34 | | -if platform_family?("debian", "rhel", "fedora") |
35 | | - ruby_block "update-java-alternatives" do |
36 | | - block do |
37 | | - arch = node['kernel']['machine'] =~ /x86_64/ ? "x86_64" : "i386" |
38 | | - arch = 'amd64' if arch == 'x86_64' && platform?("ubuntu") && node["platform_version"].to_f >= 12.04 |
39 | | - if platform_family?("debian") and jdk_version == 6 |
40 | | - java_name = if node["platform_version"].to_f >= 11.10 |
41 | | - "java-1.6.0-openjdk" |
42 | | - else |
43 | | - "java-6-openjdk" |
44 | | - end |
45 | | - java_name += "-i386" if arch == "i386" && node['platform_version'].to_f >= 12.04 |
46 | | - Mixlib::ShellOut.new("update-java-alternatives","-s", java_name, :returns => [0,2]).run_command |
47 | | - else |
48 | | - # have to do this on ubuntu for version 7 because Ubuntu does |
49 | | - # not currently set jdk 7 as the default jvm on installation |
50 | | - require "fileutils" |
51 | | - Chef::Log.debug("glob is #{java_home_parent}/java*#{jdk_version}*openjdk*#{arch}") |
52 | | - jdk_home = Dir.glob("#{java_home_parent}/java*#{jdk_version}*openjdk*#{arch}").first |
53 | | - Chef::Log.debug("jdk_home is #{jdk_home}") |
54 | | - if jdk_home |
55 | | - FileUtils.rm_f java_home if ::File.exists? java_home |
56 | | - FileUtils.ln_sf jdk_home, java_home |
57 | | - end |
58 | | - |
59 | | - cmd = Mixlib::ShellOut.new( |
60 | | - %Q[ update-alternatives --install /usr/bin/java java #{java_home}/bin/java 1; |
61 | | - update-alternatives --set java #{java_home}/bin/java ] |
62 | | - ).run_command |
63 | | - unless cmd.exitstatus == 0 or cmd.exitstatus == 2 |
64 | | - Chef::Application.fatal!("Failed to update-alternatives for openjdk!") |
65 | | - end |
66 | | - end |
67 | | - end |
| 26 | + bash 'update-java-alternatives' do |
| 27 | + command %Q[ |
| 28 | + update-alternatives --install /usr/bin/java java #{java_location} 1061; |
| 29 | + update-alternatives--set java #{node['java']['java_home']}/bin/java |
| 30 | + ] |
68 | 31 | action :nothing |
69 | 32 | end |
| 33 | + |
70 | 34 | end |
71 | 35 |
|
72 | | -pkgs.each do |pkg| |
| 36 | +node['java']['openjdk_packages'].each do |pkg| |
73 | 37 | package pkg do |
74 | 38 | action :install |
75 | | - notifies :create, "ruby_block[update-java-alternatives]", :immediately if platform_family?("debian", "rhel", "fedora") |
| 39 | + notifies :run, 'bash[update-java-alternatives]', :immediately if platform_family?('debian', 'rhel', 'fedora') |
76 | 40 | end |
77 | 41 | end |
0 commit comments