This is an automated email from the ASF dual-hosted git repository. awasum pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract-cn-group.git
commit e49c4cb560d0a0ade770dea6700e599c8e9dc6e0 Author: Isaac Kamga <[email protected]> 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(
