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

Reply via email to