From dc8d998c238578b7fae691028f9c13579b3ee0d4 Mon Sep 17 00:00:00 2001 From: Gregor Zurowski Date: Thu, 6 Oct 2016 22:35:47 +0200 Subject: [PATCH 1/2] Allow targeting specific major/minor Oracle JDK versions Expose two new parameters 'version_major' and 'version_minor' to allow users targeting specific Oracle JDK versions. Signed-off-by: Gregor Zurowski --- manifests/oracle.pp | 74 +++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 26 deletions(-) diff --git a/manifests/oracle.pp b/manifests/oracle.pp index b3c26cd7..b458baee 100644 --- a/manifests/oracle.pp +++ b/manifests/oracle.pp @@ -14,8 +14,17 @@ # # Parameters # [*version*] -# Version of Java to install +# Version of Java to install, e.g. '7' or '8'. Default values for major and minor +# versions will be used. # +# [*major_version*] +# Major version which should be installed, e.g. '8u101'. Must be used together with +# minor_version. +# +# [*minor_version*] +# Minor version which should be installed, e.g. 'b12'. Must be used together with +# major_version. +# # [*java_se*] # Type of Java Standard Edition to install, jdk or jre. # @@ -71,10 +80,12 @@ # mike@marseglia.org # define java::oracle ( - $ensure = 'present', - $version = '8', - $java_se = 'jdk', - $oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/', + $ensure = 'present', + $version = '8', + $version_major = undef, + $version_minor = undef, + $java_se = 'jdk', + $oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/', ) { # archive module is used to download the java package @@ -87,27 +98,38 @@ fail('Java SE must be either jre or jdk.') } - # determine oracle Java major and minor version, and installation path - case $version { - '6' : { - $release_major = '6u45' - $release_minor = 'b06' - $install_path = "${java_se}1.6.0_45" - } - '7' : { - $release_major = '7u80' - $release_minor = 'b15' - $install_path = "${java_se}1.7.0_80" - } - '8' : { - $release_major = '8u51' - $release_minor = 'b16' - $install_path = "${java_se}1.8.0_51" - } - default : { - $release_major = '8u51' - $release_minor = 'b16' - $install_path = "${java_se}1.8.0_51" + # determine Oracle Java major and minor version, and installation path + if $version_major and $version_minor { + $release_major = $version_major + $release_minor = $version_minor + if $release_major =~ /(\d+)u(\d+)/ { + $install_path = "${java_se}1.$1.0_$2" + } else { + $install_path = "${java_se}${release_major}${release_minor}" + } + } else { + # use default versions if no specific major and minor version parameters are provided + case $version { + '6' : { + $release_major = '6u45' + $release_minor = 'b06' + $install_path = "${java_se}1.6.0_45" + } + '7' : { + $release_major = '7u80' + $release_minor = 'b15' + $install_path = "${java_se}1.7.0_80" + } + '8' : { + $release_major = '8u51' + $release_minor = 'b16' + $install_path = "${java_se}1.8.0_51" + } + default : { + $release_major = '8u51' + $release_minor = 'b16' + $install_path = "${java_se}1.8.0_51" + } } } From c833ac826e1a37bc36459d82a257b9163f71cfd5 Mon Sep 17 00:00:00 2001 From: Gregor Zurowski Date: Thu, 6 Oct 2016 23:09:36 +0200 Subject: [PATCH 2/2] Fix lint validation issues Signed-off-by: Gregor Zurowski --- manifests/oracle.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/oracle.pp b/manifests/oracle.pp index b458baee..d5eeb82f 100644 --- a/manifests/oracle.pp +++ b/manifests/oracle.pp @@ -103,7 +103,7 @@ $release_major = $version_major $release_minor = $version_minor if $release_major =~ /(\d+)u(\d+)/ { - $install_path = "${java_se}1.$1.0_$2" + $install_path = "${java_se}1.${1}.0_${2}" } else { $install_path = "${java_se}${release_major}${release_minor}" }