Wei-Che Wei created FLINK-5982: ---------------------------------- Summary: Refactor AbstractInvokable and StatefulTask Key: FLINK-5982 URL: https://issues.apache.org/jira/browse/FLINK-5982 Project: Flink Issue Type: Improvement Components: Distributed Coordination, State Backends, Checkpointing Affects Versions: 1.2.0 Reporter: Wei-Che Wei Assignee: Wei-Che Wei
Currently, running a invokable in {{Task}} needs to call {{setEnvironment(env)}} and {{invoke()}}. If the invokable is also a {{StatefulTask}}, it need to call {{setInitialState(state)}}. That makes the difficulty in doing the eager initialization on invokable during {{DEPLOYING}} state. One solution discussed in FLINK-4714 is to separate {{invoke()}} into {{open()}} and {{invoke()}}, but that makes the complexity for running it in {{Task}}. This task wants to refactor {{AbstractInvokable}} and {{StatefulTask}} to make it easier to construct and run an invokable. # Refactor abstract class to have one default constructor. #* Remove {{setEnvironment(env)}} and change {{AbstractInvokable}} to have one argument constructor with {{Environment}}. #* Remove {{setInitialState}} and create a new abstract class {{AbstractStatefulInvokable}} to inherit {{AbstractInvokable}} and implement {{StatefulTask}}. Make {{AbstractStatefulInvokable}} have a two argument constructor with {{Environment}} and {{TaskStateHandles}}. # Update all subclass #* Make all subclass of only {{AbstractInvokable}} have an one argument constructor and call the constructor in {{AbstractInvokable}}. #* Make all subclass of {{AbstractInvokable}} and {{StatefulTask}} to inherit {{AbstractStatefulInvokable}} and have two two argument constructor. # Change the creation of the invokables to call that constructor, update all the tests -- This message was sent by Atlassian JIRA (v6.3.15#6346)