Description
Inputs / Outputs have several methods which are not meant for user interaction - initialize(Tez*Context), close(), TEZ-844 is adding another.
There has been confusion in the past on whether the framework will call close, or whether it's the user's responsibility.
The framework specific methods and the Processor usable methods can be split into a separate interface. Input/Output writers would need to implement both, Processor writers would only see the Input part of the interface.
TEZ-782, TEZ-827 introduced some requirements on Inputs which are not enforced at compile time (must request mem). These could potentially be added to the framework part of the interface to force Inputs/Outputs to be aware of them at compile time, while not polluting the Processor interface.