diff --git a/build.gradle b/build.gradle index f944ef766..cbf5f3b05 100644 --- a/build.gradle +++ b/build.gradle @@ -33,6 +33,7 @@ buildscript { 'fineract-branch', 'fineract-document', 'fineract-investor', + 'fineract-charge', 'fineract-rates', 'fineract-loan', 'fineract-savings', @@ -54,6 +55,7 @@ buildscript { 'fineract-accounting', 'fineract-provider', 'fineract-investor', + 'fineract-charge', 'fineract-rates', 'fineract-loan', 'fineract-savings', diff --git a/fineract-accounting/dependencies.gradle b/fineract-accounting/dependencies.gradle index 5d95adec8..ba2bfda66 100644 --- a/fineract-accounting/dependencies.gradle +++ b/fineract-accounting/dependencies.gradle @@ -25,6 +25,7 @@ dependencies { // implementation dependencies are directly used (compiled against) in src/main (and src/test) // implementation(project(path: ':fineract-core')) + implementation(project(path: ':fineract-charge')) implementation('org.apache.avro:avro') implementation( project(path: ':fineract-avro-schemas') diff --git a/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml b/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml index c919eb5ea..3e2aa1743 100644 --- a/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml +++ b/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml @@ -35,13 +35,14 @@ org.apache.fineract.infrastructure.codes.domain.CodeValue org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom org.apache.fineract.organisation.office.domain.Office - org.apache.fineract.portfolio.charge.domain.Charge org.apache.fineract.portfolio.paymenttype.domain.PaymentType org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail org.apache.fineract.portfolio.tax.domain.TaxComponent org.apache.fineract.portfolio.tax.domain.TaxComponentHistory org.apache.fineract.portfolio.tax.domain.TaxGroup org.apache.fineract.portfolio.tax.domain.TaxGroupMappings + + org.apache.fineract.portfolio.charge.domain.Charge false diff --git a/fineract-branch/src/main/resources/jpa/branch/persistence.xml b/fineract-branch/src/main/resources/jpa/branch/persistence.xml index bf32dc798..ef4086d55 100644 --- a/fineract-branch/src/main/resources/jpa/branch/persistence.xml +++ b/fineract-branch/src/main/resources/jpa/branch/persistence.xml @@ -29,7 +29,6 @@ org.eclipse.persistence.jpa.PersistenceProvider - org.apache.fineract.accounting.glaccount.domain.GLAccount org.apache.fineract.accounting.journalentry.domain.JournalEntry org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom @@ -53,7 +52,6 @@ org.apache.fineract.portfolio.fund.domain.Fund org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange - org.apache.fineract.portfolio.charge.domain.Charge org.apache.fineract.portfolio.paymenttype.domain.PaymentType org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail org.apache.fineract.portfolio.tax.domain.TaxGroup @@ -69,6 +67,8 @@ org.apache.fineract.useradministration.domain.Role org.apache.fineract.useradministration.domain.Permission org.apache.fineract.useradministration.domain.AppUserClientMapping + + org.apache.fineract.portfolio.charge.domain.Charge false diff --git a/fineract-charge/build.gradle b/fineract-charge/build.gradle new file mode 100644 index 000000000..636fc048a --- /dev/null +++ b/fineract-charge/build.gradle @@ -0,0 +1,106 @@ +/** + * 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 Charge' + +apply plugin: 'java' +apply plugin: 'eclipse' + +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/charge/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } +} + +// 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-charge/bin/main") +} + +eclipse { + project { + buildCommand([ LaunchConfigHandle: "/.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.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + +if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { + sourceSets { + test { + java { + exclude '**/core/boot/tests/**' + } + } + } +} diff --git a/fineract-charge/dependencies.gradle b/fineract-charge/dependencies.gradle new file mode 100644 index 000000000..bd2a15867 --- /dev/null +++ b/fineract-charge/dependencies.gradle @@ -0,0 +1,74 @@ +/** + * 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(project(path: ':fineract-core')) + + 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', + + 'com.jayway.jsonpath:json-path', + + 'com.github.spotbugs:spotbugs-annotations', + 'io.swagger.core.v3:swagger-annotations-jakarta', + + 'com.squareup.retrofit2:converter-gson', + + 'org.springdoc:springdoc-openapi-starter-webmvc-ui', + 'org.mapstruct:mapstruct', + + 'io.github.resilience4j:resilience4j-spring-boot3', + 'org.apache.httpcomponents:httpcore', + ) + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + annotationProcessor 'org.mapstruct:mapstruct-processor' + 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' + } + // testCompile dependencies are ONLY used in src/test, not src/main. + // Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly! + // + testImplementation( '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') +} diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiConstants.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiConstants.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiConstants.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiConstants.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResource.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResourceSwagger.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResourceSwagger.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResourceSwagger.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/api/ChargesApiResourceSwagger.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeAppliesTo.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeAppliesTo.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeAppliesTo.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeAppliesTo.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeCalculationType.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeCalculationType.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeCalculationType.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeCalculationType.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargePaymentMode.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargePaymentMode.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargePaymentMode.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargePaymentMode.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepository.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepository.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepository.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepository.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepositoryWrapper.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepositoryWrapper.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepositoryWrapper.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/ChargeRepositoryWrapper.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeDeletedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeDeletedException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeDeletedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeDeletedException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeUpdatedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeUpdatedException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeUpdatedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeUpdatedException.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeDueAtDisbursementCannotBePenaltyException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeDueAtDisbursementCannotBePenaltyException.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeDueAtDisbursementCannotBePenaltyException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeDueAtDisbursementCannotBePenaltyException.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeIsNotActiveException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeIsNotActiveException.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeIsNotActiveException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeIsNotActiveException.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeMustBePenaltyException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeMustBePenaltyException.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeMustBePenaltyException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeMustBePenaltyException.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeNotFoundException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeNotFoundException.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeNotFoundException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeNotFoundException.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeAddedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeAddedException.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeAddedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeAddedException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeDeletedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeDeletedException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeDeletedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeDeletedException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBePayedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBePayedException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBePayedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBePayedException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeUpdatedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeUpdatedException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeUpdatedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeUpdatedException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeWaivedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeWaivedException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeWaivedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeCannotBeWaivedException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeNotFoundException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeNotFoundException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeNotFoundException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeNotFoundException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeWaiveCannotBeReversedException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeWaiveCannotBeReversedException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeWaiveCannotBeReversedException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/LoanChargeWaiveCannotBeReversedException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ShareAccountChargeWithoutMandatoryFieldException.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ShareAccountChargeWithoutMandatoryFieldException.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ShareAccountChargeWithoutMandatoryFieldException.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/exception/ShareAccountChargeWithoutMandatoryFieldException.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/handler/CreateChargeDefinitionCommandHandler.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/handler/CreateChargeDefinitionCommandHandler.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/handler/CreateChargeDefinitionCommandHandler.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/handler/CreateChargeDefinitionCommandHandler.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/handler/DeleteChargeDefinitionCommandHandler.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/handler/DeleteChargeDefinitionCommandHandler.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/handler/DeleteChargeDefinitionCommandHandler.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/handler/DeleteChargeDefinitionCommandHandler.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/handler/UpdateChargeDefinitionCommandHandler.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/handler/UpdateChargeDefinitionCommandHandler.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/handler/UpdateChargeDefinitionCommandHandler.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/handler/UpdateChargeDefinitionCommandHandler.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformService.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformService.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformService.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformService.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformServiceImpl.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformServiceImpl.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformServiceImpl.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeDropdownReadPlatformServiceImpl.java diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeEnumerations.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeEnumerations.java similarity index 100% rename from fineract-core/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeEnumerations.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeEnumerations.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformService.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformService.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformService.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformService.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeWritePlatformService.java b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeWritePlatformService.java similarity index 100% rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeWritePlatformService.java rename to fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeWritePlatformService.java diff --git a/fineract-charge/src/main/resources/jpa/charge/db/changelog/tenant/module/charge/module-changelog-master.xml b/fineract-charge/src/main/resources/jpa/charge/db/changelog/tenant/module/charge/module-changelog-master.xml new file mode 100644 index 000000000..570460d3f --- /dev/null +++ b/fineract-charge/src/main/resources/jpa/charge/db/changelog/tenant/module/charge/module-changelog-master.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/fineract-charge/src/main/resources/jpa/charge/persistence.xml b/fineract-charge/src/main/resources/jpa/charge/persistence.xml new file mode 100644 index 000000000..d3ba0d405 --- /dev/null +++ b/fineract-charge/src/main/resources/jpa/charge/persistence.xml @@ -0,0 +1,76 @@ + + + + + + + + + + org.eclipse.persistence.jpa.PersistenceProvider + + org.apache.fineract.accounting.glaccount.domain.GLAccount + org.apache.fineract.accounting.journalentry.domain.JournalEntry + org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom + org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom + org.apache.fineract.infrastructure.codes.domain.Code + org.apache.fineract.infrastructure.codes.domain.CodeValue + org.apache.fineract.infrastructure.documentmanagement.domain.Image + org.apache.fineract.organisation.staff.domain.Staff + org.apache.fineract.organisation.office.domain.Office + org.apache.fineract.organisation.office.domain.OrganisationCurrency + org.apache.fineract.organisation.monetary.domain.ApplicationCurrency + org.apache.fineract.organisation.holiday.domain.Holiday + org.apache.fineract.organisation.workingdays.domain.WorkingDays + org.apache.fineract.portfolio.group.domain.Group + org.apache.fineract.portfolio.group.domain.GroupLevel + org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory + org.apache.fineract.portfolio.group.domain.GroupRole + org.apache.fineract.portfolio.client.domain.Client + org.apache.fineract.portfolio.client.domain.ClientIdentifier + org.apache.fineract.portfolio.rate.domain.Rate + org.apache.fineract.portfolio.fund.domain.Fund + org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket + org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange + org.apache.fineract.portfolio.paymenttype.domain.PaymentType + org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail + org.apache.fineract.portfolio.tax.domain.TaxGroup + org.apache.fineract.portfolio.tax.domain.TaxGroupMappings + org.apache.fineract.portfolio.tax.domain.TaxComponent + org.apache.fineract.portfolio.tax.domain.TaxComponentHistory + org.apache.fineract.portfolio.floatingrates.domain.FloatingRate + org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod + org.apache.fineract.portfolio.calendar.domain.Calendar + org.apache.fineract.portfolio.calendar.domain.CalendarHistory + org.apache.fineract.portfolio.calendar.domain.CalendarInstance + org.apache.fineract.useradministration.domain.AppUser + org.apache.fineract.useradministration.domain.Role + org.apache.fineract.useradministration.domain.Permission + org.apache.fineract.useradministration.domain.AppUserClientMapping + false + + + + + diff --git a/fineract-document/src/main/resources/jpa/document/persistence.xml b/fineract-document/src/main/resources/jpa/document/persistence.xml index 7849844df..0c3e741c3 100644 --- a/fineract-document/src/main/resources/jpa/document/persistence.xml +++ b/fineract-document/src/main/resources/jpa/document/persistence.xml @@ -50,7 +50,6 @@ org.apache.fineract.portfolio.client.domain.Client org.apache.fineract.portfolio.client.domain.ClientIdentifier org.apache.fineract.portfolio.fund.domain.Fund - org.apache.fineract.portfolio.charge.domain.Charge org.apache.fineract.portfolio.paymenttype.domain.PaymentType org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail org.apache.fineract.portfolio.tax.domain.TaxGroup @@ -64,6 +63,8 @@ org.apache.fineract.useradministration.domain.Role org.apache.fineract.useradministration.domain.Permission org.apache.fineract.useradministration.domain.AppUserClientMapping + + org.apache.fineract.portfolio.charge.domain.Charge false diff --git a/fineract-investor/dependencies.gradle b/fineract-investor/dependencies.gradle index 12ec14af7..c39bee864 100644 --- a/fineract-investor/dependencies.gradle +++ b/fineract-investor/dependencies.gradle @@ -26,6 +26,7 @@ dependencies { // implementation(project(path: ':fineract-core')) implementation(project(path: ':fineract-accounting')) + implementation(project(path: ':fineract-charge')) implementation(project(path: ':fineract-loan')) implementation('org.apache.avro:avro') implementation( diff --git a/fineract-loan/dependencies.gradle b/fineract-loan/dependencies.gradle index 5cf7cdd1c..dac3f7aa1 100644 --- a/fineract-loan/dependencies.gradle +++ b/fineract-loan/dependencies.gradle @@ -26,6 +26,7 @@ dependencies { // implementation(project(path: ':fineract-core')) implementation(project(path: ':fineract-accounting')) + implementation(project(path: ':fineract-charge')) implementation(project(path: ':fineract-rates')) implementation( diff --git a/fineract-loan/src/main/resources/jpa/loan/persistence.xml b/fineract-loan/src/main/resources/jpa/loan/persistence.xml index bf32dc798..b76d09e1a 100644 --- a/fineract-loan/src/main/resources/jpa/loan/persistence.xml +++ b/fineract-loan/src/main/resources/jpa/loan/persistence.xml @@ -53,7 +53,6 @@ org.apache.fineract.portfolio.fund.domain.Fund org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange - org.apache.fineract.portfolio.charge.domain.Charge org.apache.fineract.portfolio.paymenttype.domain.PaymentType org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail org.apache.fineract.portfolio.tax.domain.TaxGroup @@ -69,6 +68,8 @@ org.apache.fineract.useradministration.domain.Role org.apache.fineract.useradministration.domain.Permission org.apache.fineract.useradministration.domain.AppUserClientMapping + + org.apache.fineract.portfolio.charge.domain.Charge false diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle index 6e64f5abf..b9cb294b7 100644 --- a/fineract-provider/dependencies.gradle +++ b/fineract-provider/dependencies.gradle @@ -28,6 +28,7 @@ dependencies { implementation(project(path: ':fineract-accounting')) implementation(project(path: ':fineract-investor')) implementation(project(path: ':fineract-rates')) + implementation(project(path: ':fineract-charge')) implementation(project(path: ':fineract-loan')) implementation(project(path: ':fineract-savings')) implementation(project(path: ':fineract-branch')) diff --git a/fineract-provider/src/main/resources/jpa/persistence.xml b/fineract-provider/src/main/resources/jpa/persistence.xml index 0d7a3654e..56ae3946c 100644 --- a/fineract-provider/src/main/resources/jpa/persistence.xml +++ b/fineract-provider/src/main/resources/jpa/persistence.xml @@ -53,7 +53,6 @@ org.apache.fineract.portfolio.fund.domain.Fund org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange - org.apache.fineract.portfolio.charge.domain.Charge org.apache.fineract.portfolio.paymenttype.domain.PaymentType org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail org.apache.fineract.portfolio.tax.domain.TaxGroup @@ -143,6 +142,8 @@ org.apache.fineract.accounting.rule.domain.AccountingTagRule org.apache.fineract.infrastructure.documentmanagement.domain.Document + + org.apache.fineract.portfolio.charge.domain.Charge false diff --git a/fineract-rates/src/main/resources/jpa/rates/persistence.xml b/fineract-rates/src/main/resources/jpa/rates/persistence.xml index bf32dc798..b76d09e1a 100644 --- a/fineract-rates/src/main/resources/jpa/rates/persistence.xml +++ b/fineract-rates/src/main/resources/jpa/rates/persistence.xml @@ -53,7 +53,6 @@ org.apache.fineract.portfolio.fund.domain.Fund org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange - org.apache.fineract.portfolio.charge.domain.Charge org.apache.fineract.portfolio.paymenttype.domain.PaymentType org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail org.apache.fineract.portfolio.tax.domain.TaxGroup @@ -69,6 +68,8 @@ org.apache.fineract.useradministration.domain.Role org.apache.fineract.useradministration.domain.Permission org.apache.fineract.useradministration.domain.AppUserClientMapping + + org.apache.fineract.portfolio.charge.domain.Charge false diff --git a/fineract-savings/dependencies.gradle b/fineract-savings/dependencies.gradle index 5cf7cdd1c..dac3f7aa1 100644 --- a/fineract-savings/dependencies.gradle +++ b/fineract-savings/dependencies.gradle @@ -26,6 +26,7 @@ dependencies { // implementation(project(path: ':fineract-core')) implementation(project(path: ':fineract-accounting')) + implementation(project(path: ':fineract-charge')) implementation(project(path: ':fineract-rates')) implementation( diff --git a/fineract-savings/src/main/resources/jpa/savings/persistence.xml b/fineract-savings/src/main/resources/jpa/savings/persistence.xml index 7849844df..0c3e741c3 100644 --- a/fineract-savings/src/main/resources/jpa/savings/persistence.xml +++ b/fineract-savings/src/main/resources/jpa/savings/persistence.xml @@ -50,7 +50,6 @@ org.apache.fineract.portfolio.client.domain.Client org.apache.fineract.portfolio.client.domain.ClientIdentifier org.apache.fineract.portfolio.fund.domain.Fund - org.apache.fineract.portfolio.charge.domain.Charge org.apache.fineract.portfolio.paymenttype.domain.PaymentType org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail org.apache.fineract.portfolio.tax.domain.TaxGroup @@ -64,6 +63,8 @@ org.apache.fineract.useradministration.domain.Role org.apache.fineract.useradministration.domain.Permission org.apache.fineract.useradministration.domain.AppUserClientMapping + + org.apache.fineract.portfolio.charge.domain.Charge false diff --git a/fineract-war/build.gradle b/fineract-war/build.gradle index 0553f56b1..ebee98cfd 100644 --- a/fineract-war/build.gradle +++ b/fineract-war/build.gradle @@ -53,6 +53,7 @@ dependencies { implementation project(':fineract-investor') implementation project(':fineract-branch') implementation project(':fineract-document') + implementation project(':fineract-charge') implementation project(':fineract-rates') implementation project(':fineract-loan') implementation project(':fineract-savings') diff --git a/integration-tests/dependencies.gradle b/integration-tests/dependencies.gradle index f4d2e41eb..bc1aca3f7 100644 --- a/integration-tests/dependencies.gradle +++ b/integration-tests/dependencies.gradle @@ -25,6 +25,7 @@ dependencies { project(path: ':fineract-core', configuration: 'runtimeElements'), project(path: ':fineract-accounting', configuration: 'runtimeElements'), project(path: ':fineract-investor', configuration: 'runtimeElements'), + project(path: ':fineract-charge', configuration: 'runtimeElements'), project(path: ':fineract-rates', configuration: 'runtimeElements'), project(path: ':fineract-loan', configuration: 'runtimeElements'), project(path: ':fineract-savings', configuration: 'runtimeElements'), diff --git a/settings.gradle b/settings.gradle index c37631e13..54b501199 100644 --- a/settings.gradle +++ b/settings.gradle @@ -55,6 +55,7 @@ include ':fineract-branch' include ':fineract-document' include ':fineract-investor' include ':fineract-rates' +include ':fineract-charge' include ':fineract-loan' include ':fineract-savings' include ':fineract-war'