Compare commits

..

61 Commits
0.2.0 ... 1.1.0

Author SHA1 Message Date
Ashley Penney
ab5d9d6497 Prepare a 1.1.0 release. 2014-01-06 13:44:20 -05:00
Ashley Penney
6baf0b0fe9 Merge pull request #50 from CpuID/master
plus signs are valid in debian/ubuntu package versions
2014-01-06 10:36:00 -08:00
Nathan Sullivan
2f4232af6b plus signs are valid in debian/ubuntu package versions 2014-01-06 15:29:52 +10:00
Ashley Penney
4eab7dd77f Merge pull request #46 from openstack-hyper-v/master
adding support for ubuntu saucy
2013-11-18 10:52:41 -08:00
Ashley Penney
9cf9bcb9da Merge pull request #47 from liwo/feature/java-home
Add $java_home variable
2013-11-18 10:00:59 -08:00
Lienhart Woitok
dea01a7445 Add $java_home variable
On several places I needed to set the JAVA_HOME environment variable
for some software. To have this controlled in a central place I added
it here.
2013-11-18 11:11:24 +01:00
Peter Pouliot
c2a3171e55 adding support for ubuntu saucy 2013-11-15 01:50:07 -05:00
Brett Porter
6f91a2f8ab Merge pull request #38 from brettporter/scientific
Support Scientific Linux
2013-09-25 21:03:32 -07:00
Ashley Penney
f8c07504bb Merge pull request #44 from jengels/patch-1
Update params.pp
2013-09-24 15:21:04 -07:00
jengels
3dc47805e1 Update params.pp
Added Scientific Linux to list of RedHat operating systems
2013-09-23 11:34:58 +02:00
Brett Porter
304a4343ab Support Scientific Linux
Addresses issue #37
2013-08-05 13:53:58 +10:00
Ashley Penney
f3f521d7bc Merge pull request #36 from apenney/travisrelease
Fix travis script.
2013-08-01 15:28:22 -07:00
Ashley Penney
b877ecc8fe Fix travis script. 2013-08-01 18:27:11 -04:00
Ashley Penney
fe9e12d2b4 Merge pull request #35 from brettporter/v1.0.1
CHANGELOG for 1.0.1
2013-08-01 15:22:53 -07:00
Brett Porter
7df975ad18 CHANGELOG for 1.0.1 2013-08-02 08:08:22 +10:00
Brett Porter
1f071f1b96 Ensure right Puppet version in place for Travis
Keep PUPPET_VERSION for any existing uses, use PUPPET_GEM_VERSION for the
version spec that is supplied via .travis.yml.
2013-08-02 07:38:03 +10:00
Brett Porter
a94f5195e0 Revert "Ensure Travis runs with the right Puppet"
This reverts commit e12dbd2f9a.
2013-08-02 07:31:01 +10:00
Brett Porter
e12dbd2f9a Ensure Travis runs with the right Puppet
NEed to line up the environment variable with the one used in the Gemfile.
2013-08-02 07:20:17 +10:00
Brett Porter
4805628682 Merge pull request #33 from apenney/readme
Tweak the README (to test travis).
2013-08-01 14:08:44 -07:00
Brett Porter
816958fed1 Merge pull request #34 from haus/update_fedora_java
Update fedora java
2013-08-01 14:05:10 -07:00
Matthaus Owens
bf7edcf299 Update java packages for Fedora systems
The java package on Fedora is currently java-1.7.0-openjdk for their basic
java, and java-1.7.0-openjdk-devel for a development set. Fedora 16 had
java-1.6.0-openjdk, but it has been EOL for a long time. This commit updates
the default java for Fedora to the 1.7.0 package.
2013-08-01 12:15:12 -07:00
Matthaus Owens
3556af3a49 Trailing whitespace cleanup. 2013-08-01 12:15:08 -07:00
Ashley Penney
d3398aa52b Tweak the README (to test travis). 2013-07-29 20:19:51 -04:00
Ashley Penney
c0d41b043a Merge pull request #32 from apenney/travis
Add a .travis.yml file.
2013-07-29 17:17:59 -07:00
Ashley Penney
c0e3e81a3f Add a .travis.yml file. 2013-07-29 20:17:03 -04:00
Ashley Penney
0f69865c3d Merge pull request #31 from brettporter/version-1
Update version to 1.0.0
2013-07-29 17:14:57 -07:00
Brett Porter
e7b585b346 Update version to 1.0.0 2013-07-30 10:02:54 +10:00
Brett Porter
45c4d89261 add changelog entry for #30 2013-07-29 12:45:47 +10:00
Brett Porter
454a1c73f7 Merge pull request #30 from wavesoftware/master
Adding support for Oracle Enterprise Linux with spec tests
2013-07-28 19:41:54 -07:00
Krzysztof Suszyński
2d70d838ba Adding support for Oracle Enterprise Linux with spec tests 2013-07-26 14:21:32 +02:00
Krzysztof Suszyński
50a23d1704 Adding support for Oracle Enterprise Linux 2013-07-26 13:53:25 +02:00
Brett Porter
aa89d8b510 Add support for natty
Reimplementation of PR #19 to cleanup superfluous commits, and adjust to new
module structure.
2013-07-13 13:28:33 +10:00
Brett Porter
e73f175f3a Merge branch 'master' of https://github.com/rombert/puppetlabs-java into rombert-master
Conflicts:
	manifests/params.pp
