Skip to content

Fineract 3128: Move loan COB services, listeners and API out of fineract-provider - #6933

Open
shubhamchaudhary29 wants to merge 2 commits into
apache:developfrom
shubhamchaudhary29:FINERACT-3128
Open

shubhamchaudhary29 wants to merge 2 commits into
apache:developfrom
shubhamchaudhary29:FINERACT-3128

Conversation

@shubhamchaudhary29

@shubhamchaudhary29 shubhamchaudhary29 commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

Description

FINERACT-3128

Checklist

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Write the commit message as per our guidelines
  • Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
  • Create/update unit or integration tests for verifying the changes made.
  • Follow our coding conventions.
  • Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
  • This PR must not be a "code dump". Large changes can be made in a branch, with assistance. Ask for help on the developer mailing list.
  • If merging this PR resolves a JIRA issue, I will mark that issue as resolved and set "Fix Version/s" appropriately.
  • I followed the AI Policy.

Your assigned reviewer(s) will follow our guidelines for code reviews.

The loan COB package (cob/loan) lived in fineract-provider. It now lives
in fineract-loan, next to the existing LoanCOBBusinessStep, the way the
working capital loan COB already lives in fineract-working-capital-loan.

The writers checked the progressive loan model through
ProgressiveLoanModelProcessingService, which is in
fineract-progressive-loan, and that module depends on fineract-loan. They
now use a new ProgressiveLoanModelService interface in fineract-loan,
which that service implements. Its hasValidModel(Long) uses the current
model version, so the writers behave as before.

LoanCOBEnabledCondition, LoanAccountLock, the two stayed-locked data
classes and the chunk and inline COB loan item listeners move too, since
the moved code needs them and they only depend on fineract-core and
fineract-cob. WorkingCapitalInlineCOBLoanItemReader and
WorkingCapitalLoanInlineCOBConfig go to fineract-working-capital-loan
instead, because they use working capital loan classes.

Packages are unchanged. The unit tests move with their classes, except
the Cucumber step definitions, whose features and runner are in
fineract-provider, and CobNoRetryTest and CobSequentialProcessingTest,
which also wire the working capital loan COB.
The cob api, service, listener, data and domain classes lived in
fineract-provider. The generic catch-up and inline COB parts now live in
fineract-cob, the loan parts in fineract-loan and the working capital
loan parts in fineract-working-capital-loan, which depends on fineract-
loan. Only cob.savings.RetrieveSavingsIdServiceImpl stays, because it is
not loan COB.

The catch-up services started jobs through JobStarter and
ScheduledJobDetailRepository, and read the running catch-up business
date through JobExecutionRepository, all in fineract-provider. They now
use two new fineract-core interfaces: ScheduledJobStartService,
implemented in fineract-provider by ScheduledJobStartServiceImpl, and
RunningJobBusinessDateService, which JobExecutionRepository implements.
ScheduledJobStartServiceImpl looks up the scheduled job on each catch-up
day instead of once per catch-up, which adds one SELECT per day.

JobNotFoundException, InlineExecutorService, NextJobParametersResolver,
SchedulerServiceConstants and TaskExecutorConstant move to fineract-
core, since the moved code needs them and they only depend on fineract-
core and Spring.

Packages are unchanged. InlineLoanCOBExecutorServiceImplTest moves to
fineract-loan. CatchUpAfterJobListenerTest stays in fineract-provider,
because it wires both the loan and the working capital loan catch-up.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant