FINERACT-1932: Fineract modularization - fineract-savings
diff --git a/build.gradle b/build.gradle
index d417ee4..065217a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -31,6 +31,7 @@
'fineract-provider',
'fineract-investor',
'fineract-loan',
+ 'fineract-savings',
'integration-tests',
'twofactor-tests',
'oauth2-tests',
@@ -46,7 +47,8 @@
'fineract-core',
'fineract-provider',
'fineract-investor',
- 'fineract-loan'
+ 'fineract-loan',
+ 'fineract-savings'
].contains(it.name)
}
npmRepository = 'https://npm.pkg.github.com'
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/api/DataTableApiConstant.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DataTableValidator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableCheckStatusData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/DatatableChecksData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityDataTableChecksData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/EntityTables.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/GenericResultsetData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportExportType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportParameterJoinData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ResultsetRowData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/StatusEnum.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java b/fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java
rename to fineract-core/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/exception/InvalidCurrencyException.java b/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/exception/InvalidCurrencyException.java
similarity index 95%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/exception/InvalidCurrencyException.java
rename to fineract-core/src/main/java/org/apache/fineract/organisation/monetary/exception/InvalidCurrencyException.java
index 3a965bb..40aa519 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/exception/InvalidCurrencyException.java
+++ b/fineract-core/src/main/java/org/apache/fineract/organisation/monetary/exception/InvalidCurrencyException.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.fineract.portfolio.loanproduct.exception;
+package org.apache.fineract.organisation.monetary.exception;
import org.apache.fineract.infrastructure.core.exception.AbstractPlatformDomainRuleException;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/charge/exception/ChargeCannotBeAppliedToException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/collectionsheet/CollectionSheetConstants.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/common/domain/ConditionType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/common/service/CommonEnumerations.java
diff --git a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java
similarity index 100%
rename from fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanStatus.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/SearchConstants.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQueryDataValidator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConditions.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdHocQuerySearchConstants.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/AdvancedQueryRequest.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/ColumnFilterData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/FilterData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchConditions.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/SearchData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TableQueryData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/data/TransactionSearchRequest.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxComponentRepositoryWrapper.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/tax/domain/TaxGroupRepositoryWrapper.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxComponentNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/tax/exception/TaxGroupNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java
rename to fineract-core/src/main/java/org/apache/fineract/portfolio/tax/service/TaxUtils.java
diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle
index 20e7b7f..a287414 100644
--- a/fineract-provider/dependencies.gradle
+++ b/fineract-provider/dependencies.gradle
@@ -27,6 +27,7 @@
implementation(project(path: ':fineract-core'))
implementation(project(path: ':fineract-investor'))
implementation(project(path: ':fineract-loan'))
+ implementation(project(path: ':fineract-savings'))
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-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java
index 64d45ef..4822098 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionData.java
@@ -21,41 +21,18 @@
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
+import lombok.Getter;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.service.MathUtil;
-import org.apache.fineract.portfolio.note.domain.Note;
import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
import org.apache.fineract.portfolio.savings.service.SavingsEnumerations;
+@Getter
public class InteropTransactionData extends CommandProcessingResult {
- // private final SavingsAccountTransactionEnumData transactionType;
- // private final PaymentDetailData paymentDetailData;
- // private final BigDecimal outstandingChargeAmount;
- // private final boolean reversed;
- // private final AccountTransferData transfer;
- // private final LocalDate submittedOnDate;
- // private final boolean interestedPostedAsOn;
- // private final String submittedByUsername;
- // // templates
- // final Collection<PaymentTypeData> paymentTypeOptions;
- // //import fields
- // private Long paymentTypeId;
- // private String checkNumber;
- // private String routingCode;
- // private String receiptNumber;
- // private String bankNumber;
-
- // private String transactionReference;
- // private String statementReference;
- // private CreditDebitType creditDebit;
- // private TransactionStatus status;
- // private String transactionInformation;
- // private String addressLine;
-
@NotNull
private final String accountId;
@NotNull
@@ -75,7 +52,7 @@
@NotNull
private final LocalDate valueDateTime;
- private final String note;
+ private String note;
public InteropTransactionData(Long entityId, String accountId, String transactionId, SavingsAccountTransactionType transactionType,
BigDecimal amount, BigDecimal chargeAmount, String currency, BigDecimal accountBalance, LocalDate bookingDateTime,
@@ -117,33 +94,14 @@
LocalDate valueDateTime = endOfBalanceLocalDate == null ? bookingDateTime : endOfBalanceLocalDate;
StringBuilder sb = new StringBuilder();
- int currLength = 0;
- for (Note note : transaction.getNotes()) {
- String s = note.getNote();
- if (s == null) {
- continue;
- }
-
- int availableLength = 500 - currLength;
- if (availableLength <= 1) {
- break;
- }
-
- if (currLength > 0) {
- sb.append(' ');
- availableLength--;
- }
- if (s.length() > availableLength) {
- s = s.substring(availableLength);
- }
- sb.append(s);
- currLength = sb.length();
- }
- if (currLength == 0) {
- sb.append(SavingsEnumerations.transactionType(transactionType).getValue());
- }
+ sb.append(SavingsEnumerations.transactionType(transactionType).getValue());
return new InteropTransactionData(savingsAccount.getId(), savingsAccount.getExternalId().getValue(), transactionId, transactionType,
amount, chargeAmount, currency, runningBalance, bookingDateTime, valueDateTime, sb.toString());
}
+
+ public void updateNote(String note) {
+ this.note = note;
+ }
+
}
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java
index 34c25ca..f3d13e4 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropTransactionsData.java
@@ -22,11 +22,15 @@
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
+import lombok.Getter;
+import lombok.Setter;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
+@Getter
+@Setter
public class InteropTransactionsData extends CommandProcessingResult {
List<InteropTransactionData> transactions;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java
index 2cae4bb..0947168 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/interoperation/service/InteropServiceImpl.java
@@ -64,6 +64,7 @@
import org.apache.fineract.interoperation.data.InteropQuoteRequestData;
import org.apache.fineract.interoperation.data.InteropQuoteResponseData;
import org.apache.fineract.interoperation.data.InteropRequestData;
+import org.apache.fineract.interoperation.data.InteropTransactionData;
import org.apache.fineract.interoperation.data.InteropTransactionRequestData;
import org.apache.fineract.interoperation.data.InteropTransactionRequestResponseData;
import org.apache.fineract.interoperation.data.InteropTransactionsData;
@@ -218,7 +219,27 @@
return (transactionsTo == null || transactionsTo.compareTo(transactionDate) > 0) && (transactionsFrom == null
|| transactionsFrom.compareTo(transactionDate.withHour(23).withMinute(59).withSecond(59)) <= 0);
};
- return InteropTransactionsData.build(savingsAccount, transFilter);
+ InteropTransactionsData interopTransactionsData = InteropTransactionsData.build(savingsAccount, transFilter);
+ for (InteropTransactionData interopTransactionData : interopTransactionsData.getTransactions()) {
+ final List<Note> transactionNotes = noteRepository
+ .findBySavingsTransactionId(Long.valueOf(interopTransactionData.getTransactionId()));
+ StringBuilder sb = new StringBuilder();
+ for (final Note note : transactionNotes) {
+ String s = note.getNote();
+ if (s == null) {
+ continue;
+ }
+ sb.append(s + " ");
+ }
+ if (sb.toString().length() > 0) {
+ String text = interopTransactionData.getNote() + " " + sb.toString();
+ if (text.length() > 500) {
+ text = text.substring(0, 500);
+ }
+ interopTransactionData.updateNote(text);
+ }
+ }
+ return interopTransactionsData;
}
@NotNull
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java
index 3baf0c8..0201eae 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAssembler.java
@@ -40,6 +40,7 @@
import org.apache.fineract.organisation.holiday.domain.Holiday;
import org.apache.fineract.organisation.holiday.domain.HolidayRepository;
import org.apache.fineract.organisation.holiday.domain.HolidayStatusType;
+import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.organisation.staff.domain.Staff;
import org.apache.fineract.organisation.staff.domain.StaffRepository;
import org.apache.fineract.organisation.staff.exception.StaffNotFoundException;
@@ -84,7 +85,6 @@
import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRelatedDetail;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
-import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException;
import org.apache.fineract.portfolio.rate.domain.Rate;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
index d639183..4cead1e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeWritePlatformServiceImpl.java
@@ -60,6 +60,7 @@
import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
+import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.account.PortfolioAccountType;
import org.apache.fineract.portfolio.account.data.AccountTransferDTO;
import org.apache.fineract.portfolio.account.data.PortfolioAccountData;
@@ -126,7 +127,6 @@
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.ScheduledDateGenerator;
import org.apache.fineract.portfolio.loanaccount.serialization.LoanChargeApiJsonValidator;
import org.apache.fineract.portfolio.loanproduct.data.LoanOverdueDTO;
-import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.loanproduct.exception.LinkedAccountRequiredException;
import org.apache.fineract.portfolio.note.domain.Note;
import org.apache.fineract.portfolio.note.domain.NoteRepository;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
index f06014a..848b74d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
@@ -40,6 +40,7 @@
import org.apache.fineract.infrastructure.event.business.domain.loan.product.LoanProductCreateBusinessEvent;
import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
+import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
import org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket;
@@ -58,7 +59,6 @@
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductCreditAllocationRule;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductPaymentAllocationRule;
import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository;
-import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductCannotBeModifiedDueToNonClosedLoansException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductDateException;
import org.apache.fineract.portfolio.loanproduct.exception.LoanProductNotFoundException;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java
index f609eea..c57b20e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/note/domain/NoteRepository.java
@@ -26,6 +26,8 @@
import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
public interface NoteRepository extends JpaRepository<Note, Long>, JpaSpecificationExecutor<Note> {
@@ -46,4 +48,8 @@
List<Note> findBySavingsAccount(SavingsAccount savingAccount);
Note findBySavingsAccountAndId(SavingsAccount savingAccount, Long id);
+
+ @Query("select note from Note note where note.savingsTransaction.id = :savingsTransactionId")
+ List<Note> findBySavingsTransactionId(@Param("savingsTransactionId") Long savingsTransactionId);
+
}
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java
index f870375..1bc81f6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionsSearchServiceImpl.java
@@ -39,7 +39,7 @@
import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData;
import org.apache.fineract.infrastructure.dataqueries.service.GenericDataService;
-import org.apache.fineract.infrastructure.dataqueries.service.ReadWriteNonCoreDataServiceImpl;
+import org.apache.fineract.infrastructure.dataqueries.service.ReadWriteNonCoreDataService;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionData;
@@ -66,7 +66,7 @@
private final PlatformSecurityContext context;
private final GenericDataService genericDataService;
private final DatabaseSpecificSQLGenerator sqlGenerator;
- private final ReadWriteNonCoreDataServiceImpl datatableService;
+ private final ReadWriteNonCoreDataService datatableService;
private final DataTableValidator dataTableValidator;
private final JdbcTemplate jdbcTemplate;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
index 4f457a1..dc64831 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/serialization/ShareAccountDataSerializer.java
@@ -46,6 +46,7 @@
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
+import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.accounts.constants.ShareAccountApiConstants;
import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeCalculationType;
@@ -54,7 +55,6 @@
import org.apache.fineract.portfolio.client.domain.Client;
import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
-import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.savings.DepositAccountType;
import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountRepositoryWrapper;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java
index 64e2b6c..fa7bc44 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/serialization/ShareProductDataSerializer.java
@@ -44,10 +44,10 @@
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
+import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
-import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.shareproducts.constants.ShareProductApiConstants;
import org.apache.fineract.portfolio.shareproducts.data.ShareProductMarketPriceData;
import org.apache.fineract.portfolio.shareproducts.domain.ShareProduct;
diff --git a/fineract-provider/src/main/resources/jpa/persistence.xml b/fineract-provider/src/main/resources/jpa/persistence.xml
index a402cf6..6fa84ba 100644
--- a/fineract-provider/src/main/resources/jpa/persistence.xml
+++ b/fineract-provider/src/main/resources/jpa/persistence.xml
@@ -118,6 +118,24 @@
<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>
+ <!-- Fineract Savings module -->
+ <class>org.apache.fineract.interoperation.domain.InteropIdentifier</class>
+ <class>org.apache.fineract.portfolio.interestratechart.domain.InterestIncentives</class>
+ <class>org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart</class>
+ <class>org.apache.fineract.portfolio.interestratechart.domain.InterestRateChartSlab</class>
+ <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart</class>
+ <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChartSlabs</class>
+ <class>org.apache.fineract.portfolio.savings.domain.DepositAccountInterestIncentives</class>
+ <class>org.apache.fineract.portfolio.savings.domain.DepositAccountOnHoldTransaction</class>
+ <class>org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure</class>
+ <class>org.apache.fineract.portfolio.savings.domain.GroupSavingsIndividualMonitoring</class>
+ <class>org.apache.fineract.portfolio.savings.domain.SavingsProduct</class>
+ <class>org.apache.fineract.portfolio.savings.domain.SavingsAccount</class>
+ <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge</class>
+ <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountChargePaidBy</class>
+ <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction</class>
+ <class>org.apache.fineract.portfolio.savings.domain.SavingsAccountTransactionTaxDetails</class>
+ <class>org.apache.fineract.portfolio.savings.domain.SavingsOfficerAssignmentHistory</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.weaving" value="static" />
diff --git a/fineract-savings/build.gradle b/fineract-savings/build.gradle
new file mode 100644
index 0000000..df6fa6f
--- /dev/null
+++ b/fineract-savings/build.gradle
@@ -0,0 +1,106 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+description = 'Fineract Savings'
+
+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/savings/persistence.xml")
+ into "${source}/META-INF/"
+ }
+ javaexec {
+ description = 'Performs EclipseLink static weaving of entity classes'
+ def target = source
+ main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave'
+ args '-persistenceinfo', source, source, target
+ classpath sourceSets.main.runtimeClasspath
+ }
+ delete {
+ delete "${source}/META-INF/persistence.xml"
+ }
+}
+
+// Configuration for Swagger documentation generation task
+// https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin
+import org.apache.tools.ant.filters.ReplaceTokens
+
+
+
+configurations {
+ providedRuntime // needed for Spring Boot executable WAR
+ providedCompile
+ compile() {
+ exclude module: 'hibernate-entitymanager'
+ exclude module: 'hibernate-validator'
+ exclude module: 'activation'
+ exclude module: 'bcmail-jdk14'
+ exclude module: 'bcprov-jdk14'
+ exclude module: 'bctsp-jdk14'
+ exclude module: 'c3p0'
+ exclude module: 'stax-api'
+ exclude module: 'jaxb-api'
+ exclude module: 'jaxb-impl'
+ exclude module: 'jboss-logging'
+ exclude module: 'itext-rtf'
+ exclude module: 'classworlds'
+ }
+ runtime
+}
+
+apply from: 'dependencies.gradle'
+
+// Configuration for the modernizer plugin
+// https://github.com/andygoossens/gradle-modernizer-plugin
+modernizer {
+ ignoreClassNamePatterns = [
+ '.*AbstractPersistableCustom',
+ '.*EntityTables',
+ '.*domain.*'
+ ]
+}
+
+// If we are running Gradle within Eclipse to enhance classes with OpenJPA,
+// set the classes directory to point to Eclipse's default build directory
+if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
+ sourceSets.main.java.outputDir = new File(rootProject.projectDir, "fineract-savings/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-savings/dependencies.gradle b/fineract-savings/dependencies.gradle
new file mode 100644
index 0000000..bd2a158
--- /dev/null
+++ b/fineract-savings/dependencies.gradle
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+dependencies {
+ // Never use "compile" scope, but make all dependencies either 'implementation', 'runtimeOnly' or 'testCompile'.
+ // Note that we never use 'api', because Fineract at least currently is a simple monolithic application ("WAR"), not a library.
+ // We also (normally should have) no need to ever use 'compileOnly'.
+
+ // implementation dependencies are directly used (compiled against) in src/main (and src/test)
+ //
+ implementation(project(path: ':fineract-core'))
+
+ implementation(
+ 'org.springframework.boot:spring-boot-starter-web',
+ 'org.springframework.boot:spring-boot-starter-security',
+ 'jakarta.ws.rs:jakarta.ws.rs-api',
+ 'org.glassfish.jersey.media:jersey-media-multipart',
+
+ 'com.google.guava:guava',
+ 'com.google.code.gson:gson',
+
+ 'org.apache.commons:commons-lang3',
+
+ 'com.jayway.jsonpath:json-path',
+
+ 'com.github.spotbugs:spotbugs-annotations',
+ 'io.swagger.core.v3:swagger-annotations-jakarta',
+
+ 'com.squareup.retrofit2:converter-gson',
+
+ 'org.springdoc:springdoc-openapi-starter-webmvc-ui',
+ 'org.mapstruct:mapstruct',
+
+ 'io.github.resilience4j:resilience4j-spring-boot3',
+ 'org.apache.httpcomponents:httpcore',
+ )
+ compileOnly 'org.projectlombok:lombok'
+ annotationProcessor 'org.projectlombok:lombok'
+ annotationProcessor 'org.mapstruct:mapstruct-processor'
+ implementation ('org.springframework.boot:spring-boot-starter-data-jpa') {
+ exclude group: 'org.hibernate'
+ }
+ implementation('org.eclipse.persistence:org.eclipse.persistence.jpa') {
+ exclude group: 'org.eclipse.persistence', module: 'jakarta.persistence'
+ }
+ // testCompile dependencies are ONLY used in src/test, not src/main.
+ // Do NOT repeat dependencies which are ALREADY in implementation or runtimeOnly!
+ //
+ testImplementation( 'io.github.classgraph:classgraph' )
+ testImplementation ('org.springframework.boot:spring-boot-starter-test') {
+ exclude group: 'com.jayway.jsonpath', module: 'json-path'
+ exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
+ exclude group: 'jakarta.activation'
+ exclude group: 'javax.activation'
+ exclude group: 'org.skyscreamer'
+ }
+ testImplementation ('org.mockito:mockito-inline')
+}
diff --git a/fineract-core/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java b/fineract-savings/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
similarity index 100%
rename from fineract-core/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
rename to fineract-savings/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/SavingsProductToGLAccountMappingHelper.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropAccountData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/data/InteropIdentifierData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropActionState.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropAmountType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifier.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropIdentifierType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropInitiatorType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionRole.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransactionScenario.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java b/fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java
rename to fineract-savings/src/main/java/org/apache/fineract/interoperation/domain/InteropTransferActionType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/accountdetails/data/SavingsSummaryCustom.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeCannotBeWaivedException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/charge/exception/SavingsAccountChargeWithoutMandatoryFieldException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestIncentiveApiConstants.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartApiConstants.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/InterestRateChartSlabApiConstants.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestIncentiveData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/data/InterestRateChartSlabData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentives.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestIncentivesFields.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChart.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartFields.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartRepositoryWrapper.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlab.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabComparator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabFields.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/domain/InterestRateChartSlabRepositoryWrapper.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/exception/InterestRateChartSlabNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculation.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/AttributeIncentiveCalculationFactory.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/ClientAttributeIncentiveCalculation.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/IncentiveDTO.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveAttributeName.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveEntityType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/incentive/InterestIncentiveType.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestIncentiveAssembler.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartAssembler.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/interestratechart/service/InterestRateChartSlabAssembler.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountUtils.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/SavingsTransactionBooleanValues.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/api/SavingsApiSetConstants.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/ClosingOfSavingsAccounts.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestIncentiveData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountInterestRateChartSlabData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositAccountOnHoldTransactionData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/DepositProductData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositAccountData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/FixedDepositProductData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GSIMContainer.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/GroupSavingsIndividualMonitoringAccountData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositAccountData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/RecurringDepositProductData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountAnnualFeeData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountChargeDataValidator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountConstant.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataDTO.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountDataValidator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountTransactionDTO.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsActivation.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsApproval.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/TransactionDateData.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentive.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestIncentives.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChart.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountInterestRateChartSlabs.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
similarity index 92%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
index 78a5f2f..cb132e4 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
+++ b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountOnHoldTransaction.java
@@ -20,12 +20,10 @@
import static org.apache.fineract.infrastructure.core.service.DateUtils.getSystemZoneId;
-import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
-import jakarta.persistence.OneToOne;
import jakarta.persistence.Table;
import java.math.BigDecimal;
import java.time.LocalDate;
@@ -35,7 +33,6 @@
import org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
-import org.apache.fineract.portfolio.loanaccount.guarantor.domain.GuarantorFundingTransaction;
import org.apache.fineract.portfolio.savings.DepositAccountOnHoldTransactionType;
@Entity
@@ -62,9 +59,6 @@
@Column(name = "created_date", nullable = true)
private LocalDateTime createdDateToRemove;
- @OneToOne(cascade = CascadeType.ALL, mappedBy = "depositAccountOnHoldTransaction", optional = true, orphanRemoval = true)
- private GuarantorFundingTransaction guarantorFundingTransaction;
-
protected DepositAccountOnHoldTransaction() {}
private DepositAccountOnHoldTransaction(final SavingsAccount savingsAccount, final BigDecimal amount,
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositAccountTermAndPreClosure.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositPreClosureDetail.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAmountDetails.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
similarity index 99%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
index 3cef741..caf6dd0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
+++ b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductAssembler.java
@@ -68,12 +68,12 @@
import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
+import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
import org.apache.fineract.portfolio.charge.exception.ChargeCannotBeAppliedToException;
import org.apache.fineract.portfolio.interestratechart.domain.InterestRateChart;
import org.apache.fineract.portfolio.interestratechart.service.InterestRateChartAssembler;
-import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.savings.PreClosurePenalInterestOnType;
import org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType;
import org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductRecurringDetail.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositProductTermAndPreClosure.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositRecurringDetail.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/DepositTermDetail.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/FixedDepositProduct.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GSIMRepositoy.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/GroupSavingsIndividualMonitoring.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProduct.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/RecurringDepositProductRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccount.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountCharge.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeAssembler.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargePaidBy.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountChargeRepositoryWrapper.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountSummary.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
similarity index 98%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
index 6910fad..2cd1c7d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
+++ b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransaction.java
@@ -46,7 +46,6 @@
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
import org.apache.fineract.organisation.office.domain.Office;
-import org.apache.fineract.portfolio.note.domain.Note;
import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionEnumData;
@@ -127,10 +126,6 @@
@Column(name = "reason_for_block", nullable = true)
private String reasonForBlock;
- @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
- @JoinColumn(name = "savings_account_transaction_id", referencedColumnName = "id")
- private List<Note> notes = new ArrayList<>();
-
@Column(name = "is_reversal", nullable = false)
private boolean reversalTransaction;
@@ -428,10 +423,6 @@
return this.taxDetails;
}
- public List<Note> getNotes() {
- return notes;
- }
-
public Integer getTypeOf() {
return this.typeOf;
}
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionComparator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionDataComparator.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionSummaryWrapper.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountTransactionTaxDetails.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsEvent.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsOfficerAssignmentHistory.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
similarity index 99%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
index a9f3862..c47cb76 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
+++ b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java
@@ -59,10 +59,10 @@
import org.apache.fineract.accounting.common.AccountingRuleType;
import org.apache.fineract.infrastructure.core.api.JsonCommand;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
+import org.apache.fineract.organisation.monetary.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.charge.domain.Charge;
import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
import org.apache.fineract.portfolio.charge.exception.ChargeCannotBeAppliedToException;
-import org.apache.fineract.portfolio.loanproduct.exception.InvalidCurrencyException;
import org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType;
import org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType;
import org.apache.fineract.portfolio.savings.SavingsInterestCalculationType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductChargeAssembler.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductRepository.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountInterestRateChartNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/DepositAccountTransactionNotAllowedException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/FixedDepositProductNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/InsufficientAccountBalanceException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestAsOnDateException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/PostInterestClosingDateException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/RecurringDepositProductNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountBlockedException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountClosingNotAllowedException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountCreditsBlockedException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountDebitsBlockedException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsAccountTransactionNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsActivityPriorToClientTransferException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentDateException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerAssignmentException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentDateException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsOfficerUnassignmentException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsProductNotFoundException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/SavingsTransferTransactionsCannotBeUndoneException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionBeforePivotDateNotAllowed.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/exception/TransactionUpdateNotAllowedException.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountInterestRateChartReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountOnHoldTransactionReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountPreMatureCalculationPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositAccountWritePlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositProductReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/DepositsDropdownReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/FixedDepositProductWritePlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/GSIMReadPlatformServiceImpl.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/RecurringDepositProductWritePlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountInterestPostingService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsDropdownReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductWritePlatformService.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPoster.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularInterestPosterTask.java
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java b/fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java
similarity index 100%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java
rename to fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java
diff --git a/fineract-savings/src/main/resources/db/changelog/tenant/module/savings/parts/module-changelog-master.xml b/fineract-savings/src/main/resources/db/changelog/tenant/module/savings/parts/module-changelog-master.xml
new file mode 100644
index 0000000..8746633
--- /dev/null
+++ b/fineract-savings/src/main/resources/db/changelog/tenant/module/savings/parts/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 2000 to make it easier to move existing liquibase changesets here -->
+</databaseChangeLog>
diff --git a/fineract-savings/src/main/resources/jpa/savings/persistence.xml b/fineract-savings/src/main/resources/jpa/savings/persistence.xml
new file mode 100644
index 0000000..bf9980f
--- /dev/null
+++ b/fineract-savings/src/main/resources/jpa/savings/persistence.xml
@@ -0,0 +1,71 @@
+<?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.fund.domain.Fund</class>
+ <class>org.apache.fineract.portfolio.charge.domain.Charge</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.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>
+ <exclude-unlisted-classes>false</exclude-unlisted-classes>
+ <properties>
+ <property name="eclipselink.weaving" value="static" />
+ </properties>
+ </persistence-unit>
+</persistence>
diff --git a/integration-tests/dependencies.gradle b/integration-tests/dependencies.gradle
index 8229ce1..6f939e1 100644
--- a/integration-tests/dependencies.gradle
+++ b/integration-tests/dependencies.gradle
@@ -25,6 +25,7 @@
project(path: ':fineract-core', configuration: 'runtimeElements'),
project(path: ':fineract-investor', configuration: 'runtimeElements'),
project(path: ':fineract-loan', configuration: 'runtimeElements'),
+ project(path: ':fineract-savings', configuration: 'runtimeElements'),
project(path: ':fineract-provider', configuration: 'runtimeElements'),
project(path: ':fineract-avro-schemas', configuration: 'runtimeElements'),
project(path: ':fineract-client', configuration: 'runtimeElements'),
diff --git a/settings.gradle b/settings.gradle
index c33ea27..e3b712a 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -52,6 +52,7 @@
include ':fineract-provider'
include ':fineract-investor'
include ':fineract-loan'
+include ':fineract-savings'
include ':fineract-war'
include ':integration-tests'
include ':twofactor-tests'