2013-07-13 13:22:44 +10:00
Brett Porter
90485daa12 changelog entry for previous commit 2013-07-13 13:16:18 +10:00
Brett Porter
86024aeef8 Use HTTP for fixture checkout
For testing over conference wifi!
2013-07-13 13:14:50 +10:00
Brett Porter
9188f0e15a Merge pull request #29 from actionjack/master
Added support for Amazon linux
2013-07-12 20:11:22 -07:00
Brett Porter
6f7cdb76b4 Merge branch 'preferences' of https://github.com/mediatemple/puppetlabs-java into mediatemple-preferences
Conflicts:
	CHANGELOG
2013-07-13 13:09:40 +10:00
Sharif Nassar
ad93b44405 Support multiple JVM, and Debian alternatives.
Add ability to customize which JVM is installed on Debian.
Additionally, configure alternatives on Debian.
2013-06-20 16:29:20 -07:00
Martin Jackson
9fcf5d1a23 Added support Amazon Linux using facter >= 1.7.x. Fixes 1. 2013-06-20 11:03:01 +01:00
Martin Jackson
d531f47e8f Added some files for git to ignore. Stop Intellij/RubyMine from polluting source tree. 2013-06-20 10:41:34 +01:00
Brett Porter
8ab5b99a56 add a changelog for recently added changes 2013-06-19 17:49:07 +10:00
Robert Munteanu
3ac6dd5966 Add support for OpenSUSE 2013-06-10 17:44:27 +03:00
Brett Porter
cde7046e99 Merge branch 'fixes_for_centos_versions' of https://github.com/garethr/puppetlabs-java into garethr-fixes_for_centos_versions
Conflicts:
	Modulefile
	README.markdown
	manifests/init.pp
	spec/spec_helper.rb
