Merge pull request #17 from muellners/spring_boot_2

update dependencies(Spring boot 2)
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/**"
     ]
 }