Oki, will try a PR after the classloader one then. Thanks a lot. Le 13 févr. 2018 19:14, "Lukasz Cwik" <[email protected]> a écrit :
> The one in Dataflow 1.x was one system property that contained all the > JSON so it wasn't exactly what you were looking for. > > On Tue, Feb 13, 2018 at 9:51 AM, Romain Manni-Bucau <[email protected] > > wrote: > >> I like your proposal Kenneth. Perfectly fits my use case and deployment >> one as well - when ops configure the env without modifying the code. >> >> How do we move forward on that? Should I send a PR or do you want to >> import what was in dataflow? >> >> >> 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> | Book >> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >> >> 2018-02-13 18:49 GMT+01:00 Lukasz Cwik <[email protected]>: >> >>> PipelineOptionsFactory.fromSystemProperties did exist in Dataflow 1.x >>> and was dropped for the reason that Ken mentioned. >>> >>> On Tue, Feb 13, 2018 at 9:46 AM, Kenneth Knowles <[email protected]> wrote: >>> >>>> Pipeline options are not global - they are a property of a single job. >>>> The TestPipeline reads them from a very particular system property because >>>> it is a special testing rule. >>>> >>>> If you want a generic way to build pipeline options from a set of >>>> system properties, it should be from an explicit prefix, not global >>>> defaults. So if a user wants to put a bunch of options into properties, >>>> they choose a namespace like "my.random.namespace" and everything under it >>>> can be interpreted as a pipelineoption: >>>> >>>> my.random.namespace.SomeOption=bizzle >>>> my.random.namespace.SomeOtherOption=whatever >>>> >>>> And you could do PipelineOptionsFactory.fromSys >>>> temProperties("my.random.namespace") >>>> >>>> We should use the full name of the option not split it with dots - dots >>>> represent hierarchy not words separation. >>>> >>>> interface FooOptions extends PipelineOptions { >>>> getSomeOption() >>>> getSomeOtherOption() >>>> } >>>> >>>> I think I can be +0.5 on this. We might also reserve a namespace like >>>> "beam.TestPipeline.options" and use it for specification of test config. >>>> Could be easier than embedding JSON in a property, in some cases. Easier to >>>> override little pieces for sure. >>>> >>>> Kenn >>>> >>>> On Tue, Feb 13, 2018 at 9:29 AM, Romain Manni-Bucau < >>>> [email protected]> wrote: >>>> >>>>> makes sense, do we want beam.foo.bar -> --foo-bar conversion too? >>>>> >>>>> >>>>> 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> | Book >>>>> <https://www.packtpub.com/application-development/java-ee-8-high-performance> >>>>> >>>>> 2018-02-13 18:19 GMT+01:00 Eugene Kirpichov <[email protected]>: >>>>> >>>>>> Neutral about this one: haven't seen a case where this was needed, >>>>>> but don't see anything wrong with it either. One thing I'd recommend if >>>>>> you >>>>>> go through with it, extract from system properties under "beam." rather >>>>>> than all of them, to avoid clashes. >>>>>> >>>>>> On Tue, Feb 13, 2018, 7:53 AM Jean-Baptiste Onofré <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi Romain, >>>>>>> >>>>>>> it sounds interesting to me, and doesn't break anything, so +1 from >>>>>>> my side. >>>>>>> >>>>>>> Regards >>>>>>> JB >>>>>>> >>>>>>> On 02/13/2018 03:42 PM, Romain Manni-Bucau wrote: >>>>>>> > Hi guys, >>>>>>> > >>>>>>> > there are hacks in beam testing code to read the args from a >>>>>>> system property but >>>>>>> > I wonder if we shouldnt add a PipelineOptionsFactory.fromSys >>>>>>> temProperties(). >>>>>>> > >>>>>>> > It would iterate over the system properties and take all --xxx=foo >>>>>>> as potential >>>>>>> > argument it tries to bind. >>>>>>> > >>>>>>> > Rational behind that is to enable users to wrap the pipeline API >>>>>>> but still >>>>>>> > expose the pipeline options to end users for advanced cases. >>>>>>> > >>>>>>> > Any discussion on this kind of usages already? What do you think >>>>>>> of this proposal? >>>>>>> > >>>>>>> > Side note: we can think about a fromEnv() too. >>>>>>> > >>>>>>> > 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> | Book >>>>>>> > <https://www.packtpub.com/application-development/java-ee-8- >>>>>>> high-performance> >>>>>>> >>>>>>> -- >>>>>>> Jean-Baptiste Onofré >>>>>>> [email protected] >>>>>>> http://blog.nanthrax.net >>>>>>> Talend - http://www.talend.com >>>>>>> >>>>>> >>>>> >>>> >>> >> >
