diff --git a/README.md b/README.md
index 726b35a..3dda2ba 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
-# Apache Fineract CN Provisioner [![Build Status](https://api.travis-ci.com/apache/fineract-cn-provisioner.svg?branch=develop)](https://travis-ci.com/apache/fineract-cn-provisioner)
+# Apache Fineract CN Provisioner [![Build Status](https://api.travis-ci.com/apache/fineract-cn-provisioner.svg?branch=develop)](https://travis-ci.com/apache/fineract-cn-provisioner) [![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/apache/fineract-cn-provisioner)](https://hub.docker.com/r/apache/fineract-cn-provisioner/builds)
+
 
 This service provisions services for tenants of an Apache Fineract CN installation.
+[Read more](https://cwiki.apache.org/confluence/display/FINERACT/Fineract+CN+Project+Structure#FineractCNProjectStructure-provisioner).
 
 ## Abstract
 Apache Fineract CN is an application framework for digital financial services, a system to support nationwide and cross-national financial transactions and help to level and speed the creation of an inclusive, interconnected digital economy for every nation in the world.
diff --git a/api/build.gradle b/api/build.gradle
index b3812a1..f846390 100644
--- a/api/build.gradle
+++ b/api/build.gradle
@@ -20,15 +20,15 @@
         jcenter()
     }
 
-    dependencies {
-        classpath 'io.spring.gradle:dependency-management-plugin:0.6.0.RELEASE'
-    }
 }
 
 plugins {
     id 'com.github.hierynomus.license' version '0.13.1'
-    id("org.nosphere.apache.rat") version "0.3.1"
+    id("org.nosphere.apache.rat") version "0.5.2"
     id "com.jfrog.artifactory" version "4.9.5"
+    id "io.spring.dependency-management" version "1.0.8.RELEASE"
+    id 'maven-publish'
+    id 'java'
 }
 
 apply from: '../shared.gradle'
diff --git a/build.gradle b/build.gradle
index e2e2bfd..74c5dae 100644
--- a/build.gradle
+++ b/build.gradle
@@ -45,7 +45,13 @@
     dependsOn gradle.includedBuild('api').task(':artifactoryPublish')
     dependsOn gradle.includedBuild('service').task(':artifactoryPublish')
     dependsOn gradle.includedBuild('component-test').task(':artifactoryPublish')
+}
 
+task clean {
+    group 'all'
+    dependsOn gradle.includedBuild('api').task(':clean')
+    dependsOn gradle.includedBuild('service').task(':clean')
+    dependsOn gradle.includedBuild('component-test').task(':clean')
 }
 
 task prepareForTest {
diff --git a/component-test/build.gradle b/component-test/build.gradle
index 8ccc60e..ab06748 100644
--- a/component-test/build.gradle
+++ b/component-test/build.gradle
@@ -25,20 +25,26 @@
     }
 
     dependencies {
-        classpath ("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
         classpath("org.asciidoctor:asciidoctor-gradle-plugin:1.5.3")
     }
 }
 
 plugins {
     id 'com.github.hierynomus.license' version '0.13.1'
-    id("org.nosphere.apache.rat") version "0.3.1"
+    id("org.nosphere.apache.rat") version "0.5.2"
     id "com.jfrog.artifactory" version "4.9.5"
+    id "org.springframework.boot" version "1.4.3.RELEASE"
+    id 'maven-publish'
+    id 'java'
 }
 
 apply from: '../shared.gradle'
 apply plugin: 'org.asciidoctor.convert'
 
