FINERACT-1758: Improve custom module example

This commit is contained in:
Aleksandar Vidakovic
2022-10-14 18:57:36 +02:00
committed by Aleksandar Vidakovic
parent 388612b1ae
commit ba765f9b7a
51 changed files with 938 additions and 584 deletions
+77 -3
View File
@@ -23,6 +23,7 @@ buildscript {
retrofitVersion = '2.9.0'
okhttpVersion = '4.9.3'
oltuVersion = '1.0.1'
fineractCustomProjects = []
fineractJavaProjects = subprojects.findAll{
[
'fineract-api',
@@ -31,9 +32,6 @@ buildscript {
'twofactor-tests',
'oauth2-tests',
'fineract-client',
'core',
'service',
'starter',
'fineract-avro-schemas'
].contains(it.name)
}
@@ -257,6 +255,22 @@ allprojects {
}
}
// NOTE: dynamically load all custom modules
file("${rootDir}/custom").eachDir { companyDir ->
if('build' != companyDir.name && 'docker' != companyDir.name) {
file("${rootDir}/custom/${companyDir.name}").eachDir { categoryDir ->
if('build' != categoryDir.name) {
file("${rootDir}/custom/${companyDir.name}/${categoryDir.name}").eachDir { moduleDir ->
if('build' != moduleDir.name) {
project.fineractJavaProjects.add(project(":custom:${companyDir.name}:${categoryDir.name}:${moduleDir.name}"))
project.fineractCustomProjects.add(project(":custom:${companyDir.name}:${categoryDir.name}:${moduleDir.name}"))
}
}
}
}
}
}
configure(project.fineractJavaProjects) {
// NOTE: order matters!
@@ -522,6 +536,9 @@ configure(project.fineractJavaProjects) {
exclude(module: "slf4j-api")
}
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation( 'org.mockito:mockito-core',
'org.mockito:mockito-junit-jupiter',
'org.junit.jupiter:junit-jupiter-api',
@@ -596,6 +613,63 @@ configure(project.fineractJavaProjects) {
}
}
configure(project.fineractCustomProjects) {
compileJava {
dependsOn = []
}
dependencies {
implementation (
'org.springframework:spring-context',
'ch.qos.logback:logback-core',
'org.slf4j:slf4j-api',
'org.slf4j:log4j-over-slf4j',
'org.slf4j:jul-to-slf4j',
)
implementation ("ch.qos.logback:logback-classic") {
exclude(module: "slf4j-api")
}
compileOnly('org.projectlombok:lombok')
annotationProcessor('org.projectlombok:lombok')
annotationProcessor('org.mapstruct:mapstruct-processor')
annotationProcessor('org.springframework.boot:spring-boot-autoconfigure-processor')
annotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
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-core',
'org.mockito:mockito-inline',
'org.mockito:mockito-junit-jupiter',
'org.junit.jupiter:junit-jupiter-api',
'org.junit.jupiter:junit-jupiter-engine',
'org.junit.platform:junit-platform-runner', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
'org.bouncycastle:bcpkix-jdk15to18',
'org.bouncycastle:bcprov-jdk15to18',
'org.awaitility:awaitility',
'com.google.truth:truth',
'com.google.truth.extensions:truth-java8-extension',
'io.github.classgraph:classgraph',
'io.cucumber:cucumber-core',
'io.cucumber:cucumber-java',
'io.cucumber:cucumber-java8',
'io.cucumber:cucumber-junit-platform-engine',
'io.cucumber:cucumber-spring',
)
testCompileOnly('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
testAnnotationProcessor('org.mapstruct:mapstruct-processor')
testAnnotationProcessor('org.springframework.boot:spring-boot-autoconfigure-processor')
testAnnotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
}
}
configure(project.fineractPublishProjects) {
apply plugin: 'maven-publish'
apply plugin: 'signing'