You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ju...@apache.org on 2019/10/17 07:34:32 UTC

[fineract-cn-cheques] 33/44: Migrate cheques service from MariaDB to PostgreSQL

This is an automated email from the ASF dual-hosted git repository.

juhan pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract-cn-cheques.git

commit 81b31ccc4825e9082874e4eb3efce08dad8babaf
Author: Isaac Kamga <u2...@gmail.com>
AuthorDate: Thu May 9 04:01:58 2019 +0100

    Migrate cheques service from MariaDB to PostgreSQL
---
 NOTICE.txt                                         |  2 +-
 .../fineract/cn/cheque/AbstractChequeTest.java     |  2 +-
 .../fineract/cn/cheque/SuiteTestEnvironment.java   |  6 ++---
 service/build.gradle                               |  2 +-
 .../cn/cheque/service/ChequeConfiguration.java     |  4 +--
 .../command/handler/ManagementAggregate.java       |  2 +-
 .../service/internal/repository/ChequeEntity.java  |  2 +-
 .../internal/repository/IssuedChequeEntity.java    |  2 +-
 service/src/main/resources/application.yml         | 15 +++++++----
 .../{mariadb => postgresql}/V1__initial_setup.sql  | 10 +++-----
 shared.gradle                                      | 29 +++++++++++-----------
 11 files changed, 40 insertions(+), 36 deletions(-)

diff --git a/NOTICE.txt b/NOTICE.txt
index de5aeca..4bc39ba 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
 Apache Fineract CN Cheques
-Copyright [2017-2018] The Apache Software Foundation
+Copyright [2017-2019] The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/component-test/src/main/java/org/apache/fineract/cn/cheque/AbstractChequeTest.java b/component-test/src/main/java/org/apache/fineract/cn/cheque/AbstractChequeTest.java
index e45a167..61c0aa9 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/cheque/AbstractChequeTest.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/cheque/AbstractChequeTest.java
@@ -56,7 +56,7 @@ public abstract class AbstractChequeTest extends SuiteTestEnvironment {
 
   @ClassRule
   public final static TenantDataStoreContextTestRule tenantDataStoreContext =
-      TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, mariaDBInitializer);
+      TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, postgreSQLInitializer);
 
   @Rule
   public final TenantApplicationSecurityEnvironmentTestRule tenantApplicationSecurityEnvironment
diff --git a/component-test/src/main/java/org/apache/fineract/cn/cheque/SuiteTestEnvironment.java b/component-test/src/main/java/org/apache/fineract/cn/cheque/SuiteTestEnvironment.java
index c2b5fb4..39834d9 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/cheque/SuiteTestEnvironment.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/cheque/SuiteTestEnvironment.java
@@ -21,7 +21,7 @@ package org.apache.fineract.cn.cheque;
 
 import org.apache.fineract.cn.test.env.TestEnvironment;
 import org.apache.fineract.cn.test.fixture.cassandra.CassandraInitializer;
-import org.apache.fineract.cn.test.fixture.mariadb.MariaDBInitializer;
+import org.apache.fineract.cn.test.fixture.postgresql.PostgreSQLInitializer;
 import org.junit.ClassRule;
 import org.junit.rules.RuleChain;
 import org.junit.rules.RunExternalResourceOnce;
@@ -34,11 +34,11 @@ public class SuiteTestEnvironment {
   static final String APP_NAME = "cheques-v1";
   static final TestEnvironment testEnvironment = new TestEnvironment(APP_NAME);
   static final CassandraInitializer cassandraInitializer = new CassandraInitializer();
-  static final MariaDBInitializer mariaDBInitializer = new MariaDBInitializer();
+  static final PostgreSQLInitializer postgreSQLInitializer = new PostgreSQLInitializer();
 
   @ClassRule
   public static TestRule orderClassRules = RuleChain
       .outerRule(new RunExternalResourceOnce(testEnvironment))
       .around(new RunExternalResourceOnce(cassandraInitializer))
-      .around(new RunExternalResourceOnce(mariaDBInitializer));
+      .around(new RunExternalResourceOnce(postgreSQLInitializer));
 }
