|
10 | 10 | # envionment type to install (valid: 'jre'|'jdk')
|
11 | 11 | # [*format*]
|
12 | 12 | # archive format (valid: 'rpm'|'tar.gz')
|
| 13 | +# [*check_checksum*] |
| 14 | +# enable checksum validation on downloaded archives (boolean) |
13 | 15 | #
|
14 | 16 | # === Actions:
|
15 | 17 | #
|
|
29 | 31 | # format => 'rpm'
|
30 | 32 | # }
|
31 | 33 | #
|
32 |
| -class oracle_java ($version = '8', $type = 'jre', $format = undef) { |
| 34 | +class oracle_java ($version = '8', $type = 'jre', $format = undef, $check_checksum = true) { |
33 | 35 | if !$format {
|
34 |
| - case $::osfamily { |
35 |
| - /RedHat|Suse/ : { $format_real = 'rpm' } |
36 |
| - default : { $format_real = 'tar.gz' } |
| 36 | + if $::osfamily =~ /RedHat|Suse/ or $::operatingsystem == 'Mageia' { |
| 37 | + $format_real = 'rpm' |
| 38 | + } else { |
| 39 | + $format_real = 'tar.gz' |
37 | 40 | }
|
38 | 41 | } else {
|
39 | 42 | $format_real = $format
|
|
43 | 46 | validate_re($version, '^([0-9]|[0-9]u[0-9]{1,2})$', '$version must be formated as \'major\'u\'minor\' or just \'major\'')
|
44 | 47 | validate_re($type, '^(jre|jdk)$', '$type must be either \'jre\' or \'jdk\'')
|
45 | 48 | validate_re($format_real, '^(rpm|tar\.gz)$', '$format must be either \'rpm\' or \'tar.gz\'')
|
| 49 | + validate_bool($check_checksum) |
46 | 50 |
|
47 | 51 | # set to latest release if no minor version was provided
|
48 | 52 | if $version == '8' {
|
|
52 | 56 | } else {
|
53 | 57 | $version_real = $version
|
54 | 58 | }
|
55 |
| - |
| 59 | + |
56 | 60 | # translate system architecture to expected value
|
57 | 61 | case $::architecture {
|
58 | 62 | /x86_64|amd64/ : { $arch = 'x64' }
|
59 | 63 | 'x86' : { $arch = 'i586' }
|
60 | 64 | default : { fail("oracle_java does not support architecture ${::architecture} (yet)") }
|
61 | 65 | }
|
62 | 66 |
|
63 |
| - # determine build numbers, checksums, etc. |
64 |
| - include oracle_java::javalist |
| 67 | + # get major/minor version numbers |
| 68 | + $array_version = split($version_real, 'u') |
| 69 | + $maj_version = $array_version[0] |
| 70 | + $min_version = $array_version[1] |
| 71 | + |
| 72 | + # remove extra particle if minor version is 0 |
| 73 | + $version_final = delete($oracle_java::version_real, 'u0') |
| 74 | + $longversion = $min_version ? { |
| 75 | + '0' => "${oracle_java::type}1.${maj_version}.0", |
| 76 | + /^[0-9]$/ => "${oracle_java::type}1.${maj_version}.0_0${min_version}", |
| 77 | + default => "${oracle_java::type}1.${maj_version}.0_${min_version}" |
| 78 | + } |
65 | 79 |
|
66 |
| - # define installer filename and download URL |
67 |
| - $filename = "${type}-${oracle_java::javalist::version_final}-linux-${arch}.${format_real}" |
68 |
| - $downloadurl = "http://download.oracle.com/otn-pub/java/jdk/${oracle_java::javalist::version_final}${oracle_java::javalist::build}/${filename}" |
| 80 | + # define installer filename |
| 81 | + $filename = "${type}-${version_final}-linux-${arch}.${format_real}" |
| 82 | + |
| 83 | + # define download URL |
| 84 | + include oracle_java::javalist |
| 85 | + $downloadurl = "http://download.oracle.com/otn-pub/java/jdk/${version_final}${oracle_java::javalist::build}/${filename}" |
69 | 86 |
|
70 | 87 | # define package name
|
71 |
| - if $oracle_java::javalist::maj_version == '8' and $oracle_java::javalist::min_version >= '20' { |
72 |
| - $packagename = $oracle_java::javalist::longversion |
| 88 | + if $maj_version == '8' and $min_version >= '20' { |
| 89 | + $packagename = $longversion |
73 | 90 | } else {
|
74 | 91 | $packagename = $type
|
75 | 92 | }
|
76 | 93 |
|
77 |
| - # include classes as required |
78 |
| - if !defined(Class['archive']) { |
79 |
| - include archive |
80 |
| - } |
81 |
| - |
| 94 | + # annnnd... let's go |
82 | 95 | include oracle_java::download
|
83 | 96 | include oracle_java::install
|
84 | 97 | Class['oracle_java::download'] ~> Class['oracle_java::install']
|
|
0 commit comments