2013-06-02 21:47:19 -07:00
Brett Porter
44280b3535 Merge pull request #26 from nrvale0/add_quantal
add support for Ubuntu quantal and raring
2013-06-02 20:52:17 -07:00
Nathan R Valentine
f85cbd5381 add support for Ubuntu quantal and raring 2013-05-31 19:38:12 -07:00
Matthaus Owens
bd50a396ef Merge pull request #25 from reidmv/reduce_complexity
Reduce complexity
2013-04-06 23:00:17 -07:00
Reid Vandewiele
b46f256b11 Remove cruft and bumb version number 2013-04-04 20:19:37 -07:00
Reid Vandewiele
5091d7fd6a Add package as class parameter
In case the defaults aren't good enough
2013-04-04 20:19:37 -07:00
Reid Vandewiele
f7a95a1e0e Refactor and reduce
The module in its previous incarnation was unnecessarily hard to read
and use. This commit applies the "params" pattern in order to more
clearly deliniate between logical variable selection and actual
declarative configuration.
2013-04-04 20:19:36 -07:00
Gareth Rushgrove
f5ee99f297 update list of tested repositories in readme 2013-04-02 16:15:57 +01:00
Gareth Rushgrove
b637c2e7e7 format modulefile 2013-04-02 16:08:37 +01:00
Gareth Rushgrove
5007be2226 get correct jdk version for centos 5.8 and 6.3 2013-04-02 16:08:14 +01:00
Gareth Rushgrove
4b54bab0cb add tests for the current an expected centos behaviour 2013-04-02 16:07:20 +01:00
Gareth Rushgrove
1d5c5992ab ignore fixtures downloaded by test runner 2013-04-02 16:06:16 +01:00
Gareth Rushgrove
6a4ca4f7c7 add rake file to run tests and build module 2013-04-02 16:05:40 +01:00
Gareth Rushgrove
d15243493b add puppet module dependencies for testing 2013-04-02 16:04:57 +01:00
Gareth Rushgrove
1f7545b213 add testing dependencies 2013-04-02 16:04:31 +01:00
Scott Schneider
ff80bc7f79 Merge pull request #23 from haus/fix_fedora
Add special case for fedora operating systems, where java is installable...
2013-02-19 15:59:08 -08:00
Matthaus Owens
995b985d37 Add special case for fedora operating systems, where java is installable, but jdk is not. 2013-02-19 15:37:30 -08:00
Matthaus Owens
234fd7b650 Merge pull request #22 from puppetlabs/suse_support
Adding java::package_suse class
2013-01-08 15:38:35 -08:00
Scott Schneider
7264c4022e Adding java::package_suse class 2012-12-27 10:59:12 -08:00
21 changed files with 521 additions and 228 deletions

5
.fixtures.yml Normal file
View File

@@ -0,0 +1,5 @@
fixtures:
repositories:
stdlib: http://github.com/puppetlabs/puppetlabs-stdlib.git
symlinks:
java: "#{source_dir}"

4
.gitignore vendored
View File

@@ -1,3 +1,7 @@
pkg/ pkg/
.DS_Store .DS_Store
metadata.json metadata.json
spec/fixtures
*.idea
*.swp
*.tmp

40
.travis.yml Normal file
View File

@@ -0,0 +1,40 @@
---
branches:
only:
- master
language: ruby
bundler_args: --without development
script: "bundle exec rake spec SPEC_OPTS='--format documentation'"
after_success:
- git clone -q git://github.com/puppetlabs/ghpublisher.git .forge-releng
- .forge-release/publish
rvm:
- 1.8.7
- 1.9.3
- 2.0.0
env:
matrix:
- PUPPET_GEM_VERSION="~> 2.7.0"
- PUPPET_GEM_VERSION="~> 3.0.0"
- PUPPET_GEM_VERSION="~> 3.1.0"
- PUPPET_GEM_VERSION="~> 3.2.0"
global:
- PUBLISHER_LOGIN=puppetlabs
- secure: |-
InMPZJVSGFC/AfcTbM6eKpYjPU3L1m1/P8BiXwcwreeyz0elsX2qmXk80A1h
\nakUY6VxLtzcFGBHV1V8NvpRHovUBSzRGuhSFUm72XL62OB6TMl+Wg30coJ
/N\nXjEfy7N5TQ3ThTKf1gfph0x/3iJBPgqIuIIELJCQJusTRDPKWYQ=
matrix:
exclude:
- rvm: 1.9.3
env: PUPPET_GEM_VERSION="~> 2.7.0"
- rvm: 2.0.0
env: PUPPET_GEM_VERSION="~> 2.7.0"
- rvm: 2.0.0
env: PUPPET_GEM_VERSION="~> 3.0.0"
- rvm: 2.0.0
env: PUPPET_GEM_VERSION="~> 3.1.0"
- rvm: 1.8.7
env: PUPPET_GEM_VERSION="~> 3.2.0"
notifications:
email: false