diff --git a/service/build.gradle b/service/build.gradle
index 01bcfea..cc63a59 100644
--- a/service/build.gradle
+++ b/service/build.gradle
@@ -58,7 +58,7 @@ dependencies {
             [group: 'org.apache.fineract.cn', name: 'lang', version: versions.frameworklang],
             [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: 'mariadb', version: versions.frameworkmariadb],
+            [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: 'org.threeten', name: 'threeten-extra', version: '1.2']
diff --git a/service/src/main/java/org/apache/fineract/cn/cheque/service/ChequeConfiguration.java b/service/src/main/java/org/apache/fineract/cn/cheque/service/ChequeConfiguration.java
index 610f37c..c1bf239 100644
--- a/service/src/main/java/org/apache/fineract/cn/cheque/service/ChequeConfiguration.java
+++ b/service/src/main/java/org/apache/fineract/cn/cheque/service/ChequeConfiguration.java
@@ -27,7 +27,7 @@ import org.apache.fineract.cn.customer.api.v1.client.CustomerManager;
 import org.apache.fineract.cn.deposit.api.v1.client.DepositAccountManager;
 import org.apache.fineract.cn.lang.config.EnableServiceException;
 import org.apache.fineract.cn.lang.config.EnableTenantContext;
-import org.apache.fineract.cn.mariadb.config.EnableMariaDB;
+import org.apache.fineract.cn.postgresql.config.EnablePostgreSQL;
 import org.apache.fineract.cn.office.api.v1.client.OrganizationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,7 +48,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
 @EnableAsync
 @EnableTenantContext
 @EnableCassandra
-@EnableMariaDB
+@EnablePostgreSQL
 @EnableCommandProcessing
 @EnableAnubis
 @EnableServiceException
diff --git a/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/command/handler/ManagementAggregate.java b/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/command/handler/ManagementAggregate.java
index e541246..777b281 100644
--- a/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/command/handler/ManagementAggregate.java
+++ b/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/command/handler/ManagementAggregate.java
@@ -26,7 +26,7 @@ import org.apache.fineract.cn.command.annotation.Aggregate;
 import org.apache.fineract.cn.command.annotation.CommandHandler;
 import org.apache.fineract.cn.command.annotation.EventEmitter;
 import org.apache.fineract.cn.lang.ApplicationName;
-import org.apache.fineract.cn.mariadb.domain.FlywayFactoryBean;
+import org.apache.fineract.cn.postgresql.domain.FlywayFactoryBean;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/ChequeEntity.java b/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/ChequeEntity.java
index 4b0f248..40298a4 100644
--- a/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/ChequeEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/ChequeEntity.java
@@ -27,7 +27,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
 
 @Entity
 @Table(name = "sopdet_cheques")
diff --git a/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/IssuedChequeEntity.java b/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/IssuedChequeEntity.java
index 77c2781..ee3eedf 100644
--- a/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/IssuedChequeEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/cheque/service/internal/repository/IssuedChequeEntity.java
@@ -26,7 +26,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
 
 @Entity
 @Table(name = "sopdet_issued_cheques")
diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml
index af184b4..3c3d6ef 100644
--- a/service/src/main/resources/application.yml
+++ b/service/src/main/resources/application.yml
@@ -23,6 +23,11 @@ spring:
       enabled: false
     config:
       enabled: false
+  datasource:
+    driver-class-name: org.postgresql.Driver
+    url: jdbc:postgresql://localhost:5432/playground
+    username: postgres
+    password: postgres
 
 eureka:
   client:
@@ -42,13 +47,13 @@ cassandra:
     write: LOCAL_QUORUM
     delete: LOCAL_QUORUM
 
-mariadb:
-  driverClass: org.mariadb.jdbc.Driver
+postgresql:
+  driverClass: org.postgresql.Driver
   database: seshat
   host: localhost
-  port: 3306
-  user: root
-  password: mysql
+  port: 5432
+  user: postgres
+  password: postgres
 
 bonecp:
   idleMaxAgeInMinutes: 240
diff --git a/service/src/main/resources/db/migrations/mariadb/V1__initial_setup.sql b/service/src/main/resources/db/migrations/postgresql/V1__initial_setup.sql
similarity index 92%
rename from service/src/main/resources/db/migrations/mariadb/V1__initial_setup.sql
rename to service/src/main/resources/db/migrations/postgresql/V1__initial_setup.sql
index e1e99ee..c65c84b 100644
--- a/service/src/main/resources/db/migrations/mariadb/V1__initial_setup.sql
+++ b/service/src/main/resources/db/migrations/postgresql/V1__initial_setup.sql
@@ -18,7 +18,7 @@
 --
 
 CREATE TABLE sopdet_issued_cheques (
-  id                         BIGINT         NOT NULL AUTO_INCREMENT,
+  id                         BIGSERIAL      NOT NULL,
   account_identifier         VARCHAR(34)    NOT NULL,
   last_issued_number         NUMERIC(8)     NOT NULL,
   created_on                 TIMESTAMP(3)   NOT NULL,
@@ -26,11 +26,10 @@ CREATE TABLE sopdet_issued_cheques (
   last_modified_on           TIMESTAMP(3)   NULL,
   last_modified_by           VARCHAR(32)    NULL,
   CONSTRAINT sopdet_issued_cheques_pk PRIMARY KEY (id),
-  CONSTRAINT sopdet_issued_cheques_uq UNIQUE (account_identifier)
-);
+  CONSTRAINT sopdet_issued_cheques_uq UNIQUE (account_identifier) );
 
 CREATE TABLE sopdet_cheques (
-  id                         BIGINT         NOT NULL AUTO_INCREMENT,
+  id                         BIGSERIAL      NOT NULL,
   cheque_number              VARCHAR(8)     NOT NULL,
   branch_sort_code           VARCHAR(11)    NOT NULL,
   account_number             VARCHAR(34)    NOT NULL,
@@ -47,5 +46,4 @@ CREATE TABLE sopdet_cheques (
   last_modified_on           TIMESTAMP(3)   NULL,
   last_modified_by           VARCHAR(32)    NULL,
   CONSTRAINT sopdet_cheques_pk PRIMARY KEY (id),
-  CONSTRAINT sopdet_cheques_uq UNIQUE (cheque_number, branch_sort_code, account_number)
-);
+  CONSTRAINT sopdet_cheques_uq UNIQUE (cheque_number, branch_sort_code, account_number) );
diff --git a/shared.gradle b/shared.gradle
index 46edf30..459e4ba 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -19,19 +19,19 @@ group 'org.apache.fineract.cn.cheques'
 version '0.1.0-BUILD-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',
-        frameworkoffice    : '0.1.0-BUILD-SNAPSHOT',
-        frameworkaccounting: '0.1.0-BUILD-SNAPSHOT',
-        frameworkdeposit   : '0.1.0-BUILD-SNAPSHOT',
-        frameworkcustomer  : '0.1.0-BUILD-SNAPSHOT',
-        validator          : '5.3.0.Final'
+        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',
+        frameworkoffice     : '0.1.0-BUILD-SNAPSHOT',
+        frameworkaccounting : '0.1.0-BUILD-SNAPSHOT',
+        frameworkdeposit    : '0.1.0-BUILD-SNAPSHOT',
+        frameworkcustomer   : '0.1.0-BUILD-SNAPSHOT',
+        validator           : '5.3.0.Final'
 ]
 
 apply plugin: 'java'
@@ -68,7 +68,8 @@ dependencies {
     )
 
     testCompile(
-            [group: 'org.springframework.boot', name: 'spring-boot-starter-test']
+            [group: 'org.springframework.boot', name: 'spring-boot-starter-test'],
+            [group: 'org.apache.fineract.cn', name: 'postgresql', version: versions.frameworkpostgresql]
     )
 }