+bootRepackage {
+    enabled = false
+}
+
 dependencies {
     compile(
             [group: 'org.apache.fineract.cn.provisioner', name: 'api', version: project.version],
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 811409c..94336fc 100644
--- a/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 7e825ac..290541c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Fri Apr 13 14:41:57 CEST 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-bin.zip
diff --git a/gradlew b/gradlew
index 4453cce..cccdd3d 100755
--- a/gradlew
+++ b/gradlew
@@ -33,11 +33,11 @@
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD="maximum"
 
-warn ( ) {
+warn () {
     echo "$*"
 }
 
-die ( ) {
+die () {
     echo
     echo "$*"
     echo
@@ -155,7 +155,7 @@
 fi
 
 # Escape application args
-save ( ) {
+save () {
     for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
     echo " "
 }
diff --git a/service/build.gradle b/service/build.gradle
index ffb7fa1..09003e6 100644
--- a/service/build.gradle
+++ b/service/build.gradle
@@ -23,25 +23,23 @@
     repositories {
         jcenter()
     }
-
-    dependencies {
-        classpath ("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
     }
-}
-
 
 plugins {
     id 'com.github.hierynomus.license' version '0.13.1'
-    id("org.nosphere.apache.rat") version "0.3.1"
+    id("org.nosphere.apache.rat") version "0.5.2"
     id "com.jfrog.artifactory" version "4.9.5"
+    id "org.springframework.boot" version "1.4.3.RELEASE"
+    id 'maven'
+    id 'maven-publish'
+    id 'java'
+    id 'idea'
 }
 
 apply from: '../shared.gradle'
 
-apply plugin: 'spring-boot'
-
-springBoot {
-    executable = true
+bootRepackage {
+    enabled = true
     classifier = 'boot'
 }
 
@@ -65,6 +63,8 @@
             [group: 'org.apache.fineract.cn', name: 'cassandra', version: versions.frameworkcassandra],
             [group: 'org.hibernate', name: 'hibernate-validator', version: versions.validator],
             [group: 'org.apache.fineract.cn', name: 'crypto', version: versions.frameworkcrypto],
+            [group: 'io.netty', name: 'netty-all', version: '4.1.39.Final'],
+            [group: 'io.netty', name: 'netty-transport-native-epoll', version: '4.1.39.Final']
     )
 
     testCompile(
@@ -72,7 +72,9 @@
     )
 }
 
-publishToMavenLocal.dependsOn bootRepackage
+tasks.withType(PublishToMavenLocal) { task ->
+    task.dependsOn 'bootRepackage'
+}
 
 publishing {
     publications {
@@ -84,7 +86,7 @@
         }
         bootService(MavenPublication) {
             // "boot" jar
-            artifact ("$buildDir/libs/$project.name-$version-boot.jar")
+            artifact(file("$buildDir/libs/$project.name-$project.version-${bootRepackage.classifier}.jar"))
             groupId project.group
             artifactId ("$project.name-boot")
             version project.findProperty('externalVersion') ?: project.version
diff --git a/service/src/main/java/org/apache/fineract/cn/provisioner/internal/service/TenantApplicationService.java b/service/src/main/java/org/apache/fineract/cn/provisioner/internal/service/TenantApplicationService.java
index ea343fd..a92d2b2 100644
--- a/service/src/main/java/org/apache/fineract/cn/provisioner/internal/service/TenantApplicationService.java
+++ b/service/src/main/java/org/apache/fineract/cn/provisioner/internal/service/TenantApplicationService.java
@@ -144,7 +144,7 @@
 
       //InitializeResources on the service being added should occur last, for two reasons:
       // 1.) When the initialization event is put on the queue for this app/tenant combo, the app is fully ready for business.
-      // 2.) If the app depeneds on the provisioning of identitypermissions in its initialization, those resources will be there.
+      // 2.) If the app depends on the provisioning of identitypermissions in its initialization, those resources will be there.
       anubisInitializer.initializeResources(tenantIdentifier, x.name, x.uri);
     });
   }
diff --git a/service/src/main/resources/application.yaml b/service/src/main/resources/application.yaml
index d584204..ef6a76a 100644
--- a/service/src/main/resources/application.yaml
+++ b/service/src/main/resources/application.yaml
@@ -23,7 +23,7 @@
       defaultZone: http://localhost:8761/eureka/
 
 server:
-  port: 9090
+  port: 2020
   contextPath: /provisioner/v1/*
 
 flyway:
@@ -50,4 +50,4 @@
     driver-class-name: org.postgresql.Driver
     url: jdbc:postgresql://localhost:5432/seshat
     username: postgres
-    password: postgres
\ No newline at end of file
+    password: postgres
diff --git a/service/src/main/resources/banner.txt b/service/src/main/resources/banner.txt
new file mode 100644
index 0000000..9e33dda
--- /dev/null
+++ b/service/src/main/resources/banner.txt
@@ -0,0 +1,10 @@
+  _____ _                           _         ____ _   _
+ |  ___(_)_ __   ___ _ __ __ _  ___| |_      / ___| \ | |
+ | |_  | | '_ \ / _ \ '__/ _` |/ __| __|____| |   |  \| |
+ |  _| | | | | |  __/ | | (_| | (__| ||_____| |___| |\  |
+ |_|   |_|_| |_|\___|_|  \__,_|\___|\__|     \____|_| \_|
+  ____                 _     _
+ |  _ \ _ __ _____   _(_)___(_) ___  _ __   ___ _ __
+ | |_) | '__/ _ \ \ / / / __| |/ _ \| '_ \ / _ \ '__|
+ |  __/| | | (_) \ V /| \__ \ | (_) | | | |  __/ |
+ |_|   |_|  \___/ \_/ |_|___/_|\___/|_| |_|\___|_|
diff --git a/service/src/test/java/org/apache/fineract/cn/provisioner/internal/util/JdbcUrlBuilderTest.java b/service/src/test/java/org/apache/fineract/cn/provisioner/internal/util/JdbcUrlBuilderTest.java
index e52c8d2..97acfae 100644
--- a/service/src/test/java/org/apache/fineract/cn/provisioner/internal/util/JdbcUrlBuilderTest.java
+++ b/service/src/test/java/org/apache/fineract/cn/provisioner/internal/util/JdbcUrlBuilderTest.java
@@ -23,21 +23,21 @@
 
 public class JdbcUrlBuilderTest {
 
-  private final static String MARAIDB_JDBC_URL = "jdbc:mariadb://localhost:3306/comp_test";
+  private final static String POSTGRES_DB_JDBC_URL = "jdbc:postgresql:localhost:5432/comp_test";
 
   public JdbcUrlBuilderTest() {
     super();
   }
 
   @Test
-  public void shouldCreateMysqlUrl() {
-    final String mariaDbJdbcUrl = JdbcUrlBuilder
-        .create(JdbcUrlBuilder.DatabaseType.MARIADB)
+  public void shouldCreatePostgresUrl() {
+    final String postgresDbUrl = JdbcUrlBuilder
+        .create(JdbcUrlBuilder.DatabaseType.POSTGRESQL)
         .host("localhost")
-        .port("3306")
+        .port("5432")
         .instanceName("comp_test")
         .build();
 
-    Assert.assertEquals(MARAIDB_JDBC_URL, mariaDbJdbcUrl);
+    Assert.assertEquals(POSTGRES_DB_JDBC_URL, postgresDbUrl);
   }
 }
diff --git a/shared.gradle b/shared.gradle
index 5ded62e..02a5db0 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -34,12 +34,6 @@
         validator               : '5.3.0.Final'
 ]
 
-
-apply plugin: 'java'
-apply plugin: 'idea'
-apply plugin: 'maven-publish'
-apply plugin: 'io.spring.dependency-management'
-
 tasks.withType(JavaCompile) {
     sourceCompatibility = JavaVersion.VERSION_1_8
     targetCompatibility = JavaVersion.VERSION_1_8
@@ -77,7 +71,7 @@
 }
 
 jar {
-    from sourceSets.main.allSource
+    from sourceSets.main.java
 }
 
 artifactory {
@@ -110,6 +104,8 @@
 rat {
     // List of exclude directives, defaults to ['**/.gradle/**']
     excludes = [
+            "**/*.log",
+            "**/banner.txt",
             "**/.idea/**",
             "**/.gradle/**",
             "**/gradle/**",
@@ -117,7 +113,8 @@
             "gradlew",
             "gradlew.bat",
             "README.md",
-            "**/.dockerignore/**"
+            "**/.dockerignore/**",
+            "**/logs/**/*.log",
+            "**/banner.txt"
     ]
-    plainOutput = true
 }
diff --git a/travis.sh b/travis.sh
index 03a75ee..d54330d 100755
--- a/travis.sh
+++ b/travis.sh
@@ -36,6 +36,12 @@
   ./gradlew publishToMavenLocal rat || EXIT_STATUS=$?
 }
 
+# Builds Forked (non-apache) Repository
+function build_fork() {
+  echo -e "Building branch $TRAVIS_BRANCH of fork $TRAVIS_REPO_SLUG. Won't publish anything to Artifactory."
+  ./gradlew publishToMavenLocal rat || EXIT_STATUS=$?
+}
+
 # For other branches we need to add branch name as prefix
 function build_otherbranch() {
   echo -e "Building a snapshot out of branch [$TRAVIS_BRANCH] and publishing it with prefix '${TRAVIS_BRANCH}-SNAPSHOT'"
@@ -49,17 +55,19 @@
 
 }
 
+echo -e "TRAVIS_REPO_SLUG=$TRAVIS_REPO_SLUG"
 echo -e "TRAVIS_BRANCH=$TRAVIS_BRANCH"
 echo -e "TRAVIS_TAG=$TRAVIS_TAG"
 echo -e "TRAVIS_COMMIT=${TRAVIS_COMMIT::7}"
 echo -e "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
 
-# Build Logic
-if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
+if [[ $TRAVIS_REPO_SLUG != apache* ]]; then
+  build_fork
+elif [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
   build_pullrequest
-elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" != "$BUILD_SNAPSHOTS_BRANCH" ] && [ "$TRAVIS_TAG" == "" ]  ; then
+elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" != "$BUILD_SNAPSHOTS_BRANCH" ] && [ "$TRAVIS_TAG" == "" ]; then
   build_otherbranch
-elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "$BUILD_SNAPSHOTS_BRANCH" ] && [ "$TRAVIS_TAG" == "" ] ; then
+elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "$BUILD_SNAPSHOTS_BRANCH" ] && [ "$TRAVIS_TAG" == "" ]; then
   build_snapshot
 elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ]; then
   build_tag