View File

@@ -1,3 +1,56 @@
2014-01-06 - Version 1.1.0
Summary:
Primarily a release for Ubuntu users!
Features:
- Add support for Ubuntu Saucy (13.10)
- Add `java_home` parameter for centralized setting of JAVA_HOME.
Bugfixes:
- Plus signs are valid in debian/ubuntu package names.
1.0.2 ()
Brett Porter <brett@apache.org>
* Support Scientific Linux
1.0.1 (2013-08-01)
Matthaus Owens <matthaus@puppetlabs.com>
* Update java packages for Fedora systems
1.0.0 (2013-07-29)
Krzysztof Suszyński <krzysztof.suszynski@coi.gov.pl>
* Adding support for Oracle Enterprise Linux
Peter Drake <pdrake@allplayers.com>
* Add support for natty
Robert Munteanu <rmuntean@adobe.com>
* Add support for OpenSUSE
Martin Jackson <martin@uncommonsense-uk.com>
* Added support Amazon Linux using facter >= 1.7.x
Gareth Rushgrove <gareth@morethanseven.net>
Brett Porter <brett@apache.org>
* Fixes for older versions of CentOS
* Improvements to module build and tests
Nathan R Valentine <nrvale0@gmail.com>
* Add support for Ubuntu quantal and raring
Sharif Nassar <sharif@mediatemple.net>
* Add support for Debian alternatives, and more than one JDK/JRE per platform.
2013-04-04 Reid Vandewiele <reid@puppetlabs.com> - 0.3.0
* Refactor, introduce params pattern
2012-11-15 Scott Schneider <sschneider@puppetlabs.com> - 0.2.0 2012-11-15 Scott Schneider <sschneider@puppetlabs.com> - 0.2.0
* Add Solaris support * Add Solaris support

15
Gemfile Normal file
View File

@@ -0,0 +1,15 @@
source "http://rubygems.org"
if ENV.key?('PUPPET_VERSION')
puppetversion = "= #{ENV['PUPPET_VERSION']}"
elsif ENV.key?('PUPPET_GEM_VERSION')
puppetversion = ENV['PUPPET_GEM_VERSION']
else
puppetversion = ['~> 2.7']
end
gem "rake"
gem "puppet", puppetversion
gem "puppet-lint"
gem "rspec-puppet"
gem "puppetlabs_spec_helper"

43
Gemfile.lock Normal file
View File

@@ -0,0 +1,43 @@
GEM
remote: http://rubygems.org/
specs:
diff-lcs (1.2.2)
facter (1.7.2)
hiera (1.2.1)
json_pure
json_pure (1.8.0)
metaclass (0.0.1)
mocha (0.13.3)
metaclass (~> 0.0.1)
puppet (3.2.3)
facter (~> 1.6)
hiera (~> 1.0)
rgen (~> 0.6.5)
puppet-lint (0.3.2)
puppetlabs_spec_helper (0.4.1)
mocha (>= 0.10.5)
rake
rspec (>= 2.9.0)
rspec-puppet (>= 0.1.1)
rake (10.0.4)
rgen (0.6.5)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.13.0)
rspec-puppet (0.1.6)
rspec
PLATFORMS
ruby
DEPENDENCIES
puppet (~> 3.2.0)
puppet-lint
puppetlabs_spec_helper
rake
rspec-puppet

View File

@@ -1,4 +1,4 @@
Puppet OpenNebula Module - Puppet module for managing OpenNebula Puppet Java Module - Puppet module for managing Java
Copyright (C) 2011 Puppet Labs Inc Copyright (C) 2011 Puppet Labs Inc

