caskdata/cdap — pull request #627 by chtyim (2014-11-14 09:00:28+00:00)
Title: (CDAP-618) Fix hanging issue when suspending a Flowlet with long tick delay

- Split the FlowletProcessDriver into two classes to simplify logic and better role separation
- FlowletRuntimeService, represents Flowlet lifecycle, responsible to handle start, suspend, resume, stop
- FlowletProcessDriver, solely responsible for calling Flowlet process methods
- Suspending a Flowlet become a simple task. Only need to stop the FlowletProcessDriver
- Also included some refactoring to remove unneeded coded
- Remove inflight events tracking, as it's already handled by the Queue system
- Simplify unnecessary nested try-catch blocks in ReflectionProcessMethod
- Any exception is represented as process failure and handled the same way (rollback, callback, retry)