You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ik...@apache.org on 2019/09/02 21:58:11 UTC

[fineract-cn-group] branch develop updated: Migrate group service from MariaDB to PostgreSQL

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

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


The following commit(s) were added to refs/heads/develop by this push:
     new e49c4cb  Migrate group service from MariaDB to PostgreSQL
     new 62100a4  Merge pull request #11 from Izakey/FINCN-118
e49c4cb is described below

commit e49c4cb560d0a0ade770dea6700e599c8e9dc6e0
Author: Isaac Kamga <u2...@gmail.com>
AuthorDate: Thu May 9 04:17:51 2019 +0100

    Migrate group service from MariaDB to PostgreSQL
---
 NOTICE.txt                                                |  2 +-
 .../apache/fineract/cn/group/SuiteTestEnvironment.java    |  8 ++++----
 .../main/java/org/apache/fineract/cn/group/TestGroup.java |  2 +-
 .../org/apache/fineract/cn/group/TestGroupDefinition.java |  2 +-
 service/build.gradle                                      |  3 ++-
 .../org/apache/fineract/cn/group/GroupConfiguration.java  |  4 ++--
 .../internal/command/handler/MigrationAggregate.java      |  2 +-
 .../cn/group/internal/repository/GroupCommandEntity.java  |  2 +-
 .../group/internal/repository/GroupDefinitionEntity.java  |  2 +-
 .../cn/group/internal/repository/GroupEntity.java         |  2 +-
 .../cn/group/internal/repository/MeetingEntity.java       |  4 ++--
 .../cn/group/internal/repository/MeetingRepository.java   |  2 +-
 service/src/main/resources/application.yml                | 15 ++++++++++-----
 .../{mariadb => postgresql}/V1__initial_setup.sql         | 12 ++++++------
 shared.gradle                                             |  3 ++-
 15 files changed, 36 insertions(+), 29 deletions(-)

diff --git a/NOTICE.txt b/NOTICE.txt
index 5f2a7ce..a572ee5 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
 Apache Fineract CN Group
-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/group/SuiteTestEnvironment.java b/component-test/src/main/java/org/apache/fineract/cn/group/SuiteTestEnvironment.java
index 8cd3a8e..720e949 100644
--- a/component-test/src/main/java/org/apache/fineract/cn/group/SuiteTestEnvironment.java
+++ b/component-test/src/main/java/org/apache/fineract/cn/group/SuiteTestEnvironment.java
@@ -21,7 +21,7 @@ package org.apache.fineract.cn.group;
 import org.apache.fineract.cn.test.env.TestEnvironment;
 import org.apache.fineract.cn.test.fixture.TenantDataStoreContextTestRule;
 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.TestRule;
@@ -32,14 +32,14 @@ public class SuiteTestEnvironment {
 
     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();
     static final TenantDataStoreContextTestRule tenantDataStoreContext =
-            TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, mariaDBInitializer);
+            TenantDataStoreContextTestRule.forRandomTenantName(cassandraInitializer, postgreSQLInitializer);
 
     @ClassRule
     public static TestRule orderClassRules = RuleChain
             .outerRule(testEnvironment)
             .around(cassandraInitializer)
-            .around(mariaDBInitializer)
+            .around(postgreSQLInitializer)
             .around(tenantDataStoreContext);
 }
\ No newline at end of file
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 a78017a..4cd2ae8 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
@@ -43,7 +43,7 @@ import org.apache.fineract.cn.api.context.AutoUserContext;
 import org.apache.fineract.cn.test.env.TestEnvironment;
 import org.apache.fineract.cn.test.fixture.TenantDataStoreContextTestRule;
 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.apache.fineract.cn.test.listener.EnableEventRecording;
 import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.junit.After;
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 3a4b652..d7b4f48 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
@@ -28,7 +28,7 @@ import org.apache.fineract.cn.lang.TenantContextHolder;
 import org.apache.fineract.cn.test.env.TestEnvironment;
 import org.apache.fineract.cn.test.fixture.TenantDataStoreContextTestRule;
 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.apache.fineract.cn.test.listener.EnableEventRecording;
 import org.apache.fineract.cn.test.listener.EventRecorder;
 import org.junit.After;
diff --git a/service/build.gradle b/service/build.gradle
index 11b1a51..d3cabf8 100644
--- a/service/build.gradle
+++ b/service/build.gradle
@@ -54,7 +54,8 @@ 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.frameworkmariadb],
+            [group: 'org.apache.fineract.cn', name: 'postgresql', version: '0.1.0-BUILD-SNAPSHOT'],
             [group: 'org.apache.fineract.cn', name: 'command', version: versions.frameworkcommand],
             [group: 'org.hibernate', name: 'hibernate-validator', version: versions.validator]
     )
diff --git a/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java b/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java
index f2f0642..3f16aa7 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/GroupConfiguration.java
@@ -24,7 +24,7 @@ import org.apache.fineract.cn.cassandra.config.EnableCassandra;
 import org.apache.fineract.cn.command.config.EnableCommandProcessing;
 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.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -43,7 +43,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/group/internal/command/handler/MigrationAggregate.java b/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/MigrationAggregate.java