View File

@@ -1,11 +1,10 @@
name 'puppetlabs-java' name 'puppetlabs-java'
version '0.2.0' version '1.1.0'
source 'git://github.com/puppetlabs/puppetlabs-java' source 'git://github.com/puppetlabs/puppetlabs-java'
author 'puppetlabs' author 'puppetlabs'
license 'Apache' license 'Apache'
summary 'Manage the official Java runtime' summary 'Manage the official Java runtime'
description 'Manage the official Java runtime' description 'Manage the official Java runtime'
project_page 'https://github.com/puppetlabs/puppetlabs-java' project_page 'https://github.com/puppetlabs/puppetlabs-java'
## Add dependencies, if any: dependency 'puppetlabs/stdlib', '>= 0.1.6'
dependency 'puppetlabs/stdlib', '>= 0.1.6'

View File

@@ -1,33 +1,5 @@
# Java # #Java
Manage the Java runtime for use with other application software. Manage the Java runtime for use with other application software.
Currently this simply deploys the package on Enterprise Linux based systems and Debian based systems. Currently this deploys the correct Java package on a variety of platforms.
Tested on:
* Centos 5.6
* Ubuntu 10.04 Lucid
# RedHat Support #
The Java runtime this module is designed to configure are the RPM's provided by Oracle and obtained by extracting them from the "bin" installers.
For example:
./jdk-6u25-linux-x64-rpm.bin -x
Please download the installer from:
* [Java Downloads](http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html)
# Ubuntu Support #
## Lucid ##
You need to have the partner repository enabled in order to install the Sun JDK or JRE.
aptitude install python-software-properties
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
aptitude update

5
Rakefile Normal file
View File

@@ -0,0 +1,5 @@
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet-lint/tasks/puppet-lint'
PuppetLint.configuration.send("disable_80chars")
PuppetLint.configuration.log_format = "%{path}:%{linenumber}:%{check}:%{KIND}:%{message}"

17
manifests/config.pp Normal file
View File

@@ -0,0 +1,17 @@
# On Debian systems, if alternatives are set, manually assign them.
class java::config ( ) {
case $::osfamily {
Debian: {
if $java::use_java_alternative != undef and $java::use_java_alternative_path != undef {
exec { 'update-java-alternatives':
path => '/usr/bin:/usr/sbin:/bin:/sbin',
command => "update-java-alternatives --set ${java::use_java_alternative} --jre",
unless => "test /etc/alternatives/java -ef '${java::use_java_alternative_path}'",
}
}
}
default: {
# Do nothing.
}
}
}

View File

