diff --git a/.gitignore b/.gitignore
index 13f490e..2e03e96 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,10 @@
 **/build/
 **/target/
 **/out
+.settings
+bin
+.classpath
+.project
 
 # Ignore Gradle GUI config
 gradle-app.setting
diff --git a/api/build.gradle b/api/build.gradle
index 2148264..3d7b2e5 100644
--- a/api/build.gradle
+++ b/api/build.gradle
@@ -22,10 +22,10 @@
 }
 
 plugins {
-    id "com.github.hierynomus.license" version "0.13.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 'com.github.hierynomus.license' version '0.15.0'
+    id 'org.nosphere.apache.rat' version '0.6.0'
+    id 'com.jfrog.artifactory' version '4.15.1'
+    id 'org.springframework.boot' version '2.2.6.RELEASE'
     id 'maven-publish'
     id 'java'
 }
@@ -34,7 +34,7 @@
 
 dependencies {
     compile(
-            [group: 'org.springframework.cloud', name: 'spring-cloud-starter-feign'],
+            [group: 'org.springframework.cloud', name: 'spring-cloud-starter-openfeign'],
             [group: 'org.apache.fineract.cn', name: 'api', version: versions.frameworkapi],
             [group: 'org.hibernate', name: 'hibernate-validator', version: versions.validator],
             [group: 'io.github.openfeign.form', name: 'feign-form', version: '2.1.0'],
@@ -46,6 +46,10 @@
     )
 }
 
