this is part of the PR without any transformation - as requested. I'm happy to do a follow up PR to do the same transformations than in deltaspike for instance: https://github.com/apache/deltaspike/blob/master/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/EnvironmentPropertyConfigSource.java#L55 or a more fancy - but real world - one like key -> key.substring(prefix.length()).toUpperCase(ROOT).replace('.', '_')
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-14 15:42 GMT+01:00 Ismaël Mejía <ieme...@gmail.com>: > +1 to Romain idea with Kenn's approach, we should probably reserve the > 'beam.' namespace too because we are already using it for system > properties in the spark runner, following along the convention of > 'spark.*' in Apache Spark. > > Any ideas on how to handle this for the env vraiables case ? maybe this? > export my.random.namespace="SomeOption=bizzle SomeOtherOption=whatever" > > > On Wed, Feb 14, 2018 at 9:35 AM, Romain Manni-Bucau > <rmannibu...@gmail.com> wrote: > > FYI created https://github.com/apache/beam/pull/4683 about it > > > > > > Romain Manni-Bucau > > @rmannibucau | Blog | Old Blog | Github | LinkedIn | Book > > > > 2018-02-13 19:21 GMT+01:00 Romain Manni-Bucau <rmannibu...@gmail.com>: > >> > >> Oki, will try a PR after the classloader one then. Thanks a lot. > >> > >> Le 13 févr. 2018 19:14, "Lukasz Cwik" <lc...@google.com> 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 > >>> <rmannibu...@gmail.com> 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 | Blog | Old Blog | Github | LinkedIn | Book > >>>> > >>>> 2018-02-13 18:49 GMT+01:00 Lukasz Cwik <lc...@google.com>: > >>>>> > >>>>> 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 <k...@google.com> > >>>>> 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.fromSystemProperties("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 > >>>>>> <rmannibu...@gmail.com> wrote: > >>>>>>> > >>>>>>> makes sense, do we want beam.foo.bar -> --foo-bar conversion too? > >>>>>>> > >>>>>>> > >>>>>>> Romain Manni-Bucau > >>>>>>> @rmannibucau | Blog | Old Blog | Github | LinkedIn | Book > >>>>>>> > >>>>>>> 2018-02-13 18:19 GMT+01:00 Eugene Kirpichov <kirpic...@google.com > >: > >>>>>>>> > >>>>>>>> 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é < > j...@nanthrax.net> > >>>>>>>> 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.fromSystemProperties(). > >>>>>>>>> > > >>>>>>>>> > 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é > >>>>>>>>> jbono...@apache.org > >>>>>>>>> http://blog.nanthrax.net > >>>>>>>>> Talend - http://www.talend.com > >>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >>> > > >