Ashhar Ahmad Khan created FINERACT-2722:
-------------------------------------------

             Summary: Remove orphaned CashierWritePlatformService and 
ModifyCashierCommandHandler (dead code, no command routing, no test coverage)
                 Key: FINERACT-2722
                 URL: https://issues.apache.org/jira/browse/FINERACT-2722
             Project: Apache Fineract
          Issue Type: Task
            Reporter: Ashhar Ahmad Khan


*What is being removed*

CashierWritePlatformService, at 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/service/, 
is a plain concrete class with no @Service or @Component annotation. It 
contains three methods, allocateCashierToTeller, deleteCashier, modifyCashier, 
all of them null stubs with no implementation.

ModifyCashierCommandHandler.java, at 
fineract-branch/src/main/java/org/apache/fineract/organisation/teller/handler/, 
injects CashierWritePlatformService through a constructor field and calls 
modifyCashier on it. This handler has no @Service annotation and no 
@CommandType annotation, so Fineract's command dispatcher never routes anything 
to it. Nothing else in the codebase constructs or injects this handler.

A stale @see javadoc line in DeleteCashierAllocationCommandHandler.java, which 
is live and correctly wired to TellerWritePlatformService, pointed at 
CashierWritePlatformService. That line has been removed.

*Why it's dead code*

The live cashier-teller allocation path is 
AllocateCashierToTellerCommandHandler, which calls allocateCashierToTeller(Long 
entityId, JsonCommand command) on TellerWritePlatformService, implemented in 
TellerWritePlatformServiceJpaImpl.java line 197. This is a different class from 
CashierWritePlatformService. The two classes share method names, but nothing in 
the live code path touches CashierWritePlatformService or 
ModifyCashierCommandHandler.

*Changes made*
 * Deleted CashierWritePlatformService.java
 * Deleted ModifyCashierCommandHandler.java
 * Removed the stale @see line in DeleteCashierAllocationCommandHandler.java

*Verification*
 * Full-repo grep across .java, .xml, .yml, .yaml, .properties for both class 
names. Only the two deleted files and the one stale doc comment matched.
 * Permission table grep for MODIFYCASHIER / MODIFY_CASHIER. No results, no 
dangling m_permission row.
 * Reflection-based lookup grep (Class.forName, getBean). No results.
 * Test file grep across the repo (--include="*Test.java"). No results, no test 
references either class.
 * {{{}./gradlew :fineract-branch:compileJava{}}}. BUILD SUCCESSFUL.
 * {{{}./gradlew :fineract-branch:test{}}}. BUILD SUCCESSFUL, 6 tests executed 
in the teller module (TellerCommandFromApiJsonDeserializerTest), all passed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to