Ping...??? :) anyone interested on this feature? anything I can do before sending a vote?
Notice.. if this is inside the constructor or a at the factor.. that's an easy change that shouldn't stop any further progress here. On Wed, Nov 15, 2017 at 10:07 PM, Clebert Suconic <clebert.suco...@gmail.com> wrote: > So, just asking for guidance here... > should I go for a vote.. or... if you guys think this should be > retired.. that's fine.. > > I am using my spare time on this.. and I'm about to fill it up that slot soon > :) > > I'm trying to figure out if there is interest on this. > > On Mon, Nov 13, 2017 at 9:51 AM, Clebert Suconic > <clebert.suco...@gmail.com> wrote: >> It would work out. it's just a matter to find what's easier for users... >> >> a builder would work equally. >> >> I listed the rejected alternative in case the constructor wasn't >> accepted. I don't think it adds complexity. it's the same quite >> frankly. refactoring a method out to a builder of factory is a simple >> refactoring. >> >> the question really is: do you want the connection string support? if >> it lives as a constructor overload or a builder utility provided by >> the client library.. it doesn't really matter IMO. >> >> >> >> On Mon, Nov 13, 2017 at 9:31 AM, charly molter <charly.mol...@gmail.com> >> wrote: >>> Hi Clebert, >>> >>> You mention in rejected alternatives "builders" but you don't give a >>> justification. >>> >>> Could you explain why a utility method or class doesn't work out? >>> >>> There's already 5 constructors in KafkaConsumer and I'm afraid this change >>> would just make the API more complex. >>> >>> Thanks, >>> Charly >>> >>> On Mon, Nov 13, 2017 at 2:13 PM, Clebert Suconic <clebert.suco...@gmail.com> >>> wrote: >>> >>>> I was waiting for more input after my last update.. what should be done >>>> now? >>>> >>>> >>>> >>>> On Sat, Nov 4, 2017 at 2:19 PM, Clebert Suconic >>>> <clebert.suco...@gmail.com> wrote: >>>> > I have updated KIP-209. >>>> > >>>> > >>>> > Determined the \", \\ and \; meanings >>>> > >>>> > Also introduced the possibility of using $ to translate as system >>>> properties. >>>> > >>>> > I"m not using an BNF formal language here, as I don't think it's >>>> > needed.. it seems pretty obvious what it would be accomplished here. >>>> > >>>> > On Fri, Oct 27, 2017 at 2:05 PM, Colin McCabe <cmcc...@apache.org> >>>> wrote: >>>> >> On Tue, Oct 24, 2017, at 22:51, Michael André Pearce wrote: >>>> >>> Fair enough on URL encoding but as mentioned it is important to be able >>>> >>> to escape, I agree with backslash option. >>>> >>> >>>> >>> I would still like some form of prefix to the string to denote it is >>>> for >>>> >>> kafka. >>>> >> >>>> >> I don't think a prefix is necessary here. URLs have a prefix because >>>> >> there are multiple services which you could access (HTTP vs HTTPS, etc.) >>>> >> If you are passing a string to Kafka, the string is for Kafka, not for >>>> >> something else, so the issue doesn't exist. >>>> >> >>>> >> best, >>>> >> Colin >>>> >> >>>> >> >>>> >>> >>>> >>> E.g. kafka:: (if semicolon separators) >>>> >>> >>>> >>> Sent from my iPad >>>> >>> >>>> >>> > On 24 Oct 2017, at 17:27, Colin McCabe <cmcc...@apache.org> wrote: >>>> >>> > >>>> >>> > Hi Clebert, >>>> >>> > >>>> >>> > As some other people mentioned, a comma is probably not a great >>>> choice >>>> >>> > for the entry separator. We have a lot of configuration values that >>>> >>> > already include commas. How about using a semicolon instead? >>>> >>> > >>>> >>> > You also need an escaping system in case someone needs a semicolon >>>> (or >>>> >>> > whatever) that is part of a configuration key or configuration value. >>>> >>> > How about a simple backslash? And then if you want a literal >>>> backslash, >>>> >>> > you put in two backslashes. >>>> >>> > >>>> >>> >> On Thu, Oct 19, 2017, at 18:10, Michael André Pearce wrote: >>>> >>> >> Just another point to why I’d propose the below change to the string >>>> >>> >> format I propose , is an ability to encode the strings easily. >>>> >>> >> >>>> >>> >> We should note that it’s quite typical for serializers to user a >>>> >>> >> schematic registry where one of their properties they will need to >>>> set >>>> >>> >> would be in some form like: >>>> >>> >> >>>> >>> >> schema.registry.url=http://schema1:80,schema2:80/api >>>> >>> >> >>>> >>> >> So being able to safely encode this is important. >>>> >>> >> >>>> >>> >> Sent from my iPhone >>>> >>> >> >>>> >>> >>> On 20 Oct 2017, at 01:47, Michael André Pearce < >>>> michael.andre.pea...@me.com> wrote: >>>> >>> >>> >>>> >>> >>> Hi Clebert >>>> >>> >>> >>>> >>> >>> Great kip! >>>> >>> >>> >>>> >>> >>> Instead of ‘;’ to separate the host sections with the params >>>> section could it be a ‘?’ >>>> >>> >>> >>>> >>> >>> And like wise ‘,’ param separator could this be ‘&’ (keep the ‘,’ >>>> for host separator just makes easier to distinguish) >>>> >>> >>> >>>> >>> >>> Also this was it makes it easier to encode params etc as can just >>>> re use url encoders. >>>> >>> > >>>> >>> > Please, no. URL encoders will mangle a lot of things horribly (like >>>> >>> > less than signs, greater than signs, etc.) We should not make this a >>>> >>> > URL or pseudo-URL (see the discussion above). We should make it >>>> clear >>>> >>> > that this is not a URL. >>>> >>> > >>>> >>> >> Invalid conversions would throw InvalidArgumentException (with a >>>> description of the invalid conversion) >>>> >>> >> Invalid parameters would throw InvalidArgumentException (with the >>>> name of the invalid parameter). >>>> >>> > >>>> >>> > This will cause a lot of compatibility problems, right? If I switch >>>> >>> > back and forth between two Kafka versions, they will support slightly >>>> >>> > different sets of configuration parameters. It seems saner to simply >>>> >>> > ignore configuration parameters that we don't understand, like we do >>>> >>> > now. >>>> >>> > >>>> >>> > best, >>>> >>> > Colin >>>> >>> > >>>> >>> > >>>> >>> >>> >>>> >>> >>> Also as like many systems it typical to note what the connection >>>> string is for with a prefix eg ‘kafka://‘ >>>> >>> >>> >>>> >>> >>> Just makes it obvious when an app has a list of connection strings >>>> in their runtime properties which is for which technology. >>>> >>> >>> >>>> >>> >>> Eg example connection string would be: >>>> >>> >>> >>>> >>> >>> kafka://host1:port1,host2:port2?param1=value1&parm2=value2 >>>> >>> >>> >>>> >>> >>> Cheers >>>> >>> >>> Mike >>>> >>> >>> >>>> >>> >>> Sent from my iPhone >>>> >>> >>> >>>> >>> >>>> On 19 Oct 2017, at 19:29, Clebert Suconic < >>>> clebert.suco...@gmail.com> wrote: >>>> >>> >>>> >>>> >>> >>>> Do I have to do anything here? >>>> >>> >>>> >>>> >>> >>>> I wonder how long I need to wait before proposing the vote. >>>> >>> >>>> >>>> >>> >>>> On Tue, Oct 17, 2017 at 1:17 PM, Clebert Suconic >>>> >>> >>>> <clebert.suco...@gmail.com> wrote: >>>> >>> >>>>> I had these updates in already... you just changed the names at >>>> the >>>> >>> >>>>> string.. but it was pretty much the same thing I think... I had >>>> taken >>>> >>> >>>>> you suggestions though. >>>> >>> >>>>> >>>> >>> >>>>> >>>> >>> >>>>> The Exceptions.. these would be implementation details... all I >>>> wanted >>>> >>> >>>>> to make sure is that users would get the name of the invalid >>>> parameter >>>> >>> >>>>> as part of a string on a message. >>>> >>> >>>>> >>>> >>> >>>>> On Tue, Oct 17, 2017 at 3:15 AM, Satish Duggana >>>> >>> >>>>> <satish.dugg...@gmail.com> wrote: >>>> >>> >>>>>> You may need to update KIP with the details discussed in this >>>> thread in >>>> >>> >>>>>> proposed changes section. >>>> >>> >>>>>> >>>> >>> >>>>>>>> My proposed format for the connection string would be: >>>> >>> >>>>>>>> IP1:host1,IP2:host2,...IPN:hostn;parameterName=value1; >>>> parameterName2=value2;... >>>> >>> >>>>>> parameterNameN=valueN >>>> >>> >>>>>> Format should be >>>> >>> >>>>>> host1:port1,host2:port2,…host:portn;param-name1=param-val1,.. >>>> >>> >>>>>> >>>> >>> >>>>>>>> Invalid conversions would throw InvalidArgumentException >>>> (with a >>>> >>> >>>>>> description of the invalid conversion) >>>> >>> >>>>>>>> Invalid parameters would throw InvalidArgumentException (with >>>> the name of >>>> >>> >>>>>> the invalid parameter). >>>> >>> >>>>>> >>>> >>> >>>>>> Should throw IllegalArgumentException with respective message. >>>> >>> >>>>>> >>>> >>> >>>>>> Thanks, >>>> >>> >>>>>> Satish. >>>> >>> >>>>>> >>>> >>> >>>>>> On Tue, Oct 17, 2017 at 4:46 AM, Clebert Suconic < >>>> clebert.suco...@gmail.com> >>>> >>> >>>>>> wrote: >>>> >>> >>>>>> >>>> >>> >>>>>>> That works. >>>> >>> >>>>>>> >>>> >>> >>>>>>>> On Mon, Oct 16, 2017 at 6:59 PM Ted Yu <yuzhih...@gmail.com> >>>> wrote: >>>> >>> >>>>>>>> >>>> >>> >>>>>>>> Can't you use IllegalArgumentException ? >>>> >>> >>>>>>>> >>>> >>> >>>>>>>> Some example in current code base: >>>> >>> >>>>>>>> >>>> >>> >>>>>>>> clients/src/main/java/org/apache/kafka/clients/Metadata.java: >>>> >>> >>>>>>>> throw new IllegalArgumentException("Max time to wait for >>>> metadata >>>> >>> >>>>>>> updates >>>> >>> >>>>>>>> should not be < 0 milliseconds"); >>>> >>> >>>>>>>> >>>> >>> >>>>>>>> On Mon, Oct 16, 2017 at 3:06 PM, Clebert Suconic < >>>> >>> >>>>>>>> clebert.suco...@gmail.com> >>>> >>> >>>>>>>> wrote: >>>> >>> >>>>>>>> >>>> >>> >>>>>>>>> I updated the wiki with the list on the proposed arguments. >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>>> I also changed it to include a new Exception class that >>>> would be named >>>> >>> >>>>>>>>> InvalidParameterException (since I couldn't find an existing >>>> Exception >>>> >>> >>>>>>>>> class that I could reuse into this). (I could review the >>>> name or the >>>> >>> >>>>>>>>> exception of course.. just my current proposal) >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>>>> On Mon, Oct 16, 2017 at 5:55 PM, Jakub Scholz < >>>> ja...@scholz.cz> wrote: >>>> >>> >>>>>>>>>> Hi Clebert, >>>> >>> >>>>>>>>>> >>>> >>> >>>>>>>>>> I think it would be good if this could cover not only >>>> KafkaConsumer >>>> >>> >>>>>>> and >>>> >>> >>>>>>>>>> KafkaProducer but also the AdminClient. So that all three >>>> can be >>>> >>> >>>>>>>>> configured >>>> >>> >>>>>>>>>> the same way. >>>> >>> >>>>>>>>>> >>>> >>> >>>>>>>>>> The bootstrap servers are a list - you can provide multiple >>>> bootstrap >>>> >>> >>>>>>>>>> servers. Maybe you add an example of how that will be >>>> configured. I >>>> >>> >>>>>>>>> assume >>>> >>> >>>>>>>>>> it will be >>>> >>> >>>>>>>>>> "host:port,host2:port2;parameterName=value1; >>>> parameterName2=value2" >>>> >>> >>>>>>> but >>>> >>> >>>>>>>>> it >>>> >>> >>>>>>>>>> would be great to have it documented. >>>> >>> >>>>>>>>>> >>>> >>> >>>>>>>>>> Thanks & Regards >>>> >>> >>>>>>>>>> Jakub >>>> >>> >>>>>>>>>> >>>> >>> >>>>>>>>>> On Mon, Oct 16, 2017 at 11:30 PM, Clebert Suconic < >>>> >>> >>>>>>>>> clebert.suco...@gmail.com >>>> >>> >>>>>>>>>>> wrote: >>>> >>> >>>>>>>>>> >>>> >>> >>>>>>>>>>> I would like to start a discussion about KIP-209 >>>> >>> >>>>>>>>>>> (https://cwiki.apache.org/confluence/display/KAFKA/KIP- >>>> >>> >>>>>>>>>>> 209+-+Connection+String+Support) >>>> >>> >>>>>>>>>>> >>>> >>> >>>>>>>>>>> This is an extension of my previous thread: >>>> >>> >>>>>>>>>>> http://mail-archives.apache.org/mod_mbox/kafka-dev/201710. >>>> >>> >>>>>>>>>>> mbox/%3cCAKF+bsoFbN13D-u20tUsP6G+aHX4BUNk=S8M4KyJxAt_ >>>> >>> >>>>>>>>>>> oyv...@mail.gmail.com%3e >>>> >>> >>>>>>>>>>> >>>> >>> >>>>>>>>>>> this could make the bootstrap of a consumer or producer >>>> similar to >>>> >>> >>>>>>>>>>> what users are already used when connecting into other >>>> systems, >>>> >>> >>>>>>> being >>>> >>> >>>>>>>>>>> a simple addition to Producer and Consumer, without >>>> breaking any >>>> >>> >>>>>>>>>>> previous client usage. >>>> >>> >>>>>>>>>>> >>>> >>> >>>>>>>>>>> >>>> >>> >>>>>>>>>>> -- >>>> >>> >>>>>>>>>>> Clebert Suconic >>>> >>> >>>>>>>>>>> >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>>> -- >>>> >>> >>>>>>>>> Clebert Suconic >>>> >>> >>>>>>>>> >>>> >>> >>>>>>>> >>>> >>> >>>>>>> -- >>>> >>> >>>>>>> Clebert Suconic >>>> >>> >>>>>>> >>>> >>> >>>>> >>>> >>> >>>>> >>>> >>> >>>>> >>>> >>> >>>>> -- >>>> >>> >>>>> Clebert Suconic >>>> >>> >>>> >>>> >>> >>>> >>>> >>> >>>> >>>> >>> >>>> -- >>>> >>> >>>> Clebert Suconic >>>> > >>>> > >>>> > >>>> > -- >>>> > Clebert Suconic >>>> >>>> >>>> >>>> -- >>>> Clebert Suconic >>>> >>> >>> >>> >>> -- >>> Charly Molter >> >> >> >> -- >> Clebert Suconic > > > > -- > Clebert Suconic -- Clebert Suconic