+jar {
+    enabled = true
+}
+
 publishing {
     publications {
         api(MavenPublication) {
diff --git a/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerDocumentsManager.java b/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerDocumentsManager.java
index 7d4064b..fbb96e2 100644
--- a/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerDocumentsManager.java
+++ b/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerDocumentsManager.java
@@ -24,7 +24,7 @@
 import org.apache.fineract.cn.api.annotation.ThrowsException;
 import org.apache.fineract.cn.api.annotation.ThrowsExceptions;
 import org.hibernate.validator.constraints.Range;
-import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PathVariable;
diff --git a/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerManager.java b/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerManager.java
index f6f60a2..95d92ef 100644
--- a/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerManager.java
+++ b/api/src/main/java/org/apache/fineract/cn/customer/api/v1/client/CustomerManager.java
@@ -33,7 +33,7 @@
 import org.apache.fineract.cn.api.annotation.ThrowsException;
 import org.apache.fineract.cn.api.annotation.ThrowsExceptions;
 import org.apache.fineract.cn.lang.validation.constraints.ValidIdentifier;
-import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PathVariable;
diff --git a/api/src/main/java/org/apache/fineract/cn/customer/api/v1/config/CustomerFeignClientConfig.java b/api/src/main/java/org/apache/fineract/cn/customer/api/v1/config/CustomerFeignClientConfig.java
index 022f177..3e18012 100644
--- a/api/src/main/java/org/apache/fineract/cn/customer/api/v1/config/CustomerFeignClientConfig.java
+++ b/api/src/main/java/org/apache/fineract/cn/customer/api/v1/config/CustomerFeignClientConfig.java
@@ -48,7 +48,7 @@
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.cloud.netflix.feign.FeignClientsConfiguration;
+import org.springframework.cloud.openfeign.FeignClientsConfiguration;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Primary;
 import org.springframework.context.annotation.Scope;
diff --git a/api/src/main/java/org/apache/fineract/cn/customer/catalog/api/v1/client/CatalogManager.java b/api/src/main/java/org/apache/fineract/cn/customer/catalog/api/v1/client/CatalogManager.java
index c3c8c7d..52164cd 100644
--- a/api/src/main/java/org/apache/fineract/cn/customer/catalog/api/v1/client/CatalogManager.java
+++ b/api/src/main/java/org/apache/fineract/cn/customer/catalog/api/v1/client/CatalogManager.java
@@ -24,7 +24,7 @@
 import org.apache.fineract.cn.api.annotation.ThrowsException;
 import org.apache.fineract.cn.api.annotation.ThrowsExceptions;
 import org.apache.fineract.cn.api.util.CustomFeignClientsConfiguration;
-import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PathVariable;
diff --git a/component-test/build.gradle b/component-test/build.gradle
index 4410937..dc21046 100644
--- a/component-test/build.gradle
+++ b/component-test/build.gradle
@@ -17,7 +17,7 @@
 
 buildscript {
     ext {
-        springBootVersion = '1.4.1.RELEASE'
+        springBootVersion = '2.2.6.RELEASE'
     }
 
     repositories {
@@ -25,15 +25,15 @@
     }
 
     dependencies {
-        classpath("org.asciidoctor:asciidoctor-gradle-plugin:1.5.3")
+        classpath("org.asciidoctor:asciidoctor-gradle-plugin:1.5.7")
     }
 }
 
 plugins {
-    id "com.github.hierynomus.license" version "0.13.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 'com.github.hierynomus.license' version '0.15.0'
+    id 'org.nosphere.apache.rat' version '0.6.0'
+    id 'com.jfrog.artifactory' version '4.15.1'
+    id 'org.springframework.boot' version '2.2.6.RELEASE'
     id 'maven-publish'
     id 'java'
 }
@@ -41,7 +41,7 @@
 apply from: '../shared.gradle'
 apply plugin: 'org.asciidoctor.convert'
 
-bootRepackage {
+bootJar {
     enabled = false
 }
 
@@ -66,6 +66,10 @@
                 'snippets': file('build/doc/generated-snippets/')
 }
 
+jar {
+    enabled = true
+}
+
 publishing {
     publications {
         componentTest(MavenPublication) {
diff --git a/component-test/src/main/java/org/apache/fineract/cn/customer/AbstractCustomerTest.java b/component-test/src/main/java/org/apache/fineract/cn/customer/AbstractCustomerTest.java
index 7978533..b0b880f 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/customer/AbstractCustomerTest.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/customer/AbstractCustomerTest.java
@@ -37,7 +37,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.cloud.netflix.ribbon.RibbonClient;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
diff --git a/component-test/src/main/java/org/apache/fineract/cn/customer/catalog/TestCatalog.java b/component-test/src/main/java/org/apache/fineract/cn/customer/catalog/TestCatalog.java
index 21fdfa4..d525df4 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/customer/catalog/TestCatalog.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/customer/catalog/TestCatalog.java
@@ -56,7 +56,7 @@
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.cloud.netflix.ribbon.RibbonClient;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 290541c..a4b4429 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/service/build.gradle b/service/build.gradle
index 3b845c1..5ff91dd 100644
--- a/service/build.gradle
+++ b/service/build.gradle
@@ -17,7 +17,7 @@
 
 buildscript {
     ext {
-        springBootVersion = '1.4.1.RELEASE'
+        springBootVersion = '2.2.6.RELEASE'
     }
     repositories {
         jcenter()
@@ -25,10 +25,10 @@
 }
 
 plugins {
-    id "com.github.hierynomus.license" version "0.13.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 'com.github.hierynomus.license' version '0.15.0'
+    id 'org.nosphere.apache.rat' version '0.6.0'
+    id 'com.jfrog.artifactory' version '4.15.1'
+    id 'org.springframework.boot' version '2.2.6.RELEASE'
     id 'maven-publish'
     id 'java'
     id 'idea'
@@ -36,7 +36,7 @@
 
 apply from: '../shared.gradle'
 
-bootRepackage {
+bootJar {
     enabled = true
     classifier = 'boot'
 }
@@ -44,7 +44,7 @@
 dependencies {
     compile(
             [group: 'org.springframework.cloud', name: 'spring-cloud-starter-config'],
-            [group: 'org.springframework.cloud', name: 'spring-cloud-starter-eureka'],
+            [group: 'org.springframework.cloud', name: 'spring-cloud-starter-netflix-eureka-client'],
             [group: 'org.springframework.boot', name: 'spring-boot-starter-jetty'],
             [group: 'org.apache.fineract.cn.customer', name: 'api', version: project.version],
             [group: 'org.apache.fineract.cn.anubis', name: 'library', version: versions.frameworkanubis],
@@ -60,8 +60,12 @@
     )
 }
 
+jar {
+    enabled = true
+}
+
 tasks.withType(PublishToMavenLocal) { task ->
-    task.dependsOn 'bootRepackage'
+    task.dependsOn 'bootJar'
 }
 publishing {
     publications {
@@ -73,7 +77,7 @@
         }
        bootService(MavenPublication) {
             // "boot" jar
-            artifact(file("$buildDir/libs/$project.name-$project.version-${bootRepackage.classifier}.jar"))
+            artifact(file("$buildDir/libs/$project.name-$project.version-${bootJar.classifier}.jar"))
             groupId project.group
             artifactId ("$project.name-boot")
             version project.findProperty('externalVersion') ?: project.version
diff --git a/shared.gradle b/shared.gradle
index 38f8ac3..6b586b5 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -16,17 +16,17 @@
  */
 
 group 'org.apache.fineract.cn.customer'
-version '0.1.0-BUILD-SNAPSHOT'
+version 'spring_boot_2-SNAPSHOT'
 
 ext.versions = [
-        frameworkapi : '0.1.0-BUILD-SNAPSHOT',
-        frameworklang : '0.1.0-BUILD-SNAPSHOT',
-        frameworkasync : '0.1.0-BUILD-SNAPSHOT',
-        frameworkcassandra : '0.1.0-BUILD-SNAPSHOT',
-        frameworkpostgresql : '0.1.0-BUILD-SNAPSHOT',
-        frameworkcommand : '0.1.0-BUILD-SNAPSHOT',
-        frameworktest: '0.1.0-BUILD-SNAPSHOT',
-        frameworkanubis: '0.1.0-BUILD-SNAPSHOT',
+        frameworkapi : 'spring_boot_2-SNAPSHOT',
+        frameworklang : 'spring_boot_2-SNAPSHOT',
+        frameworkasync : 'spring_boot_2-SNAPSHOT',
+        frameworkcassandra : 'spring_boot_2-SNAPSHOT',
+        frameworkpostgresql : 'spring_boot_2-SNAPSHOT',
+        frameworkcommand : 'spring_boot_2-SNAPSHOT',
+        frameworktest: 'spring_boot_2-SNAPSHOT',
+        frameworkanubis: 'spring_boot_2-SNAPSHOT',
         validator  : '5.3.0.Final'
 ]
 
@@ -48,8 +48,8 @@
 
 dependencyManagement {
     imports {
-        mavenBom 'io.spring.platform:platform-bom:Athens-RELEASE'
-        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Camden.SR1'
+        mavenBom 'io.spring.platform:platform-bom:Cairo-SR8'
+        mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR3'
     }
 }
 
@@ -63,7 +63,7 @@
     compile(
             [group: 'com.google.code.findbugs', name: 'jsr305'],
             [group: 'org.apache.fineract.cn', name: 'postgresql', version: versions.frameworkpostgresql],
-            [group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4']
+            [group: 'org.postgresql', name: 'postgresql', version: '42.2.12']
     )
 
     testCompile(
@@ -116,6 +116,10 @@
             "gradlew",
             "gradlew.bat",
             "README.md",
-            "**/.dockerignore/**"
+            "**/.dockerignore/**",
+            ".project",
+            ".classpath",
+            "**/bin/**",
+            "**/.settings/**"
     ]
 }