@@ -4,86 +4,92 @@
# #
# Parameters: # Parameters:
# #
# [*distribution*]
# The java distribution to install. Can be one of "jdk" or "jre",
# or other platform-specific options where there are multiple
# implementations available (eg: OpenJDK vs Oracle JDK).
#
#
# [*version*]
# The version of java to install. By default, this module simply ensures
# that java is present, and does not require a specific version.
#
# [*package*]
# The name of the java package. This is configurable in case a non-standard
# java package is desired.
#
# [*java_alternative*]
# The name of the java alternative to use on Debian systems.
# "update-java-alternatives -l" will show which choices are available.
# If you specify a particular package, you will almost always also
# want to specify which java_alternative to choose. If you set
# this, you also need to set the path below.
#
# [*java_alternative_path*]
# The path to the "java" command on Debian systems. Since the
# alternatives system makes it difficult to verify which
# alternative is actually enabled, this is required to ensure the
# correct JVM is enabled.
#
# Actions: # Actions:
# #
# Requires: # Requires:
# #
# Sample Usage: # Sample Usage:
# #
# [Remember: No empty lines between comments and class definition]
class java( class java(
$distribution = 'jdk', $distribution = 'jdk',
$version = 'present' $version = 'present',
$package = undef,
$java_alternative = undef,
$java_alternative_path = undef
) { ) {
include java::params
validate_re($distribution, '^jdk$|^jre$|^java.*$') validate_re($version, 'present|installed|latest|^[.+_0-9a-zA-Z:-]+$')
validate_re($version, 'installed|^[._0-9a-zA-Z:-]+$')
anchor { 'java::begin': }
anchor { 'java::end': }
case $::osfamily {
'RedHat': {
class { 'java::package_redhat':
version => $version,
distribution => $distribution,
require => Anchor['java::begin'],
before => Anchor['java::end'],
}
}
'Debian': {
case $::lsbdistcodename {
squeeze, lucid: {
$distribution_debian = $distribution ? {
jdk => 'openjdk-6-jdk',
jre => 'openjdk-6-jre-headless',
}
}
wheezy, precise: {
$distribution_debian = $distribution ? {
jdk => 'openjdk-7-jdk',
jre => 'openjdk-7-jre-headless',
}
}
default: {
fail("operatingsystem distribution ${::lsbdistcodename} is not supported")
}
}
class { 'java::package_debian':
version => $version,
distribution => $distribution_debian,
require => Anchor['java::begin'],
before => Anchor['java::end'],
}
}
'Solaris': {
$distribution_solaris = $distribution ? {
jdk => 'developer/java/jdk-7',
jre => 'runtime/java/jre-7',
}
class { 'java::package_solaris':
version => $version,
distribution => $distribution_solaris,
require => Anchor['java::begin'],
before => Anchor['java::end'],
}
}
default: {
fail("osfamily ${::osfamily} is not supported")
}
if has_key($java::params::java, $distribution) {
$default_package_name = $java::params::java[$distribution]['package']
$default_alternative = $java::params::java[$distribution]['alternative']
$default_alternative_path = $java::params::java[$distribution]['alternative_path']
$java_home = $java::params::java[$distribution]['java_home']
} else {
fail("Java distribution ${distribution} is not supported.")
} }
$use_java_package_name = $package ? {
default => $package,
undef => $default_package_name,
}
## If $java_alternative is set, use that.
## Elsif the DEFAULT package is being used, then use $default_alternative.
## Else undef
$use_java_alternative = $java_alternative ? {
default => $java_alternative,
undef => $use_java_package_name ? {
$default_package_name => $default_alternative,
default => undef,
}
}
## Same logic as $java_alternative above.
$use_java_alternative_path = $java_alternative_path ? {
default => $java_alternative_path,
undef => $use_java_package_name ? {
$default_package_name => $default_alternative_path,
default => undef,
}
}
anchor { 'java::begin:': }
->
package { 'java':
ensure => $version,
name => $use_java_package_name,
}
->
class { 'java::config': }
-> anchor { 'java::end': }
} }

View File

@@ -1,27 +0,0 @@
# 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,
}
}

View File

@@ -1,28 +0,0 @@
# 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,
}
}

View File

@@ -1,27 +0,0 @@
# Class: java::package_solaris
#
# Implementation class of the Java package
# for Solaris 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_solaris(
$version,
$distribution
) {
package { 'java':
ensure => $version,
name => $distribution,
}
}

133
manifests/params.pp Normal file
View File

