Allow targeting specific major/minor Oracle JDK versions (#192)

* 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 <gregor@zurowski.org>

* Fix lint validation issues

Signed-off-by: Gregor Zurowski <gregor@zurowski.org>
This commit is contained in:
Gregor Zurowski
2016-10-07 19:48:58 +02:00
committed by Hunter Haugen
parent 2b0bd48cb5
commit 2a8236e6d1

View File

@@ -14,7 +14,16 @@
# #
# Parameters # Parameters
# [*version*] # [*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*] # [*java_se*]
# Type of Java Standard Edition to install, jdk or jre. # Type of Java Standard Edition to install, jdk or jre.
@@ -73,6 +82,8 @@
define java::oracle ( define java::oracle (
$ensure = 'present', $ensure = 'present',
$version = '8', $version = '8',
$version_major = undef,
$version_minor = undef,
$java_se = 'jdk', $java_se = 'jdk',
$oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/', $oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/',
) { ) {
@@ -87,7 +98,17 @@ define java::oracle (
fail('Java SE must be either jre or jdk.') fail('Java SE must be either jre or jdk.')
} }
# determine oracle Java major and minor version, and installation path # 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 { case $version {
'6' : { '6' : {
$release_major = '6u45' $release_major = '6u45'
@@ -110,6 +131,7 @@ define java::oracle (
$install_path = "${java_se}1.8.0_51" $install_path = "${java_se}1.8.0_51"
} }
} }
}
# determine package type (exe/tar/rpm), destination directory based on OS # determine package type (exe/tar/rpm), destination directory based on OS
case $::kernel { case $::kernel {