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
> >
>

Reply via email to