Merge pull request #16 from muellners/spring_boot_2

update to spring boot 2
diff --git a/api/build.gradle b/api/build.gradle
index ec581f2..4a81014 100644
--- a/api/build.gradle
+++ b/api/build.gradle
@@ -21,15 +21,15 @@
     }
 
     dependencies {
-        classpath 'io.spring.gradle:dependency-management-plugin:1.0.8.RELEASE'
+        classpath 'io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE'
     }
 }
 
 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 "io.spring.dependency-management" version "1.0.9.RELEASE"
     id 'maven-publish'
     id 'java'
 }
@@ -38,12 +38,16 @@
 
 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]
     )
 }
 
+jar {
+    enabled = true
+}
+
 publishing {
     publications {
         api(MavenPublication) {
diff --git a/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java b/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java
index 12c563d..33de155 100644
--- a/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java
+++ b/api/src/main/java/org/apache/fineract/cn/group/api/v1/client/GroupManager.java
@@ -30,7 +30,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 057c882..ee5e7fa 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 {
@@ -30,10 +30,11 @@
 }
 
 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 "io.spring.dependency-management" version "1.0.9.RELEASE"
     id 'maven-publish'
     id 'java'
 }
@@ -41,7 +42,7 @@
 apply from: '../shared.gradle'
 apply plugin: 'org.asciidoctor.convert'
 
-bootRepackage {
+bootJar {
     enabled = false
 }
 
@@ -65,6 +66,11 @@
     attributes "source-highlighter": "highlightjs",
             '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/group/AbstractGroupTest.java b/component-test/src/main/java/org/apache/fineract/cn/group/AbstractGroupTest.java
index 12d8b83..f76cde3 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/group/AbstractGroupTest.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/group/AbstractGroupTest.java
@@ -32,7 +32,7 @@
 import org.slf4j.LoggerFactory;
 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.Bean;
 import org.springframework.context.annotation.ComponentScan;
diff --git a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java
index 4cd2ae8..7431ec0 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroup.java
@@ -59,7 +59,7 @@
 import org.slf4j.LoggerFactory;
 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.Bean;
 import org.springframework.context.annotation.ComponentScan;
diff --git a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java
index d7b4f48..2a0142f 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/group/TestGroupDefinition.java
@@ -44,7 +44,7 @@
 import org.slf4j.LoggerFactory;
 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.Bean;
 import org.springframework.context.annotation.ComponentScan;
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 668ce31..7107b5a 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,11 @@
 }
 
 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 "io.spring.dependency-management" version "1.0.9.RELEASE"
     id 'maven-publish'
     id 'java'
     id 'idea'
@@ -36,7 +37,7 @@
 
 apply from: '../shared.gradle'
 
-bootRepackage {
+bootJar {
     enabled = true
     classifier = 'boot'
 }
@@ -44,7 +45,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.group', name: 'api', version: project.version],
             [group: 'org.apache.fineract.cn.anubis', name: 'library', version: versions.frameworkanubis],
@@ -53,7 +54,7 @@
             [group: 'org.apache.fineract.cn', name: 'async', version: versions.frameworkasync],
             [group: 'org.apache.fineract.cn', name: 'cassandra', version: versions.frameworkcassandra],
             [group: 'org.apache.fineract.cn', name: 'postgresql', version: versions.frameworkmariadb],
-            [group: 'org.apache.fineract.cn', name: 'postgresql', version: '0.1.0-BUILD-SNAPSHOT'],
+            [group: 'org.apache.fineract.cn', name: 'postgresql', version: versions.frameworkpostgresql],
             [group: 'org.apache.fineract.cn', name: 'command', version: versions.frameworkcommand],
             [group: 'org.hibernate', name: 'hibernate-validator', version: versions.validator],
             [group: 'io.netty', name: 'netty-all', version: '4.1.39.Final'],
@@ -61,9 +62,14 @@
     )
 }
 
-tasks.withType(PublishToMavenLocal) { task ->
-    task.dependsOn 'bootRepackage'
+jar {
+    enabled = true
 }
+
+tasks.withType(PublishToMavenLocal) { task ->
+    task.dependsOn 'bootJar'
+}
+
 publishing {
     publications {
         service(MavenPublication) {
@@ -74,7 +80,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 3e98b0a..d5592bb 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -16,18 +16,19 @@
  */
 
 group 'org.apache.fineract.cn.group'
-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',
-        frameworkmariadb : '0.1.0-BUILD-SNAPSHOT',
-        frameworkcommand : '0.1.0-BUILD-SNAPSHOT',
-        frameworktest: '0.1.0-BUILD-SNAPSHOT',
-        frameworkanubis: '0.1.0-BUILD-SNAPSHOT',
-        validator  : '5.3.0.Final'
+        frameworkapi : 'spring_boot_2-SNAPSHOT',
+        frameworklang : 'spring_boot_2-SNAPSHOT',
+        frameworkasync : 'spring_boot_2-SNAPSHOT',
+        frameworkcassandra : 'spring_boot_2-SNAPSHOT',
+        frameworkmariadb : 'spring_boot_2-SNAPSHOT',
+        frameworkcommand : 'spring_boot_2-SNAPSHOT',
+        frameworktest: 'spring_boot_2-SNAPSHOT',
+        frameworkanubis: 'spring_boot_2-SNAPSHOT',
+        frameworkpostgresql: 'spring_boot_2-SNAPSHOT',
+        validator  : '6.1.4.Final'
 ]
 
 tasks.withType(JavaCompile) {
@@ -43,8 +44,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'
     }
 }
 
@@ -57,7 +58,7 @@
 dependencies {
     compile(
             [group: 'com.google.code.findbugs', name: 'jsr305'],
-            [group: 'org.apache.fineract.cn', name: 'postgresql', version: '0.1.0-BUILD-SNAPSHOT']
+            [group: 'org.apache.fineract.cn', name: 'postgresql', version: 'spring_boot_2-SNAPSHOT']
     )
 
     testCompile(