Switch to Maven based dependency (#11)

diff --git a/README.md b/README.md
index acd4175..81c151e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
-#Apache OpenWhisk runtimes for java
+# Apache OpenWhisk runtimes for java
+
 [![Build Status](https://travis-ci.org/apache/incubator-openwhisk-runtime-java.svg?branch=master)](https://travis-ci.org/apache/incubator-openwhisk-runtime-java)
 
 
@@ -49,6 +50,37 @@
 wskdev fresh -t local-java
 ```
 
+### Testing
+Install dependencies from the root directory on $OPENWHISK_HOME repository
+```
+./gradlew :common:scala:install :core:controller:install :core:invoker:install :tests:install
+```
+
+Using gradle for the ActionContainer tests you need to use a proxy if running on Mac, if Linux then don't use proxy options
+You can pass the flags `-Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128` directly in gradle command.
+Or save in your `$HOME/.gradle/gradle.properties`
+```
+systemProp.http.proxyHost=localhost
+systemProp.http.proxyPort=3128
+```
+Using gradle to run all tests
+```
+./gradlew :tests:test
+```
+Using gradle to run some tests
+```
+./gradlew :tests:test --tests *ActionContainerTests*
+```
+Using IntelliJ:
+- Import project as gradle project.
+- Make sure working directory is root of the project/repo
+- Add the following Java VM properties in ScalaTests Run Configuration, easiest is to change the Defaults for all ScalaTests to use this VM properties
+```
+-Dhttp.proxyHost=localhost
+-Dhttp.proxyPort=3128
+```
+
+#### Using container image to test
 To use as docker action push to your own dockerhub account
 ```
 docker tag whisk/java8action $user_prefix/java8action
diff --git a/ansible/environments/local/group_vars/all b/ansible/environments/local/group_vars/all
index 79d0580..ce84e87 100755
--- a/ansible/environments/local/group_vars/all
+++ b/ansible/environments/local/group_vars/all
@@ -1,9 +1,11 @@
 whisk_version_name: local
-config_root_dir: /tmp/wskconf
-whisk_logs_dir: /tmp/wsklogs
+openwhisk_tmp_dir: "{{ lookup('env', 'OPENWHISK_TMP_DIR')|default('/tmp', true) }}"
+config_root_dir: "{{ openwhisk_tmp_dir }}/wskconf"
+whisk_logs_dir: "{{ openwhisk_tmp_dir }}/wsklogs"
 docker_registry: ""
 docker_dns: ""
-bypass_pull_for_local_images: true
+runtimes_bypass_pull_for_local_images: true
+invoker_use_runc: "{{ ansible_distribution != 'MacOSX' }}"
 
 db_prefix: whisk_local_
 
@@ -22,14 +24,6 @@
 
 invoker_allow_multiple_instances: true
 
-# Set kafka configuration
-kafka_heap: '512m'
-kafka_topics_completed_retentionBytes: 104857600
-kafka_topics_completed_retentionMS: 300000
-kafka_topics_health_retentionBytes: 104857600
-kafka_topics_health_retentionMS: 300000
-kafka_topics_invoker_retentionBytes: 104857600
-kafka_topics_invoker_retentionMS: 300000
 
 env_hosts_dir: "{{ playbook_dir }}/environments/local"
 
diff --git a/settings.gradle b/settings.gradle
index 47819fb..c8ed5a3 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,22 +1,13 @@
-def owPath = System.getenv("OPENWHISK_HOME") ?: '../open'
-def owDirectory = new File(owPath)
-
-if (!owDirectory.exists()) {
-    throw new GradleScriptException("Environment variable OPENWHISK_HOME must point to a valid OpenWhisk build", null)
-}
-
-
-include 'common:scala'; project(':common:scala').projectDir = new File(owDirectory, 'common/scala')
-include 'core:controller'; project(':core:controller').projectDir = new File(owDirectory, 'core/controller')
-include 'core:invoker'; project(':core:invoker').projectDir = new File(owDirectory, 'core/invoker')
-include 'whisktests'; project(':whisktests').projectDir = new File(owDirectory, 'tests')
-
 include 'tests'
 
 include 'core:javaAction'
 
 rootProject.name = 'runtime-java'
 
+gradle.ext.openwhisk = [
+        version: '1.0.0-SNAPSHOT'
+]
+
 gradle.ext.scala = [
     version: '2.11.8',
     compileFlags: ['-feature', '-unchecked', '-deprecation', '-Xfatal-warnings', '-Ywarn-unused-import']
diff --git a/tests/build.gradle b/tests/build.gradle
index 124229c..3b60d6c 100644
--- a/tests/build.gradle
+++ b/tests/build.gradle
@@ -2,10 +2,9 @@
 apply plugin: 'eclipse'
 compileTestScala.options.encoding = 'UTF-8'
 
-evaluationDependsOn(':whisktests')
-
 repositories {
     mavenCentral()
+    mavenLocal()
 }
 
 tasks.withType(Test) {
@@ -19,8 +18,8 @@
 
 dependencies {
     compile "org.scala-lang:scala-library:${gradle.scala.version}"
-    compile project(':whisktests')
-    compile project(':whisktests').sourceSets.test.output
+    compile "org.apache.openwhisk:openwhisk-tests:${gradle.openwhisk.version}:tests"
+    compile "org.apache.openwhisk:openwhisk-tests:${gradle.openwhisk.version}:test-sources"
 }
 
 tasks.withType(ScalaCompile) {
diff --git a/tools/travis/build.sh b/tools/travis/build.sh
index 24ec430..4852bdd 100755
--- a/tools/travis/build.sh
+++ b/tools/travis/build.sh
@@ -11,13 +11,6 @@
 
 IMAGE_PREFIX="testing"
 
-# Build runtime
-cd $ROOTDIR
-TERM=dumb ./gradlew \
-distDocker \
--PdockerImagePrefix=${IMAGE_PREFIX}
-
-
 # Build OpenWhisk
 cd $WHISKDIR
 
@@ -28,3 +21,15 @@
 docker tag openwhisk/invoker ${IMAGE_PREFIX}/invoker
 docker pull openwhisk/nodejs6action
 docker tag openwhisk/nodejs6action ${IMAGE_PREFIX}/nodejs6action
+
+TERM=dumb ./gradlew \
+:common:scala:install \
+:core:controller:install \
+:core:invoker:install \
+:tests:install
+
+# Build runtime
+cd $ROOTDIR
+TERM=dumb ./gradlew \
+distDocker \
+-PdockerImagePrefix=${IMAGE_PREFIX}