Compare commits

...

206 Commits
1.1.1 ... 1.6.0

Author SHA1 Message Date
Helen
72a801c1e9 Merge pull request #176 from jbondpdx/release
minor edit on new text
2016-06-09 18:13:58 +01:00
jbondpdx
e038a13474 minor edit on new text 2016-06-09 09:59:13 -07:00
Hunter Haugen
ff158b6c68 Merge pull request #175 from HelenCampbell/release
1.6.0 Release Prep
2016-06-08 11:29:55 -07:00
Helen Campbell
addb6e0931 1.6.0 Release Prep 2016-06-08 19:27:51 +01:00
David Schmitt
124abf1278 Merge pull request #173 from edge-records/patch-1
custom archive type needs extract_path
2016-05-26 12:28:09 +01:00
David Schmitt
a45aee2567 Merge pull request #174 from edge-records/patch-2
Also support RedHat for Oracle Java
2016-05-26 12:27:47 +01:00
edge-records
a74be5a7f8 Also support RedHat for Oracle Java
Works fine for me, tested on RHEL6.
2016-05-25 11:00:29 +01:00
edge-records
4f700ca1e3 custom archive type needs extract_path
archive type's extract_path doesn't have a default parameter and needs to be set (see https://github.com/voxpupuli/puppet-archive/blob/master/lib/puppet/type/archive.rb#L71-L78). If I don't set one I get the following error when trying to use this module:

Error: Failed to apply catalog: No title provided and :file is not a valid resource reference
2016-05-25 10:58:02 +01:00
JT (Jonny)
519e2d7b77 Merge pull request #171 from jonnytpuppet/tylerjl/sles-11.4-java
Update java package for SLES 11.4
2016-05-10 11:33:44 +01:00
Tyler Langlois
4b5cbc4d33 Update java package for SLES 11.4
As of SLES 11.4, Java 1.6 has been deprecated in favor of 1.7:
https://www.suse.com/releasenotes/x86_64/SLE-SDK/11-SP4/#fate-318121
2016-05-10 11:15:28 +01:00
Bryan Jen
f4d218a162 Merge pull request #170 from gerhardsam/fix_doc_typo
Fix typo in documentation for class oracle
2016-05-04 09:56:37 -07:00
Sebastian Gerhards
3d8d4d76e0 Fix typo in documentation for class oracle 2016-05-02 15:08:51 +02:00
Greg Hardy
829b8d6448 Merge pull request #169 from puppetlabs/update-msync
Update to newest modulesync_configs [9ca280f]
2016-04-19 11:30:59 +01:00
David Schmitt
aafb208671 Update to newest modulesync_configs [9ca280f] 2016-04-18 20:15:09 +01:00
David Schmitt
de4dfde37a Merge pull request #168 from tphoney/fix_strict_vars
(maint) fix test to run under strict variables
2016-04-13 09:55:23 +01:00
TP Honey
3fa562a033 Merge pull request #166 from alexharv074/fix_rspec_deprecation_warnings
Fix up rspec deprecation warnings.
2016-04-13 07:42:54 +01:00
tphoney
b9a864e313 (maint) fix test to run under strict variables 2016-04-13 06:55:17 +01:00
Hunter Haugen
bc8bed2c65 Merge pull request #167 from puppetlabs/1.5.x
1.5.x mergeback
2016-04-12 14:48:03 -07:00
Alex Harvey
4775718a2f Fix up rspec deprecation warnings. 2016-04-12 22:52:51 +10:00
TP Honey
1165f3aaa2 Merge pull request #165 from alexharv074/fix_typo_in_readme
Fix typo in README.markdown
2016-04-11 16:57:57 +01:00
Alex Harvey
3f2825c5e2 Fix typo in README.markdown 2016-04-09 22:53:20 +10:00
David Schmitt
8e0c06cba9 Merge pull request #164 from s12v/master
Add Ubuntu 16.04
2016-04-04 14:27:13 +01:00
David Schmitt
0e47d95a71 Merge pull request #162 from npwalker/add_example_for_java_8
Add an example for installing java 8
2016-04-04 14:26:42 +01:00
Bryan Jen
9d43ed058e Merge pull request #163 from HelenCampbell/1.5.0
Release prep for 1.5.0
2016-03-31 09:38:54 -07:00
Sergey Novikov
afcb95b10b Add Ubuntu 16.04 2016-03-31 18:30:26 +02:00
Helen Campbell
15aff36b79 Release prep for 1.5.0 2016-03-31 17:21:59 +01:00
Nick Walker
7ab4bc1b37 Add an example for installing java 8
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.
2016-03-29 07:40:46 -07:00
Hunter Haugen
749a735559 Merge pull request #159 from mmarseglia/master
Add support for official Oracle Java SE jdk and jre packages for CentOS
2016-03-02 10:08:57 -08:00
Marseglia. Mike
2bc036e043 fix syntax error in metadata.json 2016-02-26 11:47:16 -05:00
Marseglia. Mike
07767f0c8d update README with java::oracle usage, notes. removed puppet/archive as dependency since it is only required for java::oracle. 2016-02-26 11:18:46 -05:00
Hunter Haugen
b2c073e651 Merge pull request #160 from jyaworski/rhel71_java8
Use java 8 as the default on RHEL > 7.0
2016-02-24 10:55:54 -08:00
Joseph Yaworski
c8e46b5db2 Use java 8 as the default on RHEL > 7.0 2016-02-24 13:38:06 -05:00
Marseglia. Mike
06aecdb62a Add support for official Oracle Java SE jdk and jre packages for CentOS 2016-02-18 14:15:19 -05:00
Helen
a2e4898550 Merge pull request #158 from DavidS/debian-8-support
Update metadata to note Debian 8 support
2016-02-17 12:15:10 +00:00
David Schmitt
1c3dd32c81 Update metadata to note Debian 8 support 2016-02-17 11:58:14 +00:00
TP Honey
7b073c5ef6 Merge pull request #157 from DavidS/fm-4046-update-msync
(FM-4046) Update to current msync configs [006831f]
2016-02-16 17:04:40 +00:00
David Schmitt
7f4f864dfc (FM-4046) Update to current msync configs [006831f]
This moves all copyright statements to the NOTICE file in accordance with the ASFs guidelines on applying the Apache-2.0 license.
2016-02-16 16:33:34 +00:00
Bryan Jen
9a0fc641f9 Merge pull request #156 from joerayme/allow-tildes-in-version
Allow tildes in version to support webupd8team's packages
2016-02-08 09:09:10 -07:00
Joe Ray
e6a026d3c8 Merge branch 'master' into allow-tildes-in-version 2016-02-05 15:23:03 +00:00
Joe Ray
3bb3f325b7 Allow tildes in version to support webupd8team's packages
See http://ppa.launchpad.net/webupd8team/java/ubuntu/pool/main/o/oracle-java8-installer/
2016-02-05 15:05:19 +00:00
TP Honey
5152c9c25e Merge pull request #151 from tux-o-matic/master
Can now pass options to package provider
2016-01-29 13:39:13 +00:00
Benjamin Merot
3842d6f657 Added possibility to pass options to package
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.
2016-01-29 10:57:24 +01:00
Hunter Haugen
d69eedd7e2 Merge pull request #154 from DavidS/fm-4049-update-msync
(FM-4049) update to modulesync_configs
2016-01-27 08:36:38 -08:00
David Schmitt
3b8bba05ca (FM-4049) Update to current msync configs [2c99161] 2016-01-27 14:35:45 +00:00
TP Honey
aee0f6bc3f Merge pull request #153 from petems/MODULES-2928-add_freebsd_support
(MODULES-2928) Adds FreeBSD Support
2015-12-29 14:46:32 +00:00
Peter Souter
f1f2b830a0 (MODULES-2928) Adds FreeBSD Support
* 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.
2015-12-29 13:11:47 +00:00
Bryan Jen
59a24e9eaf Merge pull request #152 from thomasodus/master
Added support for oracle-j2re1.8 and oracle-j2sdk1.8
2015-12-22 15:46:40 -07:00
thomas odukogbe
3a7ed12d49 Added support for oracle-j2re1.8 and oracle-j2sdk1.8 2015-12-21 11:27:45 +00:00
Helen Campbell
5b6470acf6 Merge remote-tracking branch 'upstream/1.4.x' 2015-12-08 16:23:35 +00:00
David Schmitt
4764484970 Merge pull request #117 from ccin2p3/f/libjvm_fact
add two facts: libjvm and java executable paths
2015-12-01 13:19:21 +00:00
Fabien Wernli
9c154890a3 add two facts: java_libjvm_path java_default_home
* 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
2015-12-01 12:13:11 +01:00
Bryan Jen
a65d69a85d Merge pull request #148 from tphoney/release_1.4.3
1.4.3 release prep
2015-11-24 17:59:19 -07:00
tphoney
1c1d0b6cb7 1.4.3 release prep 2015-11-24 15:26:35 +00:00
Bryan Jen
4f0ee5a759 Merge pull request #147 from oc243/patch-2
Add support for Ubuntu 15.10
2015-11-20 09:34:33 -07:00
Oliver Chick
ca2171043e Add support for Ubuntu 15.10 2015-11-18 23:52:17 +00:00
David Schmitt
1236d9ee47 Merge pull request #145 from bmjen/git-fixtures
update fixtures.yml to use git instead of http
2015-10-15 17:39:46 +01:00
Bryan Jen
de05057e1d update fixtures.yml to use git instead of http 2015-10-15 09:37:37 -07:00
Hunter Haugen
faede8c802 Fix fixtures 2015-10-06 18:08:48 -07:00
JT (Jonny)
a9198d235d Merge pull request #144 from hunner/release_1.4.2
Release 1.4.2
2015-10-07 01:30:20 +01:00
Hunter Haugen
c47711e36e Release 1.4.2 2015-10-06 16:29:23 -07:00
Jesse Lovelace
65476bd54b Merge pull request #143 from puppetlabs/master
Update 1.4.x with master changes
2015-10-06 18:20:34 -05:00
Hunter Haugen
8eee08c143 Merge pull request #142 from DavidS/MODULES-2637-java_version_on_OSX
(MODULES-2637) Checks java actually installed
2015-10-01 11:20:49 -07:00
David Schmitt
dadc7a6c22 (MODULES-2637) Checks java actually installed
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>
2015-10-01 19:09:32 +01:00
David Schmitt
3645364e5b (MAINT) declare an exclusion filter for the tests using with_env on facter 1.6
The with_env function is not available in facter 1.6 and OpenBSD is not
supported.
2015-10-01 19:09:32 +01:00
Hunter Haugen
913a810bfd Merge pull request #141 from vrtdev/feature/fix_spec_deprecation_warnings
Fix rspec deprecation warnings. .should -> expect().to
2015-09-28 21:47:57 -07:00
Jan Vansteenkiste
8bef423733 Fix rspec deprecation warnings. .should -> expect().to 2015-09-29 06:44:30 +02:00
Bryan Jen
abd490dc6a Merge pull request #137 from puppetlabs/1.4.x
mergeback 1.4.x
2015-07-15 15:39:00 -07:00
Bryan Jen
7c70ceaed7 Merge pull request #136 from hunner/release_1.4.1
Release 1.4.1
2015-07-15 13:33:32 -07:00
Hunter Haugen
76c5d2c93d Release 1.4.1 2015-07-15 13:14:56 -07:00
Hunter Haugen
8e5b079fd7 Merge pull request #135 from zreichert/fix
Add OEL operatingsystem to java::params
2015-07-14 10:06:44 -07:00
Zach Reichert
e8b3dd534f Add OEL operatingsystem to java::params 2015-07-14 10:03:56 -07:00
Hunter Haugen
9efcb78c1f Merge pull request #134 from mhaskel/merge_1.4.x_to_master
Merge 1.4.x to master
2015-07-09 14:57:39 -07:00
Morgan Haskel
d07a3551c7 Merge pull request #133 from hunner/fix_metadata
Fix incorrect metadata
2015-07-07 10:12:18 -07:00
Hunter Haugen
911b497725 Fix incorrect metadata 2015-07-07 10:11:36 -07:00
Morgan Haskel
9e85843369 Merge pull request #132 from bmjen/1.4.0-prep
updates metadata.json to include support for PE up to 2015.2.x
2015-07-06 16:34:35 -07:00
Bryan Jen
b04fbac5af updates metadata.json to include support for PE up to 2015.2.x 2015-07-06 16:33:22 -07:00
Morgan Haskel
17dfb850db Merge pull request #131 from bmjen/1.4.0-prep
Release 1.4.0 prep
2015-07-06 13:27:40 -07:00
Bryan Jen
b058ce725c Release 1.4.0 prep 2015-07-06 13:17:27 -07:00
Bryan Jen
cf0c56b06f Merge pull request #126 from danielparks/require-update-java-alternatives
Install update-java-alternatives on Debian for the java::config class
2015-07-02 12:27:05 -07:00
Morgan Haskel
3a102bcde4 Merge pull request #129 from bmjen/fedora-support
(MODULES-2068) add fedora to metadata.json operatingsystem_support list
2015-07-01 16:43:13 -07:00
Joshua Hoblitt
907e727ad1 (MODULES-2068) add fedora to metadata.json operatingsystem_support list 2015-07-01 15:43:22 -07:00
Travis Fields
14cf5c4e5d Merge pull request #128 from bmjen/oracle-fun
(MODULES-2095) fixes create-java-alternatives command
2015-06-30 09:46:26 -07:00
Bryan Jen
4aac413e04 (MODULES-2095) fixes create-java-alternatives command 2015-06-29 14:07:40 -07:00
Hunter Haugen
a64efdff6e Merge pull request #127 from bmjen/fix-case-statement
re-orders case statements in manifests to workaround PUP-4520.
2015-06-24 13:50:44 -07:00
Bryan Jen
bfc03a54c5 re-orders case statements in manifests to workaround PUP-4520. 2015-06-24 13:49:19 -07:00
Daniel Parks
75fa927d72 Install update-java-alternatives on Debian for the java::config class. 2015-06-22 22:15:14 -07:00
Bryan Jen
a5500ff58e Merge pull request #123 from hunner/add_helper
Add helper to install puppet/pe/puppet-agent
2015-06-15 10:25:35 -07:00
Hunter Haugen
ec66670995 Add helper to install puppet/pe/puppet-agent 2015-06-11 16:54:34 -07:00
Bryan Jen
079c963e05 Merge pull request #122 from justinstoller/maint/master/set-puppet-version
(maint) allow setting PUPPET_VERSION in acceptance
2015-06-09 15:03:47 -07:00
Justin Stoller
ba817d0d56 (maint) allow setting PUPPET_VESION in acceptance 2015-06-08 22:16:59 -07:00
David Schmitt
42580b0121 Merge pull request #121 from puppetlabs/travisci_update
Updated travisci file to remove allow_failures on Puppet 4
2015-06-08 15:40:34 +01:00
Jonathan Tripathy
232258f290 Updated travisci file to remove allow_failures on Puppet 4 2015-06-08 14:24:41 +01:00
Hunter Haugen
0f194c7bb3 Add ability to unittest puppet 4 2015-05-27 08:12:30 -07:00
TP Honey
15909c4186 Merge pull request #109 from buzzdeee/master
Add support for OpenBSD, and also add some regression tests.
2015-05-15 11:48:47 +01:00
Bryan Jen
461209338f Merge pull request #118 from puppetlabs/modulesync_updates
Modulesync updates
2015-05-07 14:09:48 -07:00
Morgan Haskel
d1f6438adc beaker gemfile fixes 2015-05-06 14:32:38 -07:00
Morgan Haskel
0c73b6242b sync via modulesync 2015-05-06 14:30:49 -07:00
Morgan Haskel
d5aec12518 sync via modulesync 2015-05-06 14:10:14 -07:00
Sebastian Reitenbach
5815242f8e Add support for OpenBSD, and also add some regression tests.
Add info about OpenBSD support to README.md and metadata.json
Add a note about OpenBSD java_version fact to README.markdown.
Fixup wording on context in one of the java patch level regression tests.
No mentioning of OpenBSD in metdata.json

Cleanup wording of context as suggested by @elyscape
update contexts as suggested by @elyscape
2015-04-23 12:29:11 +02:00
Morgan Haskel
586195d6c9 Merge pull request #112 from haw-hh-ai-lab/support_ubuntu_vivid
Support ubuntu vivid
2015-04-06 10:02:22 -07:00
Lutz Behnke
e22aa3a36a add support for ubuntu vivid (15.04) using openjdk-8
add acceptance test node without really understanding what it does.
add test for distribution type jdk for Ubuntu vivid
2015-04-01 08:16:07 +02:00
Justin Stoller
1b9bb75de8 Merge pull request #115 from anodelman/master
(BKR-147) add Gemfile setting for BEAKER_VERSION for puppet...
2015-03-26 16:47:45 -07:00
Alice Nodelman
868fd0b920 (BKR-147) add Gemfile setting for BEAKER_VERSION for puppet...
puppetdb, etc

- support for BEAKER_VERSION and BEAKER_RSPEC_VERSION in gemfile
2015-03-24 14:48:58 -07:00
Morgan Haskel
0fa3f1a775 Merge pull request #114 from cmurphy/rspec-puppet-2
Test changes
2015-03-24 15:45:32 -04:00
Colleen Murphy
8db7120eed Update .travis.yml
This commit makes the following changes to the test matrix:

- Runs tests on ruby 2.1.5 instead of 2.0.0
- Runs tests on ruby 1.8.7 with puppet 3.x
- Adds an environment to run on an intermediate 3.x puppet version
  instead of latest (specifically 3.4.x)
- Adds an environment to run with the future parser on latest puppet.
  This would affect the test runs for the validate and spec checks.
- Adds environments to run with strict variables on latest puppet.
- Runs the tests on docker
2015-03-23 21:57:34 -07:00
Colleen Murphy
44a1992e83 Keep testing on puppet 2.7
The modulesync config repo is dropping universal support for puppet
2.7, but individual repos should still keep support until the next
naturally-occuring major release.
2015-03-23 12:12:38 -07:00
Colleen Murphy
d0a03f66c7 Ensure lint fails on warnings 2015-03-19 14:10:09 -07:00
Colleen Murphy
ce5529a03d Remove unneeded dependencies
puppetlabs_spec_helper handles these dependencies for us.
2015-03-19 14:10:03 -07:00
Colleen Murphy
5b45d1fede Update rspec tests for rspec-puppet 2
This patch uses `catalogue` instead of `subject` for the raise_error
matcher since `subject` is not evaluated the way it used to be. We also
unpin rspec-puppet.
2015-03-19 14:09:58 -07:00
Morgan Haskel
7a39d596bd Merge pull request #113 from jtappa/readme-edits
Edits to param descriptions and other small changes in the README.
2015-03-06 15:54:10 -08:00
Jorie Tappa
75fb20d0eb Edits to params and other small changes.
params are now alphabetized, descriptions are mostly the same but now
all include valid options and defaults.
2015-03-06 15:51:49 -08:00
TP Honey
87ac311761 Merge pull request #110 from antaflos/patch-1
Extend Limitations section
2015-02-26 10:36:35 +00:00
Andreas Ntaflos
412f80a7ba Extend Limitations section
Add note that this module doesn't support managing multiple Java installations in parallel.
2015-02-22 21:08:06 +01:00
Colleen Murphy
9861651c02 Merge pull request #107 from elyscape/fix/improve_java_version_fact
Improve java_version fact maintainability
2015-02-12 11:51:09 -08:00
Eli Young
8dd715a599 Improve java_version fact maintainability 2015-02-09 15:26:53 -08:00
Morgan Haskel
97b48f12d1 Merge pull request #104 from cottsay/master
Fix Fedora 21+ package name
2015-02-06 18:46:22 +01:00
Morgan Haskel
1a53dd3ff4 Merge pull request #106 from petems/improve_java_version_fact_with_args
(MODULES-1749) Update java_version fact with maximum memory size
2015-02-06 16:24:51 +01:00
Oliver Falk
79805000cc (MODULES-1749) Update java_version fact...
with maximum memory size

Add -Xmx8m to make large systems happy.
2015-02-06 12:47:23 +00:00
Hunter Haugen
3124798492 Merge pull request #105 from cmurphy/rspec
Pin rspec gems
2015-02-04 12:03:31 -08:00
Colleen Murphy
65010255b6 Pin rspec gems 2015-02-04 17:02:04 +01:00
Scott K Logan
98447f03e7 Fix Fedora 21+ package name
java-1.7.0-openjdk is no longer available in Fedora 21+
2015-01-31 22:50:06 -08:00
Hunter Haugen
b01d529af3 Merge pull request #100 from mhaskel/merge_1.3.x_to_master
Merge 1.3.x to master
2015-01-20 10:25:58 -08:00
Hunter Haugen
fcdb14eb75 Merge pull request #99 from mhaskel/1.3.0-prep
1.3.0 prep
2015-01-16 15:41:27 -08:00
Morgan Haskel
b8978a4e63 1.3.0 prep 2015-01-16 15:34:36 -08:00
Jean B.
aba179a935 Merge pull request #98 from mhaskel/missed_docs
Add missing docs for new facts
2015-01-16 15:18:49 -08:00
Morgan Haskel
cb54efbc34 Add missing docs for new facts 2015-01-16 15:11:51 -08:00
Hunter Haugen
b138633c4e Merge pull request #92 from petems/MODULES-1570-java_version_facts
MODULES-1570 Java Version facts
2015-01-08 09:03:53 -08:00
Peter Souter
46524ee6eb (MODULES-1570) Stub exec for older Facter
Otherwise this spec will fail with

```
Mocha::ExpectationError:
unexpected invocation: Facter::Util::Resolution.which('uname')
```
2015-01-08 08:27:56 -08:00
Hunter Haugen
4b6ddc7204 Merge pull request #97 from electrical/jreheadless
Use --jre-headless instead of --jre
2015-01-07 16:53:02 -08:00
Peter Souter
cd3ac1ee46 (MODULES-1570) Add java_major_version fact
Gives the major version of the Java release (ie. Java 1.7.0_71, major version is 7)

We also want to specifically return nil when java not present
2015-01-07 15:42:23 -08:00
Richard Pijnenburg
3b290abddf Use --jre-headless instead of --jre
In some cases it can cause problems and report these kind of errors:

$ update-java-alternatives -s /usr/lib/jvm/java-1.7.0-openjdk-amd64 --jre
update-alternatives: error: no alternatives for policytool
update-alternatives: error: no alternatives for policytool
2015-01-07 22:51:26 +00:00
Travis Fields
55ca769bc2 Merge pull request #96 from mhaskel/wheezy_test_fix
Acceptance test fix for wheezy
2014-12-29 17:28:00 -08:00
Morgan Haskel
619cdf99c4 Acceptance test fix for wheezy 2014-12-29 17:13:06 -08:00
Morgan Haskel
bac6b37e64 Merge pull request #95 from cmurphy/master
Sync with modulesync
2014-12-29 11:21:17 -08:00
Colleen Murphy
dbcab7df53 Sync with modulesync 2014-12-29 10:58:10 -08:00
Hunter Haugen
a0807a8c33 Merge pull request #94 from mhaskel/test_fix_89
Test fix for RHEL with alternatives
2014-12-29 09:56:34 -08:00
Morgan Haskel
ee9d955eeb Test fix for RHEL with alternatives
Alternatives support was added in #89, but the test wasn't updated to
expect failures when invalid alternatives are passed to RHEL systems.
2014-12-29 09:53:03 -08:00
Peter Souter
5168f61c26 (MODULES-1570) Improve variable names
Lets keep it vaguely consistent
2014-12-29 15:13:47 +00:00
Peter Souter
ea4717ea29 (MODULES-1570) java_patch_level fact
Uses the `java_version` fact and gets the patch level by splitting after `_`

This would be useful if you want to make sure you're not accidentally downgrading the version of Java to a lower patch level (I've noticed some package managers don't notice this too well)
2014-12-29 15:13:47 +00:00
Peter Souter
8724592f2b (MODULES-1570) java_version fact
Adapted from the many found on Github, simply runs `java -version` and strips the results. From what I can find there aren't many edge cases for the result `java -version 2>&1` could return, so this should be fairly compatible.
2014-12-29 15:13:47 +00:00
Peter Souter
378dcc7802 (MODULES-1570) TDD Style - Add specs first
Facter unit tests to check resolution of Java version
2014-12-29 15:13:47 +00:00
Travis Fields
16ec5a40a7 Merge pull request #93 from mhaskel/modulesync
Sync files with modulesync
2014-12-26 16:39:23 -08:00
Morgan Haskel
dcc2867152 Merge pull request #89 from brdude/master
Add Java alternatives for RHEL based distros.
2014-12-26 15:55:56 -08:00
rmenezes
0c2e8bb610 Add Java alternatives for RHEL based distros. 2014-12-26 15:10:37 -08:00
Morgan Haskel
c660622b82 Sync files with modulesync 2014-12-26 10:58:14 -08:00
Morgan Haskel
8fdcc1a2e1 Merge pull request #90 from jbondpdx/master
FM-1523: Added module summary to metadata.json
2014-12-19 15:58:18 -08:00
Colleen Murphy
89e3a04258 Merge pull request #91 from justinstoller/maint/master/lint-fix
variable best practice (stop yelling at me linter)
2014-12-03 09:41:19 -08:00
Justin Stoller
359528b7f9 variable best practice (stop yelling at me linter) 2014-12-02 16:00:48 -08:00
Morgan Haskel
bb2d01bf13 Merge pull request #88 from phervieux/utopic
add utopic support
2014-12-02 16:43:36 -05:00
jbondpdx
4274f4f147 FM-1523: Added module summary to metadata.json 2014-11-20 15:50:07 -08:00
Patrick Hervieux
b04c8a9148 add utopic support 2014-11-14 15:41:02 +01:00
Morgan Haskel
d845e5fdd9 Merge pull request #76 from PierreR/patch-1
cosmetic: default in last position
2014-11-12 10:50:39 -08:00
Morgan Haskel
601c948ae0 Merge pull request #80 from stevenalexander/trival-readme-md-point-correction
cosmetic change to add missing space to bullet point in markdown so it r...
2014-11-12 10:48:30 -08:00
Morgan Haskel
fc369fb2f7 Merge pull request #87 from puppetlabs/revert-61-master
Revert "Add alternative support for RedHat"
2014-11-12 10:30:07 -08:00
Morgan Haskel
f95aad63a5 Revert "Add alternative support for RedHat" 2014-11-12 10:29:12 -08:00
Morgan Haskel
b00b4b8662 Merge pull request #61 from convectionlabs/master
Add alternative support for RedHat
2014-11-12 10:19:57 -08:00
Hunter Haugen
eb54419d09 Merge pull request #86 from mhaskel/merge_1.2.x
Merge 1.2.x
2014-11-10 17:02:25 -08:00
Morgan Haskel
92bd03eec3 Merge pull request #85 from cyberious/1.2.x
Remove misleading changelog, no readme changes done
2014-11-06 16:58:19 -08:00
Travis Fields
3e989f3c04 Update readme to reflect the SLES 12 addition, also fix whitespace in front of 'version 2014-11-06 16:34:02 -08:00
Morgan Haskel
c790b0b955 Merge pull request #84 from cyberious/Release1.2.0
Prepare 1.2.0 release
2014-11-06 13:15:17 -08:00
Travis Fields
50ca60cbee Prep for 1.2.0 supported release 2014-11-06 11:08:48 -08:00
Morgan Haskel
830bb07990 Merge pull request #82 from cyberious/TestcaseFixes
Fixed issue with installing stdlib on certain platforms due to ssl issues
2014-11-05 16:53:04 -08:00
Travis Fields
abad30de06 Update defaults for SLES
Fixed test issues with solaris-11 and added support for sles-12
2014-11-05 16:04:52 -08:00
Morgan Haskel
7224baa72d Merge pull request #64 from kian/master
place default case last in selectors
2014-10-29 18:48:16 -04:00
Steven Alexander
140cb7665a cosmetic change to add missing space to bullet point in markdown so it renders correctly 2014-10-02 09:41:59 +01:00
Hunter Haugen
3c41c8ae8b Merge pull request #77 from PierreR/patch-2
Fix syntax
2014-09-29 09:28:17 -07:00
Hunter Haugen
5f60d5e2c0 Merge pull request #79 from cyberious/master
Remove puppet_module_install in favor of copy_module_to
2014-09-10 12:09:28 -07:00
Travis Fields
d1d1ec2327 Remove puppet_module_install in favor of copy_module_to 2014-09-10 11:30:52 -07:00
VaishaliSaxena
bb34cb71cd Merge pull request #78 from hunner/remove_oel_5
OEL 5 is trying to use up2date which doesn't work
2014-09-02 12:57:22 -07:00
Hunter Haugen
e849b5029c OEL 5 is trying to use up2date which doesn't work 2014-09-02 12:56:21 -07:00
Pi3r
5ad98b17be Fix syntax 2014-09-01 14:39:24 +02:00
Pi3r
7580a25018 cosmetic: default in last position
The main motivation for this change is for compatibility with puppetresource (https://github.com/bartavelle/language-puppet).

IMHO, it makes much more sense this way because all cases are checked order wise.
2014-09-01 13:53:08 +02:00
Hunter Haugen
db0f428a66 Merge pull request #75 from hunner/fix_spec
Ah hah, got it
2014-08-28 18:34:22 -07:00
Hunter Haugen
fb38145cd4 Ah hah, got it 2014-08-28 18:33:56 -07:00
Hunter Haugen
92d53c084e Merge pull request #74 from hunner/spec_filter
Maybe spec filters work like this
2014-08-28 18:21:41 -07:00
Hunter Haugen
4cf0088f91 Maybe spec filters work like this 2014-08-28 18:21:09 -07:00
Hunter Haugen
3648bd8b70 Merge pull request #73 from hunner/spec_typo
Spec typo
2014-08-28 17:53:30 -07:00
Hunter Haugen
30a5311d73 Spec typo 2014-08-28 17:53:11 -07:00
Hunter Haugen
c781b2fa63 Merge pull request #72 from hunner/fix_comma
Misplaced comma
2014-08-28 17:04:58 -07:00
Hunter Haugen
9823d8eefd Misplaced comma 2014-08-28 17:04:44 -07:00
VaishaliSaxena
353e5ee694 Merge pull request #71 from hunner/rm_meta
Remove sci 7 from metadata
2014-08-28 16:50:08 -07:00
Hunter Haugen
6556d18c86 Remove sci 7 from metadata 2014-08-28 16:48:03 -07:00
VaishaliSaxena
eae176c5b0 Merge pull request #70 from hunner/update_tests
Remove Sci 7 from readme and update oracle linux tests for ubuntu
2014-08-28 16:41:24 -07:00
Hunter Haugen
096196bd89 Remove Sci 7 from readme and update oracle linux tests for ubuntu 2014-08-28 16:38:23 -07:00
Ashley Penney
a231ce8891 Merge pull request #69 from mhaskel/spec_updates
Update spec_helper for consistency
2014-08-28 17:39:44 -04:00
Morgan Haskel
f519b26dbc Update spec_helper for consistency 2014-08-28 17:35:30 -04:00
Ashley Penney
cdc30ce467 Merge pull request #68 from hunner/release_1.1.2
Release 1.1.2
2014-08-25 15:38:28 -04:00
Hunter Haugen
d0a7a72631 Release 1.1.2 2014-08-25 12:32:20 -07:00
Morgan Haskel
4bcc4e732a Merge pull request #67 from hunner/make_deb_work
Make deb work
2014-08-22 17:56:44 -04:00
Hunter Haugen
e4628a345c Debian should fail with incorrect java_alternative 2014-08-22 14:42:15 -07:00
Morgan Haskel
67486853f2 Merge pull request #66 from hunner/make_sol_work
Add more tests and make solaris pass
2014-08-22 16:36:37 -04:00
Hunter Haugen
f09c5e9a17 Add more tests and make solaris pass 2014-08-22 13:27:11 -07:00
Morgan Haskel
ee402d8057 Merge pull request #65 from hunner/add_metadata
Add metadata.json and remove Modulefile
2014-08-22 13:04:51 -04:00
Hunter Haugen
f99141b895 Add metadata.json and remove Modulefile 2014-08-22 10:04:11 -07:00
Kian Mohageri
a04e88d658 place default case last in selectors
According to the selector documentation (https://docs.puppetlabs.com/puppet/latest/reference/lang_conditional.html#selectors), the default case should be last:

"Cases are compared in the order that they are written in the manifest; thus, the default case (if any) must be at the end of the list."

This is fixed in 3.7+ but would be nice to fix in this module for people using < 3.7

See also https://tickets.puppetlabs.com/browse/PUP-2642
2014-08-21 17:51:34 -07:00
Hunter Haugen
ce08df1647 Merge pull request #62 from jbondpdx/java-readme
Java readme
2014-08-15 10:30:22 -07:00
jbondpdx
46e6feee7c Docs: edits to java module readme 2014-08-14 17:35:01 -07:00
jbondpdx
7e8d9587a9 Docs: new readme for java module 2014-08-14 15:41:23 -07:00
Hunter Haugen
8d1b89b43d Merge pull request #60 from puppetlabs/empty_package
Remove empty package test and validation
2014-08-13 13:12:29 -07:00
Hunter Haugen
dcdc96187d Remove empty package test and validation
an empty variable is apparently the same thing as undef, which causes
the packages to be selected as usual.
2014-08-13 13:11:28 -07:00
Hunter Haugen
230ab22adf Merge pull request #59 from puppetlabs/more_tests
Add some validation and more tests
2014-08-13 12:30:19 -07:00
Hunter Haugen
5683eaf74e Add some validation and more tests 2014-08-13 12:17:41 -07:00
Hunter Haugen
66245138f4 Merge pull request #58 from puppetlabs/add_tests
Add acceptance tests
2014-08-13 10:13:29 -07:00
Hunter Haugen
502c94b8ed Add acceptance tests
This includes tests for installing openjdk jdk & jre on most PE
supported platforms.
2014-08-12 09:10:59 -07:00
denise stockman
4f917d96f1 Add alternative support for RedHat 2014-06-06 10:52:42 -07:00
Ashley Penney
a089f326ca Merge pull request #57 from mhaskel/111-release
Prepare a 1.1.1 release.
2014-05-02 16:39:03 -04:00
44 changed files with 2372 additions and 270 deletions

View File

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

5
.gitattributes vendored Normal file
View File

@@ -0,0 +1,5 @@
#This file is generated by ModuleSync, do not edit.
*.rb eol=lf
*.erb eol=lf
*.pp eol=lf
*.sh eol=lf

16
.gitignore vendored
View File

@@ -1,7 +1,11 @@
#This file is generated by ModuleSync, do not edit.
pkg/
.DS_Store
metadata.json
spec/fixtures
*.idea
*.swp
*.tmp
Gemfile.lock
vendor/
spec/fixtures/
.vagrant/
.bundle/
coverage/
log/
.idea/
*.iml

2
.rspec Normal file
View File

@@ -0,0 +1,2 @@
--color
--format documentation

View File

@@ -1,40 +1,35 @@
#This file is generated by ModuleSync, do not edit.
---
branches:
only:
- master
sudo: false
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=
cache: bundler
script: "bundle exec rake validate lint spec"
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"
fast_finish: true
include:
- rvm: 2.1.6
dist: trusty
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-14.04
script: bundle exec rake beaker
services: docker
sudo: required
- rvm: 2.1.6
dist: trusty
env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/centos-7
script: bundle exec rake beaker
services: docker
sudo: required
- rvm: 2.1.6
bundler_args: --without system_tests
env: PUPPET_GEM_VERSION="~> 4.0" STRICT_VARIABLES="yes"
- rvm: 2.1.5
bundler_args: --without system_tests
env: PUPPET_GEM_VERSION="~> 3.0" FUTURE_PARSER="yes"
- rvm: 2.1.5
bundler_args: --without system_tests
env: PUPPET_GEM_VERSION="~> 3.0"
- rvm: 1.9.3
bundler_args: --without system_tests
env: PUPPET_GEM_VERSION="~> 3.0"
notifications:
email: false

View File

@@ -1,89 +0,0 @@
2014-05-02 - Version 1.1.1
Summary:
Add support for new versions of Debian and Ubuntu!
Features:
- Add support for Ubuntu Trusty (14.04)
- Add support for Debian Jessie (8.x)
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
* Add Solaris support
2011-06-16 Jeff McCune <jeff@puppetlabs.com> - 0.1.5
* Add Debian based distro (Lucid) support
2011-06-02 Jeff McCune <jeff@puppetlabs.com> - 0.1.4
* Fix class composition ordering problems
2011-05-28 Jeff McCune <jeff@puppetlabs.com> - 0.1.3
* Remove stages
2011-05-26 Jeff McCune <jeff@puppetlabs.com> - 0.1.2
* Changes JRE/JDK selection class parameter to $distribution
2011-05-25 Jeff McCune <jeff@puppetlabs.com> - 0.1.1
* Re-did versioning to follow semantic versioning
2011-05-25 Jeff McCune <jeff@puppetlabs.com> - 1.0.1
* Add validation of class parameters
2011-05-24 Jeff McCune <jeff@puppetlabs.com> - 1.0.0
* Default to JDK version 6u25
2011-05-24 Jeff McCune <jeff@puppetlabs.com> - 0.0.1
* Initial release

207
CHANGELOG.md Normal file
View File

@@ -0,0 +1,207 @@
## Supported Release 1.6.0
### Summary
Addition of a new supported OS, along with several other features and bugfixes.
#### Features
- Ubuntu 16.04 support.
- Addition example for installing Java 8.
- Update to newest modulesync_configs.
- Addition of RedHat for Oracle Java.
#### Bugfixes
- Custom archive type now given extract_path.
- Fix for rspec deprectation warnings.
- Typo fixes for readme.
- Fixed tests to run under strict variables.
- Updated Java package for SLES 11.4.
## Supported Release 1.5.0
### Summary
A release which has several support additions for different OSes. Also a couple of additional features and a few bug fixes.
#### Features
- Added Ubuntu 15.10 compatibility.
- Addition of two facts: java_libjvm_path and java_default_home.
- Added support for oracle-j2re1.8 and oracle-j2sdk1.8.
- Adds FreeBSD Support.
- Exposed the Puppet package resources install_options parameter via a new class parameter named package_options.
- Debian 8 support.
- Add support for official Oracle Java SE jdk and jre packages for CentOS.
- Use java 8 as the default on RHEL > 7.0.
#### Bugfixes
- Updated fixtures.yml to use git instead of http for stdlib.
- Updates to current msync configs.
- Small README updates and syntax error fixes.
## Supported Release 1.4.3
###Summary
Small release for support of newer PE versions. This increments the version of PE in the metadata.json file.
## 2015-10-07 - Supported Release 1.4.2
### Summary
This release fixes the fact to not trigger java every time on OS X when it is not available.
#### Bugfixes
- Causes java\_version fact to not run `java` when java is not installed on OS X
## 2015-07-16 - Supported Release 1.4.1
### Summary
This release updates the metadata for the upcoming release of PE and update params for OEL to match metadata
#### Bugfixes:
- Add missing OEL to params
##2015-07-07 - Supported Release 1.4.0
###Summary
This release adds several new features, bugfixes, documentation updates, and test improvements.
####Features:
- Puppet 4 support and testing
- Adds support for several Operating Systems
- Ubuntu 15.04
- OpenBSD 5.6, 5.7
- Fedora 20, 21, 22
####Bugfixes:
- Fixes java_version fact to work on large systems. (MODULES-1749)
- Improves maintainability of java_version fact.
- Fixes java package names on Fedora 21+.
- Fixes java install problems on Puppet 3.7.5 - 3.8.1 (PUP-4520)
- Fixes create-java-alternatives commands on RedHat distros.
- Fixes bug with Debian systems missing java-common package.
##2015-01-20 - Supported Release 1.3.0
###Summary
This release adds 3 new facts for determining Java version, adds RHEL alternatives support, adds utopic support, and fixes the flag for `update-java-alternatives` when installed from a headless pacakge.
####Features
- Added RHEL support for alternatives
- New facts
- java_major_version
- java_patch_level
- java_version
- Add support for utopic
####Bugfixes
- Use `--jre-headless` in the `update-java-alternatives` command when installed from a `headless` package
##2014-11-11 - Supported Version 1.2.0
###Summary:
This release adds SLES 12 support and is tested for Future Parser Support
####Bugfixes:
- Several readme updates
- Testcase flexability increased
####Features:
- Add SLES 12 support
- Future Parser tested
- Validated against PE 3.7
##2014-08-25 - Supported Version 1.1.2
###Summary:
This release begins the support coverage of the puppetlabs-java module.
###Bugfixes:
- Update java alternative values from deprecated names
- Readme updated
- Testing updated
##2014-05-02 - Version 1.1.1
###Summary:
Add support for new versions of Debian and Ubuntu!
####Features:
- Add support for Ubuntu Trusty (14.04)
- Add support for Debian Jessie (8.x)
##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.
- Add Scientific Linux
###Bugfixes:
- Plus signs are valid in debian/ubuntu package names.
##2013-08-01 - Version 1.0.1
Matthaus Owens <matthaus@puppetlabs.com>
* Update java packages for Fedora systems
##2013-07-29 - Version 1.0.0
####Detailed Changes
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 - Version 0.3.0
Reid Vandewiele <reid@puppetlabs.com> -
* Refactor, introduce params pattern
##2012-11-15 - Version 0.2.0
Scott Schneider <sschneider@puppetlabs.com>
* Add Solaris support
##2011-06-16 - Version 0.1.5
Jeff McCune <jeff@puppetlabs.com>
* Add Debian based distro (Lucid) support
##2011-06-02 - Version 0.1.4
Jeff McCune <jeff@puppetlabs.com>
* Fix class composition ordering problems
##2011-05-28 - Version 0.1.3
Jeff McCune <jeff@puppetlabs.com>
* Remove stages
##2011-05-26 - Version 0.1.2
Jeff McCune <jeff@puppetlabs.com>
* Changes JRE/JDK selection class parameter to $distribution
##2011-05-25 - Version 0.1.1
Jeff McCune <jeff@puppetlabs.com>
* Re-did versioning to follow semantic versioning
* Add validation of class parameters
##2011-05-24 - Version 0.1.0
Jeff McCune <jeff@puppetlabs.com>
* Default to JDK version 6u25
##2011-05-24 - Version 0.0.1
Jeff McCune <jeff@puppetlabs.com>
* Initial release

220
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,220 @@
Checklist (and a short version for the impatient)
=================================================
* Commits:
- Make commits of logical units.
- Check for unnecessary whitespace with "git diff --check" before
committing.
- Commit using Unix line endings (check the settings around "crlf" in
git-config(1)).
- Do not check in commented out code or unneeded files.
- The first line of the commit message should be a short
description (50 characters is the soft limit, excluding ticket
number(s)), and should skip the full stop.
- Associate the issue in the message. The first line should include
the issue number in the form "(#XXXX) Rest of message".
- The body should provide a meaningful commit message, which:
- uses the imperative, present tense: "change", not "changed" or
"changes".
- includes motivation for the change, and contrasts its
implementation with the previous behavior.
- Make sure that you have tests for the bug you are fixing, or
feature you are adding.
- Make sure the test suites passes after your commit:
`bundle exec rspec spec/acceptance` More information on [testing](#Testing) below
- When introducing a new feature, make sure it is properly
documented in the README.md
* Submission:
* Pre-requisites:
- Make sure you have a [GitHub account](https://github.com/join)
- [Create a ticket](https://tickets.puppetlabs.com/secure/CreateIssue!default.jspa), or [watch the ticket](https://tickets.puppetlabs.com/browse/) you are patching for.
* Preferred method:
- Fork the repository on GitHub.
- Push your changes to a topic branch in your fork of the
repository. (the format ticket/1234-short_description_of_change is
usually preferred for this project).
- Submit a pull request to the repository in the puppetlabs
organization.
The long version
================
1. Make separate commits for logically separate changes.
Please break your commits down into logically consistent units
which include new or changed tests relevant to the rest of the
change. The goal of doing this is to make the diff easier to
read for whoever is reviewing your code. In general, the easier
your diff is to read, the more likely someone will be happy to
review it and get it into the code base.
If you are going to refactor a piece of code, please do so as a
separate commit from your feature or bug fix changes.
We also really appreciate changes that include tests to make
sure the bug is not re-introduced, and that the feature is not
accidentally broken.
Describe the technical detail of the change(s). If your
description starts to get too long, that is a good sign that you
probably need to split up your commit into more finely grained
pieces.
Commits which plainly describe the things which help
reviewers check the patch and future developers understand the
code are much more likely to be merged in with a minimum of
bike-shedding or requested changes. Ideally, the commit message
would include information, and be in a form suitable for
inclusion in the release notes for the version of Puppet that
includes them.
Please also check that you are not introducing any trailing
whitespace or other "whitespace errors". You can do this by
running "git diff --check" on your changes before you commit.
2. Sending your patches
To submit your changes via a GitHub pull request, we _highly_
recommend that you have them on a topic branch, instead of
directly on "master".
It makes things much easier to keep track of, especially if
you decide to work on another thing before your first change
is merged in.
GitHub has some pretty good
[general documentation](http://help.github.com/) on using
their site. They also have documentation on
[creating pull requests](http://help.github.com/send-pull-requests/).
In general, after pushing your topic branch up to your
repository on GitHub, you can switch to the branch in the
GitHub UI and click "Pull Request" towards the top of the page
in order to open a pull request.
3. Update the related GitHub issue.
If there is a GitHub issue associated with the change you
submitted, then you should update the ticket to include the
location of your branch, along with any other commentary you
may wish to make.
Testing
=======
Getting Started
---------------
Our puppet modules provide [`Gemfile`](./Gemfile)s which can tell a ruby
package manager such as [bundler](http://bundler.io/) what Ruby packages,
or Gems, are required to build, develop, and test this software.
Please make sure you have [bundler installed](http://bundler.io/#getting-started)
on your system, then use it to install all dependencies needed for this project,
by running
```shell
% bundle install
Fetching gem metadata from https://rubygems.org/........
Fetching gem metadata from https://rubygems.org/..
Using rake (10.1.0)
Using builder (3.2.2)
-- 8><-- many more --><8 --
Using rspec-system-puppet (2.2.0)
Using serverspec (0.6.3)
Using rspec-system-serverspec (1.0.0)
Using bundler (1.3.5)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
```
NOTE some systems may require you to run this command with sudo.
If you already have those gems installed, make sure they are up-to-date:
```shell
% bundle update
```
With all dependencies in place and up-to-date we can now run the tests:
```shell
% bundle exec rake spec
```
This will execute all the [rspec tests](http://rspec-puppet.com/) tests
under [spec/defines](./spec/defines), [spec/classes](./spec/classes),
and so on. rspec tests may have the same kind of dependencies as the
module they are testing. While the module defines in its [Modulefile](./Modulefile),
rspec tests define them in [.fixtures.yml](./fixtures.yml).
Some puppet modules also come with [beaker](https://github.com/puppetlabs/beaker)
tests. These tests spin up a virtual machine under
[VirtualBox](https://www.virtualbox.org/)) with, controlling it with
[Vagrant](http://www.vagrantup.com/) to actually simulate scripted test
scenarios. In order to run these, you will need both of those tools
installed on your system.
You can run them by issuing the following command
```shell
% bundle exec rake spec_clean
% bundle exec rspec spec/acceptance
```
This will now download a pre-fabricated image configured in the [default node-set](./spec/acceptance/nodesets/default.yml),
install puppet, copy this module and install its dependencies per [spec/spec_helper_acceptance.rb](./spec/spec_helper_acceptance.rb)
and then run all the tests under [spec/acceptance](./spec/acceptance).
Writing Tests
-------------
XXX getting started writing tests.
If you have commit access to the repository
===========================================
Even if you have commit access to the repository, you will still need to
go through the process above, and have someone else review and merge
in your changes. The rule is that all changes must be reviewed by a
developer on the project (that did not write the code) to ensure that
all changes go through a code review process.
Having someone other than the author of the topic branch recorded as
performing the merge is the record that they performed the code
review.
Additional Resources
====================
* [Getting additional help](http://puppetlabs.com/community/get-help)
* [Writing tests](http://projects.puppetlabs.com/projects/puppet/wiki/Development_Writing_Tests)
* [Patchwork](https://patchwork.puppetlabs.com)
* [General GitHub documentation](http://help.github.com/)
* [GitHub pull request documentation](http://help.github.com/send-pull-requests/)

48
Gemfile
View File

@@ -1,15 +1,39 @@
source "http://rubygems.org"
#This file is generated by ModuleSync, do not edit.
if ENV.key?('PUPPET_VERSION')
puppetversion = "= #{ENV['PUPPET_VERSION']}"
elsif ENV.key?('PUPPET_GEM_VERSION')
puppetversion = ENV['PUPPET_GEM_VERSION']
else
puppetversion = ['~> 2.7']
source ENV['GEM_SOURCE'] || "https://rubygems.org"
def location_for(place, version = nil)
if place =~ /^(git[:@][^#]*)#(.*)/
[version, { :git => $1, :branch => $2, :require => false}].compact
elsif place =~ /^file:\/\/(.*)/
['>= 0', { :path => File.expand_path($1), :require => false}]
else
[place, version, { :require => false}].compact
end
end
gem "rake"
gem "puppet", puppetversion
gem "puppet-lint"
gem "rspec-puppet"
gem "puppetlabs_spec_helper"
group :development, :unit_tests do
gem 'json', :require => false
gem 'metadata-json-lint', :require => false
gem 'puppet_facts', :require => false
gem 'puppet-blacksmith', :require => false
gem 'puppetlabs_spec_helper', :require => false
gem 'rspec-puppet', '>= 2.3.2', :require => false
gem 'simplecov', :require => false
end
group :system_tests do
gem 'beaker-rspec', *location_for(ENV['BEAKER_RSPEC_VERSION'] || '>= 3.4')
gem 'beaker', *location_for(ENV['BEAKER_VERSION'])
gem 'serverspec', :require => false
gem 'beaker-puppet_install_helper', :require => false
gem 'master_manipulator', :require => false
gem 'beaker-hostgenerator', *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'])
end
gem 'facter', *location_for(ENV['FACTER_GEM_VERSION'])
gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
if File.exists? "#{__FILE__}.local"
eval(File.read("#{__FILE__}.local"), binding)
end

View File

@@ -1,43 +0,0 @@
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

209
LICENSE
View File

@@ -1,17 +1,202 @@
Puppet Java Module - Puppet module for managing Java
Copyright (C) 2011 Puppet Labs Inc
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Puppet Labs can be contacted at: info@puppetlabs.com
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
1. Definitions.
http://www.apache.org/licenses/LICENSE-2.0
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,10 +0,0 @@
name 'puppetlabs-java'
version '1.1.1'
source 'git://github.com/puppetlabs/puppetlabs-java'
author 'puppetlabs'
license 'Apache'
summary 'Manage the official Java runtime'
description 'Manage the official Java runtime'
project_page 'https://github.com/puppetlabs/puppetlabs-java'
dependency 'puppetlabs/stdlib', '>= 0.1.6'

18
NOTICE Normal file
View File

@@ -0,0 +1,18 @@
java puppet module
Copyright (C) 2011-2016 Puppet Labs, Inc.
Puppet Labs can be contacted at: info@puppetlabs.com
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -1,5 +1,183 @@
#Java
#java
Manage the Java runtime for use with other application software.
####Table of Contents
Currently this deploys the correct Java package on a variety of platforms.
1. [Overview](#overview)
2. [Module Description - What the module does and why it is useful](#module-description)
3. [Setup - The basics of getting started with the java module](#setup)
* [Beginning with the java module](#beginning-with-the-java-module)
4. [Usage - Configuration options and additional functionality](#usage)
5. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
6. [Limitations - OS compatibility, etc.](#limitations)
7. [Development - Guide for contributing to the module](#development)
##Overview
Installs the correct Java package on various platforms.
##Module Description
The java module can automatically install Java jdk or jre on a wide variety of systems. Java is a base component for many software platforms, but Java system packages don't always follow packaging conventions. The java module simplifies the Java installation process.
##Setup
###Beginning with the java module
To install the correct Java package on your system, include the `java` class: `include java`.
##Usage
The java module installs the correct jdk or jre package on a wide variety of systems. By default, the module installs the jdk package, but you can set different installation parameters as needed. For example, to install jre instead of jdk, you would set the distribution parameter:
~~~
class { 'java':
distribution => 'jre',
}
~~~
To install the latest patch version of Java 8 on CentOS
~~~
class { 'java' :
package => 'java-1.8.0-openjdk-devel',
}
~~~
The defined type `java::oracle` installs one or more versions of Oracle Java SE. `java::oracle` depends on [puppet/archive](https://github.com/voxpupuli/puppet-archive). By using `java::oracle` you agree to Oracle's licensing terms for Java SE.
~~~
java::oracle { 'jdk6' :
ensure => 'present',
version => '6',
java_se => 'jdk',
}
java::oracle { 'jdk8' :
ensure => 'present',
version => '8',
java_se => 'jdk',
}
~~~
##Reference
###Classes
####Public classes
* `java`: Installs and manages the Java package.
####Private classes
* `java::config`: Configures the Java alternatives.
* `java::params`: Builds a hash of jdk/jre packages for all compatible operating systems.
####Parameters
The following parameters are available in `java`:
##### `distribution`
Specifies the Java distribution to install.
Valid options: 'jdk', 'jre', or, where the platform supports alternative packages, 'sun-jdk', 'sun-jre', 'oracle-jdk', 'oracle-jre'. Default: 'jdk'.
#####`java_alternative`
Specifies the name of the Java alternative to use. If you set this parameter, *you must also set the `java_alternative_path`.*
Valid options: Run command `update-java-alternatives -l` for a list of available choices. Default: OS and distribution dependent defaults on *deb systems, undef on others.
#####`java_alternative_path`
*Required when `java_alternative` is specified.* Defines the path to the `java` command.
Valid option: String. Default: OS and distribution dependent defaults on *deb systems, undef on others.
#####`package`
Specifies the name of the Java package. This is configurable in case you want to install a non-standard Java package. If not set, the module installs the appropriate package for the `distribution` parameter and target platform. If you set `package`, the `distribution` parameter does nothing.
Valid option: String. Default: undef.
#####`version`
Sets the version of Java to install, if you want to ensure a particular version.
Valid options: 'present', 'installed', 'latest', or a string matching `/^[.+_0-9a-zA-Z:-]+$/`. Default: 'present'.
####Public defined types
* `java::oracle`: Installs specified version of Oracle Java SE. You may install multiple versions of Oracle Jave SE on the same node using this defined type.
####Parameters
The following parameters are available in `java::oracle`:
######`version`
Version of Java Standard Edition (SE) to install. 6, 7 or 8.
#####`java_se`
Type of Java SE to install, jdk or jre.
#####`ensure`
Install or remove the package.
#####`oracle_url`
Official Oracle URL to download the binaries from.
###Facts
The java module includes a few facts to describe the version of Java installed on the system:
* `java_major_version`: The major version of Java.
* `java_patch_level`: The patch level of Java.
* `java_version`: The full Java version string.
* `java_default_home`: The absolute path to the java system home directory (only available on Linux). For instance, the `java` executable's path would be `${::java_default_home}/jre/bin/java`. This is slightly different from the "standard" JAVA_HOME environment variable.
* `java_libjvm_path`: The absolute path to the directory containing the shared library `libjvm.so` (only available on Linux). Useful for setting `LD_LIBRARY_PATH` or configuring the dynamic linker.
**Note:** The facts return `nil` if Java is not installed on the system.
##Limitations
This module cannot guarantee installation of Java versions that are not available on platform repositories.
This module only manages a singular installation of Java, meaning it is not possible to manage e.g. OpenJDK 7, Oracle Java 7 and Oracle Java 8 in parallel on the same system.
Oracle Java packages are not included in Debian 7 and Ubuntu 12.04/14.04 repositories. To install Java on those systems, you'll need to package Oracle JDK/JRE, and then the module can install the package. For more information on how to package Oracle JDK/JRE, see the [Debian wiki](http://wiki.debian.org/JavaPackage).
This module is officially [supported](https://forge.puppetlabs.com/supported) for the following Java versions and platforms:
OpenJDK is supported on:
* Red Hat Enterprise Linux (RHEL) 5, 6, 7
* CentOS 5, 6, 7
* Oracle Linux 6, 7
* Scientific Linux 5, 6
* Debian 6, 7
* Ubuntu 10.04, 12.04, 14.04
* Solaris 11
* SLES 11 SP1, 12
* OpenBSD 5.6, 5.7
Sun Java is supported on:
* Debian 6
Oracle Java is supported on:
* CentOS 6
### A note about OpenBSD
OpenBSD packages install Java JRE/JDK in a unique directory structure, not linking
the binaries to a standard directory. Because of that, the path to this location
is hardcoded in the java_version fact. Whenever a Java upgrade to a newer
version/path will be done on OpenBSD, it has to be adapted there.
### A note about FreeBSD
By default on FreeBSD Puppet < 4.0, you will see an error as `pkgng` is not the default provider. To fix this, you can install the [zleslie/pkgng module](https://forge.puppetlabs.com/zleslie/pkgng) and set it as the default package provider like so:
```puppet
Package {
provider => 'pkgng',
}
```
On Puppet > 4.0 (ie. using the sysutils/puppet4 port), `pkgng` is included within Puppet and it's the default package provider.
##Development
Puppet Labs modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. We cant access the huge number of platforms and myriad hardware, software, and deployment configurations that Puppet is intended to serve. We want to keep it as easy as possible to contribute changes so that our modules work in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things. For more information, see our [module contribution guide.](https://docs.puppetlabs.com/forge/contributing.html)
##Contributors
The list of contributors can be found at: [https://github.com/puppetlabs/puppetlabs-java/graphs/contributors](https://github.com/puppetlabs/puppetlabs-java/graphs/contributors).

View File

@@ -1,5 +1,42 @@
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet_blacksmith/rake_tasks'
require 'puppet-lint/tasks/puppet-lint'
require 'puppetlabs_spec_helper/rake_tasks'
PuppetLint.configuration.send("disable_80chars")
PuppetLint.configuration.log_format = "%{path}:%{linenumber}:%{check}:%{KIND}:%{message}"
PuppetLint.configuration.fail_on_warnings = true
PuppetLint.configuration.send('relative')
PuppetLint.configuration.send('disable_80chars')
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
PuppetLint.configuration.send('disable_documentation')
PuppetLint.configuration.send('disable_single_quote_string_with_variables')
PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
desc 'Generate pooler nodesets'
task :gen_nodeset do
require 'beaker-hostgenerator'
require 'securerandom'
require 'fileutils'
agent_target = ENV['TEST_TARGET']
if ! agent_target
STDERR.puts 'TEST_TARGET environment variable is not set'
STDERR.puts 'setting to default value of "redhat-64default."'
agent_target = 'redhat-64default.'
end
master_target = ENV['MASTER_TEST_TARGET']
if ! master_target
STDERR.puts 'MASTER_TEST_TARGET environment variable is not set'
STDERR.puts 'setting to default value of "redhat7-64mdcl"'
master_target = 'redhat7-64mdcl'
end
targets = "#{master_target}-#{agent_target}"
cli = BeakerHostGenerator::CLI.new([targets])
nodeset_dir = "tmp/nodesets"
nodeset = "#{nodeset_dir}/#{targets}-#{SecureRandom.uuid}.yaml"
FileUtils.mkdir_p(nodeset_dir)
File.open(nodeset, 'w') do |fh|
fh.print(cli.execute)
end
puts nodeset
end

View File

@@ -0,0 +1,21 @@
# Fact: java_default_home
#
# Purpose: get absolute path of java system home
#
# Resolution:
# Uses `readlink` to resolve the path of `/usr/bin/java` then returns subsubdir
#
# Caveats:
# Requires readlink
#
# Notes:
# None
Facter.add(:java_default_home) do
confine :kernel => 'Linux'
setcode do
if Facter::Util::Resolution.which('readlink')
java_bin = Facter::Util::Resolution.exec('readlink -e /usr/bin/java').strip
java_default_home = File.dirname(File.dirname(File.dirname(java_bin)))
end
end
end

View File

@@ -0,0 +1,25 @@
# Fact: java_libjvm_path
#
# Purpose: get path to libjvm.so
#
# Resolution:
# Lists file in java default home and searches for the file
#
# Caveats:
# Needs to list files recursively. Returns the first match
#
# Notes:
# None
Facter.add(:java_libjvm_path) do
confine :kernel => "Linux"
setcode do
java_default_home = Facter.value(:java_default_home)
java_libjvm_file = Dir.glob("#{java_default_home}/jre/lib/**/libjvm.so")
if java_libjvm_file.nil? || java_libjvm_file.empty?
nil
else
File.dirname(java_libjvm_file[0])
end
end
end

View File

@@ -0,0 +1,20 @@
# Fact: java_major_version
#
# Purpose: get Java's major version
#
# Resolution:
# Tests for presence of java, returns nil if not present
# returns output of "java -version" and splits on \n + '"'
# eg.
#
# Caveats:
# none
#
# Notes:
# None
Facter.add(:java_major_version) do
setcode do
java_version = Facter.value(:java_version)
java_patch_level = java_version.strip.split('_')[0].split('.')[1] unless java_version.nil?
end
end

View File

@@ -0,0 +1,18 @@
# Fact: java_patch_level
#
# Purpose: get Java's patch level
#
# Resolution:
# Uses java_version fact splits on the patch number (after _)
#
# Caveats:
# none
#
# Notes:
# None
Facter.add(:java_patch_level) do
setcode do
java_version = Facter.value(:java_version)
java_patch_level = java_version.strip.split('_')[1] unless java_version.nil?
end
end

View File

@@ -0,0 +1,52 @@
# Fact: java_version
#
# Purpose: get full java version string
#
# Resolution:
# Tests for presence of java, returns nil if not present
# returns output of "java -version" and splits on \n + '"'
#
# Caveats:
# none
#
# Notes:
# None
Facter.add(:java_version) do
# the OS-specific overrides need to be able to return nil,
# to indicate "no java available". Usually returning nil
# would mean that facter falls back to a lower priority
# resolution, which would then trigger MODULES-2637. To
# avoid that, we confine the "default" here to not run
# on those OS.
# Additionally, facter versions prior to 2.0.1 only support
# positive matches, so this needs to be done manually in setcode.
setcode do
unless [ 'openbsd', 'darwin' ].include? Facter.value(:operatingsystem).downcase
if Facter::Util::Resolution.which('java')
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
end
end
end
end
Facter.add(:java_version) do
confine :operatingsystem => 'OpenBSD'
has_weight 100
setcode do
Facter::Util::Resolution.with_env("PATH" => '/usr/local/jdk-1.7.0/jre/bin:/usr/local/jre-1.7.0/bin') do
if Facter::Util::Resolution.which('java')
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
end
end
end
end
Facter.add(:java_version) do
confine :operatingsystem => 'Darwin'
has_weight 100
setcode do
unless /Unable to find any JVMs matching version/ =~ Facter::Util::Resolution.exec('/usr/libexec/java_home --failfast 2>&1')
Facter::Util::Resolution.exec('java -Xmx8m -version 2>&1').lines.first.split(/"/)[1].strip
end
end
end

View File

@@ -1,11 +1,31 @@
# On Debian systems, if alternatives are set, manually assign them.
class java::config ( ) {
case $::osfamily {
Debian: {
'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",
command => "update-java-alternatives --set ${java::use_java_alternative} ${java::jre_flag}",
unless => "test /etc/alternatives/java -ef '${java::use_java_alternative_path}'",
}
}
}
'RedHat': {
if $java::use_java_alternative != undef and $java::use_java_alternative_path != undef {
# The standard packages install alternatives, custom packages do not
# For the stanard packages java::params needs these added.
if $java::use_java_package_name != $java::default_package_name {
exec { 'create-java-alternatives':
path => '/usr/bin:/usr/sbin:/bin:/sbin',
command => "alternatives --install /usr/bin/java java ${$java::use_java_alternative_path} 20000" ,
unless => "alternatives --display java | grep -q ${$java::use_java_alternative_path}",
before => Exec['update-java-alternatives']
}
}
exec { 'update-java-alternatives':
path => '/usr/bin:/usr/sbin',
command => "alternatives --set java ${$java::use_java_alternative_path}" ,
unless => "test /etc/alternatives/java -ef '${java::use_java_alternative_path}'",
}
}

View File

@@ -18,6 +18,10 @@
# The name of the java package. This is configurable in case a non-standard
# java package is desired.
#
# [*package_options*]
# Array of strings to pass installation options to the 'package' Puppet resource.
# Options available depend on the 'package' provider for the target OS.
#
# [*java_alternative*]
# The name of the java alternative to use on Debian systems.
# "update-java-alternatives -l" will show which choices are available.
@@ -41,12 +45,17 @@ class java(
$distribution = 'jdk',
$version = 'present',
$package = undef,
$package_options = undef,
$java_alternative = undef,
$java_alternative_path = undef
) {
include java::params
validate_re($version, 'present|installed|latest|^[.+_0-9a-zA-Z:-]+$')
validate_re($version, 'present|installed|latest|^[.+_0-9a-zA-Z:~-]+$')
if $package_options != undef {
validate_array($package_options)
}
if has_key($java::params::java, $distribution) {
$default_package_name = $java::params::java[$distribution]['package']
@@ -58,35 +67,49 @@ class java(
}
$use_java_package_name = $package ? {
default => $package,
undef => $default_package_name,
default => $package,
}
## 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,
}
},
default => $java_alternative,
}
## 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,
},
default => $java_alternative_path,
}
$jre_flag = $use_java_package_name ? {
/headless/ => '--jre-headless',
default => '--jre'
}
if $::osfamily == 'Debian' {
# Needed for update-java-alternatives
package { 'java-common':
ensure => present,
before => Class['java::config'],
}
}
anchor { 'java::begin:': }
->
package { 'java':
ensure => $version,
name => $use_java_package_name,
ensure => $version,
install_options => $package_options,
name => $use_java_package_name,
}
->
class { 'java::config': }

215
manifests/oracle.pp Normal file
View File

@@ -0,0 +1,215 @@
# Defined Type java::oracle
#
# Description
# Installs Oracle Java. By using this module you agree to the Oracle licensing
# agreement.
#
# Install one or more versions of Oracle Java.
#
# uses the following to download the package and automatically accept
# the licensing terms.
# wget --no-cookies --no-check-certificate --header \
# "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" \
# "http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jre-8u25-linux-x64.tar.gz"
#
# Parameters
# [*version*]
# Version of Java to install
#
# [*java_se*]
# Type of Java Standard Edition to install, jdk or jre.
#
# [*ensure*]
# Install or remove the package.
#
# [*oracle_url*]
# Official Oracle URL to download binaries from.
#
# Variables
# [*release_major*]
# Major version release number for java_se. Used to construct download URL.
#
# [*release_minor*]
# Minor version release number for java_se. Used to construct download URL.
#
# [*install_path*]
# Base install path for specified version of java_se. Used to determine if java_se
# has already been installed.
#
# [*package_type*]
# Type of installation package for specified version of java_se. java_se 6 comes
# in a few installation package flavors and we need to account for them.
#
# [*os*]
# Oracle java_se OS type.
#
# [*destination*]
# Destination directory to save java_se installer to. Usually /tmp on Linux and
# C:\TEMP on Windows.
#
# [*creates_path*]
# Fully qualified path to java_se after it is installed. Used to determine if
# java_se is already installed.
#
# [*arch*]
# Oracle java_se architecture type.
#
# [*package_name*]
# Name of the java_se installation package to download from Oracle's website.
#
# [*install_command*]
# Installation command used to install Oracle java_se. Installation commands
# differ by package_type. 'bin' types are installed via shell command. 'rpmbin'
# types have the rpms extracted and then forcibly installed. 'rpm' types are
# forcibly installed.
#
# [*url*]
# Full URL, including oracle_url, release_major, release_minor and package_name, to
# download the Oracle java_se installer.
#
# ### Author
# mike@marseglia.org
#
define java::oracle (
$ensure = 'present',
$version = '8',
$java_se = 'jdk',
$oracle_url = 'http://download.oracle.com/otn-pub/java/jdk/',
) {
# archive module is used to download the java package
include ::archive
ensure_resource('class', 'stdlib')
# validate java Standard Edition to download
if $java_se !~ /(jre|jdk)/ {
fail('Java SE must be either jre or jdk.')
}
# determine oracle Java major and minor version, and installation path
case $version {
'6' : {
$release_major = '6u45'
$release_minor = 'b06'
$install_path = "${java_se}1.6.0_45"
}
'7' : {
$release_major = '7u80'
$release_minor = 'b15'
$install_path = "${java_se}1.7.0_80"
}
'8' : {
$release_major = '8u51'
$release_minor = 'b16'
$install_path = "${java_se}1.8.0_51"
}
default : {
$release_major = '8u51'
$release_minor = 'b16'
$install_path = "${java_se}1.8.0_51"
}
}
# determine package type (exe/tar/rpm), destination directory based on OS
case $::kernel {
'Linux' : {
case $::operatingsystem {
'CentOS', 'RedHat' : {
# Oracle Java 6 comes in a special rpmbin format
if $version == '6' {
$package_type = 'rpmbin'
} else {
$package_type = 'rpm'
}
}
default : {
fail ("unsupported platform ${::operatingsystem}") }
}
$os = 'linux'
$destination_dir = '/tmp/'
$creates_path = "/usr/java/${install_path}"
}
default : {
fail ( "unsupported platform ${::kernel}" ) }
}
# set java architecture nomenclature
case $::architecture {
'i386' : { $arch = 'i586' }
'x86_64' : { $arch = 'x64' }
default : {
fail ("unsupported platform ${::architecture}")
}
}
# following are based on this example:
# http://download.oracle.com/otn/java/jdk/7u80-b15/jre-7u80-linux-i586.rpm
#
# JaveSE 6 distributed in .bin format
# http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-i586-rpm.bin
# http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin
# package name to download from Oracle's website
case $package_type {
'bin' : {
$package_name = "${java_se}-${release_major}-${os}-${arch}.bin"
}
'rpmbin' : {
$package_name = "${java_se}-${release_major}-${os}-${arch}-rpm.bin"
}
'rpm' : {
$package_name = "${java_se}-${release_major}-${os}-${arch}.rpm"
}
default : {
$package_name = "${java_se}-${release_major}-${os}-${arch}.rpm"
}
}
# full path to the installer
$destination = "${destination_dir}${package_name}"
notice ("Destination is ${destination}")
case $package_type {
'bin' : {
$install_command = "sh ${destination}"
}
'rpmbin' : {
$install_command = "sh ${destination} -x; rpm --force -iv sun*.rpm; rpm --force -iv ${java_se}*.rpm"
}
'rpm' : {
$install_command = "rpm --force -iv ${destination}"
}
default : {
$install_command = "rpm -iv ${destination}"
}
}
case $ensure {
'present' : {
archive { $destination :
ensure => present,
source => "${oracle_url}${release_major}-${release_minor}/${package_name}",
cleanup => false,
extract_path => '/tmp',
cookie => 'gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie',
}->
case $::kernel {
'Linux' : {
exec { "Install Oracle java_se ${java_se} ${version}" :
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
command => $install_command,
creates => $creates_path,
}
}
default : {
fail ("unsupported platform ${::kernel}")
}
}
}
default : {
notice ("Action ${ensure} not supported.")
}
}
}

View File

@@ -13,11 +13,9 @@
class java::params {
case $::osfamily {
default: { fail("unsupported platform ${::osfamily}") }
'RedHat': {
case $::operatingsystem {
default: { fail("unsupported os ${::operatingsystem}") }
'RedHat', 'CentOS', 'OracleLinux', 'Scientific': {
'RedHat', 'CentOS', 'OracleLinux', 'Scientific', 'OEL': {
if (versioncmp($::operatingsystemrelease, '5.0') < 0) {
$jdk_package = 'java-1.6.0-sun-devel'
$jre_package = 'java-1.6.0-sun'
@@ -26,19 +24,30 @@ class java::params {
$jdk_package = 'java-1.6.0-openjdk-devel'
$jre_package = 'java-1.6.0-openjdk'
}
else {
elsif (versioncmp($::operatingsystemrelease, '7.1') < 0) {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
}
else {
$jdk_package = 'java-1.8.0-openjdk-devel'
$jre_package = 'java-1.8.0-openjdk'
}
}
'Fedora': {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
if (versioncmp($::operatingsystemrelease, '21') < 0) {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
}
else {
$jdk_package = 'java-1.8.0-openjdk-devel'
$jre_package = 'java-1.8.0-openjdk'
}
}
'Amazon': {
$jdk_package = 'java-1.7.0-openjdk-devel'
$jre_package = 'java-1.7.0-openjdk'
}
default: { fail("unsupported os ${::operatingsystem}") }
}
$java = {
'jdk' => { 'package' => $jdk_package, },
@@ -47,18 +56,17 @@ class java::params {
}
'Debian': {
case $::lsbdistcodename {
default: { fail("unsupported release ${::lsbdistcodename}") }
'lenny', 'squeeze', 'lucid', 'natty': {
$java = {
'jdk' => {
'package' => 'openjdk-6-jdk',
'alternative' => 'java-6-openjdk',
'alternative' => "java-6-openjdk-${::architecture}",
'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' => "java-6-openjdk-${::architecture}",
'alternative_path' => '/usr/lib/jvm/java-6-openjdk/jre/bin/java',
'java_home' => '/usr/lib/jvm/java-6-openjdk/jre/',
},
@@ -76,7 +84,7 @@ class java::params {
},
}
}
'wheezy', 'jessie', 'precise','quantal','raring','saucy', 'trusty': {
'wheezy', 'jessie', 'precise','quantal','raring','saucy', 'trusty', 'utopic': {
$java = {
'jdk' => {
'package' => 'openjdk-7-jdk',
@@ -102,8 +110,49 @@ class java::params {
'alternative_path' => '/usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java',
'java_home' => '/usr/lib/jvm/j2sdk1.7-oracle/jre/',
},
'oracle-j2re' => {
'package' => 'oracle-j2re1.8',
'alternative' => 'j2re1.8-oracle',
'alternative_path' => '/usr/lib/jvm/j2re1.8-oracle/bin/java',
'java_home' => '/usr/lib/jvm/j2re1.8-oracle/',
},
'oracle-j2sdk' => {
'package' => 'oracle-j2sdk1.8',
'alternative' => 'j2sdk1.8-oracle',
'alternative_path' => '/usr/lib/jvm/j2sdk1.8-oracle/bin/java',
'java_home' => '/usr/lib/jvm/j2sdk1.8-oracle/',
},
}
}
'vivid', 'wily', 'xenial': {
$java = {
'jdk' => {
'package' => 'openjdk-8-jdk',
'alternative' => "java-1.8.0-openjdk-${::architecture}",
'alternative_path' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/bin/java",
'java_home' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/",
},
'jre' => {
'package' => 'openjdk-8-jre-headless',
'alternative' => "java-1.8.0-openjdk-${::architecture}",
'alternative_path' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/bin/java",
'java_home' => "/usr/lib/jvm/java-1.8.0-openjdk-${::architecture}/",
}
}
}
default: { fail("unsupported release ${::lsbdistcodename}") }
}
}
'OpenBSD': {
$java = {
'jdk' => { 'package' => 'jdk', },
'jre' => { 'package' => 'jre', },
}
}
'FreeBSD': {
$java = {
'jdk' => { 'package' => 'openjdk', },
'jre' => { 'package' => 'openjdk-jre', },
}
}
'Solaris': {
@@ -114,20 +163,32 @@ class java::params {
}
'Suse': {
case $::operatingsystem {
default: {
$jdk_package = 'java-1_6_0-ibm-devel'
$jre_package = 'java-1_6_0-ibm'
'SLES': {
if (versioncmp($::operatingsystemrelease, '12') >= 0) {
$jdk_package = 'java-1_7_0-openjdk-devel'
$jre_package = 'java-1_7_0-openjdk'
} elsif (versioncmp($::operatingsystemrelease, '11.4') >= 0) {
$jdk_package = 'java-1_7_0-ibm-devel'
$jre_package = 'java-1_7_0-ibm'
} else {
$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'
}
default: {
$jdk_package = 'java-1_6_0-ibm-devel'
$jre_package = 'java-1_6_0-ibm'
}
}
$java = {
'jdk' => { 'package' => $jdk_package, },
'jre' => { 'package' => $jre_package, },
}
}
default: { fail("unsupported platform ${::osfamily}") }
}
}

93
metadata.json Normal file
View File

@@ -0,0 +1,93 @@
{
"name": "puppetlabs-java",
"version": "1.6.0",
"author": "puppetlabs",
"summary": "Installs the correct Java package on various platforms.",
"license": "Apache-2.0",
"source": "git://github.com/puppetlabs/puppetlabs-java",
"project_page": "https://github.com/puppetlabs/puppetlabs-java",
"issues_url": "https://tickets.puppetlabs.com/browse/MODULES",
"operatingsystem_support": [
{
"operatingsystem": "RedHat",
"operatingsystemrelease": [
"5",
"6",
"7"
]
},
{
"operatingsystem": "CentOS",
"operatingsystemrelease": [
"5",
"6",
"7"
]
},
{
"operatingsystem": "OracleLinux",
"operatingsystemrelease": [
"6",
"7"
]
},
{
"operatingsystem": "Scientific",
"operatingsystemrelease": [
"5",
"6"
]
},
{
"operatingsystem": "Fedora",
"operatingsystemrelease": [
"20",
"21",
"22"
]
},
{
"operatingsystem": "Debian",
"operatingsystemrelease": [
"6",
"7",
"8"
]
},
{
"operatingsystem": "Ubuntu",
"operatingsystemrelease": [
"10.04",
"12.04",
"14.04",
"16.04"
]
},
{
"operatingsystem": "SLES",
"operatingsystemrelease": [
"11 SP1",
"12"
]
},
{
"operatingsystem": "Solaris",
"operatingsystemrelease": [
"11"
]
}
],
"requirements": [
{
"name": "pe",
"version_requirement": ">= 3.0.0 < 2015.4.0"
},
{
"name": "puppet",
"version_requirement": ">= 3.0.0 < 5.0.0"
}
],
"dependencies": [
{"name":"puppetlabs/stdlib","version_requirement":">= 2.4.0 < 5.0.0"}
]
}

View File

@@ -0,0 +1,219 @@
require 'spec_helper_acceptance'
#RedHat, CentOS, Scientific, Oracle prior to 5.0 : Sun Java JDK/JRE 1.6
#RedHat, CentOS, Scientific, Oracle 5.0 < x < 6.3 : OpenJDK Java JDK/JRE 1.6
#RedHat, CentOS, Scientific, Oracle after 6.3 : OpenJDK Java JDK/JRE 1.7
#Debian 5/6 & Ubuntu 10.04/11.04 : OpenJDK Java JDK/JRE 1.6 or Sun Java JDK/JRE 1.6
#Debian 7/Jesse & Ubuntu 12.04 - 14.04 : OpenJDK Java JDK/JRE 1.7 or Oracle Java JDK/JRE 1.6
#Solaris (what versions?) : Java JDK/JRE 1.7
#OpenSuSE : OpenJDK Java JDK/JRE 1.7
#SLES : IBM Java JDK/JRE 1.6
# C14677
# C14678
# C14679
# C14680
# C14681
# C14682
# C14684
# C14687
# C14692
# C14696
# C14697
# C14700 check on solaris 11
# C14701 check on sles 11
# C14703
# C14723 Where is oracle linux 5?
# C14724 Where is oracle linux 5?
# C14771 Where is redhat 7? Centos 7?
describe "installing java", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
describe "jre" do
it 'should install jre' do
pp = <<-EOS
class { 'java':
distribution => 'jre',
}
EOS
# With the version of java that ships with pe on debian wheezy, update-alternatives
# throws an error on the first run due to missing alternative for policytool. It still
# updates the alternatives for java
if fact('operatingsystem') == 'Debian' and fact('lsbdistcodename') == 'wheezy'
apply_manifest(pp)
else
apply_manifest(pp, :catch_failures => true)
end
apply_manifest(pp, :catch_changes => true)
end
end
describe "jdk" do
it 'should install jdk' do
pp = <<-EOS
class { 'java': }
EOS
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end
end
end
# C14686
describe 'sun', :if => (fact('operatingsystem') == 'Debian' and fact('operatingsystemrelease').match(/(5|6)/)) do
before :all do
pp = <<-EOS
file_line { 'non-free source':
path => '/etc/apt/sources.list',
match => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main",
line => "deb http://osmirror.delivery.puppetlabs.net/debian/ ${::lsbdistcodename} main non-free",
}
EOS
apply_manifest(pp)
shell('apt-get update')
shell('echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
shell('echo "sun-java6-jre shared/accepted-sun-dlj-v1-1 select true" | debconf-set-selections')
end
describe 'jre' do
it 'should install sun-jre' do
pp = <<-EOS
class { 'java':
distribution => 'sun-jre',
}
EOS
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end
end
describe 'jdk' do
it 'should install sun-jdk' do
pp = <<-EOS
class { 'java':
distribution => 'sun-jdk',
}
EOS
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end
end
end
# C14704
# C14705
# C15006
describe 'oracle', :if => (
(fact('operatingsystem') == 'Debian') and (fact('operatingsystemrelease').match(/^7/)) or
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^12\.04/)) or
(fact('operatingsystem') == 'Ubuntu') and (fact('operatingsystemrelease').match(/^14\.04/))
) do
# not supported
# The package is not available from any sources, but if a customer
# custom-builds the package using java-package and adds it to a local
# repository, that is the intention of this version ability
describe 'jre' do
it 'should install oracle-jre' do
pp = <<-EOS
class { 'java':
distribution => 'oracle-jre',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
end
describe 'jdk' do
it 'should install oracle-jdk' do
pp = <<-EOS
class { 'java':
distribution => 'oracle-jdk',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
end
end
describe 'failure cases' do
# C14711
it 'should fail to install java with an incorrect version' do
pp = <<-EOS
class { 'java':
version => '14.5',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
# C14712
it 'should fail to install java with a blank version' do
pp = <<-EOS
class { 'java':
version => '',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
# C14713
it 'should fail to install java with an incorrect distribution' do
pp = <<-EOS
class { 'java':
distribution => 'xyz',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
# C14714
it 'should fail to install java with a blank distribution' do
pp = <<-EOS
class { 'java':
distribution => '',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
# C14715
it 'should fail to install java with an incorrect package' do
pp = <<-EOS
class { 'java':
package => 'xyz',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
# C14715
it 'should fail to install java with an incorrect package' do
pp = <<-EOS
class { 'java':
package => 'xyz',
}
EOS
apply_manifest(pp, :expect_failures => true)
end
# C14717
# C14719
# C14725
it 'should fail on debian or RHEL when passed fake java_alternative and path' do
pp = <<-EOS
class { 'java':
java_alternative => 'whatever',
java_alternative_path => '/whatever',
}
EOS
if fact('osfamily') == 'Debian' or fact('osfamily') == 'RedHat'
apply_manifest(pp, :expect_failures => true)
else
apply_manifest(pp, :catch_failures => true)
end
end
end

View File

@@ -0,0 +1,10 @@
HOSTS:
centos-7-x64:
roles:
- agent
- default
platform: redhat-7-x86_64
hypervisor: vagrant
box: puppetlabs/centos-7.2-64-nocm
CONFIG:
type: foss

View File

@@ -0,0 +1,10 @@
HOSTS:
debian-8-x64:
roles:
- agent
- default
platform: debian-8-amd64
hypervisor: vagrant
box: puppetlabs/debian-8.2-64-nocm
CONFIG:
type: foss

View File

@@ -0,0 +1,10 @@
HOSTS:
ubuntu-1404-x64:
roles:
- agent
- default
platform: ubuntu-14.04-amd64
hypervisor: vagrant
box: puppetlabs/ubuntu-14.04-64-nocm
CONFIG:
type: foss

View File

@@ -0,0 +1,12 @@
HOSTS:
centos-7-x64:
platform: el-7-x86_64
hypervisor: docker
image: centos:7
docker_preserve_image: true
docker_cmd: '["/usr/sbin/init"]'
# install various tools required to get the image up to usable levels
docker_image_commands:
- 'yum install -y crontabs tar wget openssl sysvinit-tools iproute which initscripts'
CONFIG:
trace_limit: 200

View File

@@ -0,0 +1,11 @@
HOSTS:
debian-8-x64:
platform: debian-8-amd64
hypervisor: docker
image: debian:8
docker_preserve_image: true
docker_cmd: '["/sbin/init"]'
docker_image_commands:
- 'apt-get update && apt-get install -y net-tools wget locales strace lsof && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen'
CONFIG:
trace_limit: 200

View File

@@ -0,0 +1,12 @@
HOSTS:
ubuntu-1404-x64:
platform: ubuntu-14.04-amd64
hypervisor: docker
image: ubuntu:14.04
docker_preserve_image: true
docker_cmd: '["/sbin/init"]'
docker_image_commands:
# ensure that upstart is booting correctly in the container
- 'rm /usr/sbin/policy-rc.d && rm /sbin/initctl && dpkg-divert --rename --remove /sbin/initctl && apt-get update && apt-get install -y net-tools wget && locale-gen en_US.UTF-8'
CONFIG:
trace_limit: 200

View File

@@ -4,112 +4,235 @@ 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') }
it { is_expected.to 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') }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end
context 'select openjdk for Centos 7.1.1503' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '7.1.1503'} }
it { is_expected.to contain_package('java').with_name('java-1.8.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') }
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
it { is_expected.to_not contain_exec('update-java-alternatives') }
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') }
context 'select Oracle JRE with alternatives for Centos 6.3' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Centos', :operatingsystemrelease => '6.3'} }
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java'} }
it { is_expected.to contain_package('java').with_name('jre') }
it { is_expected.to contain_exec('create-java-alternatives').with_command('alternatives --install /usr/bin/java java /usr/java/jre1.7.0_67/bin/java 20000') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('alternatives --set java /usr/java/jre1.7.0_67/bin/java') }
end
context 'select passed value for Fedora' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora'} }
context 'select openjdk for Fedora 20' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20'} }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk-devel') }
end
context 'select openjdk for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21'} }
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk-devel') }
end
context 'select passed value for Fedora 20' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '20'} }
let(:params) { { 'distribution' => 'jre' } }
it { should contain_package('java').with_name('java-1.7.0-openjdk') }
it { is_expected.to contain_package('java').with_name('java-1.7.0-openjdk') }
end
context 'select passed value for Fedora 21' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21'} }
let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('java-1.8.0-openjdk') }
end
context 'select passed value for Fedora 21 with yum option' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystem => 'Fedora', :operatingsystemrelease => '21'} }
let(:params) { { 'distribution' => 'jre' } }
let(:params) { { 'package_options' => ['--skip-broken'] } }
it { is_expected.to contain_package('java') }
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') }
it { is_expected.to contain_package('java').with_name('jdk') }
it { is_expected.to_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') }
it { is_expected.to contain_package('java').with_name('java-1.6.0-openjdk-devel') }
it { is_expected.to_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') }
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
it { is_expected.to 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(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
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') }
it { is_expected.to contain_package('java').with_name('oracle-j2re1.7') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set j2re1.7-oracle --jre') }
end
context 'select OpenJDK JRE for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('openjdk-7-jre-headless') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-1.7.0-openjdk-amd64 --jre-headless') }
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') }
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
it { is_expected.to contain_package('java').with_name('openjdk-6-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre') }
end
context 'select Oracle JRE for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5'} }
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
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') }
it { is_expected.to contain_package('java').with_name('sun-java6-jre') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-sun --jre') }
end
context 'select OpenJDK JRE for Debian Squeeze' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'squeeze', :operatingsystemrelease => '6.0.5', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jre', } }
it { is_expected.to contain_package('java').with_name('openjdk-6-jre-headless') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set java-6-openjdk-amd64 --jre-headless') }
end
context 'select random alternative for Debian Wheezy' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1'} }
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Debian', :lsbdistcodename => 'wheezy', :operatingsystemrelease => '7.1', :architecture => 'amd64',} }
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') }
it { is_expected.to contain_package('java').with_name('openjdk-7-jdk') }
it { is_expected.to contain_exec('update-java-alternatives').with_command('update-java-alternatives --set bananafish --jre') }
end
context 'select jdk for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jdk' } }
it { is_expected.to contain_package('java').with_name('openjdk-8-jdk') }
end
context 'select jre for Ubuntu Vivid (15.04)' do
let(:facts) { {:osfamily => 'Debian', :operatingsystem => 'Ubuntu', :lsbdistcodename => 'vivid', :operatingsystemrelease => '15.04', :architecture => 'amd64',} }
let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('openjdk-8-jre-headless') }
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') }
it { is_expected.to 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') }
it { is_expected.to 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') }
it { is_expected.to 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') }
it { is_expected.to 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') }
it { is_expected.to 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') }
it { is_expected.to 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 { is_expected.to contain_package('java').with_name('java-1_7_0-openjdk-devel')}
end
context 'select default for SLES 11.3' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.3'}}
it { should contain_package('java').with_name('java-1_6_0-ibm-devel')}
end
context 'select default for SLES 11.4' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '11.4'}}
it { should contain_package('java').with_name('java-1_7_0-ibm-devel')}
end
context 'select default for SLES 12.1' do
let(:facts) { {:osfamily => 'Suse', :operatingsystem => 'SLES', :operatingsystemrelease => '12.1', :operatingsystemmajrelease => '12'}}
it { should contain_package('java').with_name('java-1_7_0-openjdk-devel')}
end
context 'select jdk for OpenBSD' do
let(:facts) { {:osfamily => 'OpenBSD'} }
it { is_expected.to contain_package('java').with_name('jdk') }
end
context 'select jre for OpenBSD' do
let(:facts) { {:osfamily => 'OpenBSD'} }
let(:params) { { 'distribution' => 'jre' } }
it { is_expected.to contain_package('java').with_name('jre') }
end
describe 'incompatible OSs' do
[
{
# C14706
:osfamily => 'windows',
:operatingsystem => 'windows',
:operatingsystemrelease => '8.1',
},
{
# C14707
:osfamily => 'Darwin',
:operatingsystem => 'Darwin',
:operatingsystemrelease => '13.3.0',
},
{
# C14708
:osfamily => 'AIX',
:operatingsystem => 'AIX',
:operatingsystemrelease => '7100-02-00-000',
},
{
# C14708
:osfamily => 'AIX',
:operatingsystem => 'AIX',
:operatingsystemrelease => '6100-07-04-1216',
},
{
# C14708
:osfamily => 'AIX',
:operatingsystem => 'AIX',
:operatingsystemrelease => '5300-12-01-1016',
},
].each do |facts|
let(:facts) { facts }
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/
end
end
end
end

147
spec/defines/oracle_spec.rb Normal file
View File

@@ -0,0 +1,147 @@
require 'spec_helper'
describe 'java::oracle', :type => :define do
context 'On CentOS 64-bit' do
let(:facts) { {:kernel => 'Linux', :architecture => 'x86_64', :osfamily => 'RedHat', :operatingsystem => 'CentOS', :operatingsystemrelease => '6.6', :puppetversion => '3.4.3 (Puppet Enterprise 3.2.3)'} }
context 'Oracle Java SE 6 JDK' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} }
let :title do 'jdk6' end
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-x64-rpm.bin')}
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
end
context 'Oracle Java SE 7 JDK' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} }
let :title do 'jdk7' end
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-x64.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-x64.rpm') }
end
context 'Oracle Java SE 8 JDK' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} }
let :title do 'jdk8' end
it { is_expected.to contain_archive('/tmp/jdk-8u51-linux-x64.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u51-linux-x64.rpm') }
end
context 'Oracle Java SE 6 JRE' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} }
let :title do 'jre6' end
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-x64-rpm.bin')}
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-x64-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
end
context 'Oracle Java SE 7 JRE' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} }
let :title do 'jre7' end
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-x64.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-x64.rpm') }
end
context 'select Oracle Java SE 8 JRE' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} }
let :title do 'jre8' end
it { is_expected.to contain_archive('/tmp/jre-8u51-linux-x64.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u51-linux-x64.rpm') }
end
end
context 'On CentOS 32-bit' do
let(:facts) { {:kernel => 'Linux', :architecture => 'i386', :osfamily => 'RedHat', :operatingsystem => 'CentOS', :operatingsystemrelease => '6.6', :puppetversion => '3.4.3 (Puppet Enterprise 3.2.3)'} }
context 'select Oracle Java SE 6 JDK on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jdk'} }
let :title do 'jdk6' end
it { is_expected.to contain_archive('/tmp/jdk-6u45-linux-i586-rpm.bin')}
it { is_expected.to contain_exec('Install Oracle java_se jdk 6').with_command('sh /tmp/jdk-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jdk*.rpm') }
end
context 'select Oracle Java SE 7 JDK on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jdk'} }
let :title do 'jdk7' end
it { is_expected.to contain_archive('/tmp/jdk-7u80-linux-i586.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jdk 7').with_command('rpm --force -iv /tmp/jdk-7u80-linux-i586.rpm') }
end
context 'select Oracle Java SE 8 JDK on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jdk'} }
let :title do 'jdk8' end
it { is_expected.to contain_archive('/tmp/jdk-8u51-linux-i586.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jdk 8').with_command('rpm --force -iv /tmp/jdk-8u51-linux-i586.rpm') }
end
context 'select Oracle Java SE 6 JRE on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '6', :java_se => 'jre'} }
let :title do 'jdk6' end
it { is_expected.to contain_archive('/tmp/jre-6u45-linux-i586-rpm.bin')}
it { is_expected.to contain_exec('Install Oracle java_se jre 6').with_command('sh /tmp/jre-6u45-linux-i586-rpm.bin -x; rpm --force -iv sun*.rpm; rpm --force -iv jre*.rpm') }
end
context 'select Oracle Java SE 7 JRE on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '7', :java_se => 'jre'} }
let :title do 'jdk7' end
it { is_expected.to contain_archive('/tmp/jre-7u80-linux-i586.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jre 7').with_command('rpm --force -iv /tmp/jre-7u80-linux-i586.rpm') }
end
context 'select Oracle Java SE 8 JRE on RedHat family, 32-bit' do
let(:params) { {:ensure => 'present', :version => '8', :java_se => 'jre'} }
let :title do 'jdk8' end
it { is_expected.to contain_archive('/tmp/jre-8u51-linux-i586.rpm')}
it { is_expected.to contain_exec('Install Oracle java_se jre 8').with_command('rpm --force -iv /tmp/jre-8u51-linux-i586.rpm') }
end
end
describe 'incompatible OSs' do
[
{
# C14706
:kernel => 'windows',
:osfamily => 'windows',
:operatingsystem => 'windows',
:operatingsystemrelease => '8.1',
:puppetversion => '3.4.3 (Puppet Enterprise 3.2.3)',
},
{
# C14707
:kernel => 'Darwin',
:osfamily => 'Darwin',
:operatingsystem => 'Darwin',
:operatingsystemrelease => '13.3.0',
:puppetversion => '3.4.3 (Puppet Enterprise 3.2.3)',
},
{
# C14708
:kernel => 'AIX',
:osfamily => 'AIX',
:operatingsystem => 'AIX',
:operatingsystemrelease => '7100-02-00-000',
:puppetversion => '3.4.3 (Puppet Enterprise 3.2.3)',
},
{
# C14708
:kernel => 'AIX',
:osfamily => 'AIX',
:operatingsystem => 'AIX',
:operatingsystemrelease => '6100-07-04-1216',
:puppetversion => '3.4.3 (Puppet Enterprise 3.2.3)',
},
{
# C14708
:kernel => 'AIX',
:osfamily => 'AIX',
:operatingsystem => 'AIX',
:operatingsystemrelease => '5300-12-01-1016',
:puppetversion => '3.4.3 (Puppet Enterprise 3.2.3)',
},
].each do |facts|
let(:facts) { facts }
let :title do 'jdk' end
it "is_expected.to fail on #{facts[:operatingsystem]} #{facts[:operatingsystemrelease]}" do
expect { catalogue }.to raise_error Puppet::Error, /unsupported platform/
end
end
end
end

6
spec/spec.opts Normal file
View File

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

View File

@@ -1 +1,8 @@
#This file is generated by ModuleSync, do not edit.
require 'puppetlabs_spec_helper/module_spec_helper'
# put local configuration and setup into spec_helper_local
begin
require 'spec_helper_local'
rescue LoadError
end

View File

@@ -0,0 +1,43 @@
require 'beaker-rspec'
require 'beaker/puppet_install_helper'
run_puppet_install_helper
UNSUPPORTED_PLATFORMS = [ "Darwin", "windows" ]
unless ENV["RS_PROVISION"] == "no" or ENV["BEAKER_provision"] == "no"
hosts.each do |host|
if host['platform'] =~ /sles-1/i || host['platform'] =~ /solaris-1/i
get_stdlib = <<-stdlib
package{'wget':}
exec{'download':
command => "wget -P /root/ https://forgeapi.puppetlabs.com/v3/files/puppetlabs-stdlib-4.3.2.tar.gz --no-check-certificate",
path => ['/opt/csw/bin/','/usr/bin/']
}
stdlib
apply_manifest_on(host, get_stdlib)
# have to use force otherwise it checks ssl cert even though it is a local file
on host, puppet('module install /root/puppetlabs-stdlib-4.3.2.tar.gz --force')
else
on host, puppet("module install puppetlabs-stdlib")
# For test support
on host, puppet("module install puppetlabs-apt")
end
end
end
RSpec.configure do |c|
# Project root
proj_root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
# Readable test descriptions
c.formatter = :documentation
# Configure all nodes in nodeset
c.before :suite do
# Install module
hosts.each do |host|
copy_module_to(host, :source => proj_root, :module_name => "java")
end
end
end

View File

@@ -0,0 +1,29 @@
require "spec_helper"
describe Facter::Util::Fact do
before {
Facter.clear
Facter.fact(:kernel).stubs(:value).returns('Linux')
}
describe "java_default_home" do
context 'returns java home path when readlink present' do
it do
java_path_output = <<-EOS
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
EOS
Facter::Util::Resolution.expects(:which).with("readlink").returns(true)
Facter::Util::Resolution.expects(:exec).with("readlink -e /usr/bin/java").returns(java_path_output)
expect(Facter.value(:java_default_home)).to eql "/usr/lib/jvm/java-7-openjdk-amd64"
end
end
context 'returns nil when readlink not present' do
it do
Facter::Util::Resolution.stubs(:exec)
Facter::Util::Resolution.expects(:which).with("readlink").at_least(1).returns(false)
expect(Facter.value(:java_default_home)).to be_nil
end
end
end
end

View File

@@ -0,0 +1,21 @@
require "spec_helper"
describe Facter::Util::Fact do
before {
Facter.clear
Facter.fact(:kernel).stubs(:value).returns('Linux')
java_default_home = '/usr/lib/jvm/java-8-openjdk-amd64'
Facter.fact(:java_default_home).stubs(:value).returns(java_default_home)
Dir.stubs(:glob).with("#{java_default_home}/jre/lib/**/libjvm.so").returns( ['/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so'])
}
describe "java_libjvm_path" do
context 'returns libjvm path' do
context 'on Linux' do
it do
expect(Facter.value(:java_libjvm_path)).to eql "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
end
end
end
end
end

View File

@@ -0,0 +1,27 @@
require "spec_helper"
describe Facter::Util::Fact do
before {
Facter.clear
}
describe "java_major_version" do
context 'returns major version when java_version fact present' do
before :each do
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
end
it do
expect(Facter.fact(:java_major_version).value).to eq("7")
end
end
context 'returns nil when java not present' do
before :each do
Facter.fact(:java_version).stubs(:value).returns(nil)
end
it do
expect(Facter.fact(:java_major_version).value).to be_nil
end
end
end
end

View File

@@ -0,0 +1,31 @@
require "spec_helper"
describe Facter::Util::Fact do
before {
Facter.clear
}
describe "java_patch_level" do
context "if java is installed" do
context 'returns java patch version extracted from java_version fact' do
before :each do
Facter.fact(:java_version).stubs(:value).returns('1.7.0_71')
end
it do
expect(Facter.fact(:java_patch_level).value).to eq("71")
end
end
end
context "if java is not installed" do
context 'returns nil' do
before :each do
Facter.fact(:java_version).stubs(:value).returns(nil)
end
it do
expect(Facter.fact(:java_patch_level).value).to be_nil
end
end
end
end
end

View File

@@ -0,0 +1,92 @@
require "spec_helper"
describe Facter::Util::Fact do
before {
Facter.clear
}
describe "java_version" do
context 'returns java version when java present' do
context 'on OpenBSD', :with_env => true do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
end
let(:facts) { {:operatingsystem => 'OpenBSD'} }
it do
java_version_output = <<-EOS
openjdk version "1.7.0_71"
OpenJDK Runtime Environment (build 1.7.0_71-b14)
OpenJDK 64-Bit Server VM (build 24.71-b01, mixed mode)
EOS
Facter::Util::Resolution.expects(:which).with("java").returns('/usr/local/jdk-1.7.0/jre/bin/java')
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eq("1.7.0_71")
end
end
context 'on Darwin' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
end
let(:facts) { {:operatingsystem => 'Darwin'} }
it do
java_version_output = <<-EOS
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
EOS
Facter::Util::Resolution.expects(:exec).with("/usr/libexec/java_home --failfast 2>&1").returns("/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home")
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eql "1.7.0_71"
end
end
context 'on other systems' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
end
let(:facts) { {:operatingsystem => 'MyOS'} }
it do
java_version_output = <<-EOS
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
EOS
Facter::Util::Resolution.expects(:exec).with("java -Xmx8m -version 2>&1").returns(java_version_output)
expect(Facter.value(:java_version)).to eq("1.7.0_71")
end
end
end
context 'returns nil when java not present' do
context 'on OpenBSD', :with_env => true do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("OpenBSD")
end
let(:facts) { {:operatingsystem => 'OpenBSD'} }
it do
Facter::Util::Resolution.stubs(:exec)
expect(Facter.value(:java_version)).to be_nil
end
end
context 'on Darwin' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
end
let(:facts) { {:operatingsystem => 'Darwin'} }
it do
Facter::Util::Resolution.expects(:exec).at_least(1).with("/usr/libexec/java_home --failfast 2>&1").returns('Unable to find any JVMs matching version "(null)".')
expect(Facter.value(:java_version)).to be_nil
end
end
context 'on other systems' do
before do
Facter.fact(:operatingsystem).stubs(:value).returns("MyOS")
end
let(:facts) { {:operatingsystem => 'MyOS'} }
it do
Facter::Util::Resolution.expects(:which).at_least(1).with("java").returns(false)
expect(Facter.value(:java_version)).to be_nil
end
end
end
end
end

5
tests/alternative.pp Normal file
View File

@@ -0,0 +1,5 @@
class { 'java':
package => 'jdk-8u25-linux-x64',
java_alternative => 'jdk1.8.0_25',
java_alternative_path => '/usr/java/jdk1.8.0_25/jre/bin/java'
}

5
tests/oracle.pp Normal file
View File

@@ -0,0 +1,5 @@
java::oracle { 'jdk6' :
ensure => 'present',
version => '6',
java_se => 'jdk',
}