@@ -0,0 +1,133 @@
# Class: java::params
#
# This class builds a hash of JDK/JRE packages and (for Debian)
# alternatives. For wheezy/precise, we provide Oracle JDK/JRE
# options, even though those are not in the package repositories.
#
# For more info on how to package Oracle JDK/JRE, see the Debian wiki:
# http://wiki.debian.org/JavaPackage
#
# Because the alternatives system makes it very difficult to tell
# which Java alternative is enabled, we hard code the path to bin/java
# for the config class to test if it is enabled.
class java::params {
case $::osfamily {
default: { fail("unsupported platform ${::osfamily}") }
'RedHat': {
case $::operatingsystem {
default: { fail("unsupported os ${::operatingsystem}") }
'RedHat', 'CentOS', 'OracleLinux', 'Scientific': {
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
$jdk_package = 'java-1.6.0-sun-devel'
$jre_package = 'java-1.6.0-sun'
}
elsif (versioncmp($::operatingsystemrelease, '6.3') < 0) {
$jdk_package = 'java-1.6.0-openjdk-devel'
$jre_package = 'java-1.6.0-openjdk'
}
else {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
}
}
'Fedora': {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
}
'Amazon': {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
}
}
$java = {
'jdk' => { 'package' => $jdk_package, },
'jre' => { 'package' => $jre_package, },
}
}
'Debian': {
case $::lsbdistcodename {
default: { fail("unsupported release ${::lsbdistcodename}") }
'lenny', 'squeeze', 'lucid', 'natty': {
$java = {
'jdk' => {
'package' => 'openjdk-6-jdk',
'alternative' => 'java-6-openjdk',
'alternative_path' => '/usr/lib/jvm/java-6-openjdk/jre/bin/java',
'java_home' => '/usr/lib/jvm/java-6-openjdk/jre/',
},
'jre' => {
'package' => 'openjdk-6-jre-headless',
'alternative' => 'java-6-openjdk',
'alternative_path' => '/usr/lib/jvm/java-6-openjdk/jre/bin/java',
'java_home' => '/usr/lib/jvm/java-6-openjdk/jre/',
},
'sun-jre' => {
'package' => 'sun-java6-jre',
'alternative' => 'java-6-sun',
'alternative_path' => '/usr/lib/jvm/java-6-sun/jre/bin/java',
'java_home' => '/usr/lib/jvm/java-6-sun/jre/',
},
'sun-jdk' => {
'package' => 'sun-java6-jdk',
'alternative' => 'java-6-sun',
'alternative_path' => '/usr/lib/jvm/java-6-sun/jre/bin/java',
'java_home' => '/usr/lib/jvm/java-6-sun/jre/',
},
}
}
'wheezy', 'precise','quantal','raring','saucy': {
$java = {
'jdk' => {
'package' => 'openjdk-7-jdk',
'alternative' => "java-1.7.0-openjdk-${::architecture}",
'alternative_path' => "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/bin/java",
'java_home' => "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/",
},
'jre' => {
'package' => 'openjdk-7-jre-headless',
'alternative' => "java-1.7.0-openjdk-${::architecture}",
'alternative_path' => "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/bin/java",
'java_home' => "/usr/lib/jvm/java-1.7.0-openjdk-${::architecture}/",
},
'oracle-jre' => {
'package' => 'oracle-j2re1.7',
'alternative' => 'j2re1.7-oracle',
'alternative_path' => '/usr/lib/jvm/j2re1.7-oracle/bin/java',
'java_home' => '/usr/lib/jvm/j2re1.7-oracle/',
},
'oracle-jdk' => {
'package' => 'oracle-j2sdk1.7',
'alternative' => 'j2sdk1.7-oracle',
'alternative_path' => '/usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java',
'java_home' => '/usr/lib/jvm/j2sdk1.7-oracle/jre/',
},
}
}
}
}
'Solaris': {
$java = {
'jdk' => { 'package' => 'developer/java/jdk-7', },
'jre' => { 'package' => 'runtime/java/jre-7', },
}
}
'Suse': {
case $::operatingsystem {
default: {
$jdk_package = 'java-1_6_0-ibm-devel'
$jre_package = 'java-1_6_0-ibm'
}
'OpenSuSE': {
$jdk_package = 'java-1_7_0-openjdk-devel'
$jre_package = 'java-1_7_0-openjdk'
}
}
$java = {
'jdk' => { 'package' => $jdk_package, },
'jre' => { 'package' => $jre_package, },
}
}
}
}

115
spec/classes/java_spec.rb Normal file
View File

