27
27
#
28
28
class oracle_java ($version = ' 8' , $type = ' jre' ) {
29
29
# parameters validation
30
- validate_re($version , ' ^([0-9]|[0-9]u[0-9][0-9] )$' , ' $version must be formated as \' major\' u\' minor\' or just \' major\' ' )
30
+ validate_re($version , ' ^([0-9]|[0-9]u[0-9]{1,2} )$' , ' $version must be formated as \' major\' u\' minor\' or just \' major\' ' )
31
31
validate_re($type , ' ^(jre|jdk)$' , ' $type must be either \' jre\' or \' jdk\' ' )
32
32
33
33
# set to latest release if no minor version was provided
142
142
143
143
# translate system architecture to expected value
144
144
case $::architecture {
145
- ' x86_64' : { $arch = ' x64' }
146
- ' x86' : { $arch = ' i586' }
147
- default : { fail(" oracle_java does not support architecture ${arch} (yet)" ) }
145
+ ' x86_64' : {
146
+ if $maj_version == ' 6' and $min_version < ' 4' {
147
+ $arch = ' amd64'
148
+ } else {
149
+ $arch = ' x64'
150
+ }
151
+ }
152
+ ' x86' : {
153
+ $arch = ' i586'
154
+ }
155
+ default : {
156
+ fail(" oracle_java does not support architecture ${arch} (yet)" )
157
+ }
148
158
}
149
159
150
160
# define installer filename and download URL
153
163
default => " ${type} -${version_final} -linux-${arch} .rpm"
154
164
}
155
165
$downloadurl = " http://download.oracle.com/otn-pub/java/jdk/${version_final}${build} /${filename} "
166
+ # used for installing Java 6
167
+ # translate system architecture one more time
168
+ $arch_extracted = $::architecture ? {
169
+ ' x86_64' => ' amd64' ,
170
+ default => $arch
171
+ }
172
+ $filename_extracted = " ${type} -${version_final} -linux-${arch_extracted} .rpm"
156
173
157
174
# define package name
158
175
if $maj_version == ' 8' and $min_version >= ' 20' {
159
- $packagename = " ${type} 1.${maj_version} .0_${min_version} "
160
- }
161
- else {
176
+ $packagename = " ${type} 1.${maj_version} .0_${min_version} "
177
+ } else {
162
178
$packagename = $type
163
179
}
164
180
165
- # make sure install/download directory exists
166
- file { '/usr/java' :
167
- ensure => directory ,
168
- mode => ' 0755' ,
169
- owner => ' root' ,
170
- group => ' root'
171
- } ->
172
- # download RPM
173
- exec { 'download java RPM' :
174
- path => ' /usr/bin' ,
175
- cwd => ' /usr/java' ,
176
- creates => " /usr/java/${filename} " ,
177
- command => " wget --no-cookies --no-check-certificate --header \" Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie\" \" ${downloadurl} \" " ,
178
- timeout => 0,
179
- require => Package[' wget' ]
180
- }
181
-
182
- # install package
183
- if $maj_version >= 7 {
184
- package { $packagename:
185
- ensure => latest,
186
- source => " /usr/java/${filename} " ,
187
- provider => rpm,
188
- require => Exec[' download java RPM' ]
189
- }
190
- }
191
- # the procedure is a bit more complicated for older versions...
192
- # RPM files are packaged into a BIN archive which needs to be extracted
193
- else {
194
- # translate system architecture one more time
195
- $arch_final = $::architecture ? {
196
- ' x86_64' => ' amd64' ,
197
- default => $arch
198
- }
199
-
200
- # the extracted file includes the 'new' arch string
201
- $filename_extract = " ${type} -${version_final} -linux-${arch_final} .rpm"
202
-
203
- exec { 'unpack java RPM' :
204
- path => ' /bin' ,
205
- cwd => ' /usr/java' ,
206
- creates => " /usr/java/${filename_extract} " ,
207
- command => " sed -ni '/exit 0/,\$ {//!p}' ${filename} ; chmod +x ${filename} ; ./${filename} " ,
208
- require => [Package[' sed' ], Exec[' download java RPM' ]]
209
- } ~>
210
- # remove undesired extra RPMs
211
- exec { 'cleanup java RPM' :
212
- path => ' /bin' ,
213
- cwd => ' /usr/java' ,
214
- refreshonly => true ,
215
- command => ' rm -f sun-javadb-*.rpm'
216
- } ->
217
- package { $packagename:
218
- ensure => latest,
219
- source => " /usr/java/${filename_extract} " ,
220
- provider => rpm
221
- }
222
- }
223
-
224
- # define required packages, they are be required by exec resources
225
- if !defined (Package[' wget' ]) {
226
- package { 'wget' : ensure => present }
227
- }
228
- if $maj_version < 7 {
229
- if !defined (Package[' sed' ]) {
230
- package { 'sed' : ensure => present }
231
- }
232
- }
181
+ include oracle_java::download
182
+ include oracle_java::install
233
183
}
0 commit comments