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"

Reply via email to