@@ -0,0 +1,115 @@
require 'spec_helper'
describe 'java', :type => :class do
context 'select openjdk for Centos 5.8' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.8'} }
it { should contain_package('java').with_name('java-1.6.0-openjdk-devel') }
end
context 'select openjdk for Centos 6.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.3'} }
it { should contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end
context 'select openjdk for Centos 6.2' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.2'} }
it { should contain_package('java').with_name('java-1.6.0-openjdk-devel') }
end
context 'select openjdk for Fedora' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora'} }
it { should contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end
context 'select passed value for Fedora' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('java-1.7.0-openjdk') }
end
context 'select passed value for Centos 5.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3'} }
let(:params) { { 'package' => 'jdk' } }
it { should contain_package('java').with_name('jdk') }
it { should_not contain_exec('update-java-alternatives') }
end
context 'select default for Centos 5.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '5.3'} }
it { should contain_package('java').with_name('java-1.6.0-openjdk-devel') }
it { should_not contain_exec('update-java-alternatives') }
end
context 'select default for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
it { should contain_package('java').with_name('openjdk-7-jdk') }
it { should contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre') }
end
context 'select Oracle JRE for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', } }
let(:params) { { 'distribution' => 'oracle-jre' } }
it { should contain_package('java').with_name('oracle-j2re1.7') }
it { should contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') }
end
context 'select default for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5'} }
it { should contain_package('java').with_name('openjdk-6-jdk') }
it { should contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk --jre') }
end
context 'select Oracle JRE for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5'} }
let(:params) { { 'distribution' => 'sun-jre', } }
it { should contain_package('java').with_name('sun-java6-jre') }
it { should contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') }
end
context 'select random alternative for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1'} }
let(:params) { { 'java_alternative' => 'bananafish' } }
it { should contain_package('java').with_name('openjdk-7-jdk') }
it { should contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') }
end
context 'select openjdk for Amazon Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '3.4.43-43.43.amzn1.x86_64'} }
it { should contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end
context 'select passed value for Amazon Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Amazon', :operatingsystemrelease => '5.3.4.43-43.43.amzn1.x86_64'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('java-1.7.0-openjdk') }
end
context 'select openjdk for Oracle Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.4'} }
it { should contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end
context 'select openjdk for Oracle Linux 6.2' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.2'} }
it { should contain_package('java').with_name('java-1.6.0-openjdk-devel') }
end
context 'select passed value for Oracle Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'OracleLinux', :operatingsystemrelease => '6.3'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('java-1.7.0-openjdk') }
end
context 'select passed value for Scientific Linux' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Scientific', :operatingsystemrelease => '6.4'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('java-1.7.0-openjdk') }
end
context 'select default for OpenSUSE 12.3' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'OpenSUSE', :operatingsystemrelease => '12.3'}}
it { should contain_package('java').with_name('java-1_7_0-openjdk-devel')}
end
end

View File

@@ -1,6 +0,0 @@
--format
s
--colour
--loadby
mtime
--backtrace

View File

@@ -1,18 +1 @@
require 'pathname' require 'puppetlabs_spec_helper/module_spec_helper'
dir = Pathname.new(__FILE__).parent
$LOAD_PATH.unshift(dir, dir + 'lib', dir + '../lib')
require 'mocha'
require 'puppet'
gem 'rspec', '=1.2.9'
require 'spec/autorun'
Spec::Runner.configure do |config|
config.mock_with :mocha
end
# We need this because the RAL uses 'should' as a method. This
# allows us the same behaviour but with a different method name.
class Object
alias :must :should
end

View File

@@ -1,3 +0,0 @@
sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true
sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true
sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true

View File

@@ -1,10 +1,4 @@
node default { class { 'java':
distribution => 'jdk',
notify { "alpha": } -> version => 'latest',
class { 'java':
distribution => 'jdk',
version => 'latest',
} ->
notify { "omega": }
} }