We should decouple CLI parsing validation from programmatic PipelineOptions validation.
On Mon, Jun 26, 2017 at 9:56 AM, Lukasz Cwik <[email protected]> wrote: > This change assumes that all users are CLI users (compared to the existing > code which assumed that all users were programmatic users). Should we word > the message so its useful for both CLI and users who set the options > programmatically? > > On Mon, Jun 26, 2017 at 6:00 AM, Jean-Baptiste Onofré <[email protected]> > wrote: > > > Thanks Manu ! > > > > I will review it. > > > > Regards > > JB > > > > > > On 06/26/2017 02:59 PM, Manu Zhang wrote: > > > >> Thanks Kenn and JB, I just filed > >> https://issues.apache.org/jira/browse/BEAM-2514 and PR > >> https://github.com/apache/beam/pull/3438 > >> Please help to review. > >> > >> Thanks, > >> Manu > >> > >> On Mon, Jun 26, 2017 at 12:20 PM Jean-Baptiste Onofré <[email protected]> > >> wrote: > >> > >> Hi Manu, > >>> > >>> Agree, it makes sense. > >>> > >>> Regards > >>> JB > >>> > >>> On 06/25/2017 12:57 PM, Manu Zhang wrote: > >>> > >>>> Hi all, > >>>> > >>>> Currently, if a required option is missing for a Beam pipeline, the > >>>> error > >>>> message is like > >>>> > >>>> > >>>>> Exception in thread "main" java.lang.IllegalArgumentException: > Missing > >>>>> required value for [public abstract java.lang.String > >>>>> org.apache.beam.examples.WordCount$WordCountOptions.getOutput(), > "Path > >>>>> > >>>> of > >>> > >>>> the file to write to"]. > >>>>> > >>>> > >>>> > >>>> This is quite long but doesn't give any hint to users about the > required > >>>> option. Instead, I'm thinking about something like > >>>> > >>>> Exception in thread "main" java.lang.IllegalArgumentException: > Missing > >>>> > >>>>> required option [--output, "Path of the file to write to"]. > >>>>> > >>>> > >>>> > >>>> It can be achieved by adding a method that *returns the option from a > >>>> method* to ProxyInvocationHandler > >>>> < > >>>> > >>> https://github.com/apache/beam/blob/master/sdks/java/core/ > >>> src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java > >>> > >>>> > >>>> class. > >>>> > >>>> public String getOption(Method method) { > >>>> return gettersToPropertyNames.get(method.getName()); > >>>> } > >>>> > >>>> > >>>> This may look general for ProxyInvocationHandler but you get the idea. > >>>> > >>>> WDYT? > >>>> > >>>> Thanks, > >>>> Manu > >>>> > >>>> > >>> -- > >>> Jean-Baptiste Onofré > >>> [email protected] > >>> http://blog.nanthrax.net > >>> Talend - http://www.talend.com > >>> > >>> > >> > > -- > > Jean-Baptiste Onofré > > [email protected] > > http://blog.nanthrax.net > > Talend - http://www.talend.com > > >
