- [x] Create fineract-core module - used to common cross module classes and interfaces
- [x] Create fineract-investor module for build - [x] modify tenant liquibase loader to using module based liquibase processing - [x] sample liquibase into the fineract-investor module - [x] Move NewCommandSourceHandler and dependencies to the fineract-core
This commit is contained in:
committed by
Arnold Gálovics
parent
037f7f264f
commit
240039f979
+7
-2
@@ -27,7 +27,9 @@ buildscript {
|
|||||||
fineractJavaProjects = subprojects.findAll{
|
fineractJavaProjects = subprojects.findAll{
|
||||||
[
|
[
|
||||||
'fineract-api',
|
'fineract-api',
|
||||||
|
'fineract-core',
|
||||||
'fineract-provider',
|
'fineract-provider',
|
||||||
|
'fineract-investor',
|
||||||
'integration-tests',
|
'integration-tests',
|
||||||
'twofactor-tests',
|
'twofactor-tests',
|
||||||
'oauth2-tests',
|
'oauth2-tests',
|
||||||
@@ -39,7 +41,8 @@ buildscript {
|
|||||||
[
|
[
|
||||||
'fineract-avro-schemas',
|
'fineract-avro-schemas',
|
||||||
'fineract-client',
|
'fineract-client',
|
||||||
'fineract-provider'
|
'fineract-provider',
|
||||||
|
'fineract-investor'
|
||||||
].contains(it.name)
|
].contains(it.name)
|
||||||
}
|
}
|
||||||
npmRepository = 'https://npm.pkg.github.com'
|
npmRepository = 'https://npm.pkg.github.com'
|
||||||
@@ -301,7 +304,9 @@ configure(project.fineractJavaProjects) {
|
|||||||
implementation.setCanBeResolved(true)
|
implementation.setCanBeResolved(true)
|
||||||
api.setCanBeResolved(true)
|
api.setCanBeResolved(true)
|
||||||
}
|
}
|
||||||
|
tasks.withType(Copy) {
|
||||||
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
|
}
|
||||||
tasks.withType(JavaCompile) {
|
tasks.withType(JavaCompile) {
|
||||||
options.compilerArgs += [
|
options.compilerArgs += [
|
||||||
"-Xlint:unchecked",
|
"-Xlint:unchecked",
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(':fineract-core'))
|
||||||
implementation(project(':fineract-provider'))
|
implementation(project(':fineract-provider'))
|
||||||
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(':fineract-core'))
|
||||||
implementation(project(':fineract-provider'))
|
implementation(project(':fineract-provider'))
|
||||||
implementation('org.springframework.boot:spring-boot-starter')
|
implementation('org.springframework.boot:spring-boot-starter')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(':fineract-core'))
|
||||||
implementation(project(':fineract-provider'))
|
implementation(project(':fineract-provider'))
|
||||||
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(':fineract-core'))
|
||||||
implementation(project(':fineract-provider'))
|
implementation(project(':fineract-provider'))
|
||||||
implementation('org.springframework.batch:spring-batch-integration')
|
implementation('org.springframework.batch:spring-batch-integration')
|
||||||
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
||||||
|
|||||||
@@ -18,5 +18,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(':fineract-core'))
|
||||||
implementation(project(':fineract-provider'))
|
implementation(project(':fineract-provider'))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(':fineract-core'))
|
||||||
implementation(project(':fineract-provider'))
|
implementation(project(':fineract-provider'))
|
||||||
implementation(project(':custom:acme:loan:cob'))
|
implementation(project(':custom:acme:loan:cob'))
|
||||||
implementation(project(':custom:acme:loan:processor'))
|
implementation(project(':custom:acme:loan:processor'))
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(':fineract-core'))
|
||||||
implementation(project(':fineract-provider'))
|
implementation(project(':fineract-provider'))
|
||||||
compileOnly('org.springframework.boot:spring-boot-autoconfigure')
|
compileOnly('org.springframework.boot:spring-boot-autoconfigure')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(':custom:acme:note:service'))
|
implementation(project(':custom:acme:note:service'))
|
||||||
implementation('org.springframework.boot:spring-boot-starter')
|
implementation('org.springframework.boot:spring-boot-starter')
|
||||||
|
testImplementation(project(':fineract-core'))
|
||||||
testImplementation(project(':fineract-provider'))
|
testImplementation(project(':fineract-provider'))
|
||||||
testImplementation('org.springframework.boot:spring-boot-starter-jdbc')
|
testImplementation('org.springframework.boot:spring-boot-starter-jdbc')
|
||||||
testImplementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
testImplementation('org.springframework.boot:spring-boot-starter-data-jpa')
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
description = 'Fineract Core'
|
||||||
|
|
||||||
|
apply plugin: 'java'
|
||||||
|
apply plugin: 'eclipse'
|
||||||
|
check.dependsOn('cucumber')
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
providedRuntime // needed for Spring Boot executable WAR
|
||||||
|
providedCompile
|
||||||
|
compile() {
|
||||||
|
exclude module: 'hibernate-entitymanager'
|
||||||
|
exclude module: 'hibernate-validator'
|
||||||
|
exclude module: 'activation'
|
||||||
|
exclude module: 'bcmail-jdk14'
|
||||||
|
exclude module: 'bcprov-jdk14'
|
||||||
|
exclude module: 'bctsp-jdk14'
|
||||||
|
exclude module: 'c3p0'
|
||||||
|
exclude module: 'stax-api'
|
||||||
|
exclude module: 'jaxb-api'
|
||||||
|
exclude module: 'jaxb-impl'
|
||||||
|
exclude module: 'jboss-logging'
|
||||||
|
exclude module: 'itext-rtf'
|
||||||
|
exclude module: 'classworlds'
|
||||||
|
}
|
||||||
|
runtime
|
||||||
|
}
|
||||||
|
|
||||||
|
apply from: 'dependencies.gradle'
|
||||||
|
|
||||||
|
// Configuration for the modernizer plugin
|
||||||
|
// https://github.com/andygoossens/gradle-modernizer-plugin
|
||||||
|
modernizer {
|
||||||
|
ignoreClassNamePatterns = [
|
||||||
|
'.*AbstractPersistableCustom',
|
||||||
|
'.*EntityTables',
|
||||||
|
'.*domain.*'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we are running Gradle within Eclipse to enhance classes with OpenJPA,
|
||||||
|
// set the classes directory to point to Eclipse's default build directory
|
||||||
|
if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
|
||||||
|
sourceSets.main.java.outputDir = new File(rootProject.projectDir, "fineract-core/bin/main")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
|
||||||
|
sourceSets {
|
||||||
|
test {
|
||||||
|
java {
|
||||||
|
exclude '**/core/boot/tests/**'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
|
||||||
|
// Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
|
||||||
|
// Note that we never use 'api', because Fineract at least currently is a simple monolithic application ("WAR"), not a library.
|
||||||
|
// We also (normally should have) no need to ever use 'compileOnly'.
|
||||||
|
|
||||||
|
// implementation dependencies are directly used (compiled against) in src/main (and src/test)
|
||||||
|
//
|
||||||
|
implementation(
|
||||||
|
'org.springframework.boot:spring-boot-starter-web',
|
||||||
|
'org.springframework.boot:spring-boot-starter-security',
|
||||||
|
'jakarta.ws.rs:jakarta.ws.rs-api',
|
||||||
|
'org.glassfish.jersey.media:jersey-media-multipart',
|
||||||
|
|
||||||
|
'com.google.guava:guava',
|
||||||
|
'com.google.code.gson:gson',
|
||||||
|
|
||||||
|
'org.apache.commons:commons-lang3',
|
||||||
|
'org.liquibase:liquibase-core',
|
||||||
|
|
||||||
|
'com.jayway.jsonpath:json-path',
|
||||||
|
|
||||||
|
'com.github.spotbugs:spotbugs-annotations',
|
||||||
|
'io.swagger.core.v3:swagger-annotations',
|
||||||
|
|
||||||
|
'com.squareup.retrofit2:converter-gson',
|
||||||
|
|
||||||
|
'org.springdoc:springdoc-openapi-security',
|
||||||
|
'org.mapstruct:mapstruct',
|
||||||
|
|
||||||
|
'io.github.resilience4j:resilience4j-spring-boot2',
|
||||||
|
)
|
||||||
|
|
||||||
|
implementation('org.springframework.boot:spring-boot-starter-jersey') {
|
||||||
|
exclude group: 'org.glassfish.hk2.external', module: 'aopalliance-repackaged'
|
||||||
|
exclude group: 'org.glassfish.hk2', module: 'hk2-runlevel'
|
||||||
|
exclude group: 'org.hibernate.validator', module: 'hibernate-validator'
|
||||||
|
exclude group: 'jakarta.activation', module: 'jakarta.activation-api'
|
||||||
|
}
|
||||||
|
implementation('org.dom4j:dom4j') {
|
||||||
|
exclude group: 'javax.xml.bind'
|
||||||
|
}
|
||||||
|
implementation ('jakarta.xml.bind:jakarta.xml.bind-api') {
|
||||||
|
exclude group: 'jakarta.activation'
|
||||||
|
}
|
||||||
|
implementation ('org.springframework.boot:spring-boot-starter-data-jpa') {
|
||||||
|
exclude group: 'org.hibernate'
|
||||||
|
}
|
||||||
|
implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') {
|
||||||
|
exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence'
|
||||||
|
}
|
||||||
|
runtimeOnly('org.glassfish.jaxb:jaxb-runtime') {
|
||||||
|
exclude group: 'com.sun.activation'
|
||||||
|
}
|
||||||
|
|
||||||
|
// runtimeOnly dependencies are things that Fineract code has no direct compile time dependency on, but which must be present at run-time
|
||||||
|
runtimeOnly(
|
||||||
|
'org.apache.bval:org.apache.bval.bundle',
|
||||||
|
|
||||||
|
// Although fineract (at the time of writing) doesn't have any compile time dep. on httpclient,
|
||||||
|
// it's useful to have this for the Spring Boot TestRestTemplate http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-rest-templates-test-utility
|
||||||
|
'org.apache.httpcomponents:httpclient'
|
||||||
|
)
|
||||||
|
|
||||||
|
compileOnly 'org.projectlombok:lombok'
|
||||||
|
annotationProcessor 'org.projectlombok:lombok'
|
||||||
|
annotationProcessor 'org.mapstruct:mapstruct-processor'
|
||||||
|
|
||||||
|
implementation 'ch.qos.logback.contrib:logback-json-classic'
|
||||||
|
implementation 'ch.qos.logback.contrib:logback-jackson'
|
||||||
|
implementation 'org.codehaus.janino:janino'
|
||||||
|
|
||||||
|
implementation 'org.apache.commons:commons-math3'
|
||||||
|
|
||||||
|
implementation 'io.github.classgraph:classgraph'
|
||||||
|
// testCompile dependencies are ONLY used in src/test, not src/main.
|
||||||
|
// Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
|
||||||
|
//
|
||||||
|
testImplementation( 'io.cucumber:cucumber-spring',
|
||||||
|
'io.github.classgraph:classgraph',
|
||||||
|
)
|
||||||
|
testImplementation ('org.springframework.boot:spring-boot-starter-test') {
|
||||||
|
exclude group: 'com.jayway.jsonpath', module: 'json-path'
|
||||||
|
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
|
||||||
|
exclude group: 'jakarta.activation'
|
||||||
|
exclude group: 'javax.activation'
|
||||||
|
exclude group: 'org.skyscreamer'
|
||||||
|
}
|
||||||
|
implementation ('org.mnode.ical4j:ical4j') {
|
||||||
|
exclude group: 'commons-logging'
|
||||||
|
exclude group: 'javax.activation'
|
||||||
|
exclude group: 'com.sun.mail', module: 'javax.mail'
|
||||||
|
}
|
||||||
|
implementation ('org.quartz-scheduler:quartz') {
|
||||||
|
exclude group: 'com.zaxxer', module: 'HikariCP-java7'
|
||||||
|
}
|
||||||
|
testImplementation ('org.mockito:mockito-inline')
|
||||||
|
}
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
description = 'Fineract Investor'
|
||||||
|
|
||||||
|
apply plugin: 'java'
|
||||||
|
apply plugin: 'eclipse'
|
||||||
|
|
||||||
|
check.dependsOn('cucumber')
|
||||||
|
|
||||||
|
// Configuration for Swagger documentation generation task
|
||||||
|
// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
|
||||||
|
import org.apache.tools.ant.filters.ReplaceTokens
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
configurations {
|
||||||
|
providedRuntime // needed for Spring Boot executable WAR
|
||||||
|
providedCompile
|
||||||
|
compile() {
|
||||||
|
exclude module: 'hibernate-entitymanager'
|
||||||
|
exclude module: 'hibernate-validator'
|
||||||
|
exclude module: 'activation'
|
||||||
|
exclude module: 'bcmail-jdk14'
|
||||||
|
exclude module: 'bcprov-jdk14'
|
||||||
|
exclude module: 'bctsp-jdk14'
|
||||||
|
exclude module: 'c3p0'
|
||||||
|
exclude module: 'stax-api'
|
||||||
|
exclude module: 'jaxb-api'
|
||||||
|
exclude module: 'jaxb-impl'
|
||||||
|
exclude module: 'jboss-logging'
|
||||||
|
exclude module: 'itext-rtf'
|
||||||
|
exclude module: 'classworlds'
|
||||||
|
}
|
||||||
|
runtime
|
||||||
|
}
|
||||||
|
|
||||||
|
apply from: 'dependencies.gradle'
|
||||||
|
|
||||||
|
// Configuration for the modernizer plugin
|
||||||
|
// https://github.com/andygoossens/gradle-modernizer-plugin
|
||||||
|
modernizer {
|
||||||
|
ignoreClassNamePatterns = [
|
||||||
|
'.*AbstractPersistableCustom',
|
||||||
|
'.*EntityTables',
|
||||||
|
'.*domain.*'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we are running Gradle within Eclipse to enhance classes with OpenJPA,
|
||||||
|
// set the classes directory to point to Eclipse's default build directory
|
||||||
|
if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
|
||||||
|
sourceSets.main.java.outputDir = new File(rootProject.projectDir, "fineract-core/bin/main")
|
||||||
|
}
|
||||||
|
|
||||||
|
eclipse {
|
||||||
|
project {
|
||||||
|
buildCommand([ LaunchConfigHandle: "<project>/.externalToolBuilders/OpenJPA Enhance Builder.launch" ], 'org.eclipse.ui.externaltools.ExternalToolBuilder')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */
|
||||||
|
sourceSets.main.output.resourcesDir = sourceSets.main.java.outputDir
|
||||||
|
sourceSets.test.output.resourcesDir = sourceSets.test.java.outputDir
|
||||||
|
|
||||||
|
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
|
||||||
|
sourceSets {
|
||||||
|
test {
|
||||||
|
java {
|
||||||
|
exclude '**/core/boot/tests/**'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
|
||||||
|
// Note that we never use 'api', because Fineract at least currently is a simple monolithic application ("WAR"), not a library.
|
||||||
|
// We also (normally should have) no need to ever use 'compileOnly'.
|
||||||
|
|
||||||
|
// implementation dependencies are directly used (compiled against) in src/main (and src/test)
|
||||||
|
//
|
||||||
|
api(project(path: ':fineract-core'))
|
||||||
|
compileOnly 'org.projectlombok:lombok'
|
||||||
|
annotationProcessor 'org.projectlombok:lombok'
|
||||||
|
annotationProcessor 'org.mapstruct:mapstruct-processor'
|
||||||
|
|
||||||
|
// testCompile dependencies are ONLY used in src/test, not src/main.
|
||||||
|
// Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
|
||||||
|
//
|
||||||
|
testImplementation( 'io.cucumber:cucumber-spring',
|
||||||
|
'io.github.classgraph:classgraph',
|
||||||
|
)
|
||||||
|
testImplementation ('org.springframework.boot:spring-boot-starter-test') {
|
||||||
|
exclude group: 'com.jayway.jsonpath', module: 'json-path'
|
||||||
|
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
|
||||||
|
exclude group: 'jakarta.activation'
|
||||||
|
exclude group: 'javax.activation'
|
||||||
|
exclude group: 'org.skyscreamer'
|
||||||
|
}
|
||||||
|
testImplementation ('org.mockito:mockito-inline')
|
||||||
|
}
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing,
|
||||||
|
software distributed under the License is distributed on an
|
||||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
|
||||||
|
<include relativeToChangelogFile="true" file="parts/0001_initial_schema.xml" />
|
||||||
|
</databaseChangeLog>
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing,
|
||||||
|
software distributed under the License is distributed on an
|
||||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd">
|
||||||
|
<changeSet author="fineract" id="1">
|
||||||
|
<comment>Executed asset externalization</comment>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -25,6 +25,7 @@ apply plugin: 'org.springframework.boot'
|
|||||||
apply plugin: 'com.gorylenko.gradle-git-properties'
|
apply plugin: 'com.gorylenko.gradle-git-properties'
|
||||||
apply plugin: 'io.swagger.core.v3.swagger-gradle-plugin'
|
apply plugin: 'io.swagger.core.v3.swagger-gradle-plugin'
|
||||||
apply plugin: 'com.google.cloud.tools.jib'
|
apply plugin: 'com.google.cloud.tools.jib'
|
||||||
|
apply plugin: 'org.springframework.boot'
|
||||||
|
|
||||||
check.dependsOn('cucumber')
|
check.dependsOn('cucumber')
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation(project(path: ':fineract-core'))
|
||||||
|
implementation(project(path: ':fineract-investor'))
|
||||||
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
|
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
|
||||||
|
|
||||||
// Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
|
// Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
|
||||||
|
|||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
package org.apache.fineract.infrastructure.core.service.migration;
|
||||||
|
|
||||||
|
import liquibase.changelog.IncludeAllFilter;
|
||||||
|
|
||||||
|
public class TenantModuleRootFilter implements IncludeAllFilter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean include(String changeLogPath) {
|
||||||
|
return changeLogPath.endsWith("module-changelog-master.xml");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
<include file="tenant-store/changelog-tenant-store.xml" relativeToChangelogFile="true" context="tenant_store_db AND !initial_switch"/>
|
<include file="tenant-store/changelog-tenant-store.xml" relativeToChangelogFile="true" context="tenant_store_db AND !initial_switch"/>
|
||||||
<include file="tenant/initial-switch-changelog-tenant.xml" relativeToChangelogFile="true" context="tenant_db AND initial_switch"/>
|
<include file="tenant/initial-switch-changelog-tenant.xml" relativeToChangelogFile="true" context="tenant_db AND initial_switch"/>
|
||||||
<include file="tenant/changelog-tenant.xml" relativeToChangelogFile="true" context="tenant_db AND !initial_switch"/>
|
<include file="tenant/changelog-tenant.xml" relativeToChangelogFile="true" context="tenant_db AND !initial_switch"/>
|
||||||
|
<includeAll path="db/changelog/tenant/module" errorIfMissingOrEmpty="false" context="tenant_db AND custom_changelog" filter="org.apache.fineract.infrastructure.core.service.migration.TenantModuleRootFilter" />
|
||||||
<includeAll path="db/custom-changelog" errorIfMissingOrEmpty="false" context="tenant_db AND custom_changelog" />
|
<includeAll path="db/custom-changelog" errorIfMissingOrEmpty="false" context="tenant_db AND custom_changelog" />
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ war {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation project(':fineract-core')
|
||||||
|
implementation project(':fineract-investor')
|
||||||
implementation project(':fineract-provider')
|
implementation project(':fineract-provider')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ dependencies {
|
|||||||
//
|
//
|
||||||
tomcat 'org.apache.tomcat:tomcat:9.0.69@zip'
|
tomcat 'org.apache.tomcat:tomcat:9.0.69@zip'
|
||||||
testImplementation( files("$rootDir/fineract-provider/build/classes/java/main/"),
|
testImplementation( files("$rootDir/fineract-provider/build/classes/java/main/"),
|
||||||
|
project(path: ':fineract-core', configuration: 'runtimeElements'),
|
||||||
|
project(path: ':fineract-investor', configuration: 'runtimeElements'),
|
||||||
project(path: ':fineract-provider', configuration: 'runtimeElements'),
|
project(path: ':fineract-provider', configuration: 'runtimeElements'),
|
||||||
project(path: ':fineract-avro-schemas', configuration: 'runtimeElements'),
|
project(path: ':fineract-avro-schemas', configuration: 'runtimeElements'),
|
||||||
project(path: ':fineract-client', configuration: 'runtimeElements'),
|
project(path: ':fineract-client', configuration: 'runtimeElements'),
|
||||||
|
|||||||
@@ -17,7 +17,9 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
rootProject.name='fineract'
|
rootProject.name='fineract'
|
||||||
|
include ':fineract-core'
|
||||||
include ':fineract-provider'
|
include ':fineract-provider'
|
||||||
|
include ':fineract-investor'
|
||||||
include ':fineract-war'
|
include ':fineract-war'
|
||||||
include ':integration-tests'
|
include ':integration-tests'
|
||||||
include ':twofactor-tests'
|
include ':twofactor-tests'
|
||||||
|
|||||||
Reference in New Issue
Block a user