This is an automated email from the ASF dual-hosted git repository.
aleks pushed a change to branch 1.7.0
in repository https://gitbox.apache.org/repos/asf/fineract.git
from b42423b94 Last minute release plugin fixes
add 9696a7e90 FINERACT-1615: Fix jakarta mail related dependency issue
add 665bd0f6f FINERACT-1483: fix Sonar vulnerabilities with `Minor`
severity
add a3ab06593 FINERACT-1557 enable previous disabled refundByCash
accounting tests
add b0a261cbd FINERACT-1608: Add introduction to Asciidoc
add a97a3d040 FINERACT-1603- Post Interest Job Fix
add 3827417a6 Merge pull request #2322 from apurbraj/develop
add 235dfa873 FINERACT-1607: Improve documentation on Cucumber usage
add a89fe5393 FINERACT-1471: AsciiDoc extension for read/write/batch
separation
add 77fd4ff4c Fine tuning the batch APIs and minor adjustments
add 66621dcc8 FINERACT-1618 Cater for loans with no schedule at disburse
time
add c1a3b98ed Update: Cater for loans with no schedule at disburse time
add e99995982 FINERACT-1596 Goodwill Accounting Changes
add 2bb6445b4 Spring Batch documentation + Loan COB
add 073b1b04b Cleanup around Hooks and Hook templates
add 6849f45bb Deleting the topics module since its incomplete and
additional cleanups
add 64bfe3376 Datatable integration test
add 69a900492 chore: renovate bot setting to pin actions to a full length
commit SHA
add 5942488bd Fix for queries using postgres
add e277c85c6 Fix in accounting rule system_defined
add 2e8f01813 Static weaving classpath is tuned to conform with the system
dependent path separator
add f576c3f07 FINERACT-1613:Savings Interest Posting Job
add 18a44d761 Merge pull request #2336 from logoutdhaval/fineract-1613
add 264cc3a29 FINERACT-1553-fix-boolean-premitive-to-handle-null
add a5bfa43da FINERACT-1557 (approval removing installment charges)
add e7b2d6dff remove unused jobs
add 89a4db47c Reorganizing business events
add ee1f988be Enable/Disable Messaging in Read Only instance mode
add ebf0e8b53 Filter for instances read, write, batch
add 367321d76 Fix NullPointerException at Base64$Encoder in
ImagesApiResource (FINERACT-1224)
add ef2d42fe3 Instance type filter polishing and tests
add 8e37f93ba Remove FK of job_run_history table
add 2b122a17e Fix for reading multirow datatable entry reads non-belonging
entry
add 6a4b17a80 chore(deps): update plugin org.openapi.generator to v6
add fe500be8c chore(deps): update dependency
jakarta.activation:jakarta.activation-api to v2
add 7cd9ff879 chore(deps): pin dependencies
add 2a7d8b949 Fineract with ReadOnly tenant database connection
add e9df96e38 Readonly connection support
add 79375a8b9 Renovate adjustments
add a38fc3231 Disable receiving events for batch-only instances
add 4465e632f Business date part 1 (#2362)
add 78280aab9 Allow headers to be passed for generated fineract client APIs
add 8fc99a814 FINERACT-1641: Invalid Date of transaction after reversal
correction
add 38e5edc93 Business date - doc
add 3196de0e4 Business date doc
add 68fcddf7a Fix for Gradle logging on asciidoc and swagger generation
add 645994f87 FINERACT-1483: Optional value should accessed and throw
exception if null
add 49e67a01c FINERACT-1634: Invalid balance after withdrawal correction
add 2a79a7ed2 Merge pull request #2353 from logoutdhaval/fineract-1634
add 15fff1fb3 Delete fineract.dev.yaml (for now, may be restored again
later)
add 149279c1f FINERACT-1643 Catch external_id duplicates for loan
transactions
add 23b56fef6 Fixing submittedOnDate as a String in openAPI definition for
PostLoansRequest
add 1fb15fa4b chore(deps): bump actions/setup-java from 3.3.0 to 3.4.0
add fb473ad8d Specify query parameter for DatatablesApi
getDatatableManyEntry
add ba1fddbc5 [FINERACT-1628] remove update loan paidin advance job and
table
add fb0556c20 Specify query parameters for LoansApi retrieveLoan
add 470ff9a74 Specify query parameters for LoanTransactionsApi
retrieveTransaction
add ddc6a7668 Integration tests for auditing and loan templating
add cd3826215 Refactored business events
add e3a256cb5 FINERACT:1644:Max Heap Space should be Configurable for
Docker Image
add 3f02b7d7b Merge pull request #2374 from logoutdhaval/fineract-1644
add f98681ffd Putting back support for pre business events
add ff2e6cf4a FINERACT-1642:Bulk reversal of related Transactions
add 74e43ab62 Merge pull request #2372 from logoutdhaval/fineract-1642
add 44e1e4478 FINERACT-1645:Invalid Balance after Interest posting with
withdrawal fee
add 7e680729f Merge pull request #2379 from logoutdhaval/fineract-1645
add 55949bf8b Unstable integration test due different timezones
add 552494974 Fineract-1649: Error for Journal entry table
add 0d5bace36 Merge pull request #2382 from logoutdhaval/fineract-1649
add 67850e388 Fixing loan approval open api definition
add ffb914777 New Instance type: Batch Manager
add 94924432a Fixing loan approval open api definition
add 62689eb67 OpenAPI fix for loans
add 1de7b23c9 Business date - part 1 - Fix swagger
add 63a3f56dd Business date part 1 fix (#2391)
add 632a08a5c Business date - part 2 (#2384)
add 9c8239a9b Implement integration tests for Accounting rules
add 05dc8f938 Error logging enhancement - log handled exceptions on WARN
level
add 0bbcc7251 Renovate fixes for upcoming dep upgrade
add c5b12c489 swagger schema extended (#2397)
add ac17e993b Build fix
add b9e30e2e8 Fix for Fixed Deposit Integration Test
add 2e0fe6aa9 chore(deps): update all non-major dependencies
add 2d07e8c86 Fix for JPA getById method deprecation
add 357062a18 Loan externalId unique validation
add b44a2f2b1 Business date - part 3: Fix reports
add e90dd49c8 FINERACT-1541: Pentaho reports converted to table format
add 83dcc4413 Merge pull request #2404 from
logoutdhaval/pentaho-to-table-branch
add ad4fa563d Auditor fix - Detached Auditor entity was not persisted
during cascade persisting
add b30d5c5a1 Loan transaction date handling enhancement + Make Loan
transaction auditable
add fe8868b50 Scheduler jobs API rename (#2409)
add e50a32975 Business step implementation and interface for Loan COB
add 2bb92ae53 Business date response swagger fix
add 0487bece0 FINERACT-1661 Allow merchant_issued and payout refunds when
fullyPaid/Overpaid
add 16aafdf95 FINERACT-1657 Allow schedule approved/submitted multi
non-tranche loans
add e4eb8afdf fineract-1652: Account Balance and Transaction running
balance is wrong
add d1c77a5e4 Merge pull request #2396 from logoutdhaval/fineract-1652
add 4fdee75be chore(deps): update all non-major dependencies
add 4ebe645c5 Charts data is mandatory for creating a fixed deposit product
add adaac8958 Fix makerchecker inbox list group by error
add ef96d5cc5 Date to LocalDate - part 1
add 7ce19d703 Date to LocalDate - Client
add a765cb00f Fix typo in error messages in Loan
add 308ede861 FINERACT-1402:PaymentTypeMandatory
add 8b0854208 chore(deps): bump actions/setup-node from 3.3.0 to 3.4.0
add f7e21f8db chore(deps): bump actions/setup-java from 3.4.0 to 3.4.1
add 1db8ef46f Date to LocalDate (scheduler excluded due to quartz)
add 8a55d5807 FINERACT-1656 Correlation ID propagation and configuration
add 4f832f948 Correlation ID support implementation
add 8c023e74a Batch API extensions and a couple of OpenAPI fixes + minor
datatable fixes
add 81be86373 Quick code cleaning for client and loan: around the native
queries
add b87d915db chore(deps): bump actions/setup-node from 3.4.0 to 3.4.1
add c2d5a735d Fineract client builder tenant and username/password are
made optional
add e4e5fc0ce FINERACT-1658:GroupFilter_In_Center
add 8ca0650b9 chore(deps): bump actions/stale from 5.0.0 to 5.1.0
add 801497fa2 chore(deps): update all non-major dependencies
add 2290886e8 Activation date cannot be earlier than the submitted on date
add a236d7e91 Fix job mismatched logic
add 019cdab43 Fineract-1646 (#2440)
add d388a3aa3 fix for 1665 and 1666 (#2441)
add ba75f7b93 Fix general ledger report
add fb15fe180 chore(deps): update actions/stale digest to 3cc1237
add 0187dc5e5 fix(deps): update dependency org.apache.tomcat:tomcat to
v9.0.65
add a555fe63b Fix applyAdditionalShares Use saveAndFlush instead of save
on ShareAccountRepository
add 4dada53f8 refactor: add lombok to FinancialActivityAccount module
add d6f8ef8b7 fix: final class error
add da920b182 refactor: add lombok to closure module
add b8f821714 Add CustomAuditHandler for supporting OffsetDateTime and
store in UTC
add d8f483ab4 Refactor Client to support auditable fields
add 176c5700d Refactor Loan to support auditable fields
add 35cc1fc0d Refactor Loan Transaction to support auditable fields
add 25823a937 Fix some tests
add 700038020 Apply fixes (based on review)
add 0b334b563 chore(deps): bump actions/stale from 5.0.0 to 5.1.0
add a80f589ad fineract-1646 and fineract-1638 combined fix (#2457)
add d03044c48 chore(deps): bump actions/stale from 5.1.0 to 5.1.1
add ff9181cc4 [FINERACT-1667] Introducing Spring Batch as job runner engine
add 16ab49112 [FINERACT-1669] Store business step configuration
add dc5abeacb Added archiving test results and server logs on GitHub
workflows
add 81601645a Fix Product Mix queries using group by
add b21cdf59b [FINERACT-1676] fixing saving dormant account job
add 87204d5a8 Added reschedule loans api resource to Fineract Client and
batch; minor swagger polishing
add 6a0928eb9 Rework custom auditing handler
add a73c593eb Fix transaction cannot be in future check
add 7fb61d028 Fix transaction cannot be in future check
add 65c6b18ed Fix inconsistenant Date and Date time handling
add 7f703a3ee fix(deps): update non-major
add 5dab0127d chore(deps): pin actions/upload-artifact action to 3cea537
add c46864c8c Fix for scheduled Spring Batch jobs
add cabb79c99 Allow accounting mappings for fund source asset or liability
add 2e5fa2bf2 Merge branch 'develop' into 1.7.0
No new revisions were added by this update.
Summary of changes:
.github/workflows/build-docker-mariadb.yml | 4 +-
.github/workflows/build-docker-postgresql.yml | 4 +-
.github/workflows/build-mariadb.yml | 20 +-
.github/workflows/build-mysql.yml | 20 +-
.github/workflows/build-postgresql.yml | 20 +-
.github/workflows/fineract.dev.yaml | 45 --
.github/workflows/sonarqube.yml | 4 +-
.github/workflows/stale.yml | 2 +-
build.gradle | 18 +-
buildSrc/build.gradle | 3 +-
.../groovy/org.apache.fineract.dependencies.gradle | 75 +-
docker-compose-postgresql.yml | 3 +-
docker-compose.yml | 1 +
fineract-client/build.gradle | 2 +-
.../fineract/client/util/FineractClient.java | 36 +-
.../java/org/apache/fineract/client/util/JSON.java | 6 +
.../resources/java/template/build.gradle.mustache | 218 ------
.../src/main/resources/java/template/pom.mustache | 479 -------------
.../src/main/resources/templates/java/api.mustache | 120 ++++
.../client/test/FineractClientTechnicalTest.java | 6 -
fineract-doc/build.gradle | 4 +
.../docs/en/chapters/architecture/batch-jobs.adoc | 255 +++++++
.../en/chapters/architecture/business-date.adoc | 298 ++++++++
.../src/docs/en/chapters/architecture/index.adoc | 6 +
.../en/chapters/architecture/loan-locking.adoc | 24 +
.../src/docs/en/chapters/architecture/modules.adoc | 22 +-
.../src/docs/en/chapters/deployment/index.adoc | 2 +
.../docs/en/chapters/deployment/instance-type.adoc | 177 +++++
.../en/chapters/release/configuration-email.adoc | 18 +-
.../en/chapters/release/configuration-gpg.adoc | 8 +-
.../docs/en/chapters/release/process-step03.adoc | 10 +-
.../src/docs/en/chapters/security/oauth.adoc | 24 +-
.../src/docs/en/images/batch-jobs-chunking.png | Bin 0 -> 52999 bytes
.../en/images/batch-jobs-remote-partitioning.png | Bin 0 -> 46876 bytes
.../docs/en/images/batch-jobs-state-management.png | Bin 0 -> 108358 bytes
fineract-doc/src/docs/en/images/business_date.png | Bin 0 -> 98637 bytes
fineract-provider/build.gradle | 21 +-
fineract-provider/dependencies.gradle | 8 +-
.../AccrualAccountingDataValidator.java | 2 +-
.../AccrualAccountingWritePlatformServiceImpl.java | 4 +-
.../accounting/closure/data/GLClosureData.java | 8 +-
.../accounting/closure/domain/GLClosure.java | 28 +-
.../exception/GLClosureInvalidDeleteException.java | 4 +-
.../exception/GLClosureInvalidException.java | 4 +-
...osureWritePlatformServiceJpaRepositoryImpl.java | 16 +-
.../accounting/common/AccountingConstants.java | 41 +-
.../data/FinancialActivityAccountData.java | 7 +-
.../data/FinancialActivityData.java | 6 +-
.../domain/FinancialActivityAccount.java | 24 +-
.../api/GLAccountsApiResourceSwagger.java | 2 +-
.../accounting/glaccount/domain/TrialBalance.java | 22 +-
.../UpdateTrialBalanceDetailsConfig.java | 60 ++
.../UpdateTrialBalanceDetailsTasklet.java | 100 +++
.../AccountRunningBalanceUpdateConfig.java | 58 ++
.../AccountRunningBalanceUpdateTasklet.java | 40 ++
.../accounting/journalentry/api/DateParam.java | 7 +-
.../api/JournalEntriesApiResource.java | 6 +-
.../journalentry/data/ClientTransactionDTO.java | 4 +-
.../journalentry/data/LoanTransactionDTO.java | 4 +-
.../journalentry/data/SavingsTransactionDTO.java | 4 +-
.../journalentry/data/SharesTransactionDTO.java | 4 +-
.../journalentry/domain/JournalEntry.java | 15 +-
.../exception/JournalEntryInvalidException.java | 4 +-
.../service/AccountingProcessorHelper.java | 120 ++--
.../AccrualBasedAccountingProcessorForLoan.java | 20 +-
...edAccountingProcessorForClientTransactions.java | 6 +-
.../CashBasedAccountingProcessorForLoan.java | 30 +-
.../CashBasedAccountingProcessorForSavings.java | 4 +-
.../CashBasedAccountingProcessorForShares.java | 10 +-
.../service/JournalEntryReadPlatformService.java | 6 +-
.../JournalEntryReadPlatformServiceImpl.java | 17 +-
...ournalEntryRunningBalanceUpdateServiceImpl.java | 25 +-
.../service/JournalEntryWritePlatformService.java | 6 +-
...EntryWritePlatformServiceJpaRepositoryImpl.java | 42 +-
.../LoanProductToGLAccountMappingHelper.java | 50 +-
.../service/ProductToGLAccountMappingHelper.java | 33 +-
...tToGLAccountMappingReadPlatformServiceImpl.java | 4 +
...ToGLAccountMappingWritePlatformServiceImpl.java | 17 +-
.../provisioning/data/ProvisioningEntryData.java | 10 +-
.../provisioning/domain/ProvisioningEntry.java | 14 +-
.../domain/ProvisioningEntryRepository.java | 4 +-
.../ProvisioningEntryAlreadyCreatedException.java | 4 +-
...ningJournalEntriesCannotbeCreatedException.java | 4 +-
...visioningEntriesDefinitionJsonDeserializer.java | 2 +-
.../ProvisioningEntriesReadPlatformService.java | 4 +-
...ProvisioningEntriesReadPlatformServiceImpl.java | 29 +-
.../ProvisioningEntriesWritePlatformService.java | 6 +-
...triesWritePlatformServiceJpaRepositoryImpl.java | 64 +-
.../AccountingRuleInvalidDeleteException.java | 4 +-
.../exception/AccountingRuleInvalidException.java | 4 +-
.../AccountingRuleReadPlatformServiceImpl.java | 2 +-
.../fineract/adhocquery/api/AdHocApiResource.java | 28 +-
.../service/AdHocReadPlatformServiceImpl.java | 7 +-
.../service/AdHocScheduledJobRunnerService.java | 24 -
.../AdHocScheduledJobRunnerServiceImpl.java | 118 ----
...AdHocWritePlatformServiceJpaRepositoryImpl.java | 33 +-
.../fineract/batch/api/BatchApiResource.java | 5 +-
.../batch/command/CommandStrategyProvider.java | 17 +-
.../batch/command/CommandStrategyUtils.java | 64 ++
.../internal/ActivateClientCommandStrategy.java | 29 +-
.../command/internal/ApplyLoanCommandStrategy.java | 27 +-
.../internal/ApplySavingsCommandStrategy.java | 31 +-
.../internal/ApproveLoanCommandStrategy.java | 29 +-
.../ApproveLoanRescheduleCommandStrategy.java | 31 +-
.../internal/CollectChargesCommandStrategy.java | 31 +-
.../internal/CreateChargeCommandStrategy.java | 31 +-
.../internal/CreateClientCommandStrategy.java | 29 +-
...CreateLoanRescheduleRequestCommandStrategy.java | 65 ++
.../CreateTransactionLoanCommandStrategy.java | 87 +++
.../internal/DisburseLoanCommandStrategy.java | 29 +-
...tDatatableEntryByAppTableIdCommandStrategy.java | 93 +++
.../internal/GetLoanByIdCommandStrategy.java | 142 ++++
.../GetTransactionByIdCommandStrategy.java | 99 +++
.../command/internal/RepayLoanCommandStrategy.java | 84 ---
.../internal/UpdateClientCommandStrategy.java | 29 +-
.../batch/service/BatchApiServiceImpl.java | 31 +-
.../org/apache/fineract/cob/COBBusinessStep.java | 30 +
.../ApplyChargeToOverdueLoansBusinessStep.java | 66 ++
.../fineract/cob/loan/LoanCOBBusinessStep.java | 26 +
.../fineract/commands/domain/CommandSource.java | 16 +-
.../commands/provider/CommandHandlerProvider.java | 2 +-
.../service/AuditReadPlatformServiceImpl.java | 12 +-
.../commands/service/CommandWrapperBuilder.java | 7 +
.../SynchronousCommandProcessingService.java | 9 +-
.../infrastructure/DataIntegrityErrorHandler.java | 48 ++
.../auditing/CustomAuditingHandler.java | 94 +++
.../bulkimport/data/BulkImportEvent.java | 24 +-
.../bulkimport/domain/ImportDocument.java | 15 +-
.../ChartOfAccountsImportHandler.java | 7 +-
.../client/ClientEntityImportHandler.java | 6 +
.../client/ClientPersonImportHandler.java | 6 +
.../populator/AbstractWorkbookPopulator.java | 48 +-
.../populator/SharedProductsSheetPopulator.java | 8 +-
.../LoanRepaymentWorkbookPopulator.java | 18 +-
.../service/BulkImportEventListener.java | 6 +-
.../BulkImportWorkbookPopulatorServiceImpl.java | 2 +-
.../service/BulkImportWorkbookServiceImpl.java | 4 +-
.../businessdate/api/BusinessDateApiResource.java | 107 +++
.../api/BusinessDateApiResourceSwagger.java | 61 ++
.../businessdate/data/BusinessDateData.java | 45 ++
.../businessdate/domain/BusinessDate.java | 64 ++
.../domain/BusinessDateRepository.java | 28 +
.../businessdate/domain/BusinessDateType.java | 37 +
.../exception/BusinessDateActionException.java | 31 +
.../exception/BusinessDateNotFoundException.java | 41 ++
.../handler/BusinessDateUpdateHandler.java | 43 ++
.../businessdate/mapper/BusinessDateMapper.java | 35 +
.../service/BusinessDateReadPlatformService.java | 34 +
.../BusinessDateReadPlatformServiceImpl.java | 85 +++
.../service/BusinessDateWritePlatformService.java | 36 +
.../BusinessDateWritePlatformServiceImpl.java | 146 ++++
.../BusinessDateDataParserAndValidator.java | 107 +++
.../campaigns/email/api/EmailApiResource.java | 80 +--
.../email/api/EmailCampaignApiResource.java | 94 +--
.../campaigns/email/domain/EmailCampaign.java | 78 +--
.../campaigns/email/domain/EmailMessage.java | 12 +-
.../service/EmailCampaignDomainServiceImpl.java | 95 +--
...ailCampaignWritePlatformCommandHandlerImpl.java | 397 +----------
.../service/EmailCampaignWritePlatformService.java | 9 +-
.../email/service/EmailReadPlatformService.java | 4 +-
.../service/EmailReadPlatformServiceImpl.java | 12 +-
.../campaigns/jobs/TenantDateTimeUtil.java | 41 ++
.../jobs/executeemail/ExecuteEmailConfig.java | 75 ++
.../jobs/executeemail/ExecuteEmailTasklet.java | 229 +++++++
.../ExecuteReportMailingJobsConfig.java | 74 ++
.../ExecuteReportMailingJobsTasklet.java | 245 +++++++
.../GetDeliveryReportsFromSmsGatewayConfig.java | 63 ++
.../GetDeliveryReportsFromSmsGatewayTasklet.java | 112 +++
.../SendMessageToSmsGatewayConfig.java | 63 ++
.../SendMessageToSmsGatewayTasklet.java | 154 +++++
.../EmailParamMappingException.java | 26 +
...dateEmailOutboundWithCampaignMessageConfig.java | 71 ++
...ateEmailOutboundWithCampaignMessageTasklet.java | 150 ++++
...UpdateSmsOutboundWithCampaignMessageConfig.java | 62 ++
...pdateSmsOutboundWithCampaignMessageTasklet.java | 83 +++
.../campaigns/sms/api/SmsCampaignApiResource.java | 118 ++--
.../campaigns/sms/domain/SmsCampaign.java | 78 +--
.../sms/service/SmsCampaignDomainServiceImpl.java | 178 ++---
.../service/SmsCampaignWritePlatformService.java | 5 +-
.../SmsCampaignWritePlatformServiceJpaImpl.java | 210 +-----
.../codes/api/CodeValuesApiResourceSwagger.java | 2 +
.../api/GlobalConfigurationApiResource.java | 3 +-
.../data/GlobalConfigurationPropertyData.java | 10 +-
.../domain/ConfigurationDomainService.java | 8 +-
.../domain/ConfigurationDomainServiceJpa.java | 24 +-
.../domain/GlobalConfigurationProperty.java | 10 +-
.../ConfigurationReadPlatformServiceImpl.java | 6 +-
.../core/api/ApiParameterHelper.java | 28 +-
.../infrastructure/core/api/JsonCommand.java | 67 +-
.../core/api/LocalDateTimeAdapter.java | 51 ++
.../infrastructure/core/api/MutableUriInfo.java | 147 ++++
.../core/api/OffsetDateTimeAdapter.java | 43 ++
.../core/auditing/CustomDateTimeProvider.java | 53 ++
.../core/auditing/JpaAuditingHandlerRegistrar.java | 34 +
.../EnableFineractEventListenerCondition.java | 43 ++
.../core/config/EnableFineractEventsCondition.java | 42 ++
.../core/config/FineractProperties.java | 15 +-
.../infrastructure/core/config/JPAConfig.java | 16 +-
.../infrastructure/core/config/SecurityConfig.java | 12 +-
.../core/data/ApiGlobalErrorResponse.java | 23 +-
.../core/data/ApiParameterError.java | 13 +-
.../core/data/CommandProcessingResult.java | 10 +-
.../core/data/DataValidatorBuilder.java | 186 ++---
.../core/domain/AbstractAuditableCustom.java | 51 +-
.../AbstractAuditableWithUTCDateTimeCustom.java | 108 +++
.../infrastructure/core/domain/ActionContext.java | 34 +
.../core/domain/AuditableFieldsConstants.java | 34 +
.../core/domain/AuditorAwareImpl.java | 18 +-
.../infrastructure/core/domain/ContextHolder.java | 24 +
.../core/domain/FineractContext.java | 37 +
.../infrastructure/core/domain/FineractEvent.java | 37 +
.../core/domain/FineractPlatformTenant.java | 4 +-
.../domain/FineractPlatformTenantConnection.java | 44 +-
.../infrastructure/core/domain/JdbcSupport.java | 33 +-
.../PlatformApiDataValidationException.java | 5 +
.../AccessDeniedExceptionMapper.java | 3 +
.../BadCredentialsExceptionMapper.java | 3 +
.../InvalidJsonExceptionMapper.java | 4 +-
.../InvalidTenantIdentifierExceptionMapper.java | 13 +-
.../exceptionmapper/JsonSyntaxExceptionMapper.java | 4 +-
.../MalformedJsonExceptionMapper.java | 4 +-
.../NoAuthorizationExceptionMapper.java | 3 +
.../exceptionmapper/OAuth2ExceptionEntryPoint.java | 4 +-
.../PlatformApiDataValidationExceptionMapper.java | 4 +-
.../PlatformDataIntegrityExceptionMapper.java | 4 +-
.../PlatformDomainRuleExceptionMapper.java | 4 +-
.../PlatformInternalServerExceptionMapper.java | 4 +-
.../PlatformResourceNotFoundExceptionMapper.java | 4 +-
.../PlatformServiceUnavailableExceptionMapper.java | 3 +
.../UnAuthenticatedUserExceptionMapper.java | 3 +
.../UnrecognizedQueryParamExceptionMapper.java | 4 +-
.../UnsupportedCommandExceptionMapper.java | 4 +-
.../UnsupportedParameterExceptionMapper.java | 4 +-
.../core/filters/CorrelationHeaderFilter.java | 84 +++
.../serialization/DefaultToApiJsonSerializer.java | 2 +-
.../core/serialization/FromJsonHelper.java | 20 +-
.../serialization/GoogleGsonSerializerHelper.java | 6 +
.../core/serialization/JsonParserHelper.java | 119 +++-
.../service/DataSourcePerTenantServiceFactory.java | 122 ++++
.../infrastructure/core/service/DateUtils.java | 88 +--
.../core/service/HikariDataSourceFactory.java | 31 +
.../infrastructure/core/service/MDCWrapper.java | 35 +
.../core/service/RoutingDataSource.java | 2 +
.../core/service/ThreadLocalContextUtil.java | 77 ++-
.../TomcatJdbcDataSourcePerTenantService.java | 44 +-
.../database/DatabaseSpecificSQLGenerator.java | 23 +-
.../creditbureau/domain/CreditBureauToken.java | 22 +-
...ureauConfigurationWritePlatformServiceImpl.java | 2 +-
...LoanProductMappingWritePlatformServiceImpl.java | 6 +-
.../CreditReportWritePlatformServiceImpl.java | 35 +-
...ationCreditBureauWritePlatflormServiceImpl.java | 4 +-
...tBureauIntegrationWritePlatformServiceImpl.java | 9 +-
.../dataqueries/api/DatatablesApiResource.java | 15 +-
.../api/DatatablesApiResourceSwagger.java | 58 +-
.../data/ResultsetColumnHeaderData.java | 10 +-
.../CreateDatatableEntryCommandHandler.java | 14 +-
.../service/GenericDataServiceImpl.java | 22 +-
.../service/ReadReportingServiceImpl.java | 54 +-
.../service/ReadWriteNonCoreDataServiceImpl.java | 133 ++--
.../documentmanagement/api/ImagesApiResource.java | 15 +-
.../ContentRepositoryFactory.java | 10 +-
.../contentrepository/S3ContentRepository.java | 21 +-
.../documentmanagement/data/ImageResizer.java | 2 +-
.../data/FineractEntityToEntityMappingData.java | 12 +-
.../domain/FineractEntityToEntityMapping.java | 26 +-
.../FineractEntityAccessReadServiceImpl.java | 13 +-
.../service/FineractEntityAccessUtil.java | 6 +-
.../FineractEntityAccessWriteServiceImpl.java | 8 +-
.../gcm/domain/DeviceRegistration.java | 13 +-
.../gcm/domain/DeviceRegistrationData.java | 9 +-
.../DeviceRegistrationReadPlatformServiceImpl.java | 9 +-
...DeviceRegistrationWritePlatformServiceImpl.java | 4 +-
.../gcm/service/NotificationSenderService.java | 48 +-
.../infrastructure/hooks/api/HookApiConstants.java | 8 +-
.../infrastructure/hooks/api/HookApiResource.java | 16 +-
.../fineract/infrastructure/hooks/data/Entity.java | 16 +-
.../fineract/infrastructure/hooks/data/Event.java | 19 +-
.../hooks/data/EventResultSetExtractor.java | 21 +-
.../fineract/infrastructure/hooks/data/Field.java | 31 +-
.../infrastructure/hooks/data/Grouping.java | 16 +-
.../infrastructure/hooks/data/HookData.java | 48 +-
.../hooks/data/HookTemplateData.java | 13 +-
.../fineract/infrastructure/hooks/domain/Hook.java | 4 +-
.../infrastructure/hooks/event/HookEvent.java | 40 +-
.../hooks/event/HookEventSource.java | 20 +-
.../hooks/handler/CreateHookCommandHandler.java | 9 +-
.../hooks/handler/DeleteHookCommandHandler.java | 10 +-
.../hooks/handler/UpdateHookCommandHandler.java | 10 +-
.../hooks/listener/FineractHookListener.java | 36 +-
.../processor/ElasticSearchHookProcessor.java | 22 +-
.../hooks/processor/HookProcessor.java | 5 +-
.../processor/MessageGatewayHookProcessor.java | 32 +-
.../hooks/processor/TwilioHookProcessor.java | 32 +-
.../hooks/processor/WebHookProcessor.java | 24 +-
.../HookCommandFromApiJsonDeserializer.java | 8 +-
.../hooks/service/HookReadPlatformServiceImpl.java | 56 +-
.../HookWritePlatformServiceJpaRepositoryImpl.java | 17 +-
.../api/FineractInstanceModeConstants.java | 31 +
.../instancemode/api/InstanceModeApiResource.java | 78 +++
.../api/InstanceModeApiResourceSwagger.java | 41 ++
.../filter/FineractInstanceModeApiFilter.java | 119 ++++
.../jobs/ScheduledJobRunnerConfig.java | 89 +++
.../jobs/annotation/CronMethodParser.java | 104 ---
.../infrastructure/jobs/annotation/CronTarget.java | 35 -
.../jobs/api/SchedulerJobApiResource.java | 51 +-
.../infrastructure/jobs/data/JobDetailData.java | 3 +-
.../infrastructure/jobs/service/JobName.java | 68 +-
.../jobs/service/JobRegisterService.java | 4 +
.../jobs/service/JobRegisterServiceImpl.java | 142 +---
.../jobs/service/JobSchedulerServiceImpl.java | 69 ++
.../infrastructure/jobs/service/JobStarter.java | 64 ++
.../jobs/service/SchedulerJobListener.java | 23 +-
.../service/SchedulerJobRunnerReadService.java | 2 +
.../service/SchedulerJobRunnerReadServiceImpl.java | 17 +-
.../jobs/service/SchedulerTriggerListener.java | 19 +-
.../ExecuteAllDirtyJobsConfig.java | 50 ++
.../ExecuteAllDirtyJobsTasklet.java | 52 ++
.../IncreaseDateBy1DayService.java | 26 +
.../IncreaseDateBy1DayServiceImpl.java | 67 ++
.../IncreaseBusinessDateBy1DayConfig.java | 57 ++
.../IncreaseBusinessDateBy1DayTasklet.java | 41 ++
.../IncreaseCobDateBy1DayConfig.java | 57 ++
.../IncreaseCobDateBy1DayTasklet.java | 41 ++
.../jobs/service/updatenpa/UpdateNpaConfig.java | 67 ++
.../jobs/service/updatenpa/UpdateNpaTasklet.java | 90 +++
.../reportmailingjob/domain/ReportMailingJob.java | 50 +-
.../domain/ReportMailingJobRunHistory.java | 34 +-
.../ReportMailingJobWritePlatformService.java | 3 -
.../ReportMailingJobWritePlatformServiceImpl.java | 300 +-------
.../util/ReportMailingJobDateUtil.java | 49 +-
.../security/constants/TenantConstants.java | 33 +
.../security/domain/TFAccessToken.java | 26 +-
.../InvalidInstanceTypeMethodException.java | 33 +
.../exception/InvalidTenantIdentiferException.java | 37 -
.../InvalidTenantIdentifierException.java | 37 +
.../TenantAwareBasicAuthenticationFilter.java | 16 +-
.../filter/TenantAwareTenantIdentifierFilter.java | 44 +-
.../service/BasicAuthTenantDetailsServiceJdbc.java | 94 +--
.../security/service/JdbcTenantDetailsService.java | 91 +--
.../SpringSecurityPlatformSecurityContext.java | 13 +-
.../security/service/TenantMapper.java | 124 ++++
.../security/utils/LogParameterEscapeUtil.java | 32 +
.../infrastructure/sms/api/SmsApiResource.java | 30 +-
.../infrastructure/sms/domain/SmsMessage.java | 20 +-
.../scheduler/SmsMessageScheduledJobService.java | 10 -
.../SmsMessageScheduledJobServiceImpl.java | 231 +------
.../sms/service/SmsReadPlatformService.java | 5 +-
.../sms/service/SmsReadPlatformServiceImpl.java | 16 +-
.../survey/service/ReadSurveyServiceImpl.java | 11 +-
.../interoperation/data/InteropRequestData.java | 12 +-
.../interoperation/domain/InteropIdentifier.java | 20 +-
.../interoperation/service/InteropServiceImpl.java | 28 +-
.../notification/api/NotificationApiResource.java | 33 +-
.../api/NotificationApiResourceSwagger.java | 68 ++
.../config/MessagingConfiguration.java | 8 +-
.../notification/data/NotificationData.java | 104 +--
.../fineract/notification/data/TopicData.java | 74 --
.../notification/data/TopicSubscriberData.java | 61 --
.../fineract/notification/domain/Notification.java | 5 +-
.../notification/domain/NotificationMapper.java | 5 +-
.../apache/fineract/notification/domain/Topic.java | 121 ----
.../notification/domain/TopicRepository.java | 30 -
.../notification/domain/TopicSubscriber.java | 77 ---
.../domain/TopicSubscriberRepository.java | 29 -
.../ActiveMQNotificationEventListener.java | 48 ++
.../ActiveMQNotificationEventPublisher.java | 44 ++
.../eventandlistener/NotificationEvent.java | 39 ++
.../NotificationEventListener.java | 67 +-
.../NotificationEventPublisher.java | 26 +
.../eventandlistener/NotificationEventService.java | 50 --
.../notification/eventandlistener/SpringEvent.java | 38 --
.../eventandlistener/SpringEventListener.java | 84 ---
.../eventandlistener/SpringEventPublisher.java | 36 -
.../SpringNotificationEventListener.java | 44 ++
.../SpringNotificationEventPublisher.java | 44 ++
.../exception/TopicNotFoundException.java | 37 -
.../service/NotificationDomainServiceImpl.java | 447 +++++-------
...ificationGeneratorWritePlatformServiceImpl.java | 8 +-
.../NotificationReadPlatformServiceImpl.java | 25 +-
.../service/NotificationWritePlatformService.java | 4 +-
.../NotificationWritePlatformServiceImpl.java | 42 +-
.../notification/service/TopicDomainService.java | 44 --
.../service/TopicDomainServiceImpl.java | 248 -------
.../service/TopicReadPlatformService.java | 32 -
.../service/TopicReadPlatformServiceImpl.java | 96 ---
.../TopicSubscriberReadPlatformService.java | 28 -
.../TopicSubscriberReadPlatformServiceImpl.java | 77 ---
.../TopicSubscriberWritePlatformService.java | 27 -
...riberWritePlatformServiceJpaRepositoryImpl.java | 42 --
.../service/TopicWritePlatformService.java | 27 -
...TopicWritePlatformServiceJpaRepositoryImpl.java | 42 --
.../holiday/api/HolidaysApiResource.java | 6 +-
.../organisation/holiday/domain/Holiday.java | 47 +-
.../holiday/domain/HolidayRepository.java | 4 +-
.../holiday/domain/HolidayRepositoryWrapper.java | 7 +-
.../service/HolidayReadPlatformService.java | 4 +-
.../service/HolidayReadPlatformServiceImpl.java | 10 +-
.../monetary/api/CurrenciesApiResourceSwagger.java | 4 +-
.../organisation/office/domain/Office.java | 19 +-
.../office/domain/OfficeTransaction.java | 9 +-
...fficeWritePlatformServiceJpaRepositoryImpl.java | 32 +-
.../provisioning/domain/ProvisioningCriteria.java | 15 +-
.../service/ProvisioningCriteriaAssembler.java | 4 +-
.../fineract/organisation/staff/domain/Staff.java | 14 +-
.../teller/api/CashierApiResource.java | 6 +-
.../organisation/teller/api/TellerApiResource.java | 16 +-
.../teller/api/TellerApiResourceSwagger.java | 18 +-
.../organisation/teller/data/CashierData.java | 14 +-
.../teller/data/CashierTransactionData.java | 31 +-
.../data/CashierTransactionDataValidator.java | 9 +-
.../teller/data/TellerJournalData.java | 10 +-
.../teller/data/TellerTransactionData.java | 10 +-
.../organisation/teller/domain/Cashier.java | 49 +-
.../teller/domain/CashierTransaction.java | 28 +-
.../organisation/teller/domain/Teller.java | 51 +-
.../teller/domain/TellerTransaction.java | 11 +-
.../TellerManagementReadPlatformService.java | 22 +-
.../TellerManagementReadPlatformServiceImpl.java | 42 +-
.../organisation/teller/util/DateRange.java | 44 +-
.../api/StandingInstructionApiResource.java | 6 +-
.../api/StandingInstructionHistoryApiResource.java | 6 +-
.../account/data/StandingInstructionDTO.java | 14 +-
.../domain/AccountTransferStandingInstruction.java | 40 +-
.../account/domain/AccountTransferTransaction.java | 9 +-
.../CreateAccountTransferCommandHandler.java | 8 +-
.../handler/RefundByTransferCommandHandler.java | 8 +-
.../ExecuteStandingInstructionsConfig.java | 67 ++
.../ExecuteStandingInstructionsTasklet.java | 166 +++++
.../AccountTransfersReadPlatformService.java | 3 +-
.../AccountTransfersReadPlatformServiceImpl.java | 7 +-
.../AccountTransfersWritePlatformServiceImpl.java | 2 +-
.../PortfolioAccountReadPlatformServiceImpl.java | 10 +-
...gInstructionHistoryReadPlatformServiceImpl.java | 9 +-
...StandingInstructionReadPlatformServiceImpl.java | 11 +-
.../StandingInstructionWritePlatformService.java | 3 -
...tandingInstructionWritePlatformServiceImpl.java | 167 +----
...etailsReadPlatformServiceJpaRepositoryImpl.java | 6 +-
.../portfolio/address/data/AddressData.java | 21 +-
.../fineract/portfolio/address/domain/Address.java | 18 +-
.../service/AddressReadPlatformServiceImpl.java | 16 +-
.../service/AddressWritePlatformServiceImpl.java | 14 +-
.../businessevent/BusinessEventListener.java | 35 +
.../domain/AbstractBusinessEvent.java | 32 +
.../businessevent/domain/BusinessEvent.java | 24 +
.../domain/client/ClientActivateBusinessEvent.java | 28 +
.../domain/client/ClientBusinessEvent.java | 29 +
.../domain/client/ClientCreateBusinessEvent.java | 28 +
.../domain/client/ClientRejectBusinessEvent.java | 28 +
.../deposit/FixedDepositAccountBusinessEvent.java | 29 +
.../FixedDepositAccountCreateBusinessEvent.java | 28 +
.../RecurringDepositAccountBusinessEvent.java | 29 +
...RecurringDepositAccountCreateBusinessEvent.java | 28 +
.../domain/group/CentersCreateBusinessEvent.java | 28 +
.../domain/group/GroupsBusinessEvent.java | 29 +
.../domain/group/GroupsCreateBusinessEvent.java | 28 +
.../loan/LoanAcceptTransferBusinessEvent.java | 28 +
.../loan/LoanAdjustTransactionBusinessEvent.java | 41 ++
.../loan/LoanApplyOverdueChargeBusinessEvent.java | 28 +
.../domain/loan/LoanApprovedBusinessEvent.java | 28 +
.../domain/loan/LoanBusinessEvent.java | 29 +
.../loan/LoanCloseAsRescheduleBusinessEvent.java | 28 +
.../domain/loan/LoanCloseBusinessEvent.java | 28 +
.../domain/loan/LoanCreatedBusinessEvent.java | 28 +
.../domain/loan/LoanDisbursalBusinessEvent.java | 28 +
.../loan/LoanInitiateTransferBusinessEvent.java | 28 +
.../LoanInterestRecalculationBusinessEvent.java | 28 +
.../loan/LoanReassignOfficerBusinessEvent.java | 28 +
.../loan/LoanRejectTransferBusinessEvent.java | 28 +
.../domain/loan/LoanRejectedBusinessEvent.java | 28 +
.../loan/LoanRemoveOfficerBusinessEvent.java | 28 +
.../domain/loan/LoanUndoApprovalBusinessEvent.java | 28 +
.../loan/LoanUndoDisbursalBusinessEvent.java | 28 +
.../loan/LoanUndoLastDisbursalBusinessEvent.java | 28 +
.../loan/LoanWithdrawTransferBusinessEvent.java | 28 +
.../loan/charge/LoanAddChargeBusinessEvent.java | 28 +
.../loan/charge/LoanChargeBusinessEvent.java | 29 +
.../loan/charge/LoanDeleteChargeBusinessEvent.java | 28 +
.../loan/charge/LoanUpdateChargeBusinessEvent.java | 28 +
.../loan/charge/LoanWaiveChargeBusinessEvent.java | 28 +
.../charge/LoanWaiveChargeUndoBusinessEvent.java | 28 +
.../loan/product/LoanProductBusinessEvent.java | 29 +
.../product/LoanProductCreateBusinessEvent.java | 28 +
.../LoanChargePaymentPostBusinessEvent.java | 28 +
.../LoanChargePaymentPreBusinessEvent.java | 29 +
.../LoanCreditBalanceRefundPostBusinessEvent.java | 28 +
.../LoanCreditBalanceRefundPreBusinessEvent.java | 29 +
.../LoanForeClosurePostBusinessEvent.java | 28 +
.../LoanForeClosurePreBusinessEvent.java | 29 +
.../transaction/LoanRefundPostBusinessEvent.java | 28 +
.../transaction/LoanRefundPreBusinessEvent.java | 29 +
.../transaction/LoanTransactionBusinessEvent.java | 29 +
...TransactionGoodwillCreditPostBusinessEvent.java | 28 +
...nTransactionGoodwillCreditPreBusinessEvent.java | 29 +
...nTransactionMakeRepaymentPostBusinessEvent.java | 28 +
...anTransactionMakeRepaymentPreBusinessEvent.java | 29 +
...ctionMerchantIssuedRefundPostBusinessEvent.java | 28 +
...actionMerchantIssuedRefundPreBusinessEvent.java | 29 +
...anTransactionPayoutRefundPostBusinessEvent.java | 28 +
...oanTransactionPayoutRefundPreBusinessEvent.java | 29 +
...ransactionRecoveryPaymentPostBusinessEvent.java | 28 +
...TransactionRecoveryPaymentPreBusinessEvent.java | 29 +
.../LoanUndoWrittenOffBusinessEvent.java | 28 +
.../LoanWaiveInterestBusinessEvent.java | 28 +
.../LoanWrittenOffPostBusinessEvent.java | 28 +
.../LoanWrittenOffPreBusinessEvent.java | 29 +
.../savings/SavingsAccountBusinessEvent.java | 29 +
.../savings/SavingsActivateBusinessEvent.java | 28 +
.../savings/SavingsApproveBusinessEvent.java | 28 +
.../domain/savings/SavingsCloseBusinessEvent.java | 28 +
.../domain/savings/SavingsCreateBusinessEvent.java | 28 +
.../savings/SavingsPostInterestBusinessEvent.java | 28 +
.../domain/savings/SavingsRejectBusinessEvent.java | 28 +
.../SavingsAccountTransactionBusinessEvent.java | 29 +
.../transaction/SavingsDepositBusinessEvent.java | 28 +
.../SavingsWithdrawalBusinessEvent.java | 28 +
.../share/ShareAccountApproveBusinessEvent.java | 28 +
.../domain/share/ShareAccountBusinessEvent.java | 29 +
.../share/ShareAccountCreateBusinessEvent.java | 28 +
.../ShareProductDividentsCreateBusinessEvent.java | 28 +
.../service/BusinessEventNotifierService.java | 50 ++
.../service/BusinessEventNotifierServiceImpl.java | 76 +++
.../portfolio/calendar/domain/Calendar.java | 77 +--
.../portfolio/calendar/domain/CalendarHistory.java | 26 +-
.../CalendarCommandFromApiJsonDeserializer.java | 12 +-
.../service/CalendarReadPlatformServiceImpl.java | 4 +-
.../portfolio/calendar/service/CalendarUtils.java | 66 +-
...endarWritePlatformServiceJpaRepositoryImpl.java | 6 +-
.../charge/api/ChargesApiResourceSwagger.java | 4 +
.../portfolio/client/api/ClientsApiResource.java | 7 +-
.../client/api/ClientsApiResourceSwagger.java | 7 +-
.../api/InternalClientInformationApiResource.java | 88 +++
.../portfolio/client/data/ClientDataValidator.java | 8 +-
.../fineract/portfolio/client/domain/Client.java | 171 ++---
.../portfolio/client/domain/ClientCharge.java | 23 +-
.../client/domain/ClientFamilyMembers.java | 15 +-
.../portfolio/client/domain/ClientNonPerson.java | 25 +-
.../portfolio/client/domain/ClientTransaction.java | 58 +-
.../client/domain/ClientTransferDetails.java | 16 +-
...FamilyMemberCommandFromApiJsonDeserializer.java | 7 +-
.../ClientAddressReadPlatformServiceImpl.java | 2 +-
.../ClientChargeReadPlatformServiceImpl.java | 7 +-
...hargeWritePlatformServiceJpaRepositoryImpl.java | 21 +-
...ClientFamilyMembersReadPlatformServiceImpl.java | 4 +-
...lientFamilyMembersWritePlatformServiceImpl.java | 95 +--
.../ClientIdentifierReadPlatformServiceImpl.java | 4 +-
.../client/service/ClientReadPlatformService.java | 4 +-
.../service/ClientReadPlatformServiceImpl.java | 25 +-
.../ClientTransactionReadPlatformServiceImpl.java | 8 +-
...lientWritePlatformServiceJpaRepositoryImpl.java | 59 +-
.../data/LoanTransactionData.java | 8 +-
.../CollectionSheetTransactionDataValidator.java | 2 +-
.../CollectionSheetReadPlatformServiceImpl.java | 14 +-
.../common/BusinessEventNotificationConstants.java | 132 ----
.../common/service/BusinessEventListener.java | 41 --
.../service/BusinessEventNotifierService.java | 51 --
.../service/BusinessEventNotifierServiceImpl.java | 103 ---
.../floatingrates/data/FloatingRateData.java | 14 +-
.../floatingrates/data/FloatingRatePeriodData.java | 20 +-
.../floatingrates/data/InterestRatePeriodData.java | 14 +-
.../floatingrates/domain/FloatingRate.java | 84 +--
.../floatingrates/domain/FloatingRatePeriod.java | 83 +--
.../serialization/FloatingRateDataValidator.java | 2 +-
.../FloatingRateWritePlatformServiceImpl.java | 14 +-
.../FloatingRatesReadPlatformServiceImpl.java | 38 +-
.../portfolio/group/api/CentersApiResource.java | 3 +-
.../fineract/portfolio/group/domain/Group.java | 48 +-
.../portfolio/group/domain/GroupRepository.java | 4 +-
.../group/domain/GroupRepositoryWrapper.java | 8 +-
.../group/domain/StaffAssignmentHistory.java | 21 +-
.../group/service/CenterReadPlatformService.java | 4 +-
.../service/CenterReadPlatformServiceImpl.java | 15 +-
.../service/GroupReadPlatformServiceImpl.java | 9 +-
...TypesWritePlatformServiceJpaRepositoryImpl.java | 74 +-
.../domain/InterestRateChartFields.java | 38 +-
.../ClientAttributeIncentiveCalculation.java | 8 +-
.../api/InternalLoanInformationApiResource.java | 111 +++
.../loanaccount/api/LoanApiConstants.java | 5 +
.../api/LoanTransactionsApiResource.java | 18 +-
.../api/LoanTransactionsApiResourceSwagger.java | 19 +-
.../loanaccount/api/LoansApiResource.java | 18 +-
.../loanaccount/api/LoansApiResourceSwagger.java | 755 ++++++++++++++++++---
.../loanaccount/data/LoanScheduleAccrualData.java | 6 +-
.../portfolio/loanaccount/domain/Loan.java | 659 +++++++++---------
.../domain/LoanAccountDomainServiceJpa.java | 199 +++---
.../portfolio/loanaccount/domain/LoanCharge.java | 28 +-
.../domain/LoanDisbursementDetails.java | 40 +-
...LoanInterestRecalcualtionAdditionalDetails.java | 12 +-
.../domain/LoanOfficerAssignmentHistory.java | 28 +-
.../domain/LoanRepaymentScheduleInstallment.java | 51 +-
.../LoanRepaymentScheduleProcessingWrapper.java | 2 +-
.../loanaccount/domain/LoanRepository.java | 10 +-
.../loanaccount/domain/LoanRepositoryWrapper.java | 12 +-
.../loanaccount/domain/LoanTermVariations.java | 42 +-
.../loanaccount/domain/LoanTransaction.java | 212 +++---
.../guarantor/command/GuarantorCommand.java | 6 +-
.../loanaccount/guarantor/domain/Guarantor.java | 19 +-
.../service/GuarantorDomainServiceImpl.java | 189 ++----
.../service/GuarantorReadPlatformServiceImpl.java | 14 +-
...ntorWritePlatformServiceJpaRepositoryIImpl.java | 5 +-
.../handler/AddLoanChargeCommandHandler.java | 25 +-
.../handler/CreditBalanceRefundCommandHandler.java | 26 +-
.../handler/DisburseLoanCommandHandler.java | 12 +-
.../GLIMApplicationRejectionCommandHandler.java | 8 +-
.../handler/GLIMBulkRepaymentCommandHandler.java | 8 +-
.../GLIMLoanApplicationApprovalCommandHandler.java | 8 +-
.../GlimLoanApplicationDisburseCommandHandler.java | 8 +-
.../LoanApplicationApprovalCommandHandler.java | 8 +-
.../LoanApplicationApprovalUndoCommandHandler.java | 8 +-
.../LoanApplicationDeletionCommandHandler.java | 8 +-
.../LoanApplicationModificationCommandHandler.java | 8 +-
.../LoanApplicationRejectedCommandHandler.java | 8 +-
.../LoanApplicationSubmittalCommandHandler.java | 8 +-
...licationWithdrawnByApplicantCommandHandler.java | 8 +-
.../handler/LoanGoodwilCreditCommandHandler.java | 45 --
.../handler/LoanGoodwillCreditCommandHandler.java | 55 ++
.../LoanMerchantIssuedRefundCommandHandler.java | 16 +-
.../handler/LoanPayoutRefundCommandHandler.java | 16 +-
.../handler/LoanRecoveryPaymentCommandHandler.java | 8 +-
.../handler/LoanRefundByCashCommandHandler.java | 8 +-
.../LoanRepaymentAdjustmentCommandHandler.java | 8 +-
.../handler/LoanRepaymentCommandHandler.java | 15 +-
.../LoanScheduleCreateVariationCommandHandler.java | 8 +-
.../LoanScheduleDeleteVariationCommandHandler.java | 8 +-
.../handler/PayLoanChargeCommandHandler.java | 8 +-
.../RecoverFromGuarantorCommandHandler.java | 8 +-
.../handler/RemoveLoanOfficerCommandHandler.java | 8 +-
.../handler/UndoDisbursalLoanCommandHandler.java | 8 +-
.../handler/UndoGLIMLoanApplicationApproval.java | 8 +-
.../UndoGLIMLoanDisbursalCommandHandler.java | 8 +-
.../UndoLastDisbursalLoanCommandHandler.java | 8 +-
.../handler/UndoLoanChargeWaiveCommandHandler.java | 8 +-
.../handler/UndoWriteOffLoanCommandHandler.java | 8 +-
.../handler/UpdateLoanChargeCommandHandler.java | 8 +-
.../UpdateLoanDisbuseDateCommandHandler.java | 8 +-
.../handler/UpdateLoanOfficerCommandHandler.java | 8 +-
.../WaiveInterestPortionOnLoanCommandHandler.java | 8 +-
.../handler/WaiveLoanChargeCommandHandler.java | 8 +-
.../handler/WriteOffLoanCommandHandler.java | 8 +-
.../addaccrualentries/AddAccrualEntriesConfig.java | 50 ++
.../AddAccrualEntriesTasklet.java | 74 ++
.../AddPeriodicAccrualEntriesConfig.java | 57 ++
.../AddPeriodicAccrualEntriesTasklet.java | 52 ++
.../AddPeriodicAccrualEntriesForLoansConfig.java | 62 ++
.../AddPeriodicAccrualEntriesForLoansTasklet.java | 61 ++
.../ApplyChargeToOverdueLoanInstallmentConfig.java | 66 ++
...ApplyChargeToOverdueLoanInstallmentTasklet.java | 95 +++
.../ApplyHolidaysToLoansConfig.java | 67 ++
.../ApplyHolidaysToLoansTasklet.java | 83 +++
.../GenerateLoanlossProvisioningConfig.java | 60 ++
.../GenerateLoanlossProvisioningTasklet.java | 62 ++
...ovisioningCriteriaDefinitionFoundException.java | 21 +
.../RecalculateInterestForLoanConfig.java | 72 ++
.../RecalculateInterestForLoanTasklet.java | 228 +++++++
.../TransferFeeChargeForLoansConfig.java | 65 ++
.../TransferFeeChargeForLoansTasklet.java | 110 +++
.../UpdateLoanArrearsAgeingConfig.java | 64 ++
.../UpdateLoanArrearsAgeingTasklet.java | 130 ++++
.../loanschedule/data/LoanSchedulePeriodData.java | 6 +-
.../domain/AbstractLoanScheduleGenerator.java | 76 ++-
.../domain/DefaultScheduledDateGenerator.java | 2 +-
.../loanschedule/domain/LoanApplicationTerms.java | 35 +-
.../domain/LoanRepaymentScheduleHistory.java | 42 +-
.../service/LoanScheduleAssembler.java | 36 +-
...LoanScheduleCalculationPlatformServiceImpl.java | 2 +-
...LoanScheduleHistoryReadPlatformServiceImpl.java | 8 +-
...oanScheduleHistoryWritePlatformServiceImpl.java | 25 +-
.../LoanScheduleWritePlatformServiceImpl.java | 4 +-
.../api/RescheduleLoansApiResource.java | 24 +
.../api/RescheduleLoansApiResourceSwagger.java | 221 ++++++
.../domain/LoanRescheduleRequest.java | 66 +-
.../LoanReschedulePreviewPlatformServiceImpl.java | 5 +-
...anRescheduleRequestReadPlatformServiceImpl.java | 14 +-
...nRescheduleRequestWritePlatformServiceImpl.java | 52 +-
.../service/BulkLoansReadPlatformServiceImpl.java | 4 +-
.../GLIMAccountInfoReadPlatformServiceImpl.java | 12 +-
.../service/LoanAccrualPlatformService.java | 7 -
.../service/LoanAccrualPlatformServiceImpl.java | 99 +--
.../LoanAccrualWritePlatformServiceImpl.java | 243 +++----
...ationWritePlatformServiceJpaRepositoryImpl.java | 51 +-
.../service/LoanArrearsAgingService.java | 11 +-
.../service/LoanArrearsAgingServiceImpl.java | 372 +++++-----
.../loanaccount/service/LoanAssembler.java | 17 +-
.../LoanChargePaidByReadPlatformServiceImpl.java | 2 +-
.../service/LoanChargeReadPlatformServiceImpl.java | 23 +-
.../service/LoanReadPlatformService.java | 3 +-
.../service/LoanReadPlatformServiceImpl.java | 289 ++++----
.../loanaccount/service/LoanSchedularService.java | 31 -
.../service/LoanSchedularServiceImpl.java | 312 ---------
.../loanaccount/service/LoanUtilService.java | 16 +-
.../service/LoanWritePlatformService.java | 5 -
.../LoanWritePlatformServiceJpaRepositoryImpl.java | 541 +++++----------
.../api/LoanProductsApiResourceSwagger.java | 171 ++++-
.../portfolio/loanproduct/domain/LoanProduct.java | 46 +-
.../service/ProductMixReadPlatformServiceImpl.java | 4 +-
.../serialization/LoanProductDataValidator.java | 12 +-
.../LoanProductReadPlatformServiceImpl.java | 4 +-
...oductWritePlatformServiceJpaRepositoryImpl.java | 32 +-
.../portfolio/meeting/api/MeetingsApiResource.java | 2 +-
.../fineract/portfolio/meeting/domain/Meeting.java | 36 +-
.../meeting/domain/MeetingRepository.java | 4 +-
...etingWritePlatformServiceJpaRepositoryImpl.java | 13 +-
.../domain/PostDatedChecks.java | 11 +-
.../api/SavingsAccountTransactionsApiResource.java | 8 +
...vingsAccountTransactionsApiResourceSwagger.java | 9 +
.../savings/data/DepositProductDataValidator.java | 24 +-
.../portfolio/savings/data/SavingsAccountData.java | 23 +-
.../savings/data/SavingsAccountSummaryData.java | 44 +-
.../savings/data/SavingsAccountTransactionDTO.java | 11 +-
.../data/SavingsAccountTransactionData.java | 46 +-
.../SavingsAccountTransactionDataValidator.java | 13 +-
.../savings/domain/DepositAccountAssembler.java | 5 +-
.../domain/DepositAccountDomainServiceJpa.java | 6 +-
.../domain/DepositAccountOnHoldTransaction.java | 21 +-
.../domain/DepositAccountRecurringDetail.java | 2 +-
.../domain/DepositAccountTermAndPreClosure.java | 38 +-
.../savings/domain/FixedDepositAccount.java | 53 +-
.../savings/domain/RecurringDepositAccount.java | 64 +-
.../RecurringDepositScheduleInstallment.java | 34 +-
.../portfolio/savings/domain/SavingsAccount.java | 417 ++++++------
.../savings/domain/SavingsAccountAssembler.java | 34 +-
.../savings/domain/SavingsAccountCharge.java | 45 +-
.../domain/SavingsAccountChargeRepository.java | 6 +-
.../SavingsAccountChargeRepositoryWrapper.java | 4 +-
.../domain/SavingsAccountDomainService.java | 3 +-
.../domain/SavingsAccountDomainServiceJpa.java | 113 +--
.../domain/SavingsAccountRepositoryWrapper.java | 11 +-
.../savings/domain/SavingsAccountSummary.java | 71 +-
.../savings/domain/SavingsAccountTransaction.java | 150 ++--
.../SavingsAccountTransactionComparator.java | 2 +-
.../SavingsAccountTransactionRepository.java | 13 +-
.../SavingsAccountTransactionSummaryWrapper.java | 47 +-
.../portfolio/savings/domain/SavingsHelper.java | 3 +-
.../domain/SavingsOfficerAssignmentHistory.java | 30 +-
.../savings/domain/interest/PostingPeriod.java | 11 +-
...rseTransactionSavingsAccountCommandHandler.java | 2 +-
.../ApplyAnnualFeeForSavingsConfig.java | 61 ++
.../ApplyAnnualFeeForSavingsTasklet.java | 65 ++
.../GenerateAdhocClientScheduleConfig.java | 60 ++
.../GenerateAdhocClientScheduleTasklet.java | 103 +++
.../GenerateRdScheduleConfig.java | 59 ++
.../GenerateRdScheduleTasklet.java | 100 +++
.../PayDueSavingsChargesConfig.java | 61 ++
.../PayDueSavingsChargesTasklet.java | 71 ++
.../PostInterestForSavingConfig.java | 74 ++
.../PostInterestForSavingTasklet.java | 236 +++++++
.../TransferInterestToSavingsConfig.java | 61 ++
.../TransferInterestToSavingsTasklet.java | 66 ++
...UpdateDepositsAccountMaturityDetailsConfig.java | 62 ++
...pdateDepositsAccountMaturityDetailsTasklet.java | 67 ++
.../UpdateSavingsDormantAccountsConfig.java | 50 ++
.../UpdateSavingsDormantAccountsTasklet.java | 68 ++
.../DepositAccountReadPlatformServiceImpl.java | 4 +-
.../DepositAccountWritePlatformService.java | 3 -
...countWritePlatformServiceJpaRepositoryImpl.java | 182 ++---
...ocessWritePlatformServiceJpaRepositoryImpl.java | 39 +-
...avingsAccountChargeReadPlatformServiceImpl.java | 14 +-
.../SavingsAccountInterestPostingServiceImpl.java | 60 +-
.../SavingsAccountReadPlatformServiceImpl.java | 37 +-
.../SavingsAccountWritePlatformService.java | 3 +-
...countWritePlatformServiceJpaRepositoryImpl.java | 154 +++--
...ocessWritePlatformServiceJpaRepositoryImpl.java | 93 +--
.../service/SavingsSchedularInterestPoster.java | 196 +++---
.../savings/service/SavingsSchedularService.java | 30 -
.../service/SavingsSchedularServiceImpl.java | 291 --------
.../search/data/AdHocQueryDataValidator.java | 4 +-
.../service/SearchReadPlatformServiceImpl.java | 20 +-
.../self/loanaccount/api/SelfLoansApiResource.java | 11 +-
.../api/SelfLoansApiResourceSwagger.java | 150 ++--
.../domain/SelfServiceRegistration.java | 12 +-
.../data/ShareAccountDividendData.java | 6 +-
.../shareaccounts/domain/ShareAccount.java | 46 +-
.../domain/ShareAccountTransaction.java | 23 +-
.../PostDividentsForSharesConfig.java | 61 ++
.../PostDividentsForSharesTasklet.java | 79 +++
.../serialization/ShareAccountDataSerializer.java | 85 +--
.../ShareAccountReadPlatformServiceImpl.java | 11 +-
.../service/ShareAccountSchedularServiceImpl.java | 5 +-
...countWritePlatformServiceJpaRepositoryImpl.java | 30 +-
.../data/ShareProductMarketPriceData.java | 8 +-
.../shareproducts/domain/ShareProduct.java | 31 +-
.../domain/ShareProductDividendPayOutDetails.java | 20 +-
.../domain/ShareProductMarketPrice.java | 13 +-
.../serialization/ShareProductDataSerializer.java | 38 +-
.../service/ShareProductDividendAssembler.java | 5 +-
.../ShareProductReadPlatformServiceImpl.java | 6 +-
...oductWritePlatformServiceJpaRepositoryImpl.java | 47 +-
.../portfolio/tax/domain/TaxComponent.java | 25 +-
.../portfolio/tax/domain/TaxComponentHistory.java | 27 +-
.../portfolio/tax/domain/TaxGroupMappings.java | 44 +-
.../portfolio/tax/serialization/TaxValidator.java | 4 +-
.../portfolio/tax/service/TaxAssembler.java | 4 +-
.../transfer/api/TransferApiConstants.java | 12 +-
...nsferWritePlatformServiceJpaRepositoryImpl.java | 18 +-
.../service/ScheduledJobRunnerService.java | 44 --
.../service/ScheduledJobRunnerServiceImpl.java | 526 --------------
.../apache/fineract/spm/data/ScorecardValue.java | 13 +-
.../org/apache/fineract/spm/data/SurveyData.java | 16 +-
.../org/apache/fineract/spm/domain/Scorecard.java | 11 +-
.../org/apache/fineract/spm/domain/Survey.java | 18 +-
.../fineract/spm/domain/SurveyRepository.java | 6 +-
.../service/ScorecardReadPlatformServiceImpl.java | 9 +-
.../apache/fineract/spm/service/SpmService.java | 38 +-
.../apache/fineract/spm/util/ScorecardMapper.java | 4 +-
.../template/domain/TemplateFunctions.java | 11 +-
.../api/UsersApiResourceSwagger.java | 7 +-
.../useradministration/domain/AppUser.java | 50 +-
.../domain/AppUserPreviousPassword.java | 9 +-
.../domain/AppUserRepository.java | 3 +
...pUserWritePlatformServiceJpaRepositoryImpl.java | 43 +-
.../RoleWritePlatformServiceJpaRepositoryImpl.java | 33 +-
.../src/main/resources/application.properties | 14 +-
.../tenant-store/changelog-tenant-store.xml | 2 +
.../parts/0004_readonly_database_connection.xml | 45 ++
.../parts/0005_jdbc_connection_string.xml | 30 +
.../db/changelog/tenant/changelog-tenant.xml | 12 +
.../changelog/tenant/parts/0013_remove_topics.xml | 27 +
.../tenant/parts/0014_remove_unused_jobs.xml | 39 ++
.../tenant/parts/0015_add_business_date.xml | 123 ++++
.../0016_changed_unique_constraint_of_ref_no.xml | 31 +
.../tenant/parts/0017_fix_stretchy_reports.xml | 67 ++
.../tenant/parts/0018_pentaho_reports_to_table.xml | 253 +++++++
.../parts/0019_refactor_loan_transaction.xml | 59 ++
.../tenant/parts/0020_add_audit_entries.xml | 141 ++++
.../parts/0021_add_spring_batch_db_structure.xml | 210 ++++++
...add_batch_business_step_configuration_table.xml | 48 ++
.../0023_use_the_proper_date_or_datetime_type.xml | 41 ++
.../tenant/parts/0024_add_audit_entries.xml | 241 +++++++
.../src/main/resources/logback-spring.xml | 1 +
.../org/apache/fineract/TestConfiguration.java | 56 +-
.../test/java/org/apache/fineract/TestSuite.java | 4 +-
.../batch/command/CommandStrategyProviderTest.java | 145 ++++
...teLoanRescheduleRequestCommandStrategyTest.java | 113 +++
.../CreateTransactionLoanCommandStrategyTest.java | 119 ++++
...atableEntryByAppTableIdCommandStrategyTest.java | 160 +++++
.../internal/GetLoanByIdCommandStrategyTest.java | 144 ++++
.../GetTransactionByIdCommandStrategyTest.java | 126 ++++
.../businessdate/api/BusinessDateApiTest.java | 163 +++++
.../businessdate/data/BusinessDataSerialized.java | 63 ++
.../businessdate/data/BusinessDataTypeTest.java | 37 +
.../mapper/BusinessDateMapperTest.java | 56 ++
.../BusinessDateReadPlatformServiceTest.java | 96 +++
.../BusinessDateWritePlatformServiceTest.java | 272 ++++++++
.../validator/BusinessDateValidatorTest.java | 120 ++++
.../DataSourcePerTenantServiceFactoryTest.java | 235 +++++++
.../core/InstanceTypeStepDefinitions.java | 7 +-
.../core/auditing/CustomDateTimeProviderTest.java | 71 ++
.../EnableFineractEventListenerConditionTest.java | 102 +++
.../core/filters/CorrelationHeaderFilterTest.java | 131 ++++
.../infrastructure/core/service/DateUtilsTest.java | 88 +++
.../instancemode/InstanceModeMock.java | 38 ++
.../filter/FineractInstanceModeApiFilterTest.java | 247 +++++++
.../security/utils/LogParameterEscapeUtilTest.java | 51 ++
.../portfolio/loanaccount/domain/LoanTest.java | 88 +++
.../data/auditing/CustomAuditingHandlerTest.java | 116 ++++
.../src/test/resources/application-test.properties | 5 +
.../infrastructure/infrastructure.core.feature | 2 +-
.../infrastructure.security.utils.feature | 32 +
gradle/wrapper/gradle-wrapper.jar | Bin 59821 -> 60756 bytes
gradle/wrapper/gradle-wrapper.properties | 2 +-
gradlew | 6 +
gradlew.bat | 14 +-
instancemode-tests/build.gradle | 113 +++
instancemode-tests/dependencies.gradle | 43 ++
.../integrationtests/BatchInstanceModeTest.java | 199 ++++++
.../src/test/resources/cucumber.properties | 0
.../src/test/resources/junit-platform.properties | 0
.../test/resources/michael.vorburger-crepes.jpg | Bin
integration-tests/build.gradle | 9 +-
integration-tests/dependencies.gradle | 3 +-
.../AccountingScenarioIntegrationTest.java | 65 +-
.../integrationtests/AuditIntegrationTest.java | 17 +
.../fineract/integrationtests/BatchApiTest.java | 582 +++++++++++++++-
.../integrationtests/CenterIntegrationTest.java | 25 +
.../ClientAuditingIntegrationTest.java | 133 ++++
...lanceRefundandRepaymentTypeIntegrationTest.java | 93 ++-
.../ClientLoanIntegrationTest.java | 53 +-
...ntLoanMultipleDisbursementsIntegrationTest.java | 4 -
...rancheMultipleDisbursementsIntegrationTest.java | 245 +++++++
.../ClientSavingsIntegrationTest.java | 303 ++++++++-
...ientUndoRejectAndWithdrawalIntegrationTest.java | 32 +-
.../fineract/integrationtests/CurrenciesTest.java | 2 +-
.../integrationtests/FixedDepositTest.java | 348 +++++-----
.../GroupSavingsIntegrationTest.java | 5 +-
.../InstanceModeIntegrationTest.java | 150 ++++
.../LoanAuditingIntegrationTest.java | 201 ++++++
.../LoanReschedulingWithinCenterTest.java | 1 +
.../LoanTransactionAuditingIntegrationTest.java | 212 ++++++
.../integrationtests/MakercheckerTest.java | 59 ++
.../integrationtests/NotificationApiTest.java | 79 ++-
.../ProductMixIntegrationTest.java | 59 ++
.../integrationtests/RecurringDepositTest.java | 9 +-
.../RepaymentWithPostDatedChecksTest.java | 8 +-
...avingsAccountBalanceCheckAfterReversalTest.java | 142 ++++
.../SavingsInterestPostingJobIntegrationTest.java | 311 +++++++++
.../integrationtests/SchedulerJobsTest.java | 25 +-
.../integrationtests/SchedulerJobsTestResults.java | 303 ++-------
.../accounting/AccountingRuleIntegrationTest.java | 79 +++
.../importhandler/loan/LoanImportHandlerTest.java | 23 +-
.../integrationtests/client/ReportsTest.java | 35 +-
.../integrationtests/common/AuditHelper.java | 14 +-
.../integrationtests/common/BatchHelper.java | 369 +++++++++-
.../integrationtests/common/CenterDomain.java | 4 +-
.../integrationtests/common/ClientHelper.java | 48 +-
.../common/GlobalConfigurationHelper.java | 25 +-
.../integrationtests/common/GroupHelper.java | 9 +
.../common/NotificationHelper.java | 42 +-
.../integrationtests/common/OfficeHelper.java | 11 +
.../integrationtests/common/ProductMixHelper.java | 53 ++
.../common/ProvisioningIntegrationTest.java | 19 +-
.../common/SchedulerJobHelper.java | 8 +-
.../common/StandingInstructionsHelper.java | 29 +-
.../fineract/integrationtests/common/Utils.java | 90 ++-
.../common/accounting/AccountRuleHelper.java | 59 ++
.../common/accounting/AccountingRuleBuilder.java | 58 ++
.../common/accounting/JournalEntryHelper.java | 2 +-
.../common/commands/MakercheckersHelper.java | 51 ++
.../fixeddeposit/FixedDepositProductHelper.java | 22 +-
.../common/loans/LoanApplicationTestBuilder.java | 15 +-
.../common/loans/LoanProductTestBuilder.java | 33 +
.../common/loans/LoanTransactionHelper.java | 126 ++--
.../common/organisation/CampaignsHelper.java | 30 +-
.../common/organisation/CampaignsTest.java | 1 +
.../EntityDatatableChecksIntegrationTest.java | 20 +
.../common/provisioning/ProvisioningHelper.java | 10 +-
.../common/savings/SavingsAccountHelper.java | 22 +-
.../common/savings/SavingsProductHelper.java | 9 +
.../shares/ShareAccountIntegrationTests.java | 64 +-
.../common/shares/ShareProductHelper.java | 3 +-
.../common/system/DatatableHelper.java | 50 ++
.../common/system/DatatableIntegrationTest.java | 133 ++++
.../instancemode/ConfigureInstanceMode.java | 38 ++
.../support/instancemode/InstanceModeHelper.java | 40 ++
.../instancemode/InstanceModeSupportExtension.java | 73 ++
.../useradministration/roles/RolesHelper.java | 2 +
.../useradministration/users/UserHelper.java | 31 +-
.../src/test/resources/logback.xml | 0
kubernetes/fineract-server-deployment.yml | 2 +
oauth2-tests/dependencies.gradle | 2 +-
renovate.json | 23 +-
twofactor-tests/dependencies.gradle | 2 +-
940 files changed, 29381 insertions(+), 15237 deletions(-)
delete mode 100644 .github/workflows/fineract.dev.yaml
delete mode 100644
fineract-client/src/main/resources/java/template/build.gradle.mustache
delete mode 100644
fineract-client/src/main/resources/java/template/pom.mustache
create mode 100644
fineract-client/src/main/resources/templates/java/api.mustache
create mode 100644
fineract-doc/src/docs/en/chapters/architecture/batch-jobs.adoc
create mode 100644
fineract-doc/src/docs/en/chapters/architecture/business-date.adoc
create mode 100644
fineract-doc/src/docs/en/chapters/architecture/loan-locking.adoc
create mode 100644
fineract-doc/src/docs/en/chapters/deployment/instance-type.adoc
create mode 100644 fineract-doc/src/docs/en/images/batch-jobs-chunking.png
create mode 100644
fineract-doc/src/docs/en/images/batch-jobs-remote-partitioning.png
create mode 100644
fineract-doc/src/docs/en/images/batch-jobs-state-management.png
create mode 100644 fineract-doc/src/docs/en/images/business_date.png
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/jobs/updatetrialbalancedetails/UpdateTrialBalanceDetailsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/accounting/glaccount/jobs/updatetrialbalancedetails/UpdateTrialBalanceDetailsTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/accounting/jobs/accountrunningbalanceupdate/AccountRunningBalanceUpdateConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/accounting/jobs/accountrunningbalanceupdate/AccountRunningBalanceUpdateTasklet.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocScheduledJobRunnerService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/adhocquery/service/AdHocScheduledJobRunnerServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/batch/command/CommandStrategyUtils.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateLoanRescheduleRequestCommandStrategy.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/CreateTransactionLoanCommandStrategy.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/GetDatatableEntryByAppTableIdCommandStrategy.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/GetLoanByIdCommandStrategy.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/GetTransactionByIdCommandStrategy.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/batch/command/internal/RepayLoanCommandStrategy.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/cob/COBBusinessStep.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/cob/loan/ApplyChargeToOverdueLoansBusinessStep.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/cob/loan/LoanCOBBusinessStep.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/DataIntegrityErrorHandler.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/auditing/CustomAuditingHandler.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/api/BusinessDateApiResource.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/api/BusinessDateApiResourceSwagger.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/data/BusinessDateData.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/domain/BusinessDate.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/domain/BusinessDateRepository.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/domain/BusinessDateType.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/exception/BusinessDateActionException.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/exception/BusinessDateNotFoundException.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/handler/BusinessDateUpdateHandler.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/mapper/BusinessDateMapper.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/service/BusinessDateReadPlatformService.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/service/BusinessDateReadPlatformServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/service/BusinessDateWritePlatformService.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/service/BusinessDateWritePlatformServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/businessdate/validator/BusinessDateDataParserAndValidator.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/TenantDateTimeUtil.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executereportmailingjobs/ExecuteReportMailingJobsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executereportmailingjobs/ExecuteReportMailingJobsTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/getdeliveryreportsfromsmsgateway/GetDeliveryReportsFromSmsGatewayConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/getdeliveryreportsfromsmsgateway/GetDeliveryReportsFromSmsGatewayTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/sendmessagetosmsgateway/SendMessageToSmsGatewayConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/sendmessagetosmsgateway/SendMessageToSmsGatewayTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/EmailParamMappingException.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updatesmsoutboundwithcampaignmessage/UpdateSmsOutboundWithCampaignMessageConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updatesmsoutboundwithcampaignmessage/UpdateSmsOutboundWithCampaignMessageTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/LocalDateTimeAdapter.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/MutableUriInfo.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/OffsetDateTimeAdapter.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/CustomDateTimeProvider.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/auditing/JpaAuditingHandlerRegistrar.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/config/EnableFineractEventListenerCondition.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/config/EnableFineractEventsCondition.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AbstractAuditableWithUTCDateTimeCustom.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/ActionContext.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/AuditableFieldsConstants.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/ContextHolder.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/FineractContext.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/domain/FineractEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/filters/CorrelationHeaderFilter.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/DataSourcePerTenantServiceFactory.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/HikariDataSourceFactory.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/MDCWrapper.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/instancemode/api/FineractInstanceModeConstants.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/instancemode/api/InstanceModeApiResource.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/instancemode/api/InstanceModeApiResourceSwagger.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/instancemode/filter/FineractInstanceModeApiFilter.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/ScheduledJobRunnerConfig.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/annotation/CronMethodParser.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/annotation/CronTarget.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobSchedulerServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobStarter.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/executealldirtyjobs/ExecuteAllDirtyJobsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/executealldirtyjobs/ExecuteAllDirtyJobsTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/increasedateby1day/IncreaseDateBy1DayService.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/increasedateby1day/IncreaseDateBy1DayServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/increasedateby1day/increasebusinessdateby1day/IncreaseBusinessDateBy1DayConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/increasedateby1day/increasebusinessdateby1day/IncreaseBusinessDateBy1DayTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/increasedateby1day/increasecobdateby1day/IncreaseCobDateBy1DayConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/increasedateby1day/increasecobdateby1day/IncreaseCobDateBy1DayTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/updatenpa/UpdateNpaConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/updatenpa/UpdateNpaTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/constants/TenantConstants.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/exception/InvalidInstanceTypeMethodException.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/exception/InvalidTenantIdentiferException.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/exception/InvalidTenantIdentifierException.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TenantMapper.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/utils/LogParameterEscapeUtil.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/api/NotificationApiResourceSwagger.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/data/TopicData.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/data/TopicSubscriberData.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/domain/Topic.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/domain/TopicRepository.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/domain/TopicSubscriber.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/domain/TopicSubscriberRepository.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/ActiveMQNotificationEventListener.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/ActiveMQNotificationEventPublisher.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/NotificationEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/NotificationEventPublisher.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/NotificationEventService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/SpringEvent.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/SpringEventListener.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/SpringEventPublisher.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/SpringNotificationEventListener.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/eventandlistener/SpringNotificationEventPublisher.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/exception/TopicNotFoundException.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicDomainService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicDomainServiceImpl.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicReadPlatformService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicReadPlatformServiceImpl.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicSubscriberReadPlatformService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicSubscriberReadPlatformServiceImpl.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicSubscriberWritePlatformService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicSubscriberWritePlatformServiceJpaRepositoryImpl.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicWritePlatformService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/notification/service/TopicWritePlatformServiceJpaRepositoryImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/account/jobs/executestandinginstructions/ExecuteStandingInstructionsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/account/jobs/executestandinginstructions/ExecuteStandingInstructionsTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/BusinessEventListener.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/AbstractBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientActivateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientRejectBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/CentersCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAcceptTransferBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAdjustTransactionBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApplyOverdueChargeBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApprovedBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseAsRescheduleBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCreatedBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanDisbursalBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInitiateTransferBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInterestRecalculationBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanReassignOfficerBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectTransferBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectedBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRemoveOfficerBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoApprovalBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoDisbursalBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoLastDisbursalBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanWithdrawTransferBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanAddChargeBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanChargeBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanDeleteChargeBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanUpdateChargeBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeUndoBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanUndoWrittenOffBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWaiveInterestBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPostBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPreBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsAccountBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsActivateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsApproveBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCloseBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsPostInterestBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsRejectBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsAccountTransactionBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsDepositBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsWithdrawalBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountApproveBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareProductDividentsCreateBusinessEvent.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierService.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/client/api/InternalClientInformationApiResource.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/BusinessEventNotificationConstants.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventListener.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/common/service/BusinessEventNotifierServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/api/InternalLoanInformationApiResource.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/handler/LoanGoodwilCreditCommandHandler.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/handler/LoanGoodwillCreditCommandHandler.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/addaccrualentries/AddAccrualEntriesConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/addaccrualentries/AddAccrualEntriesTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/addperiodicaccrualentries/AddPeriodicAccrualEntriesConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/addperiodicaccrualentries/AddPeriodicAccrualEntriesTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/addperiodicaccrualentriesforloanswithincomepostedastransactions/AddPeriodicAccrualEntriesForLoansConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/addperiodicaccrualentriesforloanswithincomepostedastransactions/AddPeriodicAccrualEntriesForLoansTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/applychargetooverdueloaninstallment/ApplyChargeToOverdueLoanInstallmentConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/applychargetooverdueloaninstallment/ApplyChargeToOverdueLoanInstallmentTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/applyholidaystoloans/ApplyHolidaysToLoansConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/applyholidaystoloans/ApplyHolidaysToLoansTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/generateloanlossprovisioning/GenerateLoanlossProvisioningConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/generateloanlossprovisioning/GenerateLoanlossProvisioningTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/generateloanlossprovisioning/NoProvisioningCriteriaDefinitionFoundException.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/recalculateinterestforloan/RecalculateInterestForLoanConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/recalculateinterestforloan/RecalculateInterestForLoanTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/transferfeechargeforloans/TransferFeeChargeForLoansConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/transferfeechargeforloans/TransferFeeChargeForLoansTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/updateloanarrearsageing/UpdateLoanArrearsAgeingConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/jobs/updateloanarrearsageing/UpdateLoanArrearsAgeingTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/api/RescheduleLoansApiResourceSwagger.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanSchedularService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanSchedularServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/applyannualfeeforsavings/ApplyAnnualFeeForSavingsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/applyannualfeeforsavings/ApplyAnnualFeeForSavingsTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/generateadhocclientschhedule/GenerateAdhocClientScheduleConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/generateadhocclientschhedule/GenerateAdhocClientScheduleTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/generaterdschedule/GenerateRdScheduleConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/generaterdschedule/GenerateRdScheduleTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/payduesavingscharges/PayDueSavingsChargesConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/payduesavingscharges/PayDueSavingsChargesTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/postinterestforsavings/PostInterestForSavingConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/postinterestforsavings/PostInterestForSavingTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/transferinteresttosavings/TransferInterestToSavingsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/transferinteresttosavings/TransferInterestToSavingsTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/updatedepositsaccountmaturitydetails/UpdateDepositsAccountMaturityDetailsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/updatedepositsaccountmaturitydetails/UpdateDepositsAccountMaturityDetailsTasklet.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/updatesavingsdormantaccounts/UpdateSavingsDormantAccountsConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/jobs/updatesavingsdormantaccounts/UpdateSavingsDormantAccountsTasklet.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsSchedularServiceImpl.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/jobs/postdividentsforshares/PostDividentsForSharesConfig.java
create mode 100644
fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/jobs/postdividentsforshares/PostDividentsForSharesTasklet.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/scheduledjobs/service/ScheduledJobRunnerService.java
delete mode 100644
fineract-provider/src/main/java/org/apache/fineract/scheduledjobs/service/ScheduledJobRunnerServiceImpl.java
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant-store/parts/0004_readonly_database_connection.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant-store/parts/0005_jdbc_connection_string.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0013_remove_topics.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0014_remove_unused_jobs.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0015_add_business_date.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0016_changed_unique_constraint_of_ref_no.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0017_fix_stretchy_reports.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0018_pentaho_reports_to_table.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0019_refactor_loan_transaction.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0020_add_audit_entries.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0021_add_spring_batch_db_structure.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0022_add_batch_business_step_configuration_table.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0023_use_the_proper_date_or_datetime_type.xml
create mode 100644
fineract-provider/src/main/resources/db/changelog/tenant/parts/0024_add_audit_entries.xml
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/batch/command/CommandStrategyProviderTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/batch/command/internal/CreateLoanRescheduleRequestCommandStrategyTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/batch/command/internal/CreateTransactionLoanCommandStrategyTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/batch/command/internal/GetDatatableEntryByAppTableIdCommandStrategyTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/batch/command/internal/GetLoanByIdCommandStrategyTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/batch/command/internal/GetTransactionByIdCommandStrategyTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/api/BusinessDateApiTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/data/BusinessDataSerialized.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/data/BusinessDataTypeTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/mapper/BusinessDateMapperTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/service/BusinessDateReadPlatformServiceTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/service/BusinessDateWritePlatformServiceTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/businessdate/validator/BusinessDateValidatorTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/core/DataSourcePerTenantServiceFactoryTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/core/auditing/CustomDateTimeProviderTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/core/config/EnableFineractEventListenerConditionTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/core/filters/CorrelationHeaderFilterTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/core/service/DateUtilsTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/instancemode/InstanceModeMock.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/instancemode/filter/FineractInstanceModeApiFilterTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/infrastructure/security/utils/LogParameterEscapeUtilTest.java
create mode 100644
fineract-provider/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/LoanTest.java
create mode 100644
fineract-provider/src/test/java/org/springframework/data/auditing/CustomAuditingHandlerTest.java
create mode 100644
fineract-provider/src/test/resources/features/infrastructure/infrastructure.security.utils.feature
create mode 100644 instancemode-tests/build.gradle
create mode 100644 instancemode-tests/dependencies.gradle
create mode 100644
instancemode-tests/src/test/java/org/apache/fineract/integrationtests/BatchInstanceModeTest.java
copy {fineract-client =>
instancemode-tests}/src/test/resources/cucumber.properties (100%)
copy {integration-tests =>
instancemode-tests}/src/test/resources/junit-platform.properties (100%)
copy {integration-tests =>
instancemode-tests}/src/test/resources/michael.vorburger-crepes.jpg (100%)
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientAuditingIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanNonTrancheMultipleDisbursementsIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/InstanceModeIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanAuditingIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanTransactionAuditingIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/MakercheckerTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/ProductMixIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/SavingsAccountBalanceCheckAfterReversalTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/SavingsInterestPostingJobIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/accounting/AccountingRuleIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/common/ProductMixHelper.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/common/accounting/AccountRuleHelper.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/common/accounting/AccountingRuleBuilder.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/common/commands/MakercheckersHelper.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/common/system/DatatableIntegrationTest.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/support/instancemode/ConfigureInstanceMode.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/support/instancemode/InstanceModeHelper.java
create mode 100644
integration-tests/src/test/java/org/apache/fineract/integrationtests/support/instancemode/InstanceModeSupportExtension.java
copy {fineract-provider => integration-tests}/src/test/resources/logback.xml
(100%)