[ 
https://issues.apache.org/jira/browse/FINERACT-2294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18068480#comment-18068480
 ] 

Aleksandar Vidakovic commented on FINERACT-2294:
------------------------------------------------

[~elnafateh] Thanks for helping out... I'd suggest to pick a different module 
though... this particular one is very large (just check the service package, 
contains a lot of  services and each service has quite some functions... all 
these pretty much translate into commands). The best way to judge if a module 
is relatively easy to do is to check the handler package (in this case 
"org.apache.fineract.portfolio.client.handler") and see how many handlers it 
contains... and client identifier has 26 (!)... for a first time project that's 
a bit much. So, please try to find a module that has maybe 2-3 handlers. The 
really easy  ones are already gone, but maybe there another one in the list 
I've created.

> New command processing - Client identifier 
> (org.apache.fineract.portfolio.client)
> ---------------------------------------------------------------------------------
>
>                 Key: FINERACT-2294
>                 URL: https://issues.apache.org/jira/browse/FINERACT-2294
>             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)

Reply via email to