index 3ea23ff..e2b4262 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/MigrationAggregate.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/command/handler/MigrationAggregate.java
@@ -25,7 +25,7 @@ import javax.sql.DataSource;
 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.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/group/internal/repository/GroupCommandEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupCommandEntity.java
index 67c8286..41ff56c 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupCommandEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupCommandEntity.java
@@ -29,7 +29,7 @@ import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
 
 @Entity
 @Table(name = "ptah_group_commands")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.java
index 5b4c856..bf8e8d8 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupDefinitionEntity.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 = "ptah_group_definitions")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java
index 10e8a57..658962b 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/GroupEntity.java
@@ -30,7 +30,7 @@ import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
 
 @Entity
 @Table(name = "ptah_groups")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java
index dc9fef9..4788455 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingEntity.java
@@ -30,8 +30,8 @@ import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.Table;
-import org.apache.fineract.cn.mariadb.util.LocalDateConverter;
-import org.apache.fineract.cn.mariadb.util.LocalDateTimeConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateTimeConverter;
 
 @Entity
 @Table(name = "ptah_meetings")
diff --git a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java
index c094de0..b470945 100644
--- a/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java
+++ b/service/src/main/java/org/apache/fineract/cn/group/internal/repository/MeetingRepository.java
@@ -22,7 +22,7 @@ import java.time.LocalDate;
 import java.util.List;
 import java.util.Optional;
 import javax.persistence.Convert;
-import org.apache.fineract.cn.mariadb.util.LocalDateConverter;
+import org.apache.fineract.cn.postgresql.util.LocalDateConverter;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml
index f9b2ce0..e95b85a 100644
--- a/service/src/main/resources/application.yml
+++ b/service/src/main/resources/application.yml
@@ -40,6 +40,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:
@@ -59,13 +64,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 4460330..e004b01 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 ptah_addresses (
-  id BIGINT NOT NULL AUTO_INCREMENT,
+  id BIGSERIAL NOT NULL,
   street       VARCHAR(256) NOT NULL,
   city         VARCHAR(256) NOT NULL,
   postal_code  VARCHAR(32) NULL,
@@ -29,7 +29,7 @@ CREATE TABLE ptah_addresses (
 );
 
 CREATE TABLE ptah_group_definitions (
-  id                 BIGINT        NOT NULL AUTO_INCREMENT,
+  id                 BIGSERIAL     NOT NULL,
   identifier         VARCHAR(32)   NOT NULL,
   description        VARCHAR(2048) NULL,
   minimal_size       INTEGER       NOT NULL,
@@ -46,7 +46,7 @@ CREATE TABLE ptah_group_definitions (
 );
 
 CREATE TABLE ptah_groups (
-  id                  BIGINT        NOT NULL AUTO_INCREMENT,
+  id                  BIGSERIAL     NOT NULL,
   identifier          VARCHAR(32)   NOT NULL,
   group_definition_id BIGINT        NOT NULL,
   a_name              VARCHAR(256)  NOT NULL,
@@ -69,7 +69,7 @@ CREATE TABLE ptah_groups (
 );
 
 CREATE TABLE ptah_group_commands (
-  id         BIGINT       NOT NULL AUTO_INCREMENT,
+  id         BIGSERIAL    NOT NULL,
   group_id   BIGINT       NOT NULL,
   a_action   VARCHAR(32)  NOT NULL,
   note       VARCHAR(256) NOT NULL,
@@ -80,7 +80,7 @@ CREATE TABLE ptah_group_commands (
 );
 
 CREATE TABLE ptah_meetings (
-  id               BIGINT       NOT NULL AUTO_INCREMENT,
+  id               BIGSERIAL    NOT NULL,
   group_id         BIGINT       NOT NULL,
   meeting_sequence BIGINT       NOT NULL,
   current_cycle    BIGINT       NOT NULL,
@@ -94,7 +94,7 @@ CREATE TABLE ptah_meetings (
 );
 
 CREATE TABLE ptah_attendees (
-  id                  BIGINT       NOT NULL AUTO_INCREMENT,
+  id                  BIGSERIAL    NOT NULL,
   meeting_id          BIGINT       NOT NULL,
   customer_identifier VARCHAR(32)  NOT NULL,
   a_status            VARCHAR(256) NOT NULL,
diff --git a/shared.gradle b/shared.gradle
index 91ec124..8b5c249 100644
--- a/shared.gradle
+++ b/shared.gradle
@@ -60,7 +60,8 @@ ext['spring-data-releasetrain.version'] = 'Gosling-SR2A'
 
 dependencies {
     compile(
-            [group: 'com.google.code.findbugs', name: 'jsr305']
+            [group: 'com.google.code.findbugs', name: 'jsr305'],
+            [group: 'org.apache.fineract.cn', name: 'postgresql', version: '0.1.0-BUILD-SNAPSHOT']
     )
 
     testCompile(