diff --git a/lib/facter/java_libjvm_path.rb b/lib/facter/java_libjvm_path.rb index 95ae61a..1cd51a8 100644 --- a/lib/facter/java_libjvm_path.rb +++ b/lib/facter/java_libjvm_path.rb @@ -7,6 +7,7 @@ # # Caveats: # Needs to list files recursively. Returns the first match +# Needs working java_major_version fact # # Notes: # None @@ -14,13 +15,23 @@ Facter.add(:java_libjvm_path) do confine kernel: ['Linux', 'OpenBSD'] setcode do java_default_home = Facter.value(:java_default_home) - if java_default_home - java_libjvm_file = Dir.glob("#{java_default_home}/**/lib/**/libjvm.so") - end - if java_libjvm_file.nil? || java_libjvm_file.empty? - nil - else - File.dirname(java_libjvm_file[0]) + java_major_version = Facter.value(:java_major_version) + unless java_major_version.nil? + if java_major_version.to_i >= 11 + java_libjvm_file = Dir.glob("#{java_default_home}/lib/**/libjvm.so") + if java_libjvm_file.nil? || java_libjvm_file.empty? + nil + else + File.dirname(java_libjvm_file[0]) + end + else + java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so") + if java_libjvm_file.nil? || java_libjvm_file.empty? + nil + else + File.dirname(java_libjvm_file[0]) + end + end end end end diff --git a/lib/facter/java_major_version.rb b/lib/facter/java_major_version.rb index 3c3c99f..123c70a 100644 --- a/lib/facter/java_major_version.rb +++ b/lib/facter/java_major_version.rb @@ -17,13 +17,11 @@ Facter.add(:java_major_version) do setcode do java_version = Facter.value(:java_version) unless java_version.nil? - # First part > 1, use the first part as major version - java_version_first_number = java_version.strip.split('.')[0] - java_major_version = if java_version_first_number.to_i > 1 - java_version_first_number - else - java_version.strip.split('_')[0].split('.')[1] - end + if java_version.strip[0..1] == '1.' + java_major_version = java_version.strip.split('_')[0].split('.')[1] + else + java_major_version = java_version.strip.split('.')[0] + end end end java_major_version diff --git a/lib/facter/java_patch_level.rb b/lib/facter/java_patch_level.rb index d3acded..2722d0b 100644 --- a/lib/facter/java_patch_level.rb +++ b/lib/facter/java_patch_level.rb @@ -3,7 +3,7 @@ # Purpose: get Java's patch level # # Resolution: -# Uses java_version fact splits on the patch number (after _) +# Uses java_version fact splits on the patch number (after _ for 1.x and patch number for semver'ed javas) # # Caveats: # none @@ -15,13 +15,11 @@ Facter.add(:java_patch_level) do setcode do java_version = Facter.value(:java_version) unless java_version.nil? - # First part > 1, use . as seperator to get patch level - java_version_first_number = java_version.strip.split('.')[0] - java_patch_level = if java_version_first_number.to_i > 1 - java_version.strip.split('.')[2] - else - java_version.strip.split('_')[1] - end + if java_version.strip[0..1] == '1.' + java_patch_level = java_version.strip.split('_')[1] unless java_version.nil? + else + java_patch_level = java_version.strip.split('.')[2] unless java_version.nil? + end end end java_patch_level