Skip to content
This repository has been archived by the owner on Dec 2, 2020. It is now read-only.

Commit

Permalink
Merge pull request #32 from boxen/flexible-versions
Browse files Browse the repository at this point in the history
Flexible versions
  • Loading branch information
dgoodlad committed Mar 18, 2014
2 parents 724e0b6 + 6a6e6e3 commit 3f9ba39
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 11 deletions.
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,32 @@

[![Build Status](https://travis-ci.org/boxen/puppet-java.png?branch=master)](https://travis-ci.org/boxen/puppet-java)

Installs Java 7u51 and unlimited key length security policy files..
Installs Java 7 and unlimited key length security policy files..


## Usage

```puppet
# Install the default version of both the JDK and JRE
include java
```

## Parameters

You can customise this module by configuring some optional class parameters. Usually you'd do this via Hiera, but you could also explicitly pass those parameters in puppet code like `class { 'java': $update_version => '42', }`.

* `update_version`: The 'update' part of the JRE/JDK version to install. For example, if you specify `51`, the module would install java 7u51
* `base_download_url`: A base path from which the JRE and JDK packages should be downloaded. For example, if you specify `https://myorg.example/dist/java`, this module would download the jre from `https://myorg.example/dist/java/jre-7u51-macosx-x64.dmg`.

All of these parameters have sensible defaults, and are provided if you need more control.

Example hiera data in YAML:

```yaml
java::update_version: '51'
java::base_download_url: 'https://myorg.example/dist/java'
```
## Required Puppet Modules
* `boxen`
Expand Down
16 changes: 10 additions & 6 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,25 @@
# Examples
#
# include java
class java {
class java (
$update_version = '51',
$base_download_url = 'https://s3.amazonaws.com/boxen-downloads/java'
) {
include boxen::config

$jre_url = 'https://s3.amazonaws.com/boxen-downloads/java/jre-7u51-macosx-x64.dmg'
$jdk_url = 'https://s3.amazonaws.com/boxen-downloads/java/jdk-7u51-macosx-x64.dmg'
$jre_url = "${base_download_url}/jre-7u${update_version}-macosx-x64.dmg"
$jdk_url = "${base_download_url}/jdk-7u${update_version}-macosx-x64.dmg"
$wrapper = "${boxen::config::bindir}/java"
$sec_dir = '/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/jre/lib/security'
$jdk_dir = "/Library/Java/JavaVirtualMachines/jdk1.7.0_${update_version}.jdk"
$sec_dir = "${jdk_dir}/Contents/Home/jre/lib/security"

package {
'jre-7u51.dmg':
"jre-7u${update_version}.dmg":
ensure => present,
alias => 'java-jre',
provider => pkgdmg,
source => $jre_url ;
'jdk-7u51.dmg':
"jdk-7u${update_version}.dmg":
ensure => present,
alias => 'java',
provider => pkgdmg,
Expand Down
14 changes: 10 additions & 4 deletions spec/classes/java_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,28 @@

describe "java" do
let(:facts) { default_test_facts }
let(:params) {
{
:update_version => '42',
:base_download_url => 'https://downloads.test/java'
}
}

it do
should include_class('boxen::config')

should contain_package('jre-7u51.dmg').with({
should contain_package('jre-7u42.dmg').with({
:ensure => 'present',
:alias => 'java-jre',
:provider => 'pkgdmg',
:source => 'https://s3.amazonaws.com/boxen-downloads/java/jre-7u51-macosx-x64.dmg'
:source => 'https://downloads.test/java/jre-7u42-macosx-x64.dmg'
})

should contain_package('jdk-7u51.dmg').with({
should contain_package('jdk-7u42.dmg').with({
:ensure => 'present',
:alias => 'java',
:provider => 'pkgdmg',
:source => 'https://s3.amazonaws.com/boxen-downloads/java/jdk-7u51-macosx-x64.dmg'
:source => 'https://downloads.test/java/jdk-7u42-macosx-x64.dmg'
})

should contain_file('/test/boxen/bin/java').with({
Expand Down

0 comments on commit 3f9ba39

Please sign in to comment.