Hi Tison, we use a modified version of the Program interface to enable a web UI do properly detect and run Flink jobs contained in a jar + their parameters. As stated in [1], we dected multiple Main classes per jar by handling an extra comma-separeted Manifest entry (i.e. 'Main-classes').
As mentioned on the discussion on the dev ML, our revised Program interface looks like this: public interface FlinkJob { String getDescription(); List<FlinkJobParameter> getParameters(); boolean isStreamingOrBatch(); } public class FlinkJobParameter { private String paramName; private String paramType = "string"; private String paramDesc; private String paramDefaultValue; private Set<String> choices; private boolean mandatory; } I've also opened some JIRA issues related to this topic: [1] https://issues.apache.org/jira/browse/FLINK-10864 [2] https://issues.apache.org/jira/browse/FLINK-10862 [3] https://issues.apache.org/jira/browse/FLINK-10879. Best, Flavio On Mon, Jul 22, 2019 at 1:46 PM Zili Chen <wander4...@gmail.com> wrote: > Hi guys, > > We want to have an accurate idea of how many people are implementing > Flink job based on the interface Program, and how they actually > implement it. > > The reason I ask for the survey is from this thread[1] where we notice > this codepath is stale and less useful than it should be. As it is an > interface marked as @PublicEvolving it is originally aimed at serving > as user interface. Thus before doing deprecation or dropping, we'd like > to see if there are users implementing their job based on this > interface(org.apache.flink.api.common.Program) and if there is any, > we are curious about how it is used. > > If little or none of Flink user based on this interface, we would > propose deprecating or dropping it. > > I really appreciate your time and your insight. > > Best, > tison. > > [1] > https://lists.apache.org/thread.html/7ffc9936a384b891dbcf0a481d26c6d13b2125607c200577780d1e18@%3Cdev.flink.apache.org%3E >