This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 53f486498 FINERACT-1932: Fineract modularization Fineract progressive
loan module
53f486498 is described below
commit 53f4864980228740fb7e1adddaca476aa1539856
Author: Ruchi Dhamankar <[email protected]>
AuthorDate: Mon May 20 10:01:06 2024 +0530
FINERACT-1932: Fineract modularization Fineract progressive loan module
---
build.gradle | 6 +-
.../portfolio/loanaccount/domain/Loan.java | 4 +
.../domain/LoanCreditAllocationRule.java | 1 +
.../domain/LoanPaymentAllocationRule.java | 1 +
.../domain/reaging/LoanReAgeParameter.java | 1 +
.../reaging/LoanReAgingParameterRepository.java | 1 +
.../data/LoanScheduleModelDownPaymentPeriod.java | 0
.../loanschedule/data/LoanScheduleParams.java | 0
.../LoanScheduleModelDisbursementPeriod.java | 0
.../domain/LoanScheduleModelRepaymentPeriod.java | 0
.../domain/LoanTermVariationParams.java | 0
.../loanschedule/domain/RecalculationDetail.java | 0
.../domain/ScheduleCurrentPeriodParams.java | 0
.../domain/ScheduledDateGenerator.java | 0
...MultiDisbursementOutstandingAmoutException.java | 0
.../domain/CreditAllocationTransactionType.java | 1 +
.../domain/FutureInstallmentAllocationRule.java | 1 +
.../portfolio/loanproduct/domain/LoanProduct.java | 4 +
.../domain/LoanProductCreditAllocationRule.java | 1 +
.../domain/LoanProductPaymentAllocationRule.java | 1 +
.../domain/PaymentAllocationTransactionType.java | 1 +
.../loanproduct/domain/PaymentAllocationType.java | 1 +
.../domain/PaymentAllocationTypeListConverter.java | 1 +
fineract-progressive-loan/build.gradle | 100 ++++++++++++++++
fineract-progressive-loan/dependencies.gradle | 80 +++++++++++++
...dvancedPaymentScheduleTransactionProcessor.java | 0
.../impl/ChargeOrTransaction.java | 0
.../AbstractProgressiveLoanScheduleGenerator.java | 0
.../domain/ProgressiveLoanScheduleGenerator.java | 0
...ymentScheduleTransactionProcessorCondition.java | 0
.../loanproduct/data/AdvancedPaymentData.java | 0
.../loanproduct/data/CreditAllocationData.java | 0
.../AdvancedPaymentAllocationsJsonParser.java | 0
.../AdvancedPaymentAllocationsValidator.java | 0
.../domain/CreditAllocationsJsonParser.java | 0
.../domain/CreditAllocationsValidator.java | 0
.../mapper/AdvancedPaymentDataMapper.java | 0
.../LoanProductCreditAllocationRuleMerger.java | 0
.../LoanProductPaymentAllocationRuleMerger.java | 0
.../progressiveloan/module-changelog-master.xml | 26 +++++
.../resources/jpa/progressiveloan/persistence.xml | 130 +++++++++++++++++++++
...cedPaymentScheduleTransactionProcessorTest.java | 0
.../impl/ChargeOrTransactionTest.java | 0
.../AdvancedPaymentAllocationsJsonParserTest.java | 0
.../AdvancedPaymentAllocationsValidatorTest.java | 0
.../domain/CreditAllocationsJsonParserTest.java | 0
.../domain/CreditAllocationsValidatorTest.java | 0
.../LoanProductCreditAllocationRuleMergerTest.java | 0
...LoanProductPaymentAllocationRuleMergerTest.java | 0
fineract-provider/dependencies.gradle | 2 +
fineract-war/build.gradle | 1 +
integration-tests/dependencies.gradle | 1 +
settings.gradle | 1 +
53 files changed, 364 insertions(+), 2 deletions(-)
diff --git a/build.gradle b/build.gradle
index cbf5f3b05..cb7627b9b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -43,7 +43,8 @@ buildscript {
'fineract-client',
'fineract-avro-schemas',
'fineract-e2e-tests-core',
- 'fineract-e2e-tests-runner'
+ 'fineract-e2e-tests-runner',
+ 'fineract-progressive-loan'
].contains(it.name)
}
fineractPublishProjects = subprojects.findAll{
@@ -60,7 +61,8 @@ buildscript {
'fineract-loan',
'fineract-savings',
'fineract-branch',
- 'fineract-document'
+ 'fineract-document',
+ 'fineract-progressive-loan'
].contains(it.name)
}
npmRepository = 'https://npm.pkg.github.com'
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
index 1486deb62..0fb9c31a7 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/Loan.java
@@ -243,9 +243,13 @@ public class Loan extends
AbstractAuditableWithUTCDateTimeCustom {
@Column(name = "loan_transaction_strategy_name")
private String transactionProcessingStrategyName;
+ // TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after removing association
+ // from Loan entity
@OneToMany(cascade = CascadeType.ALL, mappedBy = "loan", orphanRemoval =
true, fetch = FetchType.LAZY)
private List<LoanPaymentAllocationRule> paymentAllocationRules = new
ArrayList<>();
+ // TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after removing association
+ // from Loan entity
@OneToMany(cascade = CascadeType.ALL, mappedBy = "loan", orphanRemoval =
true, fetch = FetchType.LAZY)
private List<LoanCreditAllocationRule> creditAllocationRules = new
ArrayList<>();
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCreditAllocationRule.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCreditAllocationRule.java
index 490dacadf..6707c9d35 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCreditAllocationRule.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanCreditAllocationRule.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanaccount.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanTransaction
classes
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
import jakarta.persistence.Entity;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanPaymentAllocationRule.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanPaymentAllocationRule.java
index 8304b5019..d580817fc 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanPaymentAllocationRule.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanPaymentAllocationRule.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanaccount.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanTransaction
classes
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
import jakarta.persistence.Entity;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgeParameter.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgeParameter.java
index 7c79c6505..f62b1f88e 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgeParameter.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgeParameter.java
@@ -32,6 +32,7 @@ import
org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDa
import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanTransaction
classes
@Entity
@Table(name = "m_loan_reage_parameter")
@AllArgsConstructor
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgingParameterRepository.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgingParameterRepository.java
index 7558afbc0..063034f2c 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgingParameterRepository.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/reaging/LoanReAgingParameterRepository.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanaccount.domain.reaging;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanTransaction
classes
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleModelDownPaymentPeriod.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleModelDownPaymentPeriod.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleModelDownPaymentPeriod.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleModelDownPaymentPeriod.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleParams.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleParams.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleParams.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/data/LoanScheduleParams.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelDisbursementPeriod.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelDisbursementPeriod.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelDisbursementPeriod.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelDisbursementPeriod.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelRepaymentPeriod.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelRepaymentPeriod.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelRepaymentPeriod.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanScheduleModelRepaymentPeriod.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanTermVariationParams.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanTermVariationParams.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanTermVariationParams.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanTermVariationParams.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/RecalculationDetail.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/RecalculationDetail.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/RecalculationDetail.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/RecalculationDetail.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduleCurrentPeriodParams.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduleCurrentPeriodParams.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduleCurrentPeriodParams.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduleCurrentPeriodParams.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduledDateGenerator.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduledDateGenerator.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduledDateGenerator.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ScheduledDateGenerator.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/exception/MultiDisbursementOutstandingAmoutException.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/exception/MultiDisbursementOutstandingAmoutException.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/exception/MultiDisbursementOutstandingAmoutException.java
rename to
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/exception/MultiDisbursementOutstandingAmoutException.java
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationTransactionType.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationTransactionType.java
index ce0aa2df5..c40e22504 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationTransactionType.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationTransactionType.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanproduct.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanProduct classes
import java.util.Arrays;
import java.util.List;
import lombok.Getter;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/FutureInstallmentAllocationRule.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/FutureInstallmentAllocationRule.java
index ad2ba886f..854ac2b73 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/FutureInstallmentAllocationRule.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/FutureInstallmentAllocationRule.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanproduct.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanProduct classes
import java.util.Arrays;
import java.util.List;
import lombok.Getter;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java
index ce70dfb70..337a51810 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProduct.java
@@ -96,9 +96,13 @@ public class LoanProduct extends AbstractPersistableCustom {
@Column(name = "loan_transaction_strategy_name")
private String transactionProcessingStrategyName;
+ // TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after removing association
+ // from LoanProduct entity
@OneToMany(cascade = CascadeType.ALL, mappedBy = "loanProduct",
orphanRemoval = true, fetch = FetchType.EAGER)
private List<LoanProductPaymentAllocationRule> paymentAllocationRules =
new ArrayList<>();
+ // TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after removing association
+ // from LoanProduct entity
@OneToMany(cascade = CascadeType.ALL, mappedBy = "loanProduct",
orphanRemoval = true, fetch = FetchType.EAGER)
private List<LoanProductCreditAllocationRule> creditAllocationRules = new
ArrayList<>();
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductCreditAllocationRule.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductCreditAllocationRule.java
index 76001ba95..961229cc7 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductCreditAllocationRule.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductCreditAllocationRule.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanproduct.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanProduct classes
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
import jakarta.persistence.Entity;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductPaymentAllocationRule.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductPaymentAllocationRule.java
index fbf4055b9..227210897 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductPaymentAllocationRule.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/LoanProductPaymentAllocationRule.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanproduct.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanProduct classes
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
import jakarta.persistence.Entity;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTransactionType.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTransactionType.java
index 014b04214..b6540126a 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTransactionType.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTransactionType.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanproduct.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanProduct classes
import java.util.Arrays;
import java.util.List;
import lombok.Getter;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationType.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationType.java
index 574c309e0..c5e531065 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationType.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationType.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanproduct.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanProduct classes
import static
org.apache.fineract.portfolio.loanproduct.domain.AllocationType.FEE;
import static
org.apache.fineract.portfolio.loanproduct.domain.AllocationType.INTEREST;
import static
org.apache.fineract.portfolio.loanproduct.domain.AllocationType.PENALTY;
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTypeListConverter.java
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTypeListConverter.java
index 82e9dc42a..5a1943f3e 100644
---
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTypeListConverter.java
+++
b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/PaymentAllocationTypeListConverter.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanproduct.domain;
+// TODO FINERACT-1932-Fineract modularization: Move to
fineract-progressive-loan module after refactor of Loan and LoanProduct classes
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;
import java.util.List;
diff --git a/fineract-progressive-loan/build.gradle
b/fineract-progressive-loan/build.gradle
new file mode 100644
index 000000000..20e9f20b4
--- /dev/null
+++ b/fineract-progressive-loan/build.gradle
@@ -0,0 +1,100 @@
+/**
+ * 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 Progressive Loan'
+
+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/progressiveloan/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"
+ }
+}
+
+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-progressive-loan/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.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-progressive-loan/dependencies.gradle
b/fineract-progressive-loan/dependencies.gradle
new file mode 100644
index 000000000..c39bee864
--- /dev/null
+++ b/fineract-progressive-loan/dependencies.gradle
@@ -0,0 +1,80 @@
+/**
+ * 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(project(path: ':fineract-accounting'))
+ implementation(project(path: ':fineract-charge'))
+ implementation(project(path: ':fineract-loan'))
+ implementation('org.apache.avro:avro')
+ implementation(
+ project(path: ':fineract-avro-schemas')
+ )
+
+ 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',
+ )
+ 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-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
similarity index 100%
rename from
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransaction.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransaction.java
similarity index 100%
rename from
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransaction.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransaction.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractProgressiveLoanScheduleGenerator.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractProgressiveLoanScheduleGenerator.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractProgressiveLoanScheduleGenerator.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/AbstractProgressiveLoanScheduleGenerator.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ProgressiveLoanScheduleGenerator.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ProgressiveLoanScheduleGenerator.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ProgressiveLoanScheduleGenerator.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/ProgressiveLoanScheduleGenerator.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/AdvancedPaymentScheduleTransactionProcessorCondition.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/AdvancedPaymentScheduleTransactionProcessorCondition.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/AdvancedPaymentScheduleTransactionProcessorCondition.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/AdvancedPaymentScheduleTransactionProcessorCondition.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/AdvancedPaymentData.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/data/AdvancedPaymentData.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/AdvancedPaymentData.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/data/AdvancedPaymentData.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/CreditAllocationData.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/data/CreditAllocationData.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/data/CreditAllocationData.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/data/CreditAllocationData.java
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParser.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParser.java
similarity index 100%
rename from
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParser.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParser.java
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidator.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidator.java
similarity index 100%
rename from
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidator.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidator.java
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParser.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParser.java
similarity index 100%
rename from
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParser.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParser.java
diff --git
a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidator.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidator.java
similarity index 100%
rename from
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidator.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidator.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/mapper/AdvancedPaymentDataMapper.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/mapper/AdvancedPaymentDataMapper.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/mapper/AdvancedPaymentDataMapper.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/mapper/AdvancedPaymentDataMapper.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMerger.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMerger.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMerger.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMerger.java
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMerger.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMerger.java
similarity index 100%
rename from
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMerger.java
rename to
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMerger.java
diff --git
a/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/db/changelog/tenant/module/progressiveloan/module-changelog-master.xml
b/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/db/changelog/tenant/module/progressiveloan/module-changelog-master.xml
new file mode 100644
index 000000000..baf21a9ba
--- /dev/null
+++
b/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/db/changelog/tenant/module/progressiveloan/module-changelog-master.xml
@@ -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">
+ <!-- Sequence is starting from 5000 to make it easier to move existing
liquibase changesets here -->
+</databaseChangeLog>
diff --git
a/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml
b/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml
new file mode 100644
index 000000000..ed390d9a8
--- /dev/null
+++
b/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml
@@ -0,0 +1,130 @@
+<?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.
+
+-->
+
+
+<persistence version="2.0"
+ xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
+
+ <!-- This file is only used for static weaving, nothing more. -->
+ <!-- You can find the runtime configuration in the JPAConfig class -->
+ <persistence-unit name="jpa-pu" transaction-type="RESOURCE_LOCAL">
+ <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+ <!-- Fineract core module -->
+
<class>org.apache.fineract.accounting.glaccount.domain.GLAccount</class>
+
<class>org.apache.fineract.accounting.journalentry.domain.JournalEntry</class>
+
<class>org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom</class>
+
<class>org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom</class>
+ <class>org.apache.fineract.infrastructure.codes.domain.Code</class>
+
<class>org.apache.fineract.infrastructure.codes.domain.CodeValue</class>
+
<class>org.apache.fineract.infrastructure.documentmanagement.domain.Image</class>
+ <class>org.apache.fineract.organisation.staff.domain.Staff</class>
+ <class>org.apache.fineract.organisation.office.domain.Office</class>
+
<class>org.apache.fineract.organisation.office.domain.OrganisationCurrency</class>
+
<class>org.apache.fineract.organisation.monetary.domain.ApplicationCurrency</class>
+ <class>org.apache.fineract.organisation.holiday.domain.Holiday</class>
+
<class>org.apache.fineract.organisation.workingdays.domain.WorkingDays</class>
+ <class>org.apache.fineract.portfolio.group.domain.Group</class>
+ <class>org.apache.fineract.portfolio.group.domain.GroupLevel</class>
+
<class>org.apache.fineract.portfolio.group.domain.StaffAssignmentHistory</class>
+ <class>org.apache.fineract.portfolio.group.domain.GroupRole</class>
+ <class>org.apache.fineract.portfolio.client.domain.Client</class>
+
<class>org.apache.fineract.portfolio.client.domain.ClientIdentifier</class>
+ <class>org.apache.fineract.portfolio.rate.domain.Rate</class>
+ <class>org.apache.fineract.portfolio.fund.domain.Fund</class>
+
<class>org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket</class>
+
<class>org.apache.fineract.portfolio.delinquency.domain.DelinquencyRange</class>
+
<class>org.apache.fineract.portfolio.paymenttype.domain.PaymentType</class>
+
<class>org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail</class>
+ <class>org.apache.fineract.portfolio.tax.domain.TaxGroup</class>
+
<class>org.apache.fineract.portfolio.tax.domain.TaxGroupMappings</class>
+ <class>org.apache.fineract.portfolio.tax.domain.TaxComponent</class>
+
<class>org.apache.fineract.portfolio.tax.domain.TaxComponentHistory</class>
+
<class>org.apache.fineract.portfolio.floatingrates.domain.FloatingRate</class>
+
<class>org.apache.fineract.portfolio.floatingrates.domain.FloatingRatePeriod</class>
+ <class>org.apache.fineract.portfolio.calendar.domain.Calendar</class>
+
<class>org.apache.fineract.portfolio.calendar.domain.CalendarHistory</class>
+
<class>org.apache.fineract.portfolio.calendar.domain.CalendarInstance</class>
+ <class>org.apache.fineract.useradministration.domain.AppUser</class>
+ <class>org.apache.fineract.useradministration.domain.Role</class>
+ <class>org.apache.fineract.useradministration.domain.Permission</class>
+
<class>org.apache.fineract.useradministration.domain.AppUserClientMapping</class>
+ <!-- Fineract loan module -->
+
<class>org.apache.fineract.portfolio.collateral.domain.LoanCollateral</class>
+
<class>org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement</class>
+
<class>org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.GroupLoanIndividualMonitoringAccount</class>
+ <class>org.apache.fineract.portfolio.loanaccount.domain.Loan</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanCharge</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanChargePaidBy</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanDisbursementDetails</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalculationDetails</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanInterestRecalcualtionAdditionalDetails</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanOfficerAssignmentHistory</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanOverdueInstallmentCharge</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanTermVariations</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanTopupDetails</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheCharge</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanTrancheDisbursementCharge</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelation</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionToRepaymentScheduleMapping</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProduct</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductBorrowerCycleVariations</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductConfigurableAttributes</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductFloatingRates</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductGuaranteeDetails</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductInterestRecalculationDetails</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductVariableInstallmentConfig</class>
+
<class>org.apache.fineract.portfolio.repaymentwithpostdatedchecks.domain.PostDatedChecks</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationType</class>
+ <class>org.apache.fineract.portfolio.loanproduct.domain.DueType</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.AllocationType</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.FutureInstallmentAllocationRule</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTransactionType</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.AllocationTypeListConverter</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanPaymentAllocationRule</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.LoanProductCreditAllocationRule</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.LoanCreditAllocationRule</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.CreditAllocationTransactionType</class>
+
<class>org.apache.fineract.portfolio.loanproduct.domain.PaymentAllocationTypeListConverter</class>
+
<class>org.apache.fineract.portfolio.loanaccount.domain.reaging.LoanReAgeParameter</class>
+ <!-- Fineract Charge module -->
+ <class>org.apache.fineract.portfolio.charge.domain.Charge</class>
+ <!-- Fineract Accounting module -->
+ <class>org.apache.fineract.accounting.closure.domain.GLClosure</class>
+
<class>org.apache.fineract.accounting.financialactivityaccount.domain.FinancialActivityAccount</class>
+
<class>org.apache.fineract.accounting.glaccount.domain.GLAccount</class>
+
<class>org.apache.fineract.accounting.journalentry.domain.JournalEntry</class>
+
<class>org.apache.fineract.accounting.producttoaccountmapping.domain.ProductToGLAccountMapping</class>
+
<class>org.apache.fineract.accounting.rule.domain.AccountingRule</class>
+
<class>org.apache.fineract.accounting.rule.domain.AccountingTagRule</class>
+ <exclude-unlisted-classes>false</exclude-unlisted-classes>
+ <properties>
+ <property name="eclipselink.weaving" value="static" />
+ </properties>
+ </persistence-unit>
+</persistence>
diff --git
a/fineract-provider/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
similarity index 100%
rename from
fineract-provider/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
diff --git
a/fineract-provider/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransactionTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransactionTest.java
similarity index 100%
rename from
fineract-provider/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransactionTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/ChargeOrTransactionTest.java
diff --git
a/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParserTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParserTest.java
similarity index 100%
rename from
fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParserTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsJsonParserTest.java
diff --git
a/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidatorTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidatorTest.java
similarity index 100%
rename from
fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidatorTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/AdvancedPaymentAllocationsValidatorTest.java
diff --git
a/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParserTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParserTest.java
similarity index 100%
rename from
fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParserTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsJsonParserTest.java
diff --git
a/fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidatorTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidatorTest.java
similarity index 100%
rename from
fineract-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidatorTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/domain/CreditAllocationsValidatorTest.java
diff --git
a/fineract-provider/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMergerTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMergerTest.java
similarity index 100%
rename from
fineract-provider/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMergerTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductCreditAllocationRuleMergerTest.java
diff --git
a/fineract-provider/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMergerTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMergerTest.java
similarity index 100%
rename from
fineract-provider/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMergerTest.java
rename to
fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductPaymentAllocationRuleMergerTest.java
diff --git a/fineract-provider/dependencies.gradle
b/fineract-provider/dependencies.gradle
index b9cb294b7..075cb7ecb 100644
--- a/fineract-provider/dependencies.gradle
+++ b/fineract-provider/dependencies.gradle
@@ -33,6 +33,8 @@ dependencies {
implementation(project(path: ':fineract-savings'))
implementation(project(path: ':fineract-branch'))
implementation(project(path: ':fineract-document'))
+ implementation(project(path: ':fineract-progressive-loan'))
+
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
// Never use "compile" scope, but make all dependencies either
'implementation', 'runtimeOnly' or 'testCompile'.
diff --git a/fineract-war/build.gradle b/fineract-war/build.gradle
index ebee98cfd..41c79e0ff 100644
--- a/fineract-war/build.gradle
+++ b/fineract-war/build.gradle
@@ -56,6 +56,7 @@ dependencies {
implementation project(':fineract-charge')
implementation project(':fineract-rates')
implementation project(':fineract-loan')
+ implementation project(':fineract-progressive-loan')
implementation project(':fineract-savings')
implementation project(':fineract-provider')
}
diff --git a/integration-tests/dependencies.gradle
b/integration-tests/dependencies.gradle
index bc1aca3f7..2eb0d59ea 100644
--- a/integration-tests/dependencies.gradle
+++ b/integration-tests/dependencies.gradle
@@ -32,6 +32,7 @@ dependencies {
project(path: ':fineract-provider', configuration:
'runtimeElements'),
project(path: ':fineract-avro-schemas', configuration:
'runtimeElements'),
project(path: ':fineract-client', configuration:
'runtimeElements'),
+ project(path: ':fineract-progressive-loan', configuration:
'runtimeElements'),
'com.intuit.karate:karate-junit5',
// 'com.google.code.gson:gson',
)
diff --git a/settings.gradle b/settings.gradle
index 54b501199..e449c052e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -67,6 +67,7 @@ include ':fineract-doc'
include ':fineract-avro-schemas'
include ':fineract-e2e-tests-core'
include ':fineract-e2e-tests-runner'
+include 'fineract-progressive-loan'
// NOTE: custom Docker image with all custom modules included
include ':custom:docker'
// NOTE: dynamically load custom modules with pattern "custom -> company ->
category -> module"