diff --git a/manifests/init.pp b/manifests/init.pp index b009bf8..c107102 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -16,18 +16,44 @@ class java( $version = 'installed' ) { - # Cannot pass anonymous arrays to functions in 2.6.8 - $v_distribution = [ '^jre$', '^jdk$' ] - # Must compare string values, not booleans. - validate_re($version, '^[._0-9a-zA-Z:-]+$') - validate_re($distribution, $v_distribution) + validate_re($distribution, '^jdk$|^jre$') + validate_re($version, 'installed|^[._0-9a-zA-Z:-]+$') - $version_real = $version - $distribution_real = $distribution + anchor { 'java::begin': } + anchor { 'java::end': } + + case $operatingsystem { + + centos, redhat, oel: { + + class { 'java::package_redhat': + version => $version, + distribution => $distribution, + require => Anchor['java::begin'], + before => Anchor['java::end'], + } + + } + + debian, ubuntu: { + + $distribution_debian = $distribution ? { + jdk => 'sun-java6-jdk', + jre => 'sun-java6-jre', + } + class { 'java::package_debian': + version => $version, + distribution => $distribution_debian, + require => Anchor['java::begin'], + before => Anchor['java::end'], + } + + } + + default: { + fail("operatingsystem $operatingsystem is not supported") + } - package { 'java': - ensure => $version_real, - name => "${distribution_real}", } } diff --git a/manifests/package_debian.pp b/manifests/package_debian.pp new file mode 100644 index 0000000..117ff81 --- /dev/null +++ b/manifests/package_debian.pp @@ -0,0 +1,28 @@ +# Class: java::package_debian +# +# Implementation class of the Java package +# for debian based systems. +# +# This class is not meant to be used by the end user +# of the module. It is an implementation class +# of the composite Class[java] +# +# Parameters: +# +# Actions: +# +# Requires: +# +# Sample Usage: +# +class java::package_debian( + $version, + $distribution +) { + + package { 'java': + ensure => $version, + name => $distribution, + } + +} diff --git a/manifests/package_redhat.pp b/manifests/package_redhat.pp new file mode 100644 index 0000000..681d978 --- /dev/null +++ b/manifests/package_redhat.pp @@ -0,0 +1,28 @@ +# Class: java::package_redhat +# +# Implementation class of the Java package +# for redhat based systems. +# +# This class is not meant to be used by the end user +# of the module. It is an implementation class +# of the composite Class[java] +# +# Parameters: +# +# Actions: +# +# Requires: +# +# Sample Usage: +# +class java::package_redhat( + $version, + $distribution +) { + + package { 'java': + ensure => $version, + name => $distribution, + } + +}