[jira] [Created] (FLINK-17699) Reduce scope for SourceOperator arguments and initialize more eagerly

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-17699) Reduce scope for SourceOperator arguments and initialize more eagerly

Shang Yuanchun (Jira)
Stephan Ewen created FLINK-17699:
------------------------------------

             Summary: Reduce scope for SourceOperator arguments and initialize more eagerly
                 Key: FLINK-17699
                 URL: https://issues.apache.org/jira/browse/FLINK-17699
             Project: Flink
          Issue Type: Sub-task
          Components: API / DataStream
            Reporter: Stephan Ewen
            Assignee: Stephan Ewen
             Fix For: 1.11.0


Currently, the {{SourceOperator}} only gets a {{Source}} in the constructor.

All actual components that the {{SourceOperator}} relies on when working are lazily initialized, in {{open()}} or via setters.

Relying on something as broad as {{Source}} also means that a lot of redundant context has to be provided to the {{SourceOperator}} during initialization. The {{Source}} is, for example, also responsible for the {{SourceEnumerator}}, which is independent of the {{SourceOperator}}. However, it needs to be considered during testing, now, because the tests need to mock a full {{Source}} in order to instantiate a {{SourceOperator}}.

The solution is to directly pass the collaborators of the {{SourceOperator}} directly eagerly into the constructor. It is not fully possible with the {{SourceReader}}, but for that we can at least reduce the scope by passing a targeted factory function.






--
This message was sent by Atlassian Jira
(v8.3.4#803005)