|
8 | 8 | # Java SE version to install (valid format: 'major'u'minor' or just 'major')
|
9 | 9 | # [*type*]
|
10 | 10 | # envionment type to install (valid: 'jre'|'jdk')
|
| 11 | +# [*format*] |
| 12 | +# archive format (valid: 'rpm'|'tar.gz') |
11 | 13 | #
|
12 | 14 | # === Actions:
|
13 | 15 | #
|
|
16 | 18 | # === Requires:
|
17 | 19 | #
|
18 | 20 | # * puppetlabs/stdlib module
|
19 |
| -# * 'wget' and 'sed' packages |
| 21 | +# * nanliu/archive module |
| 22 | +# * 'sed' package |
20 | 23 | #
|
21 | 24 | # === Sample Usage:
|
22 | 25 | #
|
23 | 26 | # class { '::oracle_java':
|
24 | 27 | # version => '8u5',
|
25 |
| -# type => 'jdk' |
| 28 | +# type => 'jdk', |
| 29 | +# format => 'rpm' |
26 | 30 | # }
|
27 | 31 | #
|
28 |
| -class oracle_java ($version = '8', $type = 'jre') { |
| 32 | +class oracle_java ($version = '8', $type = 'jre', $format = 'rpm') { |
29 | 33 | # parameters validation
|
30 | 34 | validate_re($version, '^([0-9]|[0-9]u[0-9]{1,2})$', '$version must be formated as \'major\'u\'minor\' or just \'major\'')
|
31 | 35 | validate_re($type, '^(jre|jdk)$', '$type must be either \'jre\' or \'jdk\'')
|
| 36 | + validate_re($format, '^(rpm|tar.gz)$', '$format must be either \'rpm\' or \'tar.gz\'') |
32 | 37 |
|
33 | 38 | # set to latest release if no minor version was provided
|
34 | 39 | if $version == '8' {
|
|
139 | 144 |
|
140 | 145 | # remove extra particle if minor version is 0
|
141 | 146 | $version_final = delete($version_real, 'u0')
|
| 147 | + $longversion = $min_version ? { |
| 148 | + '0' => "${type}1.${maj_version}.0", |
| 149 | + default => "${type}1.${maj_version}.0_${min_version}" |
| 150 | + } |
142 | 151 |
|
143 | 152 | # translate system architecture to expected value
|
144 | 153 | case $::architecture {
|
|
163 | 172 | default => "${type}-${version_final}-linux-${arch}.rpm"
|
164 | 173 | }
|
165 | 174 | $downloadurl = "http://download.oracle.com/otn-pub/java/jdk/${version_final}${build}/${filename}"
|
| 175 | + |
166 | 176 | # used for installing Java 6
|
167 | 177 | # translate system architecture one more time
|
168 | 178 | $arch_extracted = $::architecture ? {
|
|
173 | 183 |
|
174 | 184 | # define package name
|
175 | 185 | if $maj_version == '8' and $min_version >= '20' {
|
176 |
| - $packagename = "${type}1.${maj_version}.0_${min_version}" |
| 186 | + $packagename = $longversion |
177 | 187 | } else {
|
178 | 188 | $packagename = $type
|
179 | 189 | }
|
|
0 commit comments