[
https://issues.apache.org/jira/browse/FINERACT-2253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18069353#comment-18069353
]
lukman edited comment on FINERACT-2253 at 3/29/26 9:59 AM:
-----------------------------------------------------------
Hi [~aleks]
Following our discussion on FINERACT-2169 to find something smaller in scope, I
mapped out all sub-tasks under the org.apache.fineract.portfolio.account module
and found that FINERACT-2253 is the right fit for my GSoC project.
Here's what I found:
- FINERACT-2299 (Standing instructions history) is already merged via PR #4533
- FINERACT-2298 (Standing instructions CRUD) merged PR #4537
- FINERACT-2253 (Account transfers) is still open — only 2 handlers:
CreateAccountTransferCommandHandler and RefundByTransferCommandHandler
I've also reviewed the prototype PR #5126 and the feedback left there, so I
have a clear understanding of what a proper implementation needs to cover:
separate API and service layer DTOs, auditing, retry logic, and idempotency
handling amongs other this that description above listed.
I'd love to hear your thoughts on this before I move forward. Does this align
with what you had in mind?
Thank you!
was (Author: JIRAUSER312863):
Hi [~aleks]
Following your discussion on FINERACT-2169 to find something smaller in scope,
I mapped out all sub-tasks under the org.apache.fineract.portfolio.account
module and found that FINERACT-2253 is the right fit for my GSoC project.
Here's what I found:
- FINERACT-2299 (Standing instructions history) is already merged via PR #4533
- FINERACT-2298 (Standing instructions CRUD) merged PR #4537
- FINERACT-2253 (Account transfers) is still open — only 2 handlers:
CreateAccountTransferCommandHandler and RefundByTransferCommandHandler
I've also reviewed the prototype PR #5126 and the feedback left there, so I
have a clear understanding of what a proper implementation needs to cover:
separate API and service layer DTOs, auditing, retry logic, and idempotency
handling amongs other this that description above listed.
I'd love to hear your thoughts on this before I move forward. Does this align
with what you had in mind?
Thank you!
> New command processing - Account (org.apache.fineract.portfolio.account)
> ------------------------------------------------------------------------
>
> Key: FINERACT-2253
> URL: https://issues.apache.org/jira/browse/FINERACT-2253
> Project: Apache Fineract
> Issue Type: Sub-task
> Reporter: Aleksandar Vidakovic
> Priority: Major
>
> (i) Edit only in text mode!
> 1. General
> (!) Remove all obsolete Swagger annotations (aka "dummy" classes)
> (!) Refactor input and return types of business logic services if needed (no
> more references to JSON in the business logic)
> (!) Existing integration tests need to work as is without any changes
> (!) Input types are named with suffix "Request" (e.g.
> "org.apache.fineract.infrastructure.businessdate.data.BusinessDateRequest")
> (!) Return types are named with suffix "Response" (e.g.
> "org.apache.fineract.infrastructure.businessdate.data.BusinessDateResponse")
> (!) If you need to transform POJO types then use MapStruct where ever possible
> (!) Respect standard package structure
> 2. Read Requests
> (!) All "@GET" annotated functions in all JAX-RS resource classes are
> returning proper Java types (aka "POJOs")
> (!) Return types are defined in the module's/package's DTO package (e.g.
> "org.apache.fineract.infrastructure.businessdate.data")
> 3. Write Requests
> (!) All "@PUT" and "@POST" annotated functions in all JAX-RS resource classes
> are returning proper Java types (aka "POJOs")
> (!) Input types are defined in the module's/package's DTO package (e.g.
> "org.apache.fineract.infrastructure.businessdate.data")
> (!) Inject new "org.apache.fineract.command.core.CommandPipeline" component
> and refactor legacy command structures to new concept
> (!) Create command specific child implementation of
> "org.apache.fineract.command.core.Command"
> (!) Use Jakarta Validation instead of proprietary validation service
> (!) Create message resource bundles for the validation error messages
> 4. List refactored JAX-RS resource classes (canonical names) below
> - TBD
> 5. Command Handlers
> (!) Refactor legacy command handlers to new concept
> 6. Run Integration Tests
> (!) All related integration tests pass
--
This message was sent by Atlassian Jira
(v8.20.10#820010)