[
https://issues.apache.org/jira/browse/APEXCORE-771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16103633#comment-16103633
]
Vlad Rozov commented on APEXCORE-771:
-------------------------------------
++1. The monolithic implementation of StreamingAppMasterService.execute() is
hard to test and is hard to maintain. It also leads to spaghetti code. There
were few bugs reported in that area,
https://github.com/apache/apex-core/pull/535 is not the only one.
https://github.com/apache/apex-core/pull/565 is another example.
> Refactor the function StreamingAppMasterService.execute() for maintainability
> -----------------------------------------------------------------------------
>
> Key: APEXCORE-771
> URL: https://issues.apache.org/jira/browse/APEXCORE-771
> Project: Apache Apex Core
> Issue Type: Improvement
> Reporter: Sanjay M Pujare
>
> PR #535 discussion is the reason for this PR.
> Refactoring StreamingAppMasterService.execute() would consist of splitting
> this code into multiple smaller functions (or even classes) and using mocks
> to unit test these smaller chunks. For example we can create a class and move
> all the requested/released container list and count management in this class.
> This way the code in StreamingAppMasterService.execute() will be manageably
> small.
> Benefits from this refactoring effort are:
> - code will be easy to understand and maintain for new members because of
> multiple small functions or classes
> - it will be easy to simulate various corner or error cases related to Yarn
> behavior using mocks that currently are impossible to simulate
> - for every new bug reported we will be able to add unit tests to create a
> regression test suite.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)