Fix Oracle packages download URL and update .kitchen and .travis files

Change-Id: Iadc39108863a06e9714b1f5a9bd9d6aea35657e9
diff --git a/.kitchen.yml b/.kitchen.yml
index 8eb54f9..6c2e5a4 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -37,9 +37,9 @@
 
 suites:
 
-  - name: <%=ENV['SUITE'] || 'openjdk-8'%>
+  - name: <%=ENV['JDK'] || 'openjdk'%>-<%=ENV['JAVA_VERSION'] || '8'%>
     provisioner:
       pillars-from-files:
-        java.sls: tests/pillar/<%=ENV['SUITE'] || 'openjdk-8'%>.sls
+        java.sls: tests/pillar/<%=ENV['JDK'] || 'openjdk'%>-<%=ENV['JAVA_VERSION'] || '8'%>.sls
 
-# vim: ft=yaml sw=2 ts=2 sts=2 tw=125
+# vim: ft=yaml sw=2 ts=2 sts=2 tw=125
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 7271d6d..fea2f20 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,10 +17,10 @@
   - bundle install
 
 env:
-    - SUITE=openjdk-7 PLATFORM=trevorj/salty-whales:trusty
-    - SUITE=oracle-jdk-7 PLATFORM=trevorj/salty-whales:trusty
-    - SUITE=openjdk-8 PLATFORM=trevorj/salty-whales:xenial
-    - SUITE=oracle-jdk-8 PLATFORM=trevorj/salty-whales:xenial
+    - PLATFORM=trevorj/salty-whales:trusty JDK=openjdk JAVA_VERSION=7
+    - PLATFORM=trevorj/salty-whales:trusty JDK=oracle-jdk JAVA_VERSION=7
+    - PLATFORM=trevorj/salty-whales:xenial JDK=openjdk JAVA_VERSION=8
+    - PLATFORM=trevorj/salty-whales:xenial JDK=oracle-jdk JAVA_VERSION=8
 
 before_script:
   - set -o pipefail
@@ -38,4 +38,4 @@
     on_start: never     # options: [always|never|change] default: always
     on_cancel: never    # options: [always|never|change] default: always
     on_error: never    # options: [always|never|change] default: always
-  email: false
+  email: false
\ No newline at end of file
diff --git a/java/environment/oracle.sls b/java/environment/oracle.sls
index 43b079a..b6685b7 100644
--- a/java/environment/oracle.sls
+++ b/java/environment/oracle.sls
@@ -7,14 +7,21 @@
   - mode: 755
   - makedirs: True
 
-unpack_java_source:
+download_java_source:
   cmd.run:
-    - name: curl {{ environment.dl_opts }} '{{ environment.source_url }}' | tar xz --no-same-owner
+    - name: "curl {{ environment.dl_opts }} '{{ environment.oracle_cookie }}' '{{ environment.source_url }}'"
     - cwd: {{ environment.prefix }}
     - unless: test -d {{ environment.java_real_home }}
     - require:
       - file: {{ environment.prefix }}
 
+unpack_java_source:
+  archive.extracted:
+    - name: {{ environment.java_real_home }}
+    - source: "{{ environment.prefix }}/{{ environment.oracle_file_name }}"
+    - require:
+      - cmd: download_java_source
+
 java_install:
   alternatives.install:
     - name: java-home-link
diff --git a/java/map.jinja b/java/map.jinja
index 11e0f71..8fb7f5a 100644
--- a/java/map.jinja
+++ b/java/map.jinja
@@ -17,6 +17,7 @@
 
 {% set environment = salt['grains.filter_by']({
     'Debian': {
+
         'version': java_version,
         'release': java_release,
         'home_dir': '/usr/lib/java',
@@ -35,16 +36,29 @@
 }, merge=salt['pillar.get']('java:environment')) %}
 
 {%- set java_home = environment.home_dir %}
-{%- set version_name = 'jdk1.'+environment.version+'.0_'+environment.release %}
-{%- set file_name = 'jdk-'+environment.version+'u'+environment.release %}
 {%- set prefix = '/usr/share/java' %}
-{%- set source_url = 'http://download.oracle.com/otn-pub/java/jdk/'+environment.version+'u'+environment.release+'-b'+environment.build+'/'+file_name+'-linux-x64.tar.gz' %}
-{%- set dl_opts = '-b oraclelicense=accept-securebackup-cookie -L' %}
+{%- set oracle_cookie = 'Cookie: oraclelicense=accept-securebackup-cookie' %}
+{%- set dl_opts = '-LOH' %}
+{%- if java_version == 7 %}
+{%- set source_url = salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk7.txt?p=downloads.tgz') %}
+{%- set version_name = salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk7.txt?p=version') %}
+{%- set oracle_file_name = 'jdk-' + salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk7.txt?p=version_parsed.major') + 'u' + salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk7.txt?p=version_parsed.minor') + '-linux-x64.tar.gz' %}
+{%- elif java_version == 9 %}
+{%- set source_url = salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk9.txt?p=downloads.tgz') %}
+{%- set version_name = salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk9.txt?p=version') %}
+{%- set oracle_file_name = 'jdk-' + salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk9.txt?p=version_parsed.major') + 'u' + salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk9.txt?p=version_parsed.minor') + '-linux-x64.tar.gz' %}
+{% else %}
+{%- set source_url = salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk8.txt?p=downloads.tgz') %}
+{%- set version_name = salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk8.txt?p=version') %}
+{%- set oracle_file_name = 'jdk-' + salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk8.txt?p=version_parsed.major') + 'u' + salt['cmd.run']('curl -s https://lv.binarybabel.org/catalog-api/java/jdk8.txt?p=version_parsed.minor') + '-linux-x64.tar.gz' %}
+{%- endif %}
 {%- set java_real_home = prefix + '/' + version_name %}
 
 {%- do environment.update( { 'version_name' : version_name,
     'source_url' : source_url,
     'dl_opts' : dl_opts,
+    'oracle_cookie' : oracle_cookie,
+    'oracle_file_name' : oracle_file_name,
     'java_home' : java_home,
     'prefix' : prefix,
     'java_real_home' : java_real_home