We are removing the "?" in the syntax and continue on this route of
implementation: className followed by the json representation of the
properties to initialize the class.

A pull request has been opened regarding this:
https://github.com/apache/geode/pull/1327


On Fri, Jan 26, 2018 at 12:38 PM, Jinmei Liao <jil...@pivotal.io> wrote:

> Yes, we are debating the necessity of the "?".
>
> -1 on the non-json syntax though. we don't want to implement a new parser
> ourselves to gather the properties.
>
> As to Nick's point about a generic solution that would cover initializing
> not just Declarable, yes, the syntax itself does not lock down to the class
> being a Declarable. However you want to configure the object using the
> parsed Property, it's up to how we want to interpret this property. Our
> current implementation only support using this property if the className
> specified is a Declarable, but we can enhance it to support other types as
> well.
>
>
>
> On Fri, Jan 26, 2018 at 12:15 PM, Swapnil Bawaskar <sbawas...@pivotal.io>
> wrote:
>
>> +1 for ability to pass in simple key-value pairs.
>> Would it be possible to loose the "?" between the class name and the json
>> though?
>>
>> Also, since we are essentially trying to pass a java.util.Properties
>> object
>> to the Declarable, would it be better if we ask the users to pass-in a
>> string representation of the properties object? something like:
>> --cache-loader=my.CacheLoader{key2=value2, key1=value1}
>> A parenthesis around the values may also help in conveying the intention:
>> --cache-loader=my.CacheLoader({key2=value2, key1=value1})
>>
>> On Fri, Jan 26, 2018 at 10:24 AM Nick Reich <nre...@pivotal.io> wrote:
>>
>> > This would solve the problem of specifying the parameters for a
>> Declarable,
>> > but if you provided support for any valid json, you could cover other
>> > situations as well, including those with more complicated and possibly
>> > nested configuration. If we would ever support such scenarios in the
>> > future, I assume that we would want a generic solution that would cover
>> all
>> > configuration. Is this something that we anticipate needing and if so,
>> how
>> > would the current proposal cover such situations?
>> >
>> > On Fri, Jan 26, 2018 at 8:43 AM, Jens Deppe <jde...@pivotal.io> wrote:
>> >
>> > > This also avoids the other option of implementing this by having
>> > associated
>> > > 'params' options for each option which can take a Declarable, thus
>> > reducing
>> > > the proliferation of options - in particular for 'create region'.
>> > >
>> > > i.e. --cache-listener AND --cache-listener-params.
>> > >
>> > > Further, this json parameter would not allow for arbitrary json but
>> would
>> > > be restricted to a simple key/value mapping so that there would be a
>> > direct
>> > > translation to Declarable parameters in the cache.xml.
>> > >
>> > > --Jens
>> > >
>> > > On Fri, Jan 26, 2018 at 8:07 AM, Jinmei Liao <jil...@pivotal.io>
>> wrote:
>> > >
>> > > > Currently, when you want to specify a call-back in gfsh command
>> option,
>> > > you
>> > > > can only pass in the class name, e.g.:
>> > > >
>> > > > create region --name=regionA --type=PARTITION
>> > > --cache-loader=my.CacheLoader
>> > > >
>> > > > But these callbacks all implements Declarable (CacheLoader,
>> > CacheWriter,
>> > > > CacheListener, CustomExpiry etc.), i.e they can initialized with
>> extra
>> > > > properties that can be set when they are declared in cache.xml, but
>> > > > currently, our gfsh command doesn't support that.
>> > > >
>> > > > We are proposing to add the support to configure Declarables in gfsh
>> > > > commands by adding json strings at the end of the class name. like
>> > this:
>> > > >
>> > > > create region --name=regionA --type=PARTITION
>> > > > --cache-loader=my.CacheLoader?{"key":"value,"key2":"value2"}
>> > > >
>> > > > (of course, if you don't need to configure your Declarable, you can
>> > still
>> > > > only specify a className as before).
>> > > >
>> > > > Comments/thoughts?
>> > > >
>> > > > --
>> > > > Cheers
>> > > >
>> > > > Jinmei
>> > > >
>> > >
>> >
>>
>
>
>
> --
> Cheers
>
> Jinmei
>



-- 
Cheers

Jinmei

Reply via email to