Good point for \t and ,.

Any objection to use jackson as a fallback for that purpose - for backwqrd
compat only - and make it optional then? Will create the ticket if not.

Le 8 janv. 2018 20:32, "Robert Bradshaw" <rober...@google.com> a écrit :

> Part of the motivation to use JSON for more complex options was that
> it avoids having to define (and document, test, have users learn, ...)
> yet another format for expressing lists, maps, etc.
>
> On Mon, Jan 8, 2018 at 11:19 AM, Lukasz Cwik <lc...@google.com> wrote:
> > Ken, this is specifically about running integration tests and not a users
> > main().
> >
> > Note, that PipelineOptions JSON format was used because it was a
> convenient
> > serialized form that is easy to explain to people what is required.
> > Using a different string tokenizer and calling
> > PipelineOptionsFactory.fromArgs() with the parsed strings seems like it
> > would be better.
> >
> > These are the supported formats for fromArgs():
> >    *   --project=MyProject (simple property, will set the "project"
> property
> > to "MyProject")
> >    *   --readOnly=true (for boolean properties, will set the "readOnly"
> > property to "true")
> >    *   --readOnly (shorthand for boolean properties, will set the
> "readOnly"
> > property to "true")
> >    *   --x=1 --x=2 --x=3 (list style simple property, will set the "x"
> > property to [1, 2, 3])
> >    *   --x=1,2,3 (shorthand list style simple property, will set the "x"
> > property to [1, 2, 3])
> >    *   --complexObject='{"key1":"value1",...} (JSON format for all other
> > complex types)
> >
> > Using a string tokenizer that minimizes the number of required escape
> > characters would be good so we could use newline characters as our only
> > token. I would avoid ',\t ' as tokens since they are more likely to
> appear.
> >
> > On Mon, Jan 8, 2018 at 10:33 AM, Kenneth Knowles <k...@google.com> wrote:
> >>
> >> We do have a plain command line syntax, and whoever writes the
> >> main(String[]) function is responsible for invoking the parser. It isn't
> >> quite as nice as standard arg parse libraries, but it isn't too bad. It
> >> would be great to improve, though.
> >>
> >> Jackson is for machine-to-machine communication or other situations
> where
> >> command line parsing doesn't work so well.
> >>
> >> Are we using these some other way?
> >>
> >> Kenn
> >>
> >> On Sun, Jan 7, 2018 at 7:21 AM, Romain Manni-Bucau <
> rmannibu...@gmail.com>
> >> wrote:
> >>>
> >>>
> >>>
> >>> Le 7 janv. 2018 12:53, "Jean-Baptiste Onofré" <j...@nanthrax.net> a
> écrit :
> >>>
> >>> Hi Romain,
> >>>
> >>> I guess you are assuming that pipeline options are flat command line
> like
> >>> argument, right ?
> >>>
> >>> Actually, theoretically,  pipeline options can be represented as json,
> >>> that's why we use jackson.
> >>> The pipeline options can be serialized/deserialized as json.
> >>>
> >>>
> >>> Yes but if users (or dev ;)) start to use that then it is trivial to
> >>> break the cli handling and fromArgs parsing or, if not, break the user
> >>> experience. So at the end it is a kind of "yes but no", right?
> >>>
> >>> PS: already see some advanced users having a headache trying to pass
> >>> pipeline options in json so using the plain command line syntax can be
> more
> >>> friendly too.
> >>>
> >>>
> >>> The purpose is to remove the jackson dependencies ?
> >>>
> >>>
> >>> Later yes, seeing core dep tree I identify a lot of dep which can
> >>> conflict in some env and are not really needed or bring much being in
> the
> >>> core - like avro as mentionned in another thread. Can need a sanitizing
> >>> round. Short term it was really a "why is it that complicated" ;).
> >>>
> >>>
> >>>
> >>> Regards
> >>> JB
> >>>
> >>>
> >>> On 01/07/2018 11:38 AM, Romain Manni-Bucau wrote:
> >>>>
> >>>> Hi guys,
> >>>>
> >>>> not sure i fully get why jackson is used to parse pipeline options in
> >>>> the testing integration
> >>>>
> >>>> why not using a token parser like [1] which allows to map 1-1 with the
> >>>> user interface (command line) the options?
> >>>>
> >>>> [1]
> >>>> https://github.com/Talend/component-runtime/blob/master/
> component-server/src/main/java/org/talend/sdk/component/server/lang/
> StringPropertiesTokenizer.java
> >>>>
> >>>> Romain Manni-Bucau
> >>>> @rmannibucau <https://twitter.com/rmannibucau> | Blog
> >>>> <https://rmannibucau.metawerx.net/> | Old Blog
> >>>> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau>
> >>>> | LinkedIn <https://www.linkedin.com/in/rmannibucau>
> >>>
> >>>
> >>> --
> >>> Jean-Baptiste Onofré
> >>> jbono...@apache.org
> >>> http://blog.nanthrax.net
> >>> Talend - http://www.talend.com
> >>>
> >>>
> >>
> >
>

Reply via email to