Prior to this commit, the documentation was lacking an example of how to install a specific version of java. Which led users to believe that they should use the version parameter.
After this commit, we have an example showing the correct way to install a different major verison of java is to use the package parameter.
Exposed the Puppet 'package' resource's 'install_options' parameter via a new class parameter names 'package_options*. It takes an array of strings to pass installation options to the package provider of the targer OS (yum, apt-get, ...)
Added validation of $package_options array
Using stdlib' validate_array function to ensure that $package_options is a valid array (also if just empty).
Cleaned array validation line
Made $package_options undef by default
Class parameter $package_options is now set to undef by default, validation is done in the class to ensure only an array would be passed to it if set.
Added case for 'package_options' parameter
Will test the use of the 'package_options' parameter being passed the YUM option --downloadonly which will see YUM return 0 but package will not be installed on system.
Simplified test of 'package_options' parameter
As the test 'select openjdk for Fedora 21 without installing' expects with a successful YUM run but the 'java' package not present, specifying package version is irrelevant.
New case for complete installation with YUM option
Added new case using 'package_options' with a a YUM option expected to not prevent rpm installation.
Also added distribution parameter for test of 'pacakge_options' with yum option expected to prevent package installation.
Removed validation of package name
Removed validation of package name as it is not meant to be testing by 'select passed value for Fedora 21 with yum option'
Removed test with '--downloadonly'
The test of 'package_options* with the YUM option '---downloadonly' can't seem to be validate in CI.
Other test 'select passed value for Fedora 21 with yum option' covers passing a value to 'package_options* and passes test in CI.
* Note this won't work by default on FreeBSD Puppet < 4.0, as pkgng is not the default provider
* On older Puppet, use `zleslie/pkgng`, on newer it's the default package provider.
* dirname containing base directory of java
* e.g. java binary is `${::java_default_home}/jre/bin/java`
* dirname containing `libjvm.so`
* Most people will use this for LD_LIBRARY_PATH
The other method for running which java doesn't work on OSX, as java is installed as an empty shim when not installed in the base OSX image:
```
vagrant:~ vagrant$ java
No Java runtime present, requesting install.
vagrant:~ vagrant$ /usr/libexec/java_home --failfast
Unable to find any JVMs matching version "(null)".
vagrant:~ vagrant$
```
We can use the `/usr/libexec/java_home --failfast` command to check if
java is actually present first.
Originally-by: Peter Souter <peter.souter@puppetlabs.com>