Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FINERACT-1678: Lock under processing loan accounts #2576

Merged

Conversation

adamsaghy
Copy link
Contributor

@adamsaghy adamsaghy commented Sep 7, 2022

Description

With the database structure in place for loan account locks, we need to utilize it.

In this story, we need to create a new Spring Batch step (not business steps) and add it into the Loan COB job. The new step will be locking the loan accounts. Also, at the end of the execution of the business steps, we need to unlock the loan accounts within the chunk (it’s important to do it in the same transaction as the business steps).

Acceptance criteria

A new lock loan accounts Spring Batch step is introduced

The lock loan accounts step locks the loan accounts which are in the chunk meaning that rows need to be inserted into the lock table

A new unlock loan accounts mechanism is introduced

The unlock loan accounts mechanism unlocks the loan accounts which are in the chunk meaning that rows need to be deleted from the lock table

The lock loan accounts step is in the beginning of the execution, before executing the business steps

The unlock loan accounts step is at the end of the business step execution in the same transaction

If there was an error during processing a loan account, the exception shall be written in the corresponding lock row for later analysis

The lock_owner column is filled properly with LOAN_COB_CHUNK_PROCESSING

Note

Skipping for the Spring Batch step shall be enabled

A SkipListener could be useful

Checklist

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

  • Write the commit message as per https://github.com/apache/fineract/#pull-requests

  • 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 coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/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

  • Submission is not a "code dump". (Large changes can be made "in repository" via a branch. Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

@adamsaghy adamsaghy force-pushed the cob/lock-under-processing-loan-accounts branch 3 times, most recently from 1201ee1 to 4f65149 Compare September 7, 2022 23:20
Copy link
Contributor

@galovics galovics left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of comments but overall really really nice job. In fact I quite like the tiny reorganizations & renamings you did.
Plus the unit tests, splendid work. :-)

@adamsaghy adamsaghy force-pushed the cob/lock-under-processing-loan-accounts branch from 4f65149 to e6793dc Compare September 8, 2022 22:26
@adamsaghy adamsaghy force-pushed the cob/lock-under-processing-loan-accounts branch from e6793dc to 3f8fd52 Compare September 8, 2022 22:40
@galovics galovics merged commit 2d73c25 into apache:develop Sep 9, 2022
@adamsaghy adamsaghy deleted the cob/lock-under-processing-loan-accounts branch January 28